chuong3 cau truc dieu khien va du lieu kieu mang×các cấu trúc điều khiển×cấu trúc điều khiển lặp×cấu trúc điều khiển và dữ liệu kiểu mảng×bài tập cấu trúc điều khiển×cấu trúc điều khiển cơ bảnbài giảng cấu trúc điều khiểncác cấu trúc điều khiển trong ngôn ngữ ccác cấu trúc điều khiển trong ccác cấu trúc điều khiển trong pascal
NGÔN NGỮ C Chương 3: CÁC CẤU TRÚC ĐIỀU KHIỂN Giáo viên: Tạ Thúc Nhu Khoa CNTT trường ĐH Lạc Hồng Nội dung I CẤU TRÚC CHỌN II CẤU TRÚC LẶP III CÁC PHÁT BIỂU ĐIỀU KHIỂN KHÁC Mã hóa I-Cấu trúc chọn: A Cấu trúc chọn hai công việc B Cấu trúc chọn nhiều cơng việc Mã hóa 1- Cấu trúc chọn hai công việc Cú pháp 1: if (điều kiện) ĐK { = ≠0 Công việc; Công việc } Chú ý: Nếu cần thực có lệnh khơng cần bao dấu { } Mã hóa Ví dụ 1: Xét tốn tính tiền khách hàng phải trả mua hàng với quy tắc giảm sau: Nếu mua với số lượng từ 50 đến 100 giảm 2% Nếu mua với số lượng > 100 giảm 3% Trong đơn giá số lượng mua nhập từ bàn phím thực lệnh void main() { float dongia, soluong, tien; printf(“\n Cho biết đơn giá : “); scanf(“%f”, &dongia); printf(“\n Cho biết số lượng: “); scanf(“%f”, &soluong); tien = soluong * dongia; if (soluong > 50 && soluong 100) tien = tien * 0.97; printf(“\nTien phai tra : %10.2f “, tien); getch(); } thực lệnh void main() { float dongia, soluong, tien; printf(“\n Cho biết đơn giá : “); scanf(“%f”, &dongia); printf(“\n Cho biết số lượng: “); scanf(“%f”, &soluong); tien = soluong * dongia; if (soluong > 50 && soluong 100) { tien = tien * 0.97; printf(“\n Khách giảm giá 3% “); } printf(“\nTien phai tra : %10.2f “, tien); getch(); } 1- Cấu trúc chọn hai công việc Cú pháp 2: if (điều kiện) { ĐK Công việc 1; } else { =0 ≠0 Công việc Công việc Công việc 2; } Mã hóa thực lệnh void main() { float dongia, soluong, tien; printf(“\n Cho biết đơn giá : “); scanf(“%f”, &dongia); printf(“\n Cho biết số lượng: “); scanf(“%f”, &soluong); tien = soluong * dongia; if (soluong > 50 && soluong 100) { tien = tien * 0.97; printf(“\n Khách giảm giá 3% “); } } printf(“\nTien phai tra : %10.2f “, tien); getch(); } 2- Cấu trúc chọn nhiều công việc switch (biểu thức) { case hằng1: ; [ break; ] case hằng2: ; [ break; ] case hằngn: ; [ break; ] [ default : Cơng việc n+1; ] } 10 Mã hóa Ví dụ: Sử dụng lệnh while Viết chương trình nhập tuổi cha tuổi Hãy cho biết sau năm tuổi cha gấp đơi tuổi Ví dụ: Tcha Tcon SoNam Tcha * Tcon 41 19 T 42 20 T 43 21 T 44 22 F Công việc: Tcha = Tcha +1 Tcon = Tcon + Sonam = Sonam +1 Điều kiện thực hiện: Tcha ≠ * Tcon Ví dụ: Sử dụng lệnh while Tìm USCLN hai số nguyên dương M N Theo nguyên tắc: – Nếu N=0 : UCLN(M,N) = M – Nếu N > : UCLN(M, N) = UCLN(N, M%N) Ví dụ: M N 84 35 Mcu = M 35 14 M=N 14 N = Mcu % N Điều kiện thực hiện:N ≠ Công việc: 2- Cấu trúc lặp với điều kiện sau: Cú pháp { ; } while (Điều kiện lặp); Công việc ĐK ≠0 =0 • Ngữ nghĩa: Thực cơng việc điều kiện Ví dụ: Sử dụng while Viết chương trình tính trung bình cộng n số nguyên nhập từ bàn phím Khi nhập số kết thúc nhập tính trung bình Nhập số thực Eps ∈(0,1) Tính số Népè e (= 2,71828) công thức khai triển chuỗi sau: e = + 1/1! + 1/2! + + 1/N! 1/N! >= Eps Phương pháp quy hoạch động: – Kết bước sau tính tốn dựa kết bước trước – Sử dụng biến lưu lại kết để tính cho bước sau 3- Cấu trúc lặp với for Cú pháp: for (biểu thức 1; biểu thức 2; biểu thức 3) { [Công việc] } Biểu thức Biểu thức Bất kỳ biểu thức biểu thức có quyền vắng mặt, Tuy nhiên phải giữ dấu “; “ BT2 =0 ≠0 Cơng việc Ví dụ: Sử dụng lệnh for Viết chương trình tính N! Trong N số nguyên dương nhập từ bàn phím Ví dụ: N! i N I