Chương 2 Cấu trúc lệnh trong C Cấu trúc tuần tự Khái niệm khối lệnh: { //các câu lệnh trong khối lệnh } • Khối lệnh tương đương với 1 câu lệnh. • Các câu lệnh trong cùng khối lệnh thì tương đương với nhau (cùng được hoặc cùng không được thực hiện). Cấu trúc tuần tự (tt) Ví dụ: if(a>b) { max=a; min=b; } Khác với if(a>b)max=a; min=b; Cấu trúc tuần tự (tt) Lưu ý về trật tự các câu lệnh trong khối: t=i=0; while(i<10) { ++i; t+=i; } t=i=0; while(i<10) { t+=i; ++i; } Cấu trúc lựa chọn Câu lệnh điều kiện: if(<bi ể u th ứ c>)<l ệ nh > if(<bi ể u th ứ c>)<l ệ nh1 > else <l ệ nh2> <biểu thức> <lệnh> !=0 ==0 <biểu thức> <lệnh1> !=0 ==0 <lệnh2> Cấu trúc lựa chọn (tt) Ví dụ 1: Chương trình tìm max(a,b,c) = ? #include <stdio.h> #include <conio.h> void main() { int a,b,c,max; printf("\nnhap a, b, c: "); scanf("%d%d%d",&a,&b,&c); max=a; if(max<b)max=b; if(max<c)max=c; printf("\nmax = %d",max); } Cấu trúc lựa chọn (tt) Ví dụ 2: Tính tiền thuê phòng khách sạn biết số ngày thuê n và loại phòng được nhập từ bàn phím. Theo bảng đơn giá: Loại phòng giá A 250 B 200 C 150 Nếu số ngày n > 7 thì giảm 5% giá phòng. Cấu trúc lựa chọn (tt) #include <stdio.h> #include <conio.h> #include <ctype.h> void main() { int n; char lp; float t,gia; printf("\nnhap loai phong = "); lp=toupper(getchar()); printf("\nso ngay n = "); scanf("%d",&n); if(lp=='A')gia=250; else if(lp=='B')gia=200; else gia=150; if(n>7)gia=gia*0.95; t=n*gia; printf("\nso tien phai tra = %0.2f",t); } Cấu trúc lựa chọn (tt) Câu lệnh rẽ nhánh: switch(<biểu thức>) { case l1: <kl1> case l2: <kl2> case lj: <klj> [default: <klj+1>] } Cấu trúc lựa chọn (tt) Bt=l1 kl1 Bt=lj klj default? klj+1 Sơ đồ thực hiện câu lệnh switch Cấu trúc lựa chọn (tt) Ví dụ 3: đoạn mã đọc số từ 1 đến 9 switch(thang) { case 1:case 3:case 5:case 7:case 8:case 10:case 12: songay=31;break; case 4:case 6:case 9:case 11: songay=30;break; case 2: switch(nam%4) { case 0: songay=29;break; default: songay=28; } } printf("\nso ngay = %d",songay); Cấu trúc lặp Câu lệnh for: bt1 bt2 <kl> bt3 !=0 ==0 for(<bt1>;<bt2>;<bt3>)<kl> Cấu trúc lặp (tt) Câu lệnh while bt <kl> !=0 ==0 while(<bt>)<kl> Cấu trúc lặp (tt) Câu lệnh do: do<kl>while(<bt>); bt <kl> !=0 ==0 Cấu trúc lặp (tt) Ví dụ 4: Chương trình kiểm tra số n có nguyên tố hay không. /* version 1 author: vulong */ #include <stdio.h> #include <conio.h> void main() { int i,f,n; printf("\nnhap n = "); scanf("%d",&n); f=1; for(i=2;i<=n/2;++i) if(n%i==0) { f=0; break; } if(f==1) printf("%d la so nguyen to",n); else printf("%d khong la so nguyen to",n); } Cấu trúc lặp (tt) /* version 2 author: vulong */ #include <stdio.h> #include <conio.h> void main() { int i,n; printf("\nnhap n = "); scanf("%d",&n); i=2; while(n%i!=0)++i; if(i==n) printf("%d la so nguyen to",n); else printf("%d khong la so nguyen to",n); } Cấu trúc lặp (tt) Ví dụ 5: Đếm số các số lớn nhất trong n số nhập từ bàn phím. #include <stdio.h> #include <conio.h> void main() { int i, n, so, max, dem; printf("\nnhap n = "); scanf("%d",&n); dem=0; for(i=1;i<=n;++i) { printf("\nso thu %d = ",i); scanf("%d",&so); if(i==1) { max=so; ++dem; } else if(so==max)++dem; else if(so>max) { max=so; dem=1; } } printf("\nso cac so max = %d",dem); } Cấu trúc lặp (tt) Ví dụ 6: Tìm số n nhỏ nhất để 1 + 2 + + n > k #include <stdio.h> #include <conio.h> void main() { int i,k,s; printf("\nnhap k: "); scanf("%d",&k); s=i=0; while(s<=k) { ++i; s=s+i; } printf("\nso n nho nhat = %d",i); } Hỏi đáp . Chương 2 Cấu trúc lệnh trong C Cấu trúc tuần tự Khái niệm khối lệnh: { //các câu lệnh trong khối lệnh } • Khối lệnh tương đương với 1 câu lệnh. • Các câu lệnh trong cùng khối lệnh thì tương. songay=28; } } printf(" so ngay = %d",songay); Cấu trúc lặp Câu lệnh for: bt1 bt2 <kl> bt3 !=0 ==0 for(<bt1>;<bt2>;<bt3>)<kl> Cấu trúc lặp (tt) Câu lệnh while bt <kl> !=0 ==0 while(<bt>)<kl> Cấu. while bt <kl> !=0 ==0 while(<bt>)<kl> Cấu trúc lặp (tt) Câu lệnh do: do<kl>while(<bt>); bt <kl> !=0 ==0 Cấu trúc lặp (tt) Ví dụ 4: Chương trình kiểm tra số n có nguyên tố hay