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?
55 trang |
Chia sẻ: maiphuongtl | Lượt xem: 5793 | Lượt tải: 5
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:
- chuong3c_2011_7177.pdf