Bài giảng Tin học đại cương - Phần 2: Lập trình bằng ngôn ngữ C - Bài 3: Các cấu trúc lập trình trong C - Nguyễn Thanh Hùng

3.1. Cấu trúc lệnh khối

3.2. Cấu trúc rẽ nhánh

3.2.1. Cấu trúc if, if else

3.2.2. Cấu trúc lựa chọn switch

3.3. Cấu trúc lặp

3.3.1. Vòng lặp for

3.3.2. Vòng lặp while

3.4. Các lệnh thay đổi cấu trúc lập trình

3.4.1. continue

3.4.2. break

 

ppt 43 trang yennguyen 2580
Bạn đang xem 20 trang mẫu của tài liệu "Bài giảng Tin học đại cương - Phần 2: Lập trình bằng ngôn ngữ C - Bài 3: Các cấu trúc lập trình trong C - Nguyễn Thanh Hùng", để tải tài liệu gốc về máy hãy click vào nút Download ở trên

Tóm tắt nội dung tài liệu: Bài giảng Tin học đại cương - Phần 2: Lập trình bằng ngôn ngữ C - Bài 3: Các cấu trúc lập trình trong C - Nguyễn Thanh Hùng

Bài giảng Tin học đại cương - Phần 2: Lập trình bằng ngôn ngữ C - Bài 3: Các cấu trúc lập trình trong C - Nguyễn Thanh Hùng
1 
TIN HỌC ĐẠI CƯƠNG  PHẦN 2: LẬP TRÌNH BẰNG NGÔN NGỮ C BÀI 3: CÁC CẤU TRÚC LẬP TRÌNH TRONG C 
VIỆN CÔNG NGHỆ THÔNG TIN 
SCHOOL OF INFORMATION COMMUNICATION TECHNOLOGY 
Ts. Nguyễn Thanh Hùng 
2 
BÀI 3	 CÁC CẤU TRÚC LẬP TRÌNH TRONG C 
3 .1. Cấu trúc lệnh khối 
3.2. Cấu trúc rẽ nhánh 
3.2.1. Cấu trúc if, if  else 
3.2.2. Cấu trúc lựa chọn switch 
3.3. Cấu trúc lặp 
3.3.1. Vòng lặp for 
3.3.2. Vòng lặp while 
3.4. Các lệnh thay đổi cấu trúc lập trình 
3.4.1. continue 
3.4.2. break 
3 
3 .1. Cấu trúc lệnh khối 
Thể hiện cấu trúc tuần tự 
Lệnh khối là dãy các câu lệnh được đặt trong cặp dấu ngoặc nhọn {} 
{ 
	lenh_1; 
	lenh_2; 
	. 
	lenh_n; 
} 
C cho phép khai báo biến trong lệnh khối, nhưng phần khai báo phải nằm trước câu lệnh. 
4 
3 .1. Cấu trúc lệnh khối (tiếp) 
Lệnh khối lồng nhau: 
Trong một lệnh khối có thể chứa lệnh khối khác 
Sự lồng nhau là không hạn chế 
{ 
	 lenh; 
	 { 
	 	lenh; 
	... 
	} 
} 
5 
3 .1. Cấu trúc lệnh khối (tiếp) 
Ví dụ: 
#include 
#include 
void main() 
//Noi dung cua ham main() cung la mot khoi lenh 
{ 
 // khai bao bien 
 int c; 
 c = 10; 
 printf( “ Gia tri cua c = %d day la c ngoai ” ,c); 
6 
3 .1. Cấu trúc lệnh khối (tiếp) 
Ví dụ (tiếp): 
 // bat dau mot khoi lenh khac 
 { 
	 int c; 
	 c = 10; 
	 printf( “ \n Gia tri cua c = %d day la c trong ” ,c); 
	 printf( “ \n Tang gia tri cua c them 10 don vi ” ); 
	 c = c + 10; 
	 printf( “ \n Gia tri cua c = %d day la c trong ” ,c); 
 } 
 printf( “ \n Gia tri cua c = %d day la c ngoai ” ,c); 
 getch(); 
}// ket thuc khoi lenh cua ham main() 
7 
3 .1. Cấu trúc lệnh khối (tiếp) 
Kết quả: 
 Gia tri cua c = 10 day la c ngoai 
 Gia tri cua c = 10 day la c trong 
 Tang gia tri cua c them 10 don vi 
 Gia tri cua c = 20 day la c trong 
 Gia tri cua c = 10 day la c ngoai 
8 
BÀI 3	 CÁC CẤU TRÚC LẬP TRÌNH TRONG C 
3 .1. Cấu trúc lệnh khối 
3.2. Cấu trúc rẽ nhánh 
3.2.1. Cấu trúc if, if  else 
3.2.2. Cấu trúc lựa chọn switch 
3.3. Cấu trúc lặp 
3.3.1. Vòng lặp for 
3.3.2. Vòng lặp while 
3.4. Các lệnh thay đổi cấu trúc lập trình 
3.4.1. continue 
3.4.2. break 
9 
3.2.1. Cấu trúc if, if  else 
Cú pháp cấu trúc if 
if (bieu_thuc_dieu_kien) 
	 lenh; 
Cú pháp cấu trúc if  else 
if (bieu_thuc_đieu_kien) 
	 lenh_1; 
else 
 	 lenh_2; 
10 
3.2.1. Cấu trúc if, if  else (tiếp) 
11 
3.2.1. Cấu trúc if, if  else (tiếp) 
Ví dụ: Bài toán tìm số lớn nhất trong 2 số thực a và b : 
#include 
#include 
void main() 
{ 
 // khai bao bien 
 float a, b; 
 float max; 
 printf( “ Nhap gia tri a va b: “ ); 
 scanf( “ %f %f ” ,&a,&b); 
12 
3.2.1. Cấu trúc if, if  else (tiếp) 
Ví dụ (tiếp): 
 if(a<b) 
	 max = b; 
 else 
	 max = a; 
 printf( “ \n So lon nhat trong 2 so 	 %.0f va %.0f la %.0f “ ,a,b,max); 
 getch(); 
}//ket thuc ham main() 
Kết quả: 
 Nhap vao 2 gia tri a va b: 23 247 
 So lon nhat trong hai so 23 va 247 la 247 
13 
3.2.2. Cấu trúc lựa chọn switch 
Cú pháp cấu trúc switch 
switch (bieu_thuc) 
{ 
	case gia_tri_1: lenh_1; [break]; 
	case gia_tri_2: lenh_2; [break]; 
 case gia_tri_n: 	lenh_n; [break]; 
 [default: lenh_n+1; [break];] 
} 
14 
3.2.2. Cấu trúc lựa chọn switch (tiếp) 
Giá trị của biểu thức kiểm tra (bieu_thuc) phải là số nguyên: 
Phải có kiểu dữ liệu là char , int , long . 
Tương ứng các giá trị sau case (gia_tri_1, gia_tri_2,) cũng phải là số nguyên. 
15 
3.2.2. Cấu trúc lựa chọn switch (tiếp) 
16 
3.2.2. Cấu trúc lựa chọn switch (tiếp) 
Ví dụ: Nhập vào số nguyên không âm, đưa ra ngày trong tuần tương ứng (theo số dư khi chia cho 7). 
#include 
#include 
void main() 
{ 
 int a; 
	printf( “ \nNhap mot gia tri so nguyen khong am: “ ); 
 scanf( “ %d ” ,&a); 
17 
3.2.2. Cấu trúc lựa chọn switch (tiếp) 
Ví dụ (tiếp): 
 switch(a % 7) 
 { 
	 case 0: printf( “ Chu nhat ” ); break; 
	 case 1: printf( “ Thu Hai ” ); break; 
	 case 2: printf( “ Thu Ba ” ); break; 
	 case 3: printf( “ Thu Tu ” ); break; 
	 case 4: printf( “ Thu Nam ” ); break; 
	 case 5: printf( “ Thu Sau ” ); break; 
	 case 6: printf( “ Thu Bay ” ); break; 
 } 
 getch(); 
} 
18 
3.2.2. Cấu trúc lựa chọn switch (tiếp) 
Ví dụ: 
Trong một năm các tháng có 30 ngày là 4, 6, 9, 11 còn các tháng có 31 ngày là 1, 3, 5, 7, 8, 10, 12. Riêng tháng hai có thể có 28 hoặc 29 ngày. 
Hãy viết chương trình nhập vào 1 tháng, sau đó đưa ra kết luận tháng đó có bao nhiêu ngày. 
19 
3.2.2. Cấu trúc lựa chọn switch (tiếp) 
#include 
#include 
void main () 
{ 
 int thang; clrscr(); 
 printf("\n Nhap vao thang trong nam "); 
 scanf("%d",&thang); 
 switch(thang) 
 { 
 case 1: 
 case 3: 
 case 5: 
 case 7: 
 case 8: 
 case 10: 
 case 12: 
 printf("\n Thang %d co 31 ngay ",thang); 
 break; 
20 
3.2.2. Cấu trúc lựa chọn switch (tiếp) 
 case 4: 
 case 6: 
 case 9: 
 case 11: 
 printf("\n Thang %d co 30 ngay ",thang); 
 break; 
 case 2: 
 printf ("\ Thang 2 co 28 hoac 29 ngay"); 
 break; 
 default : 
 printf("\n Khong co thang %d", thang); 
 break; 
 } 
 getch(); 
} 
21 
3.2.2. Cấu trúc lựa chọn switch (tiếp) 
#include 
#include 
int main () 
{ 
 int thang; clrscr(); 
 do { 
 printf("\n Nhap vao thang trong nam "); 
 scanf("%d",&thang); 
 } 
 while(thang 12); 
 switch(thang) 
 { 
 case 2: 
 printf ("\ Thang 2 co 28 hoac 29 ngay"); 
 break;	 
22 
3.2.2. Cấu trúc lựa chọn switch (tiếp) 
 case 4: 
 case 6: 
 case 9: 
 case 11: 
 printf("\n Thang %d co 30 ngay ",thang); 
 break; 
	 default : 
 printf("\n Thang %d co 31 ngay ", thang); 
 break; 
 } 
 getch(); 
 return 0; 
} 
23 
BÀI 3	 CÁC CẤU TRÚC LẬP TRÌNH TRONG C 
3 .1. Cấu trúc lệnh khối 
3.2. Cấu trúc rẽ nhánh 
3.2.1. Cấu trúc if, if  else 
3.2.2. Cấu trúc lựa chọn switch 
3.3. Cấu trúc lặp 
3.3.1. Vòng lặp for 
3.3.2. Vòng lặp while 
3.4. Các lệnh thay đổi cấu trúc lập trình 
3.4.1. continue 
3.4.2. break 
24 
3.3.1. Vòng lặp for 
Mục đích 
Dùng để thực hiện lặp đi lặp lại một công việc nào đó với số lần lặp xác định. 
Cú pháp: 
for(bieu_thuc_1;bieu_thuc_2;bieu_thuc_3) 
{ 
 day_cac_lenh; 
} 
Trong đó: 
bieu_thuc_1: Khởi tạo giá trị ban đầu cho vòng lặp 
bieu_thuc_2: Điều kiện tiếp tục vòng lặp 
bieu_thuc_3: Thực hiện bước tăng của vòng lặp 
Chú ý các biểu thức 1, 2, 3 có thể có hoặc không 
25 
3.3.1. Vòng lặp for 
26 
3.3.1. Vòng lặp for 
Ví dụ: Đưa ra màn hình các số nguyên lẻ nhỏ hơn 100 
#include 
#include 
void main() 
{ 
	int i; 
	for(i = 1;i<100;i++)//so vong lap la 99 
	{ 
	if(i%2 == 1) printf( “ %5d ” ,i); 
	if((i+1)%20 ==0) printf( “ \n ” ); 
	} 
	getch(); 
} 
27 
3.3.1. Vòng lặp for 
Ví dụ: Đưa ra màn hình các số nguyên lẻ nhỏ hơn 100 
#include 
#include 
void main() 
{ 
	int i; 
	for(i = 1;i<100;i+=2)//so vong lap la 50 
	{ 
	printf( “ %5d ” ,i); 
	if((i+1)%20 ==0) printf( “ \n ” ); 
	} 
	getch(); 
} 
28 
3.3.1. Vòng lặp for 
Kết quả thực hiện 
 1 3 5 7 9 11 13 15 17 19 
 21 23 25 27 29 31 33 35 37 39 
 41 43 45 47 49 51 53 55 57 59 
 61 63 65 67 69 71 73 75 77 79 
 81 83 85 87 89 91 93 95 97 99 
29 
3.3.2. Vòng lặp while 
Mục đích: 
Dùng để thực hiện lặp đi lặp lại một công việc nào đó với số lần lặp không xác định. 
Cú pháp: Có 2 dạng: 
while (bieu_thuc) 
	lenh; 
hoặc 
do 
	lenh; 
while (bieu_thuc); 
30 
3.3.2. Vòng lặp while 
31 
3.3.2. Vòng lặp while 
while và do{} while : 
while: 
Kiểm tra điều kiện vòng lặp (tức là giá trị của biểu thức) trước rồi mới thực hiện lệnh. 
Các lenh sau while có thể không được thực hiện lần nào. 
do{} while: 
Thực hiện lenh trước rồi mới kiểm tra dieu_kien của vòng lặp. 
Các lenh sau while được thực hiện ít nhất 1 lần dù bieu_thuc có giá trị như thế nào. 
32 
3.3.2. Vòng lặp while 
Ví dụ: Nhập vào điểm của một sinh viên, nếu điểm đó không [0, 10] thì thông báo cho người dùng nhập lại. 
Cách làm: 
Nếu dùng lệnh if Chỉ kiểm tra được 1 lần 
Không dùng for được vì chưa biết trước số lần lặp. 
 Sử dụng vòng lặp while 
33 
3.3.2. Vòng lặp while 
#include 
#include 
void main() 
{ 
 float diem; clrscr(); 
 printf( “ Chuong trinh nhap diem sinh vien\n"); 
 printf("Nhap diem (0<=diem<=10):"); 
 scanf("%f",&diem); 
 while (diem 10) 
 { 
 printf("\nBan nhap khong dung!\n"); 
 printf("Ban hay nhap lai (0<=diem<=10):"); 
 scanf("%f",&diem); 
 } 
 printf("\nDiem ban vua nhap la: %.2f “ , diem); 
 getch(); 
} 
34 
3.3.2. Vòng lặp while 
35 
3.3.2. Vòng lặp while 
#include 
void main() 
{ 
 float diem; clrscr(); 
 printf( “ Chuong trinh nhap diem sinh vien\n"); 
 do 
 { 
 	printf("Nhap diem (0<=diem<=10):"); 
	 scanf("%f",&diem); 
	 if (diem 10) 
	 printf("\nBan nhap khong dung!\n"); 
 } 
 while (diem 10); 
 printf("\nDiem ban vua nhap la: %.2f “ , diem); 
 getch(); 
} 
36 
BÀI 3	. CÁC CẤU TRÚC LẬP TRÌNH TRONG C 
3 .1. Cấu trúc lệnh khối 
3.2. Cấu trúc rẽ nhánh 
3.2.1. Cấu trúc if, if  else 
3.2.2. Cấu trúc lựa chọn switch 
3.3. Cấu trúc lặp 
3.3.1. Vòng lặp for 
3.3.2. Vòng lặp while 
3.4. Các lệnh thay đổi cấu trúc lập trình 
3.4.1. continue 
3.4.2. break 
37 
3.4. Các lệnh thay đổi cấu trúc lập trình 
Đối với các lệnh lặp: 
while , do{...} while , hoặc for 
Thay đổi việc thực hiện lệnh trong vòng lặp C cung cấp 2 lệnh: 
continue; 
break; 
38 
3.4. Các lệnh thay đổi cấu trúc lập trình 
continue 
Bỏ qua việc thực hiện các câu lệnh nằm sau lệnh continue trong thân vòng lặp. 
Chuyển sang thực hiện một vòng lặp mới 
break 
Thoát khỏi vòng lặp ngay cả khi biểu thức điều kiện của vòng lặp vẫn còn được thỏa mãn. 
39 
3.4. Các lệnh thay đổi cấu trúc lập trình 
Ví dụ: 
#include 
#include 
void main() 
{ 
	int i; 
	for(i = 1;i<=10;i++) 
	{ 
	if(i == 5) continue; 
 printf( “ %5d ” ,i); 
	if(i==7) break; 
	} 
	getch(); 
} 
40 
3.4. Các lệnh thay đổi cấu trúc lập trình 
Ví dụ: Nhập vào 1 số nguyên. Kết luận số đó là số nguyên tố hay là hợp số? 
41 
#include 
#include 
void main() 
{ 
 int N, i, OK = 1; 
 printf("\nNhap gia tri N : "); scanf("%d", &N); 
 if (n<2) printf("\nSo %d khong la so nguyen to va 	 khong la hop so.", N); 
 else 
 { 
 	 for (i=2; i<N; i++) 
 if (N%i == 0) 
 { 
 OK = 0; 
 break; 
 } 
 if (OK) 
 printf("\nSo %d la so nguyen to.", N); 
 else 
 printf("\nSo %d la hop so.", N); 
 } 
 getch(); 
} 
42 
#include 
#include 
void main() 
{ 
 int N, i, OK = 1; 
 printf("\nNhap gia tri N : "); scanf("%d", &N); 
 if (n<2) printf("\nSo %d khong la so nguyen to va 	 khong la hop so.", N); 
 else 
 { 
 	 for (i=2; i<=(int)sqrt(N); i++) 
 if (N%i == 0) 
 { 
 OK = 0; 
 break; 
 } 
 if (OK) 
 printf("\nSo %d la so nguyen to.", N); 
 else 
 printf("\nSo %d la hop so.", N); 
 } 
 getch(); 
} 
43 
Câu hỏi ? 

File đính kèm:

  • pptbai_giang_tin_hoc_dai_cuong_phan_2_lap_trinh_bang_ngon_ngu_c.ppt