Cùng tìm hiểu kiểu dữ liệu và biểu thức trong C: Các kiểu dữ liệu chuẩn trong C; khai báo và sử dụng biến, hằng; các lệnh vào ra dữ liệu với các biến; các lệnh vào ra khác; các phép toán trong C; biểu thức trong C;...
Trang 1IT1110 Tin h c đ i c ọ ạ ươ ng
Ph n III L p trình ầ ậ
Nguy n Bá Ng c ễ ọ
Trang 3N i dung ch ộ ươ ng này
2.1. Các ki u d li u chu n trong C ể ữ ệ ẩ
Trang 4int S nguyên có ố d uấ 2 byte 32768 +32767
Trang 52.1. Các ki u d li u chu n trong C (ti p) ể ữ ệ ẩ ế
Trang 62.2. Khai báo và s d ng bi n, h ng ử ụ ế ằ
2.2.1. Khai báo và s d ng bi n ử ụ ế
2.2.2. Khai báo và s d ng h ng ử ụ ằ
Trang 72.2.1. Khai báo và s d ng bi n ử ụ ế
Cú pháp khai báo:
kiểu_dữ_liệu tên_biến;
Ho c:ặ
ki u_d _li u tên_bi n ể ữ ệ ế 1 , …, tên_bi n ế N ;
Ví d : Khai báo m t bi n x thu c ki u s nguyên 2 ụ ộ ế ộ ể ốbyte có d u (int), bi n y, z,t thu c ki u th c 4 byte ấ ế ộ ể ự(float) nh sau:ư
int x;
float y,z,t;
Trang 12 xâu_đ nh_d ng: ị ạ Là xâu dùng đ qui đ nh cách ể ị
th c hi n th d li u ra màn hình máy tính ứ ể ị ữ ệ
danh_sách_tham_s : ố Danh sách các bi n s ế ẽ
đ ượ c hi n th giá tr lên màn hình theo cách th c đ ể ị ị ứ ượ c qui đ nh trong xâu_đ nh_d ng ị ị ạ
Trang 13 Các kí t đi u khi n: Dùng đ t o các hi u ng ự ề ể ể ạ ệ ứ
hi n th đ c bi t nh xu ng dòng ('\n') hay sang ể ị ặ ệ ư ốtrang ('\f')…
Trang 15hi n th tham s ki u nguyên (bi n a) ể ị ố ể ế
%f dùng đ báo cho máy c n hi n th tham s ể ầ ể ị ố
tương ng (bi n x) theo đ nh d ng s th c ứ ế ị ạ ố ự
Trang 16 S l ố ượ ng tham s trong ố Danh_sách_tham_số b ng s ằ ố
l ượ ng nhóm các kí t đ nh d ng trong ự ị ạ xâu_định_dạng. Trong ví d trên là 2 ụ
M i nhóm kí t đ nh d ng ch dùng cho m t ki u d li u ỗ ự ị ạ ỉ ộ ể ữ ệ
Trang 17Nhóm ký t đ nh d ng ự ị ạ
M t s nhóm kí t đ nh d ng ph bi n: ộ ố ự ị ạ ổ ế
Trang 18Nhóm ký t đ nh d ng (ti p) ự ị ạ ế
Trang 19Nhóm ký t đ nh d ng (ti p) ự ị ạ ế
Trang 25Đ r ng hi n th (ti p) ộ ộ ể ị ế
Khi s ch c n đ hi n th n i dung d li u ố ỗ ầ ể ể ị ộ ữ ệ
l n h n trong đ nh d ng: ớ ơ ị ạ
T đ ng cung c p thêm ch m i đ hi n th ự ộ ấ ỗ ớ ể ể ị
ch không c t b t n i dung c a d li u ứ ắ ớ ộ ủ ữ ệ
Ví d : a=1000ụ
printf("So a la: %1d", a);
K t qu :ế ả
So a la: 1000
Trang 26N u mu n căn l trái khi hi n th d li u ta ế ố ề ể ị ữ ệ
ch c n thêm d u tr vào ngay sau d u % ỉ ầ ấ ừ ấ
Trang 27Căn l ph i, căn l trái (ti p) ề ả ề ế
Trang 28scanf("%d%f", &a, &b);
Đ a ch c a m t bi n đị ỉ ủ ộ ế ược vi t b ng cách đ t d u ế ằ ặ ấ
& trước tên bi n. ế
Ví d : ụ
Các bi n có tên là ế a, x, ten_bien
Thì đ a ch c a chúng l n l ị ỉ ủ ầ ượ ẽ t s là: &a, &x, &ten_bien
Trang 30Nhóm ký t đ nh d ng ự ị ạ
Trang 31Nhóm ký t đ nh d ng (ti p) ự ị ạ ế
Trang 32printf(“\n So nguyen: %d”,a);
printf(“\n So thuc : %.2f”,x);
Printf("\n Ki tu: %c",ch);
printf(“\n Xau ki tu: %s”,str);
}
Trang 34 Khi g p các d u phân cách nh tab, xu ng dòng hay ặ ấ ư ố
d u cách (space bar) thì scanf() s hi u là k t thúc ấ ẽ ể ế
nh p d li u cho m t s ậ ữ ệ ộ ố
Quy t c 2:ắ Khi đ c ký t :ọ ự
Hàm scanf() cho r ng m i kí t có trong b đ m ằ ọ ự ộ ệ
c a thi t b vào chu n đ u là h p l , k c các kí ủ ế ị ẩ ề ợ ệ ể ả
t tab, xu ng dòng hay d u cách.ự ố ấ
Trang 35M t s quy t c c n l u ý (ti p) ộ ố ắ ầ ư ế
Quy t c 3: ắ Khi đ c xâu kí t : ọ ự
Hàm scanf() n u g p các kí t d u tr ng, d u ế ặ ự ấ ắ ấtab hay d u xu ng dòng thì nó s hi u là k t ấ ố ẽ ể ếthúc nh p d li u cho m t xâu kí t ậ ữ ệ ộ ự
Trước khi nh p d li u kí t hay xâu kí t ta nên ậ ữ ệ ự ựdùng l nh ệ fflush(stdin) đ xóa b đ m.ể ộ ệ
Trang 362.4. Các l nh vào ra khác ệ
Hàm gets() :
Dùng đ nh p vào t bàn phím m t xâu kí t bao ể ậ ừ ộ ự
g m c d u cách, đi u mà hàm ồ ả ấ ề scanf() không làm được.
Trang 37Các l nh vào ra khác (ti p) ệ ế
Hàm puts() :
Hi n th ra màn hình n i dung xâu_kí_t và ể ị ộ ự sau đó đ a con tr xu ng dòng m i ư ỏ ố ớ .
Trang 39}
Trang 422.5.1. Phép toán s h c ố ọ
Trang 432.5.2. Các phép toán trên bit
Trang 44Các phép toán trên bit (ti p) ế
Trang 452.5.3. Các phép toán quan hệ
Trang 462.5.4. Phép toán logic
Trang 47 Cú pháp
tên_bi n = bi u_th c; ế ể ứ
L y gi ấ á tr c a ị ủ bi u_th c ể ứ gán cho tên_bi n ế
Trang 48Phép gán (ti p) ế
Bi u th c gể ứ án là bi u th c nên nể ứ ó cũng có giá tr ị
Giá tr c a bi u th c gị ủ ể ứ án b ng giằ á tr c a ị ủ
Trang 502.5.6. Th t u tiên các phép toán ứ ự ư
Trang 51Nguyên t c xác đ nh tr t t th c hi n các phép toán ắ ị ậ ự ự ệ
Bi u th c con trong ngo c để ứ ặ ược tính toán trước các phép toán khác
Phép toán m t ngôi đ ng bên trái toán h ng độ ứ ạ ược
k t h p v i toán h ng đi li n nó.ế ợ ớ ạ ề
N u toán h ng đ ng c nh hai toán t thì có 2 kh ế ạ ứ ạ ử ảnăng là
N u hai toán t có đ u tiên khác nhau thì toán t nào ế ử ộ ư ử
có đ u tiên cao h n s k t h p v i toán h ng ộ ư ơ ẽ ế ợ ớ ạ
N u hai toán t cùng đ u tiên thì d a vào tr t t k t ế ử ộ ư ự ậ ự ế
h p c a các toán t đ xác đ nh toán t đ ợ ủ ử ể ị ử ượ c k t h p ế ợ
v i toán h ng ớ ạ
Trang 522.6. Bi u th c trong C ể ứ
2.6.1. Các lo i bi u th c ạ ể ứ
2.6.2. S d ng bi u th c ử ụ ể ứ
Trang 532.6.1. Các lo i bi u th c ạ ể ứ
Bi u th c s h c: ể ứ ố ọ
Là bi u th c mể ứ à giá tr c a nị ủ ó là cái đ i lạ ượng
s h c (s nguyên, s th c).ố ọ ố ố ự
Các toán t lử à các phép toán s h c (c ng, tr , ố ọ ộ ừnhân, chia…), các toán h ng lạ à các đ i lạ ượng s ố
Trang 54Các lo i bi u th c (ti p) ạ ể ứ ế
Bi u th c logic: ể ứ
Là bi u th c mà giá tr c a nó là các giá tr logic, ể ứ ị ủ ị
t c là m t trong hai giá tr : Đúng (ứ ộ ị TRUE) ho c ặ
Sai (FALSE).
Giá tr nguyên kh ị á c 0: Đúng (TRUE),
Giá tr 0: Sai (FALSE). ị
Các phép toán logic g m cóồ
AND: VÀ logic, kí hi u là ệ &&
OR: HO C logic, kí hi u là Ặ ệ ||
NOT: PH Đ NH, kí hi u là Ủ Ị ệ !
Trang 55Các lo i bi u th c (ti p) ạ ể ứ ế
Bi u th c quan h : ể ứ ệ
Là nh ng bi u th c trong đữ ể ứ ó có s d ng cử ụ ác toán t quan h so sử ệ ánh nh l n h n, nh h n, ư ớ ơ ỏ ơ
b ng nhau, khằ ác nhau…
Ch cỉ ó th nh n giể ậ á tr lị à m t trong 2 giộ á tr ịĐúng (TRUE) ho c Sai (FALSE)ặ
Bi u th c quan h lể ứ ệ à m t trộ ường h p riêng ợ
c a bi u th c logic.ủ ể ứ
Trang 56Các lo i bi u th c (ti p) ạ ể ứ ế
Ví d v bi u th c quan h : ụ ề ể ứ ệ
Trang 57Các lo i bi u th c (ti p) ạ ể ứ ế
Ví d v bi u th c logic: ụ ề ể ứ
Trang 582.6.2. S d ng bi u th c ử ụ ể ứ
Làm v ph i c a l nh gán ế ả ủ ệ
Làm toán h ng trong các bi u th c khác ạ ể ứ
Làm tham s th c trong l i g i hàm ố ự ờ ọ
Làm ch s trong các c u trúc l p ỉ ố ấ ặ for,
while, do while.
Làm bi u th c ki m tra trong các c u trúc r ể ứ ể ấ ẽ
nhánh if, switch.
Trang 592.7. M t s toán t đ c tr ng ộ ố ử ặ ư
2.7.1. Các phép toán tăng gi m m t đ n v ả ộ ơ ị
2.7.2. Phép toán l y đ a ch bi n ấ ị ỉ ế
2.7.3. Phép toán chuy n đ i ki u b t bu c ể ổ ể ắ ộ
2.7.4. Bi u th c đi u ki n ể ứ ề ệ
Trang 60a ++; // tương đương với a = a + 1;
x ; // tương đương với x = x – 1;
Trang 61Các phép toán tăng gi m m t đ n v (ti p)ả ộ ơ ị ế
Ti n t : Thay đ i giề ố ổ á tr c a bi n trị ủ ế ước khi s d ngử ụ
H u t : Tậ ố ính toán giá tr c a bi u th c b ng giị ủ ể ứ ằ á tr ịban đ u c a bi n, sau đầ ủ ế ó m i thay đ i giớ ổ á tr c a ị ủ
Trang 622.7.2. Phép toán l y đ a ch bi n (&) ấ ị ỉ ế
& <tên bi n>; ế
Ví d : a là ki u d li u int (2 bytes) ụ ể ữ ệ
&a; // co gia tri la 3,300,159 hay 0032:5B3F
Trang 632.7.3. Phép toán chuy n đ i ki u b t bu cể ổ ể ắ ộ
(<ki u d li u m i>) <bi u th c>; ể ữ ệ ớ ể ứ
Ch ươ ng tr ì nh d ch s t đ ng chuy n đ i ị ẽ ự ộ ể ổ
ki u ể
S nguyên ố int long int
S ố long int float…
Ng ượ ạ c l i
S nguyên ố long int 50,000 không ph i lả à m t ộ
s nguyên ki u ố ể int vì ph m vi bi u di n c a ạ ể ễ ủ
ki u ể int là t (32,768 đ n 32,767).ừ ế
Ph i ả ép ki uể
Trang 65Phép toán chuy n đ i ki u b t bu c (ti p)ể ổ ể ắ ộ ế
Trang 662.7.4. Bi u th c đi u ki n ể ứ ề ệ
Cú pháp
Giá tr c a bi u th c đi u ki nị ủ ể ứ ề ệ
Giá tr c a bi u_th c_2 n u bi u_th c_1 có giá tr ị ủ ể ứ ế ể ứ ị khác 0 (t ươ ng ng v i giá tr logic ĐÚNG), ứ ớ ị
Ng ượ ạ c l i: Giá tr c a bi u_th c_3 n u bi u_th c_1 ị ủ ể ứ ế ể ứ
có giá tr b ng 0 (t ị ằ ươ ng ng v i giá tr logic SAI) ứ ớ ị
Ví d : ụ
float x, y, z; // khai báo biến
x = 3.8; y = 2.6; // gán giá trị cho các biến x, y
z = (x<y) ? x : y; // z sẽ có giá trị bằng giá trị
// nhỏ nhất trong 2 số x và y
Trang 67 Nh p ph n th c x và ph n o y c a m t s ậ ầ ự ầ ả ủ ộ ố
ph c, sau đó in ra theo m u: (x,y) v i các yêu ứ ẫ ớ
c u s in ra có 2 ch s sau d u ch m th p ầ ố ữ ố ấ ấ ậphân
Trang 68Bài t p ậ
Bài 3
Tính giá tr c a bi u th c sau và đ a ra giá tr ị ủ ể ứ ư ị
c a bi n a, b, c sau khi th c hi n phép toán: ủ ế ự ệ