1 / 39

TIN HỌC ĐẠI CƯƠNG Bài 3. CÁC CẤU TRÚC LẬP TRÌNH TRONG C.

TIN HỌC ĐẠI CƯƠNG Bài 3. CÁC CẤU TRÚC LẬP TRÌNH TRONG C. Nguyễn Thành Kiên Bộ môn Kỹ thuật máy tính Khoa Công nghệ thông tin – ĐHBK HN. 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 if, if … else

gabby
Download Presentation

TIN HỌC ĐẠI CƯƠNG Bài 3. CÁC CẤU TRÚC LẬP TRÌNH TRONG C.

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. TIN HỌC ĐẠI CƯƠNGBài 3. CÁC CẤU TRÚC LẬP TRÌNH TRONG C. Nguyễn Thành Kiên Bộ môn Kỹ thuật máy tính Khoa Công nghệ thông tin – ĐHBK HN

  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 if, if … else • 3.3. Cấu trúc lựa chọn switch • 3.4. Cấu trúc lặp • 3.4.1. Vòng lặp for • 3.4.2. Vòng lặp while • 3.4.3. Vòng lặp do{...}while • 3.5. Các lệnh thay đổi cấu trúc lập trình • 3.5.1. continue • 3.5.2. break

  3. 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 if, if … else • 3.3. Cấu trúc lựa chọn switch • 3.4. Cấu trúc lặp • 3.4.1. Vòng lặp for • 3.4.2. Vòng lặp while • 3.4.3. Vòng lặp do{...}while • 3.5. Các lệnh thay đổi cấu trúc lập trình • 3.5.1. continue • 3.5.2. break

  4. 3.1. Cấu trúc lệnh khối • Mộ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 { } { lệnh_1; lệnh_2; …. lệnh_n; } Ví dụ: #include <stdio.h> #include <conio.h> Void main () { //day la dau khoi char ten[50]; printf("Xin cho bietten:”); scanf("%s",ten); getch(); } //day la cuoi khoi

  5. 3.1. Cấu trúc lệnh khối • Trong lệnh khối có thể chứa lệnh khối khác, ta gọi đó là các lệnh khối lồng nhau. • Sự lồng nhau của các lệnh khối là không hạn chế. • Các lệnh trong lệnh khối được thực hiện tuần tự theo trật tự xuất hiện.

  6. 3.1. Cấu trúc lệnh khối { lệnh; { lệnh; ... } … }

  7. 3.1. Cấu trúc lệnh khối • C cho phép khai báo biến trong lệnh khối. Biến khai báo trong lệnh khối chỉ có tác dụng trong khối. • Ví dụ: #include <conio.h> #include <stdio.h> void main() // Noi dung cua ham main() cung la mot khoi lenh { int c; // khai bao bien c = 10; printf(“ Gia tri cua c = %d day la c ngoai”,c); // bat dau mot khoi lenh khac { int d; d = 10; printf(“\n Gia tri cua d = %d day la c trong”,d); printf(“\n Tang gia tri cua d them 10 don vi”); d = d + 10; printf(“\n Gia tri cua d = %d day la c trong”,d); } printf(“\n Gia tri cua d = %d day la c ngoai”,d); getch(); }

  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 if, if … else • 3.3. Cấu trúc lựa chọn switch • 3.4. Cấu trúc lặp • 3.4.1. Vòng lặp for • 3.4.2. Vòng lặp while • 3.4.3. Vòng lặp do{...}while • 3.5. Các lệnh thay đổi cấu trúc lập trình • 3.5.1. continue • 3.5.2. break

  9. 3.2. Cấu trúc if, if … else • Lệnh if hay còn gọi là lệnh rẽ nhánh, nhằm điều khiển thực hiện công việc nào đó hay không tùy theo giá trị đúng/sai của biểu thức điều kiện. • Cấu trúc lệnh rẽ nhánh có hai dạng: • Dạng không đầy đủ: if • Dạng đầy đủ: if…else

  10. Lệnh rẽ nhánhDạng không đầy đủ • Cú pháp: if (bieu_thuc_dieu_kien) lenh_1; Lenh_ke_tiep; #include <stdio.h> #include <conio.h> void main () { float a; printf("Nhap a = "); scanf("%f",&a); if (a !=0 ) printf("Nghich dao cua %f la %f",a,1/a); getch(); }

  11. Cú pháp: if (bieu_thuc_dieu_kien) lenh_1; else lenh_2; Lenh_ke_tiep; Lệnh rẽ nhánhDạng đầy đủ int a,b,max; printf(“Doc vao hai so nguyen:”); scanf(“%d %d”,&a,&b); if (a>b) max=a; else max=b;

  12. 3.2. Cấu trúc if, if … else Ví dụ: Viết CT yêu cầu người dùng nhập vào một số nguyên dương là tháng trong năm và in ra số ngày của tháng đó. • Tháng có 31 ngày: 1, 3, 5, 7, 8, 10, 12 • Tháng có 30 ngày: 4, 6, 9, 10 • Tháng có 28 hoặc 29 ngày : 2

  13. CT tính số ngày của tháng #include <stdio.h> #include<conio.h> void main () { int thg; printf("Nhap vao thang trong nam:"); scanf("%d",&thg); if (thg==1||thg==3||thg==5||thg==7||thg==8||thg==10||thg==12) printf("\n Thang %d co 31 ngay ",thg); else if (thg==4||thg==6||thg==9||thg==11) printf("\n Thang %d co 30 ngay",thg); else if (thg==2) printf("\n Thang %d co 28 hoac 29 ngay",thg); else printf("Khong co thang %d",thg); printf("\n Thuc hien xong lenh if"); getch(); }

  14. 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 if, if … else • 3.3. Cấu trúc lựa chọn switch • 3.4. Cấu trúc lặp • 3.4.1. Vòng lặp for • 3.4.2. Vòng lặp while • 3.4.3. Vòng lặp do{...}while • 3.5. Các lệnh thay đổi cấu trúc lập trình • 3.5.1. continue • 3.5.2. break

  15. 3.3. Cấu trúc lựa chọn switch • Cấu trúc lựa chọn switch dùng để rẽ nhánh khi có nhiều trường hợp có thể xảy ra. • Cú pháp cấu trúc switch switch (bieu_thuc) { case gt_1: lenh_1; [break]; case gt_2: lenh_2; [break]; … case gt_n: lenh_n; [break]; [default: lenh_n+1; [break];] }

  16. Hoạt động của lệnh switch Chú ý: Giá trị của biểu thức kiểm tra phải là số nguyên (char, int, long).

  17. 3.3. Cấu trúc lựa chọn switch Ví dụ: Viết CT yêu cầu người dùng nhập vào một số nguyên không âm và in ra thứ trong tuần tương ứng. • 0 => Chủ nhật • 1 => Thứ hai • … • 6 => Thứ bảy

  18. 3.3. Cấu trúc lựa chọn switch #include <conio.h> #include <stdio.h> void main() { int a; // khai bao bien printf(“\n Nhap mot gia tri so nguyen khong am: “); scanf(“%d”,&a); if(a<0) printf("\n so vua nhap la so am"); else { printf(“\n Thu trong tuan tuong ung voi so do la: “); 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(); }

  19. Cho biết chương trình sau làm gì? #include <stdio.h> #include<conio.h> 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; 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(); }

  20. 3.3. Cấu trúc lựa chọn switch • Chú ý: • Dựa trên tính chất tự động chuyển xuống các câu lệnh sau khi không có lệnh break, ta có thể viết chung mã lệnh cho các trường hợp khác nhau nhưng cùng được xử lý giống nhau.

  21. 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 if, if … else • 3.3. Cấu trúc lựa chọn switch • 3.4. Cấu trúc lặp • 3.4.1. Vòng lặp for • 3.4.2. Vòng lặp while • 3.4.3. Vòng lặp do{...}while • 3.5. Các lệnh thay đổi cấu trúc lập trình • 3.5.1. continue • 3.5.2. break

  22. 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 if, if … else • 3.3. Cấu trúc lựa chọn switch • 3.4. Cấu trúc lặp • 3.4.1. Vòng lặp for • 3.4.2. Vòng lặp while • 3.4.3. Vòng lặp do{...}while • 3.5. Các lệnh thay đổi cấu trúc lập trình • 3.5.1. continue • 3.5.2. break

  23. 3.4.1. Vòng lặp for • Câu lệnh for 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([bt1];[bt2];[bt3]) lenh;

  24. 3.4.1. Vòng lặp for Cho biết chương trình sau làm gì? #include <stdio.h> #include <conio.h> void main() { int i; for(i = 1;i<100;i++) { if(i%2 == 1) printf(“%5d”,i); if((i+1)%20 ==0) printf(“\n”); } getch(); }

  25. 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 if, if … else • 3.3. Cấu trúc lựa chọn switch • 3.4. Cấu trúc lặp • 3.4.1. Vòng lặp for • 3.4.2. Vòng lặp while • 3.4.3. Vòng lặp do{...}while • 3.5. Các lệnh thay đổi cấu trúc lập trình • 3.5.1. continue • 3.5.2. break

  26. 3.4.2. Vòng lặp while • Vòng lặp while dùng để lặp lại một công việc với số lần lặp không biết trước. • Cú pháp: while (bieu_thuc) lenh; int a=-1; while (a<=0) { printf(“\nDoc vao so nguyen duong:”); scanf(“%d”,&a); }

  27. 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 if, if … else • 3.3. Cấu trúc lựa chọn switch • 3.4. Cấu trúc lặp • 3.4.1. Vòng lặp for • 3.4.2. Vòng lặp while • 3.4.3. Vòng lặp do{...}while • 3.5. Các lệnh thay đổi cấu trúc lập trình • 3.5.1. continue • 3.5.2. break

  28. 3.4.3. Vòng lặp do{...}while • Vòng lặp do-while dùng để lặp lại một công việc với số lần lặp không biết trước. • Cú pháp: do { lenh; }while (bieu_thuc); Khối lenh luôn được thực hiện ít nhất 1 lần

  29. 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 if, if … else • 3.3. Cấu trúc lựa chọn switch • 3.4. Cấu trúc lặp • 3.4.1. Vòng lặp for • 3.4.2. Vòng lặp while • 3.4.3. Vòng lặp do{...}while • 3.5. Các lệnh thay đổi cấu trúc lập trình • 3.5.1. continue • 3.5.2. break

  30. 3.5. Các lệnh thay đổi cấu trúc lập trình • Các vòng lặp while, do{...}while, hay for sẽ kết thúc quá trình lặp khi biểu thức điều kiện của vòng lặp không còn được thỏa mãn. • Tuy nhiên trong lập trình đôi khi ta cũng cần 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? • Ngôn ngữ C hỗ trợ thông qua 2 câu lệnh là continue và break

  31. 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 if, if … else • 3.3. Cấu trúc lựa chọn switch • 3.4. Cấu trúc lặp • 3.4.1. Vòng lặp for • 3.4.2. Vòng lặp while • 3.4.3. Vòng lặp do{...}while • 3.5. Các lệnh thay đổi cấu trúc lập trình • 3.5.1. continue • 3.5.2. break

  32. 3.5.1. Lệnh continue • Khi gặp lệnh continue trong thân vòng lặp, chương trình sẽ: • Chuyển sang thực hiện một vòng lặp mới và 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.

  33. 3.5.1. Lệnh continue • Ví dụ sau đây sẽ in ra màn hình các số tự nhiên lẻ và nhỏ hơn 100 #include <stdio.h> #include <conio.h> void main() { int i; for(i = 1;i<100;i++) { if(i%2 == 0) continue; printf(“%5d”,i); if((i+1)%20 ==0) printf(“\n”); } getch(); }

  34. 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 if, if … else • 3.3. Cấu trúc lựa chọn switch • 3.4. Cấu trúc lặp • 3.4.1. Vòng lặp for • 3.4.2. Vòng lặp while • 3.4.3. Vòng lặp do{...}while • 3.5. Các lệnh thay đổi cấu trúc lập trình • 3.5.1. continue • 3.5.2. break

  35. 3.5.2. Lệnh break • Khi gặp lệnh break, chương trình sẽ: • Thoát khỏi vòng lặp (đối với trường hợp lệnh break nằm trong các cấu trúc lặp while, do{...}while, for) • Thoát khỏi cấu trúc switch (với trường hợp lệnh break nằm trong cấu trúc switch).

  36. Cho biết chương trình làm gì? #include <stdio.h> #include <conio.h> void main() { char ch; clrscr(); do { printf(“\n Nhap vao mot ki tu: “); fflush(stdin); scanf(“%c”,&ch); printf(“\n Ki tu vua nhap vao la %c”,ch); if((ch ==’T’)||(ch ==’t’)) break; }while(1); printf(“\n An phim bat ki de ket thuc chuong trinh...”); getch(); }

  37. 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 if, if … else • 3.3. Cấu trúc lựa chọn switch • 3.4. Cấu trúc lặp • 3.4.1. Vòng lặp for • 3.4.2. Vòng lặp while • 3.4.3. Vòng lặp do{...}while • 3.5. Các lệnh thay đổi cấu trúc lập trình • 3.5.1. continue • 3.5.2. break

  38. Bài tập Bài 1: Viết chương trình • Yêu cầu nhập vào 3 số thực • Kiểm tra xem 3 số thực trên có phải là độ dài 3 cạnh của một tam giác hay không? • Nếu đúng thì hãy tính diện tích của tam giác theo công thức dưới đây • trong đó:

  39. Bài tập • Bài 2: Viết chương trình cho người dùng tương tác với menu: 1. Tinh giai thua. 2. Hoc danh may. 3. Giai phuong trinh bac hai mot an. ESC. Thoat. Nhan phim tuong ung de chon: _

More Related