lập trình -k8凯发
-
các thành phần của ngôn ngữ c
-
từ khóa
- các từ dành riêng
- phải được sử dụng đúng cú pháp
- các từ khóa thông dụng
-
tên & cách đặt tên
- dùng để định danh các thành phần của chương trình
- tên biến, tên hàm, tên hằng, …
- tên là một dãy các kí tự gồm các chữ cái [a-z, a-z, 0-9] và gạch nối “_”
-
cách đặt tên
- không đuợc chứa kí tự trống
- không được bắt đầu bằng một chữ số
- không được trùng với từ khóa
- nên đặt các tên gợi nhớ, có ý nghĩa
-
hằng
- là đại lượng có giá trị không thay đổi được trong chương trình
-
ví dụ
-
111
- hằng là một số
-
‘b’
- hằng là một kí tự
-
“lap trinh”
- hằng là một chuỗi kí tự
-
biến
- là đại lượng có thể thay đổi được giá trị trong chương trình
-
biểu thức
- là một công thức tính toán để có một giá trị theo một qui tắc toán học
-
ví dụ
- x*x y*y
- a*b 2
-
câu lệnh & chú thích
- mỗi một câu lệnh phải kết thúc bởi một dấu “;”
-
lời chú thích được đặt giữa hai dấu “/*” và “*/”
-
ví dụ
- /* đây là một chú thích */
- khi viết chương trình nên sử dụng các lời chú thích
- trình biên dịch c phân biệt chữ in hoa và chữ in thường
-
kiểu dữ liệu sơ cấp chuẩn
-
kiểu ký tự
- kiểu char
- chiếm một byte
- biểu diễn các kí tự trong bảng mã ascii
-
ví dụ
- ‘a’ có giá trị mã ascii là 65
- ‘0’ có giá trị mã ascii là 48
- kiểu kí tự đồng thời cũng là kiểu số nguyên
- có hai kiểu char: : signed char và unsinged char
-
kiểu số nguyên
- có nhiều kiểu số nguyên
-
kiểu số thực
- có nhiều kiểu số thực
-
hai cách biểu diễn
-
dạng thập phân
- dùng dấu chấm để ngăn cách phần nguyên và phần thập phân
- ví dụ: -12.345672, 1203.8375
-
dạng khoa học
- gồm phần định trị và phần mũ của cơ số 10, hai phần cách nhau bởi chữ e hoặc e
- ví dụ: 6.123e 02
-
chuyển kiểu (casting)
- chuyển từ kiểu này sang kiểu khác
- cú pháp: (kiểu_mới)biểu_thức
-
ví dụ
- int i;
i = (int)10.45 /* i = 10 */
- float x;
x = (float)1/3; /* x = 1.0/3 = 0.3333 */
-
các phép toán
-
các phép toán trên số nguyên
- cộng:
- trừ: -
- nhân: *
- chia lấy phần nguyên: /
- chia lấy phần dư: %
-
các phép toán trên số thực
- cộng:
- trừ: -
- nhân: *
- chia: /
-
các phép toán quan hệ
-
so sánh
- bằng nhau: ==
- khác nhau: !=
- lớn hơn: >
- nhỏ hơn: <
- lớn hơn hoặc bằng: >=
- nhỏ hơn hoặc bằng : <=
- biểu thức chứa các phép toán quan hệ được gọi là biểu thức quan hệ
- biểu thức quan hệ có giá trị đúng hoặc sai
-
các phép toán logic
- kiểu logic không được định nghĩa một cách tường minh
- khác 0 là đúng, bằng 0 là sai
- phép toán
-
các phép toán trên bit
- phép or từng bit: |
- phép and từng bit: &
- phép xor từng bit: ^
- phép đảo bit: ~
- phép dịch trái (nhân 2): <<
- phép dịch phải (chia 2): >>
-
ví dụ
- 3 & 5 = 1
- a << n /* a*(2n) */
- a >> n /* a/(2n) */
-
lệnh đơn
-
khái niệm hàm
- là đoạn chương trình viết ra một lần, được sử dụng nhiều lần
- mỗi lần sử dụng chỉ cần gọi tên hàm và cung cấp các tham số
-
cấu trúc chương trình
- topic
-
các khai báo
- #include: dùng để gọi file tiêu đề (.h)
-
khai báo biến
- muốn sử dụng biến thì phải khai báo trước
- cú pháp: kiểu_dữ liệu danh_sách_các_biến;
-
ví dụ
- int x, y;
- float a = 10.5, b; /* khai báo và khởi gán */
- int a, b, c = 1;
-
khai báo hằng
- có hai cách để khai báo hằng, hoặc sử dụng #define hoặc sử dụng từ khóa const
- #define tên_hằng giá_trị_hằng
- const kiểu_dữ_liệu tên_hằng = giá_trị_hằng;
-
ví dụ
- #define pi 3.14
- const float pi = 3.14;
-
lệnh
- một câu lệnh nhằm thực hiện một công việc nào đó
- câu lệnh kết thúc bởi dấu “;”
-
ví dụ
- printf(“một câu lệnh\n”);
- i ;
-
khối lệnh
- là dãy các lệnh được đặt giữa cặp ngoặc nhọn “{“ và “}”
- khối lệnh thường được sử dụng khi muốn chúng thực hiện dưới một điều kiện nào đó
- {
/* các lệnh */
}
-
phép gán
-
gán giá trị cho một biến
- cú pháp: tên_biến = biểu_thức;
-
ví dụ
- x = 0;
- y = z 1;
-
phép gán kép
-
ví dụ
- x = y = z = 1;
- x = y (z = 2);
-
phép tăng 1 ( ), giảm 1 (--)
- ngôn ngữ c cung cấp hai phép toán tăng 1 và giảm 1
-
ví dụ
- x = x 1; sẽ được viết thành: x; hoặc x ;
- y = y – 1; sẽ được viết thành: --y; hoặc y--;
-
toán tử hoặc -- đứng trước hoặc sau biến là khác nhau
- x (--x) : x sẽ được tăng (giảm) 1 trước khi thực hiện phép gán
- x (x--) : thực hiện phép gán trước khi x được tăng (giảm) 1
-
ví dụ
- a = 5; b = a; /* a = 6, b = 6*/
- a = 5; b = a ; /* a = 6, b = 5*/
-
lệnh có cấu trúc
-
lệnh nhập xuất
-
lệnh xuất / hiển thị printf
-
ví dụ
- #include
main()
{
printf(“chào các bạn.\n”);
}
-
cú pháp
- printf(chuỗi_điều_khiển [, danh_sách_các_tham_số]);
- chuỗi điều khiển dùng để định dạng dữ liệu cần hiển thị
- ví dụ: printf(“a = %f\n”, a);
-
chuỗi điều khiển bao gồm 3 loại kí tự
- các kí tự điều khiển
- \n sang dòng mới
- \f sang trang mới
- \b xóa kí tự bên trái
- \t dấu tab
- các kí tự để đưa ra màn hình
- các kí tự định dạng và khuôn in
- theo sau kí tự %
- các ký tự thường dùng
- topic
- ví dụ
- printf(“ma ascii cua %c va %c la %d va %d\n”, ‘a’, ‘a’, ‘a’, ‘a’);
- kết quả: ma ascii tuong ung cua a va a la 97 va 65
- printf(“%f”, x); /* phần thập phân được hiển thị ngầm định là 6 chữ số */
- x = 4.2 kết quả: 4.200000
- x = 4.2345678 kết quả: 4.234568 /*làm tròn*/
- printf(“ví dụ \nxoa\b kí\b tự\b trái\b\n”);
- kết quả: vi du xo k t tra
- khuôn in
- qui định cách thức in ra dữ liệu và chỉ rỏ số chổ dữ liệu sẽ chiếm, canh lề trái hay phải
- khuôn in có dạng: %m hay %m.n
- đối với số nguyên, mẫu ghi là %md
- m là số nguyên chỉ ra số vị trí mà số nguyên chiếm
- ví dụ: printf(“x = m”, x);
- kết quả
- nếu x = 12 in ra ^^12
- nếu x = 12345 in ra 12345
-
in kí tự đặc biệt
- \’ in ra dấu ’
- \” in ra dấu ”
- \\ in ra dấu \
-
các lệnh xuất dữ liệu khác
-
puts(chuỗi_kí_tự): hiển thị chuỗi kí tự
- ví dụ: puts(“hello");
-
putchar(kí_tự): hiển thị một kí tự
- ví dụ: putchar(‘a’);
-
lệnh nhập dữ liệu scanf
- cách sử dụng gần giống với lệnh printf
-
ví dụ:
- #include
main()
{
float r, dien_tich;
printf(“nhập vào bán kính: ”);
scanf(“%f”, &r);
dien_tich = 3.14 * r * r;
printf(“diện tích là: %f\n”, dien_tich);
return;
}
-
cú pháp
- scanf(chuỗi_điều_khiển [, danh_sách_tham_số]);
- chuỗi_điều_khiển: định dạng dữ liệu nhập vào
- các chuỗi điều khiển thường dùng
- danh_sách_tham_số: địa chỉ các biến cần nhập dữ liệu
- để lấy địa chỉ một biến, sử dụng toán tử &
-
các lệnh nhập dữ liệu khác
- gets(char *str): nhận chuỗi kí tự vào từ bàn phím cho dến khi gặp “\n”
-
getchar(): nhận kí tự nhập vào
- ví dụ: ch = getchar();
- getch(): nhận kí tự nhập vào và không cho hiển thị kí tự đó trên màn hình
- getche(): nhận kí tự nhập vào và cho hiển thị kí tự đó trên màn hình
-
các lệnh khác
- fflush(): xóa vùng đệm bàn phím
- kbhit(): kiểm tra bộ đệm bàn phím, bộ đệm rỗng trả về giá trị 0, ngược lại trả về giá trị khác 0
- clrscr(): xóa màn hình
- gotoxy(int x, int y): di chuyển con trỏ màn hình đến vị trí cột x (1->80), và dòng y (1->25)
-
lệnh điều kiện
-
lệnh if
- thực hiện một trong hai khối lệnh tùy thuộc vào giá trị của biểu thức điều kiện
- lệnh if có hai dạng: dạng đầy đủ if … else và dạng chỉ có if
-
cú pháp
- dạng 1
- if (biểu thức điều kiện) (dạng 1)
khối lệnh 1;
else
khối lệnh 2;
- dạng 2
- if (biểu thức điều kiện) khối lệnh 1;
- biểu thức điều kiện
- sử dụng các toán tử “&&” và “||”
- if ((đk1 && đk2) || đk3)
-
lưu ý
- biểu thức điều kiện phải luôn đặt trong trong hai dấu “(“ và “)”
- biểu thức điều kiện là đúng, nếu nó có giá trị khác 0 và là sai nếu nó có giá trị bằng 0
- biểu thức điều kiện có thể là số nguyên hoặc thực
- nếu sau if hoặc else là một dãy các câu lệnh, thì các câu lệnh này phải được đặt trong cặp dấu ngoặc “{“ và “}”
-
lệnh if lồng nhau
- sử dụng các dấu đóng mớ ngoặc “{ }”
- tránh gây ra sự hiểu nhầm if nào tương ứng với else nào
- ví dụ:
- không dùng { }
- sử dụng { }
-
sử dụng else if
- sử dụng một trong n quyết định
- if (điều kiện 1)
khối lệnh 1;
else if (điều kiện 2)
khối lệnh 2;
…
else if (biểu thức n-1)
khối lệnh n-1;
else
khối lệnh n;
-
toán tử “?:”
- thay cho lệnh if
-
cú pháp
- (điều kiện) ? lệnh 1 : lệnh 2;
- nếu điều kiện là đúng lệnh 1 sẽ được thực hiện, nếu không lệnh 2 sẽ được thực hiện
-
ví dụ
- tìm số lớn nhất trong 2 số a, b
- (a > b) ? max = a : max = b;
- hoặc: max = (a > b) ? a : b;
-
lệnh switch … case
- cho phép chọn một trong nhiều phương án khác nhau
-
cú pháp
- switch (biểu thức nguyên)
{
case n1:
các câu lệnh;
case n2:
các câu lệnh;
...
case nk:
các câu lệnh;
[default: các câu lệnh;]
}
-
lệnh vòng lặp
-
lệnh for
-
cú pháp
- for ([biểu thức 1]; [biểu thức 2]; [biểu thức 3])
khối lệnh;
- các thành phần trong ngoặc “[” và “]” là tùy chọn, không bắt buộc
- các dấu “;” và cặp ngoặc “(” và “)” là bắt buộc
-
ví dụ
- topic
-
nhận xét
- biểu thức 1 chỉ được tính một lần
- biểu thức 2, biểu thức 3 và khối lệnh trong thân lệnh for được lặp đi lặp lại nhiều lần
- khi biểu thức 2 vắng mặt thì nó được xem là đúng
- phải dùng lệnh break hoặc return để thoát khỏi lệnh
- có thể sử dụng các lệnh for lồng nhau
-
lệnh while
-
cú pháp
- while (biểu thức)
khối lệnh;
-
ví dụ
- topic
-
nhận xét
- biểu thức điều kiện luôn dược đặt trong cặp dấu “(” và “)”
- biểu thức điều kiện sẽ được tính toán đầu tiên nên phải có giá trị xác định
-
lệnh do ... while
-
cú pháp
- do
khối lệnh;
while (biểu thức);
-
ví dụ
- topic
-
lệnh break
-
ý nghĩa
- thường được sử dụng kết hợp lệnh lặp
- dùng để thoát khỏi vòng lặp
- nếu có nhiều lệnh lặp lồng nhau thì lệnh break chỉ thoát ra khỏi vòng lặp trực tiếp chứa nó
- còn dùng để thoát khỏi lệnh switch … case
-
ví dụ
- topic
-
lệnh continue
-
ý nghĩa
- dùng để quay trở lại từ đầu để thực hiện lần lặp mới
mà không cần thực hiện phần còn lại
-
ví dụ
- topic
- hàm
-
các kiểu dữ liệu nâng cao
- kiểu mảng
- kiểu con trỏ
- kiểu chuỗi ký tự
- kiểu cấu trúc
- kiểu tập tin