Bài giảng Ngôn ngữ lập trình C - Chương 2: Các câu lệnh có cấu trúc - Ninh Thị Thanh Tâm
Bạn đang xem 20 trang mẫu của tài liệu "Bài giảng Ngôn ngữ lập trình C - Chương 2: Các câu lệnh có cấu trúc - Ninh Thị Thanh Tâm", để tải tài liệu gốc về máy bạn click vào nút DOWNLOAD ở trên
Tài liệu đính kèm:
- bai_giang_ngon_ngu_lap_trinh_c_chuong_2_cac_cau_lenh_co_cau.pdf
Nội dung text: Bài giảng Ngôn ngữ lập trình C - Chương 2: Các câu lệnh có cấu trúc - Ninh Thị Thanh Tâm
- NGÔN NGỮ LẬP TRÌNH C Các câu lệnh có cấu trúc Ninh Thị Thanh Tâm Khoa CNTT – HV Quản lý Giáo dục
- Mục đích Sử dụng thành thạo hằng, biến Làm quen với cách sử dụng các toán tử Biết cách sử dụng các câu lệnh điều khiển để viết chương trình
- Nội dung Câu lệnh đơn, câu lệnh ghép Câu lệnh if Câu lệnh switch Câu lệnh while Câu lệnh do while Câu lệnh for Câu lệnh điều khiển vòng lặp
- Câu lệnh Câu lệnh đơn Một biểu thức lệnh, lời gọi hàm kết thúc bởi dấu chấm phẩy (;) Câu lệnh ghép Là tập hợp các câu lệnh đơn được bao bởi cặp dấu { }
- Câu lệnh rẽ nhánh if Dạng khuyết Dạng đầy đủ
- Dạng khuyết Cú pháp: if (Biểu thức) ; false true Biểu thức Thực hiện: Tính giá trị Biểu thức Nếu Biểu thức != 0, thực hiện Ngược lại, bỏ qua Sơ đồ khối
- Dạng đầy đủ Cú pháp: if (Biểu thức) false ; true Biểu thức else ; Sơ đồ khối
- Dạng đầy đủ (tiếp) Thực hiện Tính giá trị của Biểu thức false true Biểu thức Nếu Biểu thức != 0, thực hiện Nếu Biểu thức = 0, thực hiện Sơ đồ khối
- Ví dụ 1 – Cách 1 /*IF1.C*/ #include main() { float a, b, c, max; printf("Nhap 3 so thuc\n"); scanf("%f%f%f",&a, &b, &c); if (a<b) if (b<c) max = c; else max = b; else if (a<c) max = c; else max = a; printf("Gia tri lon nhat cua %6.2f, %6.2f va %6.2f la\n",a,b,c); printf("%6.2f",max); getch(); return 0; }
- Ví dụ 1 - Cách 2 /*IF2.C*/ #include main() { float a, b, c, max; clrscr(); printf("Nhap 3 so thuc\n"); scanf("%f%f%f",&a, &b, &c); max = a; if (max<b) max = b; if (max<c) max = c; printf("Gia tri lon nhat cua %6.2f, %6.2f va %6.2f la\n",a,b,c); printf("%6.2f",max); getch(); return 0; }
- Kết quả
- Chú ý Câu lệnh trước else vẫn có dấu (;) Nên đặt Biểu thức (BT) trong cặp dấu ( ) Ta có thể viết if (BT) thay cho if (BT != 0) , , có thể là câu lệnh đơn hoặc câu lệnh ghép Khi có nhiều câu lệnh if lồng nhau: else được gắn với if không có else ở gần nhất trước đó
- Bài tập Giải và biện luận các phương trình: ax2+bx+c=0 ax+b=0
- Câu lệnh lặp for Lặp với điều kiện trước while Lặp với điều kiện sau do while
- Câu lệnh while Cú pháp: while (Biểu thức) False Biểu thức ; Thực hiện: True Tính giá trị Biểu thức Nếu Biểu thức != 0, thực hiện , quay lại tính giá trị của Biểu thức Sơ đồ khối Ngược lại, chuyển sang câu lệnh sau while
- Ví dụ 2 /*WHILE1.C*/ #include main() { int count = 0; int total = 0; clrscr(); while (count<=10) { total = total +count*count; count++; } printf("count=%d",count); printf("\ntotal=%d",total); getch(); return 0; }
- Kết quả
- Ví dụ 3 /*WHILE1.C*/ #include main() { float a, b, c; clrscr(); printf("\nNhap vao ba canh cua tam giac:"); scanf("%f%f%f",&a,&b,&c); while (a+b<=c||a+c<=b||b+c<=a) { printf("Chua dung, yeu cau nhap lai\n"); scanf("%f%f%f",&a,&b,&c); } printf("OK"); getch(); return 0; }
- Kết quả
- do while Cú pháp: do { ; } while (Biểu thức); False Thực hiện: Biểu thức Thi hành Tính và kiểm tra Biểu thức True Nếu Biểu thức != 0, quay lại thực hiện Ngược lại, thoát khỏi vòng lặp Sơ đồ khối
- Ví dụ /*dowhile.c*/ #include void main() { float a, b, c; printf("\nNhap va do dai ba canh tam giac:\n"); do { scanf("%f%f%f",&a,&b,&c); if (a+b<=c||a+c<=b||b+c<=a) printf("Not OK\n"); } while (a+b<=c||a+c<=b||b+c<=a); printf("OK"); getch(); }
- Kết quả
- Câu lệnh for Cú pháp: BT1; for ([BT1]; [BT2]; [BT3]) ; False Thực hiện: BT2 Tương đương: True BT1; while (BT2) { ; BT3; ; BT3; } Sơ đồ khối
- Câu lệnh for (tiếp) Thực hiện: Thực hiện BT1 (đầu tiên và duy nhất) Tính giá trị của BT2 Nếu BT2 !=0, thực hiện và BT3, tính lại BT2 Nếu BT2 = 0, kết thúc vòng lặp for BT1 khởi đầu giá trị cho các biến điều khiển BT2 xác định số bước của vòng lặp for
- Chú ý Có thể có nhiều biến điều khiển /*for2.c*/ #include #include void main() { int i, j; clrscr(); for (i = 1, j=100; i<j; i++, j ) printf("(%d,%d)",i,j); getch(); }
- Chú ý Có thể bỏ qua một trong ba biểu thức thành phần của vòng for Phải có dấu “;” for (BT1; ;BT2) là một chu trình vô hạn Thoát khỏi vòng lặp: dùng câu lệnh return hoặc break Có nhiều vòng lặp for lồng nhau
- Ví dụ /*for3.c*/ #include #include void main() { int i, j; for(i=1; i<=10; i++) { for (j=1; j<=10; j++) printf("%5d",i*j); printf("\n"); } getch(); }
- Kết quả
- Câu lệnh chọn switch False BT=h1 False BT=h2 BT=hn False True True True Sơ đồ khối
- Câu lệnh chọn switch (tiếp) Cú pháp switch (Biểu thức) { case (Giá trị 1): ; [break;] case (Giá trị 2): ; [break;] case (Giá trị n): ; [break;] [default: [break;]] }
- Câu lệnh chọn switch (tiếp) Thực hiện Tính giá trị của Biểu thức, lần lượt so sánh với các Giá trị i Nếu giá trị của Biểu thức bằng Giá trị i nào đó thì thực hiện Trong trường hợp Biểu thức khác Giá trị i với mọi i=1 n thì Khi có default, máy nhảy tới câu lệnh có nhãn default Khi không có default, máy thoát ra khỏi toán tử switch
- Câu lệnh chọn switch (tiếp) Ra khỏi toán tử switch khi Gặp câu lệnh break Gặp dấu ngoặc nhọn cuối cùng của switch Có thể sử dụng câu lệnh goto Sử dụng return nếu nằm trong thân hàm
- Ví dụ /*swith1.c*/ #include"stdio.h" main() { int ma; tt: printf("Nhap ma = "); scanf("%d", &ma); switch(ma) { case 1: printf("So cap\n"); break; case 2: printf("Trung cap\n"); break; case 3: printf("Dai hoc\n"); break; case 4: printf("Cao hoc\n"); break; case 5: printf("Pho tien sy\n"); break; case 6: printf("Tien sy\n"); break; default: printf("Nhap sai\n"); } getch(); }
- Kết quả
- Ví dụ /*switch2.c*/ #include #include void main() { int thang, nam; clrscr(); printf("\nNhap thang can tinh ngay:"); scanf("%d",&thang); printf("Nhap nam:"); scanf("%d",&nam); switch(thang) { case 1: case 3: case 5: case 7: case 8: case 10: case 12: printf("Thang %d nam %d co %d ngay\n",thang, nam,31); break;
- Ví dụ case 4: case 6: case 9: case 11: printf("Thang %d nam %d co %d ngay\n",thang, nam,30); break; case 2: if (nam%4==0||nam%100!=0) printf("Thang %d nam %d co %d ngay\n",thang, nam,29); else printf("Thang %d nam %d co %d ngay\n",thang, nam,28); break; } getch(); }
- Câu lệnh điều khiển vòng lặp Lệnh break Lệnh continue Khi cần thoát khỏi một chu trình mà không thực hiện kiểm tra điều kiện lặp
- Lệnh break Mục đích: Thoát ra khỏi các vòng lặp for, while, do while trong cùng chứa nó Thoát khỏi câu lệnh rẽ nhánh switch Câu lệnh: break;
- Ví dụ /*break.c*/ #include #include void main() { int n; clrscr(); do { printf("\nNhap n="); scanf("%d",&n); if (n>0) { printf("\nOK"); break; } else printf("\nNot OK"); } while (1); getch(); }
- Kết quả
- Lệnh continue Bỏ qua câu lệnh còn lại trong thân vòng lặp để bắt đầu một lần lặp mới Câu lệnh: continue;
- Ví dụ /*continue.c*/ #include #include void main() { int i, n, s=0; clrscr(); for (i=1; i<=10; i++) { printf("\nLan nhap thu %d:",i); printf("\nn="); scanf("%d",&n); if (n<=0) continue; printf("Ban vua nhap mot so duong"); s += n; } printf("Tong cac so duong vua nhap %d",s); getch(); }
- Kết quả