Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 18 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
18
Dung lượng
395,42 KB
Nội dung
Cấu trúc điều khiển CHƯƠNG CẤU TRÚC ĐIỀU KHIỂN Tìm hiểu cài đặt cấu trúc rẽ nhánh, lựa chọn, lặp ký hiệu phép toán ngôn ngữ C Mô tả cách hoạt động hướng dẫn chạy bước chương trình I TĨM TẮT LÝ THUYẾT I.1 Các ký hiệu STT KÝ HIỆU {} ; // /* */ DIỄN GIẢI VÍ DỤ void main() Bắt đầu kết thúc hàm hay khối { lệnh } Kết thúc khai báo biến, lệnh, int x; lời gọi hàm, hay khai báo void NhapMang(int a[], int &n); nguyên mẫu hàm Chú thích (ghi chú) cho dòng //Ham dung de nhap mang Chỉ có tác dụng người đọc void NhapMang(int a[], int &n); chương trình /* Dau tien nhap vao n Sau Tương tự ký hiệu //, nhap cho tung phan tu */ cho trường hợp nhiều dòng void NhapMang(int a[], int &n); I.2 Các kiểu liệu C STT 3 KÍCH THƯỚC KIỂU LIÊN TỤC (SỐ THỰC) float bytes double bytes long double 10 bytes KIỂU RỜI RẠC (SỐ NGUYÊN) Ký tự byte char Số nguyên byte unsigned char Số nguyên dương byte int Số nguyên bytes unsigned int Số nguyên dương bytes long Số nguyên bytes unsigned long Số nguyên dương bytes char * Chuỗi KIỂU Giáo trình Bài Tập Kỹ Thuật Lập Trình GHI CHÚ ĐỊNH DẠNG %f %lf %lf %c %d %d %d %u %ld %lu %s Trang 13 Cấu trúc điều khiển I.3 Bảng ký hiệu phép toán STT PHÉP TOÁN Ý NGHĨA GHI CHÚ PHÉP TOÁN SỐ HỌC + Cộng - Trừ * Nhân / Chia lấy phần nguyên % Chia lấy phần dư PHÉP TOÁN QUAN HỆ > Lớn < Nhỏ >= Lớn Dịch phải ~ Lấy phần bù theo bit Giáo trình Bài Tập Kỹ Thuật Lập Trình Trang 14 Cấu trúc điều khiển I.4 Các hàm STT TÊN HÀM printf THƯ VIỆN DIỄN GIẢI Xuất hình Lấy liệu từ bàn scanf #include phím Di chuyển dấu nháy gotoxy #include đến tọa độ (x, y) hình văn Đặt màu cho chữ (có textcolor #include giá trị từ đến 15) Xuất hình với cprintf #include màu chữ định liền trước Dừng thực lệnh delay #include tiếp sau khoảng thời gian kbhit #include #include VÍ DỤ #include #include #include void main() { int c = 1, n; clrscr(); printf(“Nhap n:”); scanf(“%d”, &n); do{ textcolor(c); gotoxy(20, 10); cprintf(“%d”, n); c++; if (c>15) c = 1; delay(200); } while(!kbhit()); Kiểm tra xem có nhấn phím } I.5 Cấu trúc rẽ nhánh a Cấu trúc if if (biểu thức điều kiện) { ; } Nếu biểu thức điều kiện cho kết khác khơng thực khối lệnh Ví dụ: #include #include void main () { float number ; printf ( “Nhap mot so khoang tu den 10 => “) ; scanf ( “%f”, &number) ; if (number >5) printf ( “So ban nhap lon hon \n”) ; printf ( “%f la so ban nhap “ , number); } Giáo trình Bài Tập Kỹ Thuật Lập Trình Trang 15 Cấu trúc điều khiển b Cấu trúc if … else if (biểu thức điều kiện) { ; } else { ; } Nếu biểu thức điều kiện cho kết khác khơng thực khối lệnh 1, ngược lại cho thực khối lệnh thứ Biểu thức điều kiện phải đặt cặp dấu ngoặc trịn Ví dụ: Giải biện luận phương trình: ax+b=0 #include #include void main () { } float a, b; printf ( “\n Nhap vao a:”); scanf ( “%f”, &a); printf ( “ Nhap vao b:”); scanf ( “%f”, &b) ; if (a= = 0) if (b= = 0) printf ( “ \n PTVSN”); else printf ( “ \n PTVN”); else printf ( “ \n Nghiem x=%f”, -b/a); getch (); I.6 Cấu trúc lựa chọn switch switch (biểu thức) { case n1: câu lệnh ; break ; case n2: câu lệnh ; break ; ……… case nk: ; break ; Giáo trình Bài Tập Kỹ Thuật Lập Trình Trang 16 Cấu trúc điều khiển [default: câu lệnh] } • ni số nguyên ký tự • Phụ thuộc vào giá trị biểu thức viết sau switch, nếu: o Giá trị = ni thực câu lệnh sau case ni o Khi giá trị biểu thức khơng thỏa tất ni thực câu lệnh sau default có, khỏi câu lệnh switch o Khi chương trình thực xong câu lệnh case ni thực ln lệnh thuộc case bên mà không xét lại điều kiện (do ni xem nhãn) Ỉ Vì vậy, để chương trình thoát khỏi lệnh switch sau thực xong trường hợp, ta dùng lệnh break Ví dụ: Tạo menu cấp cho phép chọn menu số nhập từ bàn phím #include #include int ChonTD () { int chon ; } printf ("Thuc Don") ; printf ("\n1 Lau thai!") ; printf ("\n2 Nuoc ngot!") ; printf ("\n3 Ca loc hap bau!") ; printf ("\n4 Chuot dong!") ; printf ("\n Xin moi ban chon mon an!") ; scanf ("%d",&chon) ; return chon ; void TDchon(int chon) { switch (chon) { case 1: printf ("\nBan chon lau thai!") ; break ; case 2: printf ("\nBan chon nuoc ngot!") ; break ; case 3: printf ("\nBan chon ca loc hap bau!") ; break ; case 4: printf ("\Ban chon chuot dong!") ; Giáo trình Bài Tập Kỹ Thuật Lập Trình Trang 17 Cấu trúc điều khiển } } break ; default: printf ("\nBan chon khong dung!") ; void main() { clrscr() ; int c ; c=ChonTD() ; TDchon(c) ; getch() ; } I.7 Cấu trúc lặp a for for (; ; ) { ; } Bất kỳ biểu thức biểu thức nói vắng phải giữ dấu chấm phẩy (;) Hoạt động cấu trúc điều khiển for: Bước 1: Khởi gán cho biểu thức Bước 2: Kiểm tra điều kiện biểu thức Giáo trình Bài Tập Kỹ Thuật Lập Trình Trang 18 Cấu trúc điều khiển • Nếu biểu thức ≠ cho thực lệnh vịng lặp, thực biểu thức Quay trở lại bước • Ngược lại khỏi lặp Ví dụ: In hình bảng mã ASCII từ ký tự số 33 đến 255 #include #include void main() { for (int i=33;i while ( ) { lệnh/ khối lệnh; < tăng/giảm số lặp>; } # Lưu ý: Cách hoạt động while giống for Ví dụ: Tính giá trị trung bình chữ số số nguyên n gồm k chữ số #include #include void main() { long n, tong=0; int sochuso=0; float tb; printf ("Nhap vao gia tri n gom k chu so") ; scanf ("%ld",&n) ; while(n>0) { } tong=tong+n%10 ; sochuso++ ; n=n/10 ; tb=1.0*tong/sochuso ; printf ("Gia tri trung binh la: %f", tb) ; Giáo trình Bài Tập Kỹ Thuật Lập Trình Trang 19 Cấu trúc điều khiển getch () ; } c … while { < khối lệnh> ; } while (biểu thức điều kiện) ; Thực khối lệnh biểu thức có giá trị Ví dụ: Nhập ký tự từ bàn phím hiển thị lên hình mã ASCII ký tự đó, thực đến nhấn phím ESC (Mã ASCII phím ESC 27) #include #include void main() { int ma ; do{ ma=getch (); if (ma !=27) printf ("Ma ASCII %c:%d\t", ma, ma); }while (ma!=27) ; getch () ; } # Lặp while kiểm tra điều kiện trước thực lặp, vòng lặp do…while thực lệnh lặp kiểm tra điều kiện Do vịng lặp while thực lệnh lần I.8 break continue a break Dùng để kết thúc vòng lặp trực tiếp chứa thỏa điều kiện Ví dụ: Cho phép người dùng nhập liên tục giá trị n nhập âm dừng #include #include void main() { Giáo trình Bài Tập Kỹ Thuật Lập Trình Trang 20 Cấu trúc điều khiển while (1) { printf(“\nNhap n: ”); scanf(“%d”, &n); if(n