Bài giảng Lập trình C++ Chương 3: Biểu thức Logic và các cấu trúc điều khiển

15. Viết chương trình giải bài toán cổ: “Vừa gà vừa chó, Bó lại cho tròn, Ba mươi sáu con, Một trăm chân chẵn”. Hỏi có bao nhiêu con mỗi loại? 16. Viết chương trình giải bài toán cổ: “Trăm trâu, trăm cỏ Trâu đứng ăn 5, Trâu nằm ăn 3, Trâu già 3 con ăn một bó”. Hỏi có bao nhiêu trâu mỗi loại?

pdf55 trang | Chia sẻ: maiphuongtl | Lượt xem: 5810 | Lượt tải: 5download
Bạn đang xem trước 20 trang tài liệu Bài giảng Lập trình C++ Chương 3: Biểu thức Logic và các cấu trúc điều khiển, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
1/54Ngôn ngữ lập trình C++ LẬP TRÌNH C++ (3 Tín chỉ) Gv: Nguyễn Văn Hùng Khoa: Khoa học máy tính Ngôn ngữ lập trình C++ chương 3: Biểu thức Logic và các cấu trúc điều khiển 2/54 Chương 3: BIỂU THỨC LOGIC VÀ CÁC CẤU TRÚC ĐIỀU KHIỂN  Mục tiêu  Giới thiệu về biểu thức logic; các cấu trúc điều khiển trong C++. Vận dụng các cấu trúc này vào việc giải quyết các bài toán đặt ra.  Nội dung  Biểu thức Logic  Các cấu trúc điều khiển  Một số câu lệnh đặc biệt Ngôn ngữ lập trình C++ chương 3: Biểu thức Logic và các cấu trúc điều khiển 3/54 Dữ liệu kiểu boolean Biểu thức logic Ước lượng mạch ngắn 3.1 Biểu thức Logic Ngôn ngữ lập trình C++ chương 3: Biểu thức Logic và các cấu trúc điều khiển 4/54 Là kiểu dữ liệu xây dựng sẵn (built-in) Gồm có hai giá trị: true và false Từ khóa khai báo dữ liệu kiểu boolean: bool Chẳng hạn, bool x; //Biến x chỉ được nhận 2 giá trị là true hoặc false Lưu ý: Trong C++ giá trị true tương ứng với 1 và false tương ứng với 0. Do đó, khi trả về true hoặc false thực chất là trả về 1 hoặc 0 (số nguyên). Dữ liệu kiểu Boolean Ngôn ngữ lập trình C++ chương 3: Biểu thức Logic và các cấu trúc điều khiển 5/54 Còn gọi là biểu thức boolean Làm việc với các kiểu giá trị và phép toán logic hoặc các phép toán quan hệ.  Giá trị trả về của biểu thức logic là gì? Các phép toán logic và quan hệ đã học là gì? Dữ liệu kiểu Boolean Ngôn ngữ lập trình C++ chương 3: Biểu thức Logic và các cấu trúc điều khiển 6/54 Cú pháp xây dựng biểu thức logic: Bieu_thuc_A Phep_toan Bieu_thuc_B Trong đó: Bieu_thuc_A hoặc Bieu_thuc_B: có thể là hằng, biến, hàm trả về giá trị hay biểu thức. Phep_toan: Các phép toán quan hệ và phép toán logic (trừ phép phủ định !) Ví dụ: Ta có một số biểu thức: 5 > 8 delta > 0 (a > b) && (a > c) a != 0 || b != 0 Biểu thức Logic Ngôn ngữ lập trình C++ chương 3: Biểu thức Logic và các cấu trúc điều khiển 7/54 Sử dụng cho các biểu thức logic Khi ước lượng các biểu thức logic, chương trình sẽ thực hiện từ trái qua phải và sẽ dừng lại khi giá trị thật cuối cùng của biểu thức được xác định. Ví dụ: Xét đoạn chương trình sau: int toan = 4, ly = 6, hoa = 7; bool kq; kq = (toan >= 5 ) && (ly >= 5 ) && (hoa >= 5); Không ước lượng Ước lượng mạch ngắn Ngôn ngữ lập trình C++ chương 3: Biểu thức Logic và các cấu trúc điều khiển 8/54 Các lợi ích đối với ước lượng mạch ngắn Tiết kiệm được thời gian tính toán trong các biểu thức có sự tham gia của phép && và phép || Xây dựng biểu thức đóng vai trò “canh gác” cho biểu thức thứ 2 không an toàn Ví dụ: Xét đoạn chương trình sau: int tu, mau; float x; bool kq; kq = (mau != 0) && ( x < tu/mau); Ước lượng mạch ngắn Ngôn ngữ lập trình C++ chương 3: Biểu thức Logic và các cấu trúc điều khiển 9/54 Cấu trúc tuần tự Cấu trúc rẽ nhánh Cấu trúc lặp Một số câu lệnh đặc biệt 3.2 Các cấu trúc điều khiển Ngôn ngữ lập trình C++ chương 3: Biểu thức Logic và các cấu trúc điều khiển 10/54 Là cấu trúc mặc định trong tất cả các ngôn ngữ lập trình Các lệnh được thực hiện theo thứ tự từ trên xuống; lệnh nào viết trước được thực hiện trước. Cú pháp Câu lệnh 1; Câu lệnh 2; …. Câu lệnh n; Câu Lưu đồ Câu lệnh 1 Câu lệnh 2 lệnh n Cấu trúc tuần tự Ngôn ngữ lập trình C++ chương 3: Biểu thức Logic và các cấu trúc điều khiển 11/54 Là cấu trúc xác định thứ tự thực hiện các câu lệnh dựa vào giá trị của biểu thức Logic. Sử dụng từ khóa if hoặc if … else, switch để viết câu lệnh rẽ nhánh Các câu lệnh rẽ nhánh: Câu lệnh if Câu lệnh if else Câu lệnh else if (if lồng nhau) Câu lệnh switch Cấu trúc rẽ nhánh Ngôn ngữ lập trình C++ chương 3: Biểu thức Logic và các cấu trúc điều khiển 12/54 Cú pháp if (bieu_thuc_logic) câu lệnh; Trong đó bieu_thuc_logic: là biểu thức cho 2 giá trị true hoặc false câu lệnh: có thể là một lệnh hoặc một khối lệnh Câu lệnh if Ngôn ngữ lập trình C++ chương 3: Biểu thức Logic và các cấu trúc điều khiển 13/54 Sơ đồ khối Hoạt động: Khi gặp câu lệnh if Máy kiểm tra Bieu_thuc_logic. Nếu kết quả là true thì thực hiện câu lệnh. Ngược lại bỏ qua câu lệnh trong thân if và tiếp tục thực hiện các lệnh sau if. true false Bieu_thuc_logic Câu lệnh Câu lệnh if Ngôn ngữ lập trình C++ chương 3: Biểu thức Logic và các cấu trúc điều khiển 14/54 Bài tập 1: Viết đoạn chương trình kiểm tra một số nhập vào có phải là số dương hay không. Nếu đúng là số dương thì đưa ra câu thông báo “số vừa nhập vào là số dương”. Bài tập 2: Viết đoạn chương trình tìm và xuất ra màn hình giá trị lớn nhất của 2 số a và b bất kỳ được nhập vào từ bàn phím Câu lệnh if Ngôn ngữ lập trình C++ chương 3: Biểu thức Logic và các cấu trúc điều khiển 15/54 Cú pháp if (bieu_thuc_logic) câu lệnh 1; else câu lệnh 2; Trong đó bieu_thuc_logic: là biểu thức cho 2 giá trị true hoặc false câu lệnh1, câu lệnh 2: có thể là một lệnh hoặc một khối lệnh Câu lệnh if ... else Ngôn ngữ lập trình C++ chương 3: Biểu thức Logic và các cấu trúc điều khiển 16/54 Sơ đồ khối Hoạt động: B1: Máy kiểm tra Bieu_thuc_logic. Nếu kết quả là true thì qua B2, ngược lại qua B3. B2: Thực hiện câu lệnh 1 rồi thoát khỏi if B3: Thực hiện câu lệnh 2 rồi thoát khỏi if true false Bieu_thuc_logic Câu lệnh 1 Câu lệnh 2 Câu lệnh if ... else Ngôn ngữ lập trình C++ chương 3: Biểu thức Logic và các cấu trúc điều khiển 17/54 Bài tập 3: Viết đoạn chương trình kiểm tra một số nguyên bất kỳ nhập vào từ bàn phím có là nguyên dương chẵn hay không? Bài tập 4: Viết đoạn chương trình kiểm tra 3 số a, b, c bất kỳ được nhập vào từ bàn phím có thõa mãn là 3 cạnh của một tam giác hay không? Xuất kết quả ra màn hình. Câu lệnh if ... else Ngôn ngữ lập trình C++ chương 3: Biểu thức Logic và các cấu trúc điều khiển 18/54 Sử dụng trong trường hợp kiểm tra nhiều điều kiện với các mức giá trị khác nhau. Cú pháp if ( bieu_thuc_logic 1 ) Cau lenh 1 else if ( bieu_thuc_logic 2 ) cau lenh 2 . else if ( bieu_thuc_logic n ) cau lenh n else cau lenh n+1 Câu lệnh else if (if lồng nhau) Ngôn ngữ lập trình C++ chương 3: Biểu thức Logic và các cấu trúc điều khiển 19/54 Các bieu_thuc_logic sẽ được kiểm tra tuần tự cho đến khi có biểu thức cho kết quả true Chỉ có những lệnh theo sau biểu thức có giá trị true mới được thi hành Nếu không có biểu thức nào true thì câu lệnh sau else cuối cùng sẽ được thực hiện else luôn được kết hợp với if gần nhất chứa nó. Câu lệnh else if (if lồng nhau) Ngôn ngữ lập trình C++ chương 3: Biểu thức Logic và các cấu trúc điều khiển 20/54 Ví dụ: Với n = 20, 2 đoạn chương trình sau xuất ra màn hình kết quả là gì? if(n>0) if (n>0) if(n<15) else cout<<“You are fail”<<endl; if(n<15) else cout<<“You are fail”<<endl; cout<<“You are pass”<<endl; else cout<<“You are pass”<<endl; Câu lệnh else if (if lồng nhau) Ngôn ngữ lập trình C++ chương 3: Biểu thức Logic và các cấu trúc điều khiển 21/54 Bài tập 5: Viết đoạn chương trình xếp loại học lực của sinh viên. Với điểm tổng của sinh viên được nhập vào từ bàn phím theo các mức sau. Nếu DT >=3.5 thì thông báo “Xuất sắc” Nếu DT >=3.2 thì thông báo “Giỏi” Nếu DT >= 2.5 thì thông báo “Khá” Nếu DT >=2.0 thì thông báo “Trung bình” Ngược lại thông báo “Yếu” Bài tập 6: Viết đoạn chương trình nhập vào một tháng bất kỳ trong năm và xuất ra màn hình số ngày của tháng đó. Câu lệnh else if (if lồng nhau) Ngôn ngữ lập trình C++ chương 3: Biểu thức Logic và các cấu trúc điều khiển 22/54 Cú pháp switch (bieu_thuc_nguyen hoặc ky_tu) { case gia_tri 1 : câu lệnh 1; break; case gia_tri 2 : câu lệnh 2; break; . . . case gia_tri n : câu lệnh n; break; default : câu lệnh n+1; } Câu lệnh switch Ngôn ngữ lập trình C++ chương 3: Biểu thức Logic và các cấu trúc điều khiển 23/54 Sơ đồ khối Bieu_thuc_nguyen hoac ky_tu Bt_nguyen hoac ky tu == gia_tri 1 Bt_nguyen hoac ky tu == gia_tri 2 false true false true Câu lệnh 1 Câu lệnh 2 Câu lệnh n+1 Câu lệnh switch Ngôn ngữ lập trình C++ chương 3: Biểu thức Logic và các cấu trúc điều khiển 24/54 Hoạt động Máy sẽ tiến hành so sánh kết quả của bieu_thuc_nguyen hoặc ký tự lần lượt với các giá trị sau nhãn case. Nếu giá trị nào thỏa mãn, thì câu lệnh sau giá trị đó sẽ được thực hiện cho đến khi gặp câu lệnh break. Sau đó thoát khỏi switch Trường hợp không có lệnh break thì khi gặp một giá trị thỏa mãn, tất cả các câu lệnh sau nó và sau tất cả các nhãn sau nó cũng được thực hiện cho đến hết switch Trường hợp không có giá trị nào thỏa mãn thì câu lệnh sau default (nếu có) sẽ được thực hiện. Câu lệnh switch Ngôn ngữ lập trình C++ chương 3: Biểu thức Logic và các cấu trúc điều khiển 25/54 Ví dụ: Với f = ‘O’ thì đoạn chương trình sau cho kết quả như thế nào? switch(f) { case ‘P’: cout<<“\nP”<<endl; case ‘F’: cout<<“\nF”<<endl; case ‘C’: cout<<“\nC”<<endl; case ‘O’: cout<<“\nO”<<endl; case ‘M’: cout<<“\nM”<<endl; default: cout<<“\nError”<<endl; } Câu lệnh switch Ngôn ngữ lập trình C++ chương 3: Biểu thức Logic và các cấu trúc điều khiển 26/54 Bài tập 7: làm lại bài tập 6 với tháng và năm nhập vào từ bàn phím sau đó hiển thị số ngày của tháng đó. Với: + Tháng 2: - Năm nhuận có 29 ngày - Năm không nhuận có 28 ngày + Năm nhuận là năm: - Chia hết cho 4 nhưng không chia hết cho 100 - Hoặc chia hết cho 400 Câu lệnh switch Ngôn ngữ lập trình C++ chương 3: Biểu thức Logic và các cấu trúc điều khiển 27/54 Cho phép thực hiện lặp lại nhiều lần một công việc nào Việc thực hiện công việc sẽ dừng lại khi thỏa mãn một điều kiện nào đó. Có 3 dạng cấu trúc lặp Cấu trúc lặp for Cấu trúc lặp while Cấu trúc lặp do while Cấu trúc lặp Ngôn ngữ lập trình C++ chương 3: Biểu thức Logic và các cấu trúc điều khiển 28/54 Cú pháp for (bt_1; bt_2; bt_3) công việc; // có thể là một lệnh hoặc khối lệnh Trong đó: bt_1: thông thường là một phép gán để khởi tạo giá trị ban đầu cho biến điều khiển. bt_2: là biểu thức kiểm tra điều kiện lặp bt_3: thông thường là phép gán để thay đổi giá trị của biến điều khiển nhằm đến một lúc nào đó nó sẽ làm cho bt_2 nhận giá trị sai và vòng lặp sẽ kết thúc. Câu lệnh for Ngôn ngữ lập trình C++ chương 3: Biểu thức Logic và các cấu trúc điều khiển 29/54 Sơ đồ khối Tính giá trị bt_1 Tính giá trị bt_3 Thực hiện Công việc Bt_2 Thoát true false Câu lệnh for Ngôn ngữ lập trình C++ chương 3: Biểu thức Logic và các cấu trúc điều khiển 30/54 Hoạt động B1: Máy tính giá trị của bt_1 và chuyển sang B2 B2: Kiểm tra điều kiện của bt_2. Nếu bt_2 cho giá trị true (==1) chuyển qua B3, ngược lại thoát khỏi for B3: Thực hiện công việc trong thân for và qua B4 B4: Tính giá trị bt_3 và quay lại B2. Câu lệnh for Ngôn ngữ lập trình C++ chương 3: Biểu thức Logic và các cấu trúc điều khiển 31/54 Lưu ý: Bất kỳ biểu thức nào trong 3 biểu thức trên có thể vắng mặt nhưng phải giữ lại dấu chấm phẩy (;) Khi bt_2 vắng mặt thì nó được coi là luôn đúng. Trong trường hợp này việc thoát khỏi vòng lặp phải nhờ vào một trong các câu lệnh goto, break, return trong thân vòng lặp for Trong mỗi biểu thức có thể gồm nhiều biểu thức con nhưng phải viết phân cách nhau bởi dấu phẩy (,) và được thực hiện từ trái qua phải. Câu lệnh for Ngôn ngữ lập trình C++ chương 3: Biểu thức Logic và các cấu trúc điều khiển 32/54 Bài tập 8: Viết chương trình hiển thị lên màn hình các giá trị từ 1 đến 10 trên 1 hàng hoặc 1 cột Bài tập 9: Viết chương trình hiển thị lên màn hình các giá trị từ 1 đến 20 trên 4 hàng Bài tập 10: Viết chương trình tính tổng S = 1 + 2 + 3 + …+ n. Với n nguyên dương được nhập vào từ bàn phím Bài tập 11: Viết chương trình tính n! với n nguyên dương được nhập vào từ bàn phím Bài tập 12: Viết chương trình tính tổng các số nguyên dương chẵn <= n với n bất kỳ được nhập vào từ bàn phím Câu lệnh for Ngôn ngữ lập trình C++ chương 3: Biểu thức Logic và các cấu trúc điều khiển 33/54 Cú pháp while (bt_logic) { câu lệnh; // có thể là một lệnh hoặc khối lệnh } Trong đó: bt_logic: cho kết quả true hoặc false. Câu lệnh while Ngôn ngữ lập trình C++ chương 3: Biểu thức Logic và các cấu trúc điều khiển 34/54 Sơ đồ khối Hoạt động B1: Tính giá trị của bt_logic. Nếu bt_logic cho giá trị đúng thì chuyển qua B2, ngược lại thoát khỏi while B2: Thực hiện câu lệnh trong thân while sau đó quay lại B1. bt_logic false true Câu lệnh Câu lệnh while Ngôn ngữ lập trình C++ chương 3: Biểu thức Logic và các cấu trúc điều khiển 35/54 Lưu ý: Trong thân while cần có lệnh tác động đến biến điều khiển để sau một số hữu hạn các bước lặp sẽ làm cho bt_logic nhận giá trị false. Làm lại các bài tập 8-12 sử dụng cấu trúc lặp while Câu lệnh while Ngôn ngữ lập trình C++ chương 3: Biểu thức Logic và các cấu trúc điều khiển 36/54 Cú pháp do { câu lệnh; // có thể là một lệnh hoặc khối lệnh } while (bt_logic); Trong đó: bt_logic: cho kết quả true hoặc false. Câu lệnh do ... while Ngôn ngữ lập trình C++ chương 3: Biểu thức Logic và các cấu trúc điều khiển 37/54 Sơ đồ khối Hoạt động: B1: Máy thực hiện câu lệnh rồi chuyển qua B2 B2: Tính giá trị bt_logic. Nếu bt_logic cho giá trị true thì chuyển qua B1, ngược lại thoát khỏi do while bt_logic false true Câu lệnh Câu lệnh do ... while Ngôn ngữ lập trình C++ chương 3: Biểu thức Logic và các cấu trúc điều khiển 38/54 Sử dụng cấu trúc lặp do while để làm lại các bài tập trên Câu lệnh do ... while Ngôn ngữ lập trình C++ chương 3: Biểu thức Logic và các cấu trúc điều khiển 39/54 So sánh hai cấu trúc lặp while và do while Vòng lặp do . . .while Vòng lặp while - Vòng lặp POST-TEST (exit- condition) - Điều kiện lặp được kiểm tra sau khi đã thi hành thân vòng lặp - Thân vòng lặp luôn luôn thi hành ít nhất một lần - Vòng lặp PRE-TEST (entry- condition) - Điều kiện lặp đựơc kiểm tra trước khi thi hành thân vòng lặp - Thân vòng lặp có thể không đựơc thi hành int i = 1; do { cout<<i; i++; } while (i <=0); int i = 1; while (i <=0) { cout<<i; i++; } Cấu trúc lặp Ngôn ngữ lập trình C++ chương 3: Biểu thức Logic và các cấu trúc điều khiển 40/54 Nhận xét: cấu trúc lặp được thực hiện trên 2 cơ chế: count – controlled (lặp theo biến đếm) event – controlled (lặp theo sự kiện) Cấu trúc lặp Ngôn ngữ lập trình C++ chương 3: Biểu thức Logic và các cấu trúc điều khiển 41/54 Đầu tiên khởi tạo biến điều khiển vòng lặp Có biểu thức kiểm tra điều kiện lặp Có lệnh làm thay đổi giá trị của biến điều khiển Ví dụ: Xét đoạn code sau: int i = 0; while (i < 10) { cout<<i; i++; } Cơ chế lặp count - controlled Ngôn ngữ lập trình C++ chương 3: Biểu thức Logic và các cấu trúc điều khiển 42/54 Việc lặp việc thực hiện một công việc nào đó phụ thuộc vào một sự kiện: nhập hệ số khác không, đánh dấu giá trị cờ, … Ví dụ 1: Xét đoạn code sau: int a; do { cout<<“Nhap he so a khac khong a= ”; cin>>a; } while (a==0); Cơ chế lặp event - controlled Ngôn ngữ lập trình C++ chương 3: Biểu thức Logic và các cấu trúc điều khiển 43/54 Ví dụ 2: Xét đoạn code sau: int a; bool kt = true; while (kt) { cout<<“Nhap he so a khac khong a= ”; cin>>a; if (a!=0) kt = false; else cout<<“Gia tri ban nhap bang 0”<<endl; } Cơ chế lặp event - controlled Ngôn ngữ lập trình C++ chương 3: Biểu thức Logic và các cấu trúc điều khiển 44/54 Câu lệnh break Câu lệnh continue Một số câu lệnh đặc biệt Ngôn ngữ lập trình C++ chương 3: Biểu thức Logic và các cấu trúc điều khiển 45/54 Sử dụng cho cấu trúc lựa chọn switch hoặc trong thân cấu trúc lặp. Khi gặp lệnh break thì chương trình sẽ dừng thực hiện các câu lệnh trong thân các câu trúc trên và thoát khỏi các cấu trúc đó Trong trường hợp các cấu trúc lồng nhau thì khi gặp lệnh break chương trình sẽ thoát khỏi cấu trúc sâu nhất chứa nó. Câu lệnh break Ngôn ngữ lập trình C++ chương 3: Biểu thức Logic và các cấu trúc điều khiển 46/54 Ví dụ 1: Xét đoạn chương trình int i=0; for ( ; i<=9; i++) if (i==5) break; else cout<<i; Câu lệnh break Ngôn ngữ lập trình C++ chương 3: Biểu thức Logic và các cấu trúc điều khiển 47/54 Ví dụ 2: Xét đoạn chương trình int i=0, j; while (i<=4) { for (j=0;j<=9;j++) if (j==3) break; else cout<<i+j; cout<<i; i++; } Câu lệnh break Ngôn ngữ lập trình C++ chương 3: Biểu thức Logic và các cấu trúc điều khiển 48/54 Sử dụng trong thân cấu trúc lặp. Khi gặp lệnh continue thì chương trình sẽ kết thúc việc lặp của vòng lặp hiện tại, nhưng không phải toàn bộ vòng lặp Bỏ qua việc thực hiện các lệnh trong thân lặp nằm sau lệnh continue và chuẩn bị cho vòng lặp tiếp theo. Câu lệnh continue Ngôn ngữ lập trình C++ chương 3: Biểu thức Logic và các cấu trúc điều khiển 49/54 Ví dụ : Xét đoạn chương trình int i=0; for ( ; i<=9; i++) if (i==5) continue; else cout<<i; Câu lệnh continue Ngôn ngữ lập trình C++ chương 3: Biểu thức Logic và các cấu trúc điều khiển 50/54 1. Viết chương trình giải phương trình bậc 2 ax2 + bx + c=0. với các hệ số a, b, c được nhập vào từ bàn phím (a khác 0) 2. Viết chương trình nhập vào tháng và năm bất kỳ. Sau đó hiển thị số ngày của tháng đó. Với: + Tháng 2: - Năm nhuận có 29 ngày - Năm không nhuận có 28 ngày + Năm nhuận là năm: - Chia hết cho 4 nhưng không chia hết cho 100 - Hoặc chia hết cho 400 BÀI THỰC HÀNH Ngôn ngữ lập trình C++ chương 3: Biểu thức Logic và các cấu trúc điều khiển 51/54 3. Viết chương trình tính n! với n nguyên dương được nhập vào từ bàn phím 4. Viết chương trình tính tổng các số nguyên dương chẵn <= n với n bất kỳ được nhập vào từ bàn phím 5. Viết chương trình giải và biện luận hệ phương trình bậc nhất sau: ax + by = c dx + ey = f BÀI THỰC HÀNH Ngôn ngữ lập trình C++ chương 3: Biểu thức Logic và các cấu trúc điều khiển 52/54 6. Viết chương trình tính tổng các số nguyên từ bắt đầu từ 1 và kết thúc khi tổng vượt quá 1000. Hiển thị tất cả các số nguyên đó ra màn hình 7. Viết chương trình in ra dãy số Fibonacci nhỏ hơn 3000. Số Fibonacci là số bằng tổng của 2 số trước nó bắt đầu từ f1 = f 2 = 1; f3 = 2; … fn = f(n-2) + f(n-1) 8. Viết chương trình nhập vào các số nguyên dương m, n (m < n) sau đó: + Tính tổng các số chẵn (hoặc lẽ) trong đoạn [-m, n] + Tính tổng các số chia hết cho 3 trong đoạn [m, n] BÀI THỰC HÀNH Ngôn ngữ lập trình C++ chương 3: Biểu thức Logic và các cấu trúc điều khiển 53/54 9. Viết chương trình nhập vào một số nguyên n trong đoạn [10, 20] (nếu giá trị nhập vào không thuộc khoảng đó thì yêu cầu nhập lại cho đến khi thỏa mãn). Sau đó, tính tổng các số liên tiếp từ 1 đến n 10. Viết chương trình kiểm tra một số nguyên dương n nhập vào từ bàn phím có phải là số nguyên tố hay không? 11. Viết chương trình kiểm tra một số nguyên dương bất kỳ nhập vào từ bàn phím có phải là số hoàn hảo hay không. Trong đó, số hoàn hảo là số bằng tổng tất cả các ước số của nó trừ chính nó. Chẳng hạn, 6 = 1 + 2 + 3 BÀI THỰC HÀNH Ngôn ngữ lập trình C++ chương 3: Biểu thức Logic và các cấu trúc điều khiển 54/54 12. Viết chương trình tìm số nguyên dương nhỏ nhất thỏa mãn: 1 + 2 + … + n > 1000 13. Viết chương trình tính căn bậc hai của a với độ chính xác e = 0.00001 14. Viết chương trình tính sin(x) với độ chính xác e = 0.00001 theo công thức sau: sin(x) = x – x3/3! + x5/5! - … + (-1)nx2n+1/(2n + 1)!; BÀI THỰC HÀNH Ngôn ngữ lập trình C++ chương 3: Biểu thức Logic và các cấu trúc điều khiển 55/54 15. Viết chương trình giải bài toán cổ: “Vừa gà vừa chó, Bó lại cho tròn, Ba mươi sáu con, Một trăm chân chẵn”. Hỏi có bao nhiêu con mỗi loại? 16. Viết chương trình giải bài toán cổ: “Trăm trâu, trăm cỏ Trâu đứng ăn 5, Trâu nằm ăn 3, Trâu già 3 con ăn một bó”. Hỏi có bao nhiêu trâu mỗi loại? BÀI THỰC HÀNH

Các file đính kèm theo tài liệu này:

  • pdfchuong3c_2011_7177.pdf