Ữ
ng 2 Ch ươ CÁC PH N T C B N Ầ Ử Ơ Ả C A NGÔN NG C Khoa H th ng thông tin qu n lý ả
Ủ ệ ố
Hà N i – 2013
ộ
N i dung
ộ
1
Các thành ph n c b n ơ ả ầ
2
C u trúc ch ng trình C ấ ươ
3
Các ki u li u c s ơ ở ể ệ
4
Câu l nh-Bi u th c ứ ệ ể
5
Th t u tiên các phép toán ứ ự ư
6
S d ng môi tr ng làm vi c C ử ụ ườ ệ
7
Vào – ra d li u trong C ữ ệ
11/7/13 ng 2 - Các ph n t c b n c a 2/59 ầ ử ơ ả ủ ươ
Ch ngôn ng Cữ
1. Các thành ph n c b n
ơ ả
ầ
o B t
ủ
ộ ừ ự
a, b, c, …, z
A, B, C, …, Z ng:
ọ t :
ố _ và kho ng tr ng ả
+ – * / = < > ( ) ệ . , : ; [ ] % \ # $ ‘ ^ & @ ắ
‘ ’, d u tab, ấ
v ng c a C n Các ch cái hoa: ữ n Các ch cái th ữ ườ n Các ch s : ữ ố 0, 1, 2, 4, 5, 6, 7, 8, 9 n Các ký hi u toán h c : ệ n Các ký t đ c bi ự ặ n Ký t g ch n i ự ạ xu ng dòng ố
11/7/13 ng 2 - Các ph n t c b n c a 3/59 ầ ử ơ ả ủ ươ
Ch ngôn ng Cữ
1. Các thành ph n c b n (tt)
ơ ả
ầ
keyword)
ừ
có tác
ừ dành riêng trong ngôn ng , m i t
ỗ ừ
ữ
o T khóa ( n Các t ụ
n Không th s d ng t
khóa đ đ t tên cho bi n,
ể ặ
ế
ể ử ụ ươ
d ng và ý nghĩa c th ụ ể ừ ng trình con. khóa thông d ng:
n M t s t
hàm, tên ch ộ ố ừ
ụ
o const, enum, signed, struct, typedef, unsigned… o char, double, float, int, long, short, void o case, default, else, if, switch o do, for, while o break, continue, goto, return
11/7/13 ng 2 - Các ph n t c b n c a 4/59 ầ ử ơ ả ủ ươ
Ch ngôn ng Cữ
1. Các thành ph n c b n (tt)
ơ ả
ầ
ị n Tên là dãy kí t
ự ề
ọ
ề
ướ
ữ ố ả
li n nhau g m các ch cái a..z, ữ A..Z, các ch s 0..9, và d u g ch n i. ố ạ c khi s d ng ử ụ ng
t ch HOA, th
ườ
ặ
khoá
ớ
ừ
t nh
, d u ch m
ượ ứ
ấ
ợ
c đ t
o Tên/Đ nh danh (Identificater) ồ ấ n M i tên đ u ph i khai báo tr n Tên trong C phân bi ệ ữ n Đ dài t i đa m c đ nh là 32 kí tự ộ ị ố o Quy t c đ t tên ặ ắ n Tên không đ ượ n Không đ n Không ch a kí t n Tên ph i ả g i nh n Cùng ph m vi không đ ạ
c trùng v i các c b t đ u b ng ắ ầ ằ đ c bi ệ ự ặ ớ v đ i t ề ố ượ ượ
t ch sữ ố ư d u cách ấ ấ ng đ c đ t tên ặ ượ ặ 2 tên trùng nhau
11/7/13 ng 2 - Các ph n t c b n c a 5/59 ầ ử ơ ả ủ ươ
Ch ngôn ng Cữ
1. Các thành ph n c b n (tt)
ơ ả
ầ
ụ
: GiaiPhuongTrinh, Bai_Tap1, PI
o Ví d Tên/Đ nh danh (Identifier) ị ợ ệ
n Các tên h p l n Các tên không h p l
ợ ệ
ữ ố
ằ ệ
: ắ ầ ứ ứ
n Phân bi
o 1A b t đ u b ng ch s o PI$ ch a kí hi u $ o Giai phuong trinh ch a d u cách ấ o char trùng t khoá char ừ ng t ch hoa ch th
ữ
ữ ườ , do đó các tên sau
ằ
o Th th
ng dùng ch HOA đ t tên cho h ng, ch ữ ặ ng cho các d i t
ng khác.
ệ đây khác nhau: o A, a o BaiTap, baitap, BAITAP, bAItaP, … ữ ườ ố ượ ườ
11/7/13 ng 2 - Các ph n t c b n c a 6/59 ầ ử ơ ả ủ ươ
Ch ngôn ng Cữ
1. Các thành ph n c b n (tt)
ơ ả
ầ
o D u ch m ph y ; ấ
ẩ
ấ
ệ
ể
n Dùng đ phân cách các câu l nh. n Ví d : printf(“Hello World!”)
; printf(“\n”);
ụ
o Câu chú thích ặ ặ
ấ /* */ ho c ặ // (C++)
n Đ t gi a c p d u ữ n Ví d : ụ /*Ho & Ten: NVA*/, // MSSV: 0712078
o H ng ký t ằ
và h ng chu i ỗ ằ ự ‘A’, ‘a’, … ỗ “Hello World!”, “Nguyen Van A”
ự n H ng ký t : ằ n H ng chu i: ằ n Chú ý: ‘A’ khác “A”
11/7/13 ng 2 - Các ph n t c b n c a 7/59 ầ ử ơ ả ủ ươ
Ch ngôn ng Cữ
2. C u trúc chung ch
ng trình C
ấ
ươ
ề
ệ
ọ
ử
ế
ể
ặ ố
ệ
ế
ằ
#include <…> /*G i các t p ti n x lý */ ị #define /* Đ nh nghĩa */ ể ị typedef /*Đ nh nghĩa ki u */ /* Khai báo bi n ngoài */ int x; ằ /*Khai báo h ng */ const … /*Khai báo các hàm, có th có ho c không */ ữ ể Ki u_d _li u tên_hàm(các tham s ); Khai báo các bi n, h ng {
ệ
ủ
ả ạ
ị
Các l nh c a hàm return(); /*Tr l i giá tr */
ả /* B t bu c ph i có hàm main */ ằ
} ... ắ main() { Khai báo các bi n, h ng ủ
ệ
ặ
ộ ế Các l nh c a hàm ể return (); /*Có th có ho c không */
} 11/7/13
ng 2 - Các ph n t c b n c a 8/59 ầ ử ơ ả ủ ươ
Ch ngôn ng Cữ
ng trình C
Ví d ch ụ
ươ
o Ví d 1: Vi ụ
ế
ữ
t ra màn hình dòng ch CHAO MUNG DEN VOI NGON NGU C
ư
ệ
ẩ
#include /*Th vi n vào ra chu n */
#include
int main()
{ clrscr(); /*Xoá màn hình */
ừ
printf(“CHAO MUNG DEN VOI NGON NGU C”); getch(); /*D ng màn hình */ return 0;
}
11/7/13 ng 2 - Các ph n t c b n c a 9/59 ầ ử ơ ả ủ ươ
Ch ngôn ng Cữ
ng trình C
Ví d ch ụ
ươ
o Ví d 2: Tính chu vi và di n tích hình tròn v i ớ
ụ
ệ
bán kính r nh p t
bàn phím.
ậ ừ
ư
ệ
ẩ
ư
ệ
ọ
#include /*Th vi n vào ra chu n */
#include
#include /*Th vi n hàm toán h c*/
int main()
{ float r,cv,dt; /*Khai báo bi n*/ế
ừ
clrscr(); /*Xoá màn hình */ printf(“Nhap ban kinh: ”); scanf(“%f”,&r); cv=2*M_PI*r; dt=M_PI*r*r; printf(“Chu vi: %0.2f”,cv); printf(“Dien tich: %0.2f”,dt); getch(); /*D ng màn hình */ return 0;
} 11/7/13
ng 2 - Các ph n t c b n c a 10/59 ầ ử ơ ả ủ ươ
Ch ngôn ng Cữ
M t s quy t c khi vi
t ch
ng trình
ộ ố
ắ
ế
ươ
t trên m t hay nhi u
ộ
ỗ
ể ế
ề
o M i câu l nh có th vi ệ ư
o Đ báo cho C bi
ộ
ấ ; dòng, nh ng ph i k t thúc b ng d u ằ ả ế v n còn ỗ ở ự ẫ ế c khi xu ng dòng i, thêm d u \ tr ố
t m t chu i kí t ướ ấ
ướ
ể dòng d n Ví d : ụ printf(“CHAO MUNG \ DEN VOI NGON NGU C”);
q L i chú thích có th vi
ờ
t trên 1 ho c nhi u ặ
ề
ể ế dòng, đ t gi a c p d u ữ
ặ
ặ
q Các l nh theo cùng nhóm ph i th ng hàng
ệ
ẳ
ấ /*…*/ ả
theo chi u d c ọ ề
11/7/13 ng 2 - Các ph n t c b n c a 11/59 ầ ử ơ ả ủ ươ
Ch ngôn ng Cữ
3. Các ki u d li u c s
ữ ệ
ơ ở
ể
ể
ữ ệ
n M t t p h p các giá tr mà m t bi n thu c ki u đó
ể
ộ
ế
ộ
ị
c,
o Ki u d li u (data type) là: ợ ậ
ộ ậ ể
có th nh n đ ượ n Trên đó xác đ nh m t s phép toán ị
ộ ố
Ki u c s ơ ở ể
ự
Ki u vô ng h đ n gi n ả ể ướ ơ i dùng ườ
S nguyên ố S th c ố ự Ki u kí t ể Ki u logic (Boolean) ể Ki u li t kê ể ệ Do ng đ nh nghĩa ị ể
Ki u d li u ữ ệ có c u trúc ấ Ki u m ng (array) ể ả Kiể u d ữ li uệ
Ki u c u trúc (struct) ể ấ
Ki u t p (file) ể ệ Ki u con tr ể ỏ
11/7/13 ng 2 - Các ph n t c b n c a 12/59 ầ ử ơ ả ủ ươ
Ch ngôn ng Cữ
Bi nế
o Là đ i l
ạ ượ
ổ ượ
c giá tr ị
Bi nế
ng có th thay đ i đ ể Ví d :ụ int i; int j, k; unsigned char dem; float ketqua, delta;
Cú pháp
ữ ệ
ế
c ch a trong ô nh có đ a ch
ượ
ứ
ớ
ị
o Trong C, giá tr ị i đ
ỉ &i
11/7/13 ng 2 - Các ph n t c b n c a 13/59 ầ ử ơ ả ủ ươ
Ch ngôn ng Cữ
H ngằ
o Là đ i l
ạ ượ
H ng ằ nườ th g
ng có giá tr không đ i ổ ị Ví dụ const int A = 1506; const int B = 01506; const int C = 0x1506; const float D = 15.06e-3;
const char RC=‘\r’
Cú pháp
const = ;
ữ ệ
ị ằ
ể
ằ
11/7/13 ng 2 - Các ph n t c b n c a 14/59 ầ ử ơ ả ủ ươ
Ch ngôn ng Cữ
H ng (tt)
ằ
Ví dụ #define MAX 100 #define PI 3.14 #define TRUE 1 #defien FALSE 0
H ngằ ng t ượ tr ngư
Cú pháp
#define
11/7/13 ng 2 - Các ph n t c b n c a 15/59 ầ ử ơ ả ủ ươ
Ch ngôn ng Cữ
Các ki u d li u c s
ữ ệ
ơ ở
ể
: giá tr c a nó là các s nguyên
o C có 4 ki u c s ơ ở ể n Ki u s nguyên ố
ị ủ
ố
nh 2912, -1706, …
n Ki u s th c
ể ư ể
ố ự : giá tr c a nó là các s th c nh ư
ố ự
ị ủ
3.1415, 29.12, -17.06, …
trong b ng mã ASCII.
ự: 256 ký t
: giá tr đúng ho c sai.
n Ki u ký t ể n Ki u boolean ể
ự ị
ả ặ
11/7/13 ng 2 - Các ph n t c b n c a 16/59 ầ ử ơ ả ủ ươ
Ch ngôn ng Cữ
Ki u s nguyên ố
ể
o Các ki u s nguyên (có d u)
ể
ấ
n n bit có d u: –2n – 1 … +2n – 1 – 1
ố ấ
ị
Ki uể (Type)
Đ l nộ ớ (Byte)
Mi n giá tr ề (Range)
1
char
–128 … +127
2
int
–32.768 … +32.767
2
short
–32.768 … +32.767
4
long
–2.147.483.648 … +2.147.483.647
11/7/13 ng 2 - Các ph n t c b n c a 17/59 ầ ử ơ ả ủ ươ
Ch ngôn ng Cữ
Ki u s nguyên (tt)
ể
ố
ể
ấ
ố
n n bit không d u: 0 … 2n – 1
o Các ki u s nguyên (không d u) ấ
ị
Ki uể (Type)
Đ l nộ ớ (Byte)
Mi n giá tr ề (Range)
unsigned char
1
0 … 255
unsigned int
2
0 … 65.535
unsigned short
2
0 … 65.535
unsigned long
4
0 … 4.294.967.295
11/7/13 ng 2 - Các ph n t c b n c a 18/59 ầ ử ơ ả ủ ươ
Ch ngôn ng Cữ
Ki u s nguyên (tt)
ể
ố
o Các phép tính s h c v i s nguyên
ớ ố
ố ọ
Phép toán
Ví d b ng s ụ ằ
ố
Kí hi uệ +
Ví dụ x+y
C ngộ
-
x-y
Trừ
*
x*y
Nhân
/
x/y
3/2=1 ch không ph i là 1.5
ứ
ả
ầ
%
x%y
5%3 = 2
Chia l y ph n ấ nguyên Chia l y s d ấ
ố ư
o Chú ý:
ố ự
ố
n Th n tr ng tránh hi n t
ng
n Chia 2 s nguyên là s nguyên, mu n là s th c ố ph i vi ả ế (float)x/y ậ
ố t ọ
tràn số
ệ ượ
11/7/13 ng 2 - Các ph n t c b n c a 19/59 ầ ử ơ ả ủ ươ
Ch ngôn ng Cữ
Ki u s nguyên (tt)
ể
ố
o Bi u di n s nguyên d ng h đ m 16 (Hexa)
ệ ế
ể
0x41 ho c ặ 0X41
ạ ố ễ n B t đ u b ng kí t ự 0x ho c ặ 0X ằ ắ ầ n Ví d : ụ 65 đ t là c vi ượ ế 0xF ho c ặ 0XF t là c vi ế ượ
15 đ
ể
ệ ế
ạ
0101
o Bi u di n s nguyên d ng h đ m 8 (Octa) ố ễ n B t đ u b ng kí t ằ ắ ầ ự 0 n Ví d : ụ 65 đ c vi t là ế ượ t là c vi ế ượ 017
15 đ
ằ
ướ
ố n Thêm m t kí t
cu i vào s :
o H ng s nguyên đ nh tr ộ
ị ố
c ki u ể ố L (long), U (unsigned
ự integer, UL (unsigned long)
n Ví d : ụ 50000U, 012345L, 0x50000U ng 2 - Các ph n t
c b n c a 20/59 11/7/13 ầ ử ơ ả ươ ủ
Ch ngôn ng Cữ
Ki u s th c ố ự
ể
t bình th
ng
o D ng vi ạ
ế
ườ
n Ví d : ụ 3.14 3.0 -24.12345 -0.453
o D ng vi ạ
ế
n G m: ph n đ nh tr và ph n mũ vi
t khoa h c ọ ị ị
ồ
ế
ầ
ầ
ữ E
ữ
t sau ch (ho c ặ e), gi a chúng không có kho ng cách ả
n Ví d : ụ 6.2144E+02
n Chú ý:
o N u không có ph n mũ thì ph n đ nh tr b t bu c ph i ả
ị ắ
ế
ầ
ầ
ộ
ị
có d u ấ .
Ph n đ nh tr Ph n mũ ầ ầ ị ị
.1212)
ố ở ầ
o Có th không c n s 0 ể o KHÔNG t n t
ầ i phép
ồ ạ
đ u (vd: % cho s th c ố ự
11/7/13 ng 2 - Các ph n t c b n c a 21/59 ầ ử ơ ả ủ ươ
Ch ngôn ng Cữ
Ki u s th c ố ự
ể
o Các ki u s th c ể
ố ự
ị
Ki uể (Type)
Đ l nộ ớ (Byte)
Mi n giá tr ề (Range)
float
4
1.24E-38 … 3.4E38 Đ chính xác kho ng 7 ch s
ữ ố
ả
ộ
double
8
2.2E-308 … 1.8E308 Đ chính xác kho ng 15 ch s
ữ ố
ả
ộ
long double
10
3.4E4932…3.4E4932 Đ chính xác kho ng 19 ch s
ữ ố
ả
ộ
11/7/13 ng 2 - Các ph n t c b n c a 22/59 ầ ử ơ ả ủ ươ
o H ng s th c đ nh tr
c ki u
ố ự
ằ
ị
ướ
ể
n Thêm kí t
cu i:
ự
ố F (float), L (long double)
n Ví d : ụ 0.1234567-20L 4E12F
Ch ngôn ng Cữ
Ki u ký t
ể
ự
o Đ c đi m ặ
trong b ng mã ASCII.
ự
ề
ả
ố
ể n Tên ki u: ể char n Mi n giá tr : 256 ký t ị n Chính là ki u s nguyên do: ể o Không l u tr c ti p ký t
mà ch l u mã ASCII c a ký t
ự
ự
ư
ế
ỉ ư
ủ
ự
đó.
n L u s 65 t n L u s 97 t
ng đ ng đ
‘A’ ‘a’
o Ví dụ ư ư
ươ ươ
ươ ươ
ng v i ký t ớ ng v i ký t ớ
ự ự
ố ố o H ng kí t ự ằ ữ
ặ
ấ
n Đ t gi a hai d u ph y trên ẩ n Ví d : ụ ‘a’ ‘A’ ‘z’
11/7/13 ng 2 - Các ph n t c b n c a 23/59 ầ ử ơ ả ủ ươ
Ch ngôn ng Cữ
Ki u ký t
(tt)
ể
ự
trong b ng mã ASCII
ộ
ể
o Bi u di n m t kí t ễ
ả
ủ
i d ng
c vi
t d
ự n \xHHH (HHH là giá tr s Hexa c a kí t ) ự n \DDD (DDD là giá tr s Octa c a kí t ) ự n Ví d : ‘ụ A’ đ
ị ố ị ố ế ướ ạ
ượ
ủ \x41 ho c ặ \101
Dãy mã
Giá tr trong b ng ASCII
Kí tự
ả
ị
Xoá trái
\b
x08
Nh y cách ngang
\t
x09
ả
Xu ng dòng
\n
x0A
ố
\”
x22
D u “ấ
\’
x27
D u ‘ấ
\\
x5C
D u \ấ
Mã null
\0
x00
11/7/13 ng 2 - Các ph n t c b n c a 24/59 ầ ử ơ ả ủ ươ
Ch ngôn ng Cữ
Ki u ký t
(tt)
ể
ự
o Các hàm x lí kí t
ử
ự
ị
ng
ể ể ể
n toASCII(c): chuy n c thành giá tr mã ASCII n tolower(c): chuy n thành ch th ữ ườ n toupper(c): chuy n thành ch hoa ữ
ằ
ế
ặ
o H ng xâu kí t ự n H ng xâu kí t ằ n Xâu kí t
đ
“” ớ ề
đ ự ượ c l u tr trong m t m ng ô nh li n ộ ự ượ ư ố
t trong c p nháy kép ả ố
c l u là:
c vi ữ nhau và có ô cu i cùng ch a mã s 0 (null) o Ví d : Xâu ụ
ứ ượ ư
“Viet nam” đ
i
t
m
\0
e n H ng xâu kí t
không đ
n c vi
ự
ượ
a t trong bi u th c s ố ể
ứ
ế
V ằ h cọ
11/7/13 ng 2 - Các ph n t c b n c a 25/59 ầ ử ơ ả ủ ươ
Ch ngôn ng Cữ
Ki u Boolean
ể
o Đ c đi m ặ
n C ng m đ nh m t cách không t
ng minh:
ể ầ
ườ
ộ ị
ị o false (sai): giá tr 0. o true (đúng): giá tr khác 0, th
ng là 1.
ườ
ị
n C++: bool
o Ví dụ
n 0 (false), 1 (true), 2 (true), 2.5 (true) n 1 > 2 (0, false), 1 < 2 (1, true)
11/7/13 ng 2 - Các ph n t c b n c a 26/59 ầ ử ơ ả ủ ươ
Ch ngôn ng Cữ
4. Câu l nh – Bi u th c
ứ
ể
ệ
o Bi u th c ể
ứ
n T o thành t
ạ
ừ
toán tử (Operator) và các toán
các h ngạ (Operand).
tác đ ng lên các giá tr c a toán h ng và
n Toán t
ị ủ
ạ
ử
ấ ị
ể
ị
n Toán t n Toán h ng:
i g i hàm
...
ộ cho giá tr có ki u nh t đ nh. : ử +, –, *, /, %…. ạ
h ngằ , bi nế , l
ờ ọ
o Ví dụ
n 2 + 3, a / 5, (a + b) * 5, …
11/7/13 ng 2 - Các ph n t c b n c a 27/59 ầ ử ơ ả ủ ươ
Ch ngôn ng Cữ
Câu l nhệ
o Khái ni mệ
ỉ
ộ
ệ
ằ
ỉ
ị ự ự
ộ ố
ấ ị
ế ệ
ụ
n Là m t ch th tr c ti p, hoàn ch nh nh m ra l nh cho máy tính th c hi n m t s tác v nh t đ nh nào đó.
ệ
ằ
n Các câu l nh cách nhau b ng d u ch m ph y ẩ ; n Trình biên d ch b qua các kho ng tr ng (hay tab
ấ ắ
ị
ỏ ho c xu ng dòng) chen gi a l nh.
ấ ả ữ ệ
ố
ặ o Ví dụ a=2912; a = 2912; a = 2912;
11/7/13 ng 2 - Các ph n t c b n c a 28/59 ầ ử ơ ả ủ ươ
Ch ngôn ng Cữ
Câu l nh (tt) ệ
ỉ ồ
ệ
ơ
ộ
n Câu l nh đ n: ch g m m t câu l nh. n Câu l nh ph c (kh i l nh): g m nhi u câu l nh ề
ệ
ồ
ứ c bao b i
ố ệ ở { và }
o Phân lo iạ ệ ệ đ n đ ượ ơ o Ví dụ
ơ
ệ
a = 2912;
// Câu l nh đ n
ứ
ố
ệ
ệ
// Câu l nh ph c/kh i l nh
{
a = 2912; b = 1706;
}
11/7/13 ng 2 - Các ph n t c b n c a 29/59 ầ ử ơ ả ủ ươ
Ch ngôn ng Cữ
Phép gán
ị ơ
ả
ứ
ể
o Phép gán giá tr đ n gi n
=
c
ế Ví d : ụ i=3; i=i+4; ị ủ
n Giá tr c a bi u th c bên ph i d u gán = đ ứ
ả ấ
ế
ấ
ượ đ t vào ô nh c a bi n n m bên trái d u gán. n V trái ch có th là tên c a m t bi n ho c là giá
ể ớ ủ ể
ế
ặ
ộ
ỉ
ằ ủ tr d ng m t đ a ch ô nh . ớ ộ ị
ỉ
ặ ế ị ạ o Phép gán kép
ế a,b,c
ả
ị
a=b=c=3; Gán giá tr 3 cho c 3 bi n
ộ
ớ b và gán k t ế
a=b+(c=3); Gán 3 cho c, sau đó c ng v i qu nh n đ
c cho
a
ượ
ả
ậ
11/7/13 ng 2 - Các ph n t c b n c a 30/59 ầ ử ơ ả ủ ươ
Ch ngôn ng Cữ
S hi u ch nh d li u khi tính toán ữ ệ
ự ệ
ỉ
o Máy t
ả
ơ
ự ơ
ể ể ổ ể
ế
ể
đông chuy n ki u đ n gi n lên ki u ể cao h n đ quy đ i ki u k t qu , theo th t : ứ ự ả int long float double long double
char
ể
o Chuy n đ i cho ki u kí t ổ
ữ
ổ
ự ể n Chuy n đ i qua l i gi a char và int ạ ể n Ví d : ‘A’ + 1 = 66
ụ
o C ý chuy n đ i ki u giá tr (typecast) ổ ể
ể
ố
ị
n Cú pháp: ki uể (bi nế ) ho c ặ (ki uể )bi nế n Ví d : f =
float(1) / 2; g = float(1 / 2);
ụ
11/7/13 ng 2 - Các ph n t c b n c a 31/59 ầ ử ơ ả ủ ươ
Ch ngôn ng Cữ
5. Th t
u tiên các phép toán
ứ ự ư
Toán t ử o Toán t ỉ
toán h c ọ 1 ngôi ử ộ
ứ -- (gi m 1 đ n v ) ị
ể ơ
ả
ơ
ặ ướ
n Ch có m t toán h ng trong bi u th c. ạ n ++ (tăng 1 đ n v ), ị n Đ t tr ạ o Ví d ụ ++x hay --x: th c hi n tăng/gi m
c toán h ng ự
ả tr
ệ
c.ướ
n Đ t sau toán h ng
ặ
ạ
o Ví d xụ ++ hay x--: th c hi n tăng/gi m
ả sau.
ự
ệ
o Ví dụ
n x = 10; y = x++; n x = 10; y = ++x;
// y = 10 và x = 11 // x = 11 và y = 11
11/7/13 ng 2 - Các ph n t c b n c a 32/59 ầ ử ơ ả ủ ươ
Ch ngôn ng Cữ
Các toán t
toán h c
ử
ọ
o Toán t
2 ngôi
ử
ứ
ể
n Có hai toán h ng trong bi u th c. ạ n +, –, *, /, % (chia l y ph n d ) ư
ấ
ầ
o Ví dụ
n a = 1 + 2; b = 1 – 2; c = 1 * 2; d = 1 / 2; n e = 1*1.0 / 2; n h = 1 % 2; n x = x * (2 + 3*5); x *= 2 + 3*5;
11/7/13 ng 2 - Các ph n t c b n c a 33/59 ầ ử ơ ả ủ ươ
Ch ngôn ng Cữ
Phép gán m r ng
ở ộ
o C cho phép vi
ế ệ
t l nh gán m r ng theo quy ở ộ
đ nh: ị
x+=y x= x+y
x-=y x= x-y
x*=y x= x*y
x/=y x= x/y
x%=y x= x%y
x>>=y x= x>>y
x<<=y x= x< 11/7/13 ng 2 - Các ph n t c b n c a 34/59 ầ ử ơ ả ủ ươ Ch
ngôn ng Cữ o Các toán t trên bit ử ộ ủ ạ ấ ố n Tác đ ng lên các bit c a toán h ng (nguyên).
n & (and), | (or), ^ (xor), ~ (not hay l y s bù 1)
n >> (shift right), << (shift left)
n Toán t g p: ử ộ &=, |=, ^=, ~=, >>=, <<= & 0 1 | 0 1 0 0 0 0 0 1 1 0 1 1 1 1 ~ 0 1 ^ 0 1 1 0 0 0 1 1 1 0 11/7/13 ng 2 - Các ph n t c b n c a 35/59 ầ ử ơ ả ủ ươ Ch
ngôn ng Cữ o Ví dụ 11/7/13 ng 2 - Các ph n t c b n c a 36/59 ầ ử ơ ả ủ ươ Ch
ngôn ng Cữ o Các toán t ử quan h
ệ
n So sánh 2 bi u th c v i nhau
ớ
ứ
ể
n Cho ra k t qu 0 (hay false n u sai) ho c 1 (hay
ế ế ặ ả
true n u đúng)
ế n ==, >, <, >=, <, <=, != o Ví dụ n s1 = (1 == 2);s2 = (1 != 2);
n s3 = (1 > 2);
n s5 = (1 < 2); s4 = (1 >= 2);
s6 = (1 <= 2); 11/7/13 ng 2 - Các ph n t c b n c a 37/59 ầ ử ơ ả ủ ươ Ch
ngôn ng Cữ o Các toán t ử logic
ể
ề ổ ợ ệ ớ n T h p nhi u bi u th c quan h v i nhau.
ứ
n && (and), || (or), ! (not) && 0 1 || 0 1 0 0 0 0 0 1 n Ví dụ o s1 = (1 > 2) && (3 > 4);
o s2 = (1 > 2) || (3 > 4);
o s3 = !(1 > 2); 1 0 1 1 1 1 11/7/13 ng 2 - Các ph n t c b n c a 38/59 ầ ử ơ ả ủ ươ Ch
ngôn ng Cữ o Toán t đi u ki n ử ề ồ ứ ứ ạ
: ể
ứ ị ứ
ể
o ệ
n Đây là toán t
3 ngôi (g m có 3 toán h ng)
ử
n ứ
ứ ứ ể ị o Ví dụ n s1 = (1 > 2) ? 2912 : 1706;
n int s2 = 0;
n 1 < 2 ? s2 = 2912 : s2 = 1706; 11/7/13 ng 2 - Các ph n t c b n c a 39/59 ầ ử ơ ả ủ ươ Ch
ngôn ng Cữ o Toán t ử ặ t đ trái sang ph y
ẩ
n Các bi u th c đ t cách nhau b ng d u
ấ ,
ứ
ể
n Các bi u th c con
ừ
ứ
ể ằ
l n l
c tính t
ầ ượ ượ c là giá tr c a bi u th c n Bi u th c m i nh n đ ượ ị ủ ứ ể ph iả .
ể ậ . ứ
ớ
bên ph i cùng
ả o Ví dụ n x = (a++, b = b + 2);
n a++; b = b + 2; x = b; 11/7/13 ng 2 - Các ph n t c b n c a 40/59 ầ ử ơ ả ủ ươ Ch
ngôn ng Cữ Đ u tiên ộ ư 1 ngôi) ử Toán tử
() [] ->
! ++ -- - ~ sizeof() (toán t
* / %
+ -
<< >>
< <= > >=
== !=
&
|
^
&&
||
?:
= += -= *= /= %= &= ^= |= <<= >>=
11/7/13 ng 2 - Các ph n t c b n c a 41/59 ầ ử ơ ả ủ ươ Ch
ngôn ng Cữ o Quy t c th c hi n ệ c. ể ự
n Th c hi n bi u th c trong ( ) sâu nh t tr
ấ ướ
ứ
ệ
n Th c hi n theo th t
.
u tiên các toán t
ử
ứ ự ư
ệ
=> T ch đ ng thêm ( )
ủ ộ ắ
ự
ự
ự
o Ví dụ n n = 2 + 3 * 5;
=> n = 2 + (3 * 5); n a > 1 && b < 2
=> (a > 1) && (b < 2) 11/7/13 ng 2 - Các ph n t c b n c a 42/59 ầ ử ơ ả ủ ươ Ch
ngôn ng Cữ o x l n h n hay b ng 3 ằ ơ ớ
x >= 3 o a và b cùng d uấ ((a>0) && (b>0)) || ((a<0) && (b<0)) (a>0 && b>0) || (a<0 && b<0) o p b ng q b ng r ằ ằ (p == q) && (q == r) ho cặ (p == q && q == r) o –5 < x < 5 (x > –5) && (x < 5) ho cặ (x > –5 && x < 5) 11/7/13 ng 2 - Các ph n t c b n c a 43/59 ầ ử ơ ả ủ ươ Ch
ngôn ng Cữ o Môi tr ng Turbo C++ ườ ng n m trong TC\BIN n Các file c b n:
ơ ả
o TC.EXE – th
ằ
ườ
o Các t p *.H (stdio.h, conio.h, math.h…) – th ệ ườ ng n m
ằ trong th m c TC\include
ở ộ ng trình: Ctrl + F9 ư ụ
n Kh i đ ng: TC\BIN\TC.EXE
n T o t p m i: File New
ớ
ạ ệ
n M t p: F3
ở ệ
n L u t p: F2
ư ệ
n Thoát: Alt + X
n D ch: Alt + F9
ị
n Ch y ch
ạ ươ 11/7/13 ng 2 - Các ph n t c b n c a 44/59 ầ ử ơ ả ủ ươ Ch
ngôn ng Cữ ườ n T o m i: o Môi tr
ạ ng Dev-C++
ớ o File New Project Console Application
o File New Source File ng trình: Ctrl + F10
ươ
ạ n M file/project: File -> Open Project or file
ở
n D ch: Ctrl + F9
ị
n Ch y ch
ạ
n D ch và ch y: F9
ị
n G r i:
ỡ ố
o G r i: F8
ỡ ố
o Ch y t con tr : Shift + F4 ạ ừ ỏ 11/7/13 ng 2 - Các ph n t c b n c a 45/59 ầ ử ơ ả ủ ươ Ch
ngôn ng Cữ n #include o Cú pháp n printf(“dãy mã quy cách”, dãy các bi u th c)
ứ
n dãy mã quy cách là dãy các đ nh d ng đ
ượ ể
ạ ị c đ t
ặ ườ “ ”.
ặ
ng (literal text)
ả
đi u khi n (escape sequence)
ể
ự ề trong c p nháy kép
o Văn b n th
o Ký t
o Đ c t (conversion specifier) ặ ả 11/7/13 ng 2 - Các ph n t c b n c a 46/59 ầ ử ơ ả ủ ươ Ch
ngôn ng Cữ o Văn b n th
ườ
ấ ng (literal text)
n Đ c xu t y h t nh lúc gõ trong chu i đ nh
ư ỗ ị ệ ả
ượ
d ng.ạ ỗ Hello World o Ví dụ
n Xu t chu i
ấ
printf(“Hello ”); printf(“World”); printf(“Hello World”); ỗ a + b n Xu t chu i
ấ
printf(“a + b”); 11/7/13 ng 2 - Các ph n t c b n c a 47/59 ầ ử ơ ả ủ ươ Ch
ngôn ng Cữ o Ký t ể n G m d u \ và m t ký t nh trong b ng sau: đi u khi n (escape sequence)
ự ề
ả
ấ
ồ ự ư ộ Ký t đi u khi n Ý nghĩa ự ề ể c
ộ ướ ạ ấ o Ví dụ \a
\b
\n
\t
\\
\?
\” Ti ng chuông
ế
Lùi l
i m t b
Xu ng dòng
ố
D u tab
In d u \ấ
In d u ?ấ
In d u “ấ n printf(“\t”); printf(“\n”);
n printf(“\t\n”);
ươ 11/7/13 ng 2 - Các ph n t c b n c a 48/59 ầ ử ơ ả ủ Ch
ngôn ng Cữ ấ o Đ c t
ặ ả
ồ .
ự ủ ể ị ị
ố ố ấ
ố ế ố
ấ
ị
cách nhau d u ph y. t kê theo th t đ (conversion specifier)
n G m d u % và m t ký t
ộ
n Xác đ nh ki u c a bi n/giá tr mu n xu t.
ế
n Các đ i s chính là các bi n/giá tr mu n xu t,
ứ ự c li
ượ ệ ấ ẩ Ý nghĩa Đ c tặ ả ấ char
char, int, short, long
float, double
char[], char*
unsigned int/short/long ấ ạ
ạ %c
%d, %ld
%f, %lf
%s
%u %lu
%x, %X
%o
%e, %E Ký tự
S nguyên có d u
ố
S th c
ố ự
Chu i ký t
ự
ỗ
S nguyên không d u
S nguyên d ng Hexa
S nguyên d ng Octa
S th c d ng mũ
ạ ố
ố
ố
ố ự 11/7/13 ng 2 - Các ph n t c b n c a 49/59 ầ ử ơ ả ủ ươ Ch
ngôn ng Cữ o Ví dụ n int a = 10, b = 20;
n printf(“%d”, a);
n printf(“%d”, b);
n printf(“%d %d”, a, b); Xu t ra 10
ấ
Xu t ra 20
ấ
Xu t ra 10 20 ấ Xu t ra 15.060000 n float x = 15.06;
n printf(“%f”, x);
n printf(“%f”, 1.0/3); ấ
Xu t ra 0.333333 ấ 11/7/13 ng 2 - Các ph n t c b n c a 50/59 ầ ử ơ ả ủ ươ Ch
ngôn ng Cữ o Cú pháp nd n Đ nh d ng xu t s nguyên: %
n Đ nh d ng xu t s th c: %
n.kf ấ ố
ấ ố ự ạ
ạ ị
ị 1 7 0 6 6 . 8 5 1 7 1 7 6 . 8 5 11/7/13 ng 2 - Các ph n t c b n c a 51/59 ầ ử ơ ả ủ ươ Ch
ngôn ng Cữ o Ph i h p các thành ph n ố ợ ầ . ố
ị ủ ị ủ n int a = 1, b = 2;
n Xu t ấ 1 cong 2 bang 3 và xu ng dòng
// Xu t giá tr c a bi n a
ế
// Xu t chu i “ cong ”
ỗ
// Xu t giá tr c a bi n b
ế
// Xu t chu i “ bang ”
ỗ
ị ủ o printf(“%d”, a);
o printf(“ cong ”);
o printf(“%d”, b);
o printf(“ bang ”);
o printf(“%d”, a + b);
o printf(“\n”); ấ
ấ
ấ
ấ
// Xu t giá tr c a a + b
// Xu t đi u khi n xu ng dòng \n
ể
ấ ấ
ề ố printf(“%d cong %d bang %d\n”, a, b, a+b); 11/7/13 ng 2 - Các ph n t c b n c a 52/59 ầ ử ơ ả ủ ươ Ch
ngôn ng Cữ o Th vi n ư ệ n #include o Hàm scanf() ị ỉ n scanf(“dãy mã quy cách”, dãy các đ a ch các bi n);
n Danh sách các bi n: là tên các bi n s ch a giá tr nh p ế
ậ ứ ẽ ế ị ế
c
và có d u ấ & đ t tr
ặ ướ
Ý nghĩa Mã quy cách ự lu %c
%d
%u
%hd, %hu
%ld %lu
%f, %e
%lf ho c %ặ
%s Ký t
char
S nguyên int
ố
S nguyên unsigned int
ố
S nguyên short int/ unsigned int
ố
S nguyên long int, unsiged long
ố
S th c
ố ự
S th c double
ố ự
Xâu không ch a d u cách, dùng v i đ a ch xâu
ứ ớ ị ấ ỉ 11/7/13 ng 2 - Các ph n t c b n c a 53/59 ầ ử ơ ả ủ ươ Ch
ngôn ng Cữ ấ ấ o Nguyên t c đ c
ắ
n S : máy
ố là các kí tự là các d u ch m câu
g p ặ
ch sữ ố, đ c đ n khi
ọ ế ọ
nh y qua
ả
g p kí t
ặ ự
ự không là ch sữ ố.
ố ự ự ọ
ấ ầ
ạ ị ặ mà ta yêu c u
: đ c đúng s kí t
o Vai trò c a d u cách trong mã đ nh d ng
ả ạ ị các d u cách đ đ c s /kí t cho đ n khi
ế
kí t
n Xâu kí t
ủ
ấ
ấ n G p d u cách trong mã đ nh d ng, máy nh y qua
ố ể ọ ự o Khuôn đ cọ
ọ ộ ố ạ n Đ c m t s trong ph m vi m ch s gõ vào
ữ ố
n Ví d : ụ scanf(“%3d%3d”,&n,&p) o Xoá b nh đ m:
ộ ớ ệ fflush(stdin); 11/7/13 ng 2 - Các ph n t c b n c a 54/59 ầ ử ơ ả ủ ươ Ch
ngôn ng Cữ bàn phím ộ t
ự ừ bàn phím ngay khi gõ vào không đ i ợ ấ ị , không qua b nh đ m ừ ộ .
ớ ệ ng trình bàn phím
ươ xem k t quế ả n Gi ng getch(), nh ng hi n th lên màn hình o Hàm getchar()
n Đ c m t kí t
ọ
o Hàm getch()
n Đ c kí t
t
ự ừ
ọ
Enter và không hi n th ra màn hình
n phím
ể
n Đ c th ng t
ẳ
ọ
n Dùng đ ể d ng ch
ừ
o Hàm getche()
ố ị kí t ự ư ể cho đ n khi gõ Enter o Hàm gets()
ọ n Đ c m t xâu kí t
ộ ự ế 11/7/13 ng 2 - Các ph n t c b n c a 55/59 ầ ử ơ ả ủ ươ Ch
ngôn ng Cữ ư ệ o Th vi n: ỏ
ư
o Hàm clrscr() n Xoá màn hình, đ a con tr v góc trên trái ỏ ề ư n m bên ph i con tr màn hình ự ằ ỏ o Hàm đ t màu ch /màu n n o Hàm clreol()
n Xoá các kí t
ặ ả
ề ữ ữ ặ n textcolor(int color): đ t màu cho ch
n textbackground(int color): đ t màu n n ề ặ
o Hàm window(x1,y1,x2,y2): n T o ra m t c a s góc trái trên là (x1,y1) và góc ph i d ộ ử i
ả ướ ạ ổ là (x2,y2) 11/7/13 ng 2 - Các ph n t c b n c a 56/59 ầ ử ơ ả ủ ươ Ch
ngôn ng Cữ 1. Trình bày các ki u d li u c s trong C và ơ ở ữ ệ ể cho ví d .ụ 2. Trình bày khái ni m v bi n và cách s d ng ề ế ử ụ ệ l nh gán.
ệ
3. Phân bi ng và h ng ký hi u. ệ ằ T i sao nên s d ng c p ngo c đ n. ạ ơ t h ng th
ườ
ệ ằ
Cho ví d minh h a.
ọ
ụ
4. Trình bày khái ni m v bi u th c.
ệ
ử ụ
ị ứ
ặ
9. Trình bày cách đ nh d ng xu t.
ấ ề ể
ặ
ạ 11/7/13 ng 2 - Các ph n t c b n c a 57/59 ầ ử ơ ả ủ ươ Ch
ngôn ng Cữ ườ i và tính tu i
ổ ộ ủ 6. Nh p năm sinh c a m t ng
i đó. 7. Nh p 2 s a và b. Tính t ng, hi u, tính và ệ ổ ng c a hai s đó. th ườ
ố
ủ
8. Nh p tên s n ph m, s l
ả ậ
c a ng
ủ
ậ
ươ
ậ ố
ẩ t: ế ế ng và đ n giá.
ơ
Tính ti n và thu giá tr gia tăng ph i tr , bi
ả ả
a. ố ượ
ị
ng * đ n giá
ơ b. ề
ti n = s l
ề
thu giá tr gia tăng = 10% ti n ố ượ
ị ề ế 11/7/13 ng 2 - Các ph n t c b n c a 58/59 ầ ử ơ ả ủ ươ Ch
ngôn ng Cữ ậ ể ủ ể 9. Nh p đi m thi và h s 3 môn Toán, Lý, Hóa
ệ ố
c a m t sinh viên. Tính đi m trung bình c a
ộ
ủ
sinh viên đó. 10. Nh p bán kính c a đ ng tròn. Tính chu vi và ủ ườ ạ c? bi ậ
di n tích c a hình tròn đó.
ủ
ệ
ồ
ố
ậ
t s xe c a b n đ
ủ
ế ố 11. Nh p vào s xe (g m 4 ch s ) c a b n. Cho
ượ ữ ố ủ
c m y n
ướ
ấ ạ 11/7/13 ng 2 - Các ph n t c b n c a 59/59 ầ ử ơ ả ủ ươ Ch
ngôn ng CữCác toán t
trên bit
ử
>>
a>>n = a/2n
<<
a<
Các toán t
trên bit
ử
void main()
{
int a = 5; // 0000 0000 0000 0101
int b = 6; // 0000 0000 0000 0110
int z1, z2, z3, z4, z5, z6;
z1 = a & b; // 0000 0000 0000 0100
z2 = a | b; // 0000 0000 0000 0111
z3 = a ^ b; // 0000 0000 0000 0011
z4 = ~a; // 1111 1111 1111 1010
z5 = a >> 2;// 0000 0000 0000 0001
z6 = a << 2;// 0000 0000 0001 0100
}
Các toán t
quan h
ử
ệ
Các toán t
logic
ử
Toán t
đi u ki n
ử ề
ệ
Toán t
ử
ph y
ẩ
Đ u tiên c a các toán t
ủ
ộ ư
ử
Đ u tiên c a các toán t
ủ
ộ ư
ử
Vi
t bi u th c cho các m nh đ
ế
ứ
ệ
ể
ề
6. S d ng môi tr
ng làm vi c C
ử ụ
ườ
ệ
S d ng môi tr
ử ụ
ườ
ng làm vi c C (tt)
ệ
7. Vào – Ra d li u trong C
ữ ệ
Xu t d li u
ấ ữ ệ
o Th vi n
ư ệ
Mã quy cách
Mã quy cách (tt)
Mã quy cách (tt)
Mã quy cách (tt)
Đ nh d ng xu t
ấ
ạ
ị
int a = 1706;
float x = 176.85;
printf(“%10d”, a);printf(“\n”);
printf(“%10.2f”, x);printf(“\n”);
printf(“%.2f”, x);printf(“\n”);
Mã quy cách (tt)
Nh p d li u
ữ ệ
ậ
Nh p d li u (tt)
ữ ệ
ậ
Nh p d li u (tt)
ữ ệ
ậ
Trình bày màn hình
Bài t p lý thuy t
ế
ậ
Bài t p th c hành
ự
ậ
Bài t p th c hành
ự
ậ