Cấu trúc lệnh khối Thể hiện cấu trúc tuần tự Lệnh khối là dãy các câu lệnh được đặt trong cặp... Cấu trúc if, if … else - Luyện tập Lập chương trình tìm số nhỏ nhất trong ba số thực
Trang 1Chương 3:
Các cấu trúc lập trình trong
ngôn ngữ C
Ngô Văn Linh
Bộ môn Hệ thống thông tin
Viện Công nghệ thông tin và Truyền thông
Đại học Bách Khoa Hà Nội
Trang 2Nội dung chương này
3.1 Cấu trúc lệnh khối
3.2 Cấu trúc rẽ nhánh
3.2.1 Cấu trúc if, if … else
3.2.2 Cấu trúc lựa chọn switch
Trang 3Nội dung chương này
3.1 Cấu trúc lệnh khối
3.2 Cấu trúc rẽ nhánh
3.2.1 Cấu trúc if, if … else
3.2.2 Cấu trúc lựa chọn switch
Trang 43.1 Cấu trúc lệnh khối
Thể hiện cấu trúc tuần tự
Lệnh khối là dãy các câu lệnh được đặt trong cặp
Trang 5float r, cv, dt; // Khai bao 3 bien thuc
printf("\n Nhap vao ban kinh r = ");
scanf("%f",&r);
cv = 2*M_PI*r; // Tinh chu vi
dt = M_PI*r*r; // Tinh dien tich
printf("\nChu vi = %10.2f\nDien tich = %10.2f",cv, dt);
getch();
}
Trang 63.1 Cấu trúc lệnh khối (tiếp)
Trang 73.1 Cấu trúc lệnh khối - ví dụ
#include <conio.h>
#include <stdio.h>
void main()
//Noi dung cua ham main() cung
la mot khoi lenh
%d day la c ngoai”,c);
getch();
}// ket thuc khoi lenh cua ham main()
Trang 83.1 Cấu trúc lệnh khối - ví dụ (tiếp)
Kết quả:
Gia tri cua c = 10 day la c ngoai
Gia tri cua c = 10 day la c trong
Tang gia tri cua c them 10 don vi
Gia tri cua c = 20 day la c trong
Gia tri cua c = 10 day la c ngoai
Trang 9Nội dung chương này
3.1 Cấu trúc lệnh khối
3.2 Cấu trúc rẽ nhánh
3.2.1 Cấu trúc if, if … else
3.2.2 Cấu trúc lựa chọn switch
Trang 103.2 Cấu trúc rẽ nhánh
3.2.1 Cấu trúc if, if else
3.2.2 Cấu trúc lựa chọn switch
Trang 113.2.1 Cấu trúc if, if … else
Trang 123.2.1 Cấu trúc if, if … else (tiếp)
if(biểu thức điều kiện)
Trang 133.2.1 Cấu trúc if, if … else (tiếp)
}//ket thuc ham main()
Kết quả:
Nhap vao 2 gia tri a va b: 23 247
So lon nhat trong hai so 23 va 247
la 247
thực a và b :
Trang 143.2.1 Cấu trúc if, if … else - Luyện tập
Lập chương trình tìm số nhỏ nhất trong ba
số thực nhập vào từ bàn phím.
Viết chương trình nhập vào một số nguyên
từ bàn phím, nếu là số chẵn thì hiển thị "Ban vua nhap so chan", nếu là số lẻ thì hiển thị
"Ban vua nhap so le".
Nhập vào 3 số thực, kiểm tra xem nó có tạo thành 3 cạnh của tam giác không?
Trang 153.2.2 Cấu trúc lựa chọn switch
switch (bieu_thuc)
{
case gia_tri_1 : lenh_1; [break];
case gia_tri_2 : lenh_2; [break];
…
case gia_tri_n : lenh_n; [break];
[ default : lenh_n+1; [break];]
}
Trang 163.2.2 Cấu trúc lựa chọn switch (tiếp)
Giá trị của biểu thức kiểm tra (bieu_thuc)
phải là số nguyên:
Phải có kiểu dữ liệu là char, int, long.
Tương ứng các giá trị sau case (gia_tri_1,
gia_tri_2,…) cũng phải là số nguyên.
Trang 173.2.2 Cấu trúc lựa chọn switch (tiếp)
Trang 183.2.2 Cấu trúc lựa chọn switch (tiếp)
Trang 193.2.2 Cấu trúc lựa chọn switch (tiếp)
Trong ví dụ trên, khi chạy chương trình thì sẽ như thế nào?
Nếu ta bỏ break đi thì sao?
Trang 203.2.2 Cấu trúc lựa chọn switch (tiếp)
Kết quả khi chạy chương trình:
Trang 213.2.2 Cấu trúc lựa chọn switch (tiếp)
Nếu ta bỏ break đi:
Trang 223.2.2 Cấu trúc lựa chọn switch-Luyện tập
Trong một năm các tháng có 30 ngày là 4, 6,
9, 11 còn các tháng có 31 ngày là 1, 3, 5, 7,
8, 10, 12 Riêng tháng hai có thể có 28 hoặc
29 ngày.
Hãy viết chương trình nhập vào 1 tháng, sau
đó đưa ra kết luận tháng đó có bao nhiêu ngày.
Trang 233.2.2 Cấu trúc lựa chọn switch (tiếp)
break;
} getch();
return 0;
}
Trang 243.2.2 Cấu trúc lựa chọn switch (tiếp)
co 31 ngay ", thang);
break;
} getch();
return 0;
}
Trang 25Nội dung chương này
3.1 Cấu trúc lệnh khối
3.2 Cấu trúc rẽ nhánh
3.2.1 Cấu trúc if, if … else
3.2.2 Cấu trúc lựa chọn switch
Trang 263.3 Cấu trúc vòng lặp
3.3.1 Vòng lặp for
3.3.2 Vòng lặp while
Trang 27 bieu_thuc_1: Khởi tạo giá trị ban đầu cho vòng lặp
bieu_thuc_2: Điều kiện tiếp tục vòng lặp
bieu_thuc_3: Thực hiện bước tăng của vòng lặp
Chú ý các biểu thức 1, 2, 3 có thể có hoặc không
Trang 283.3.1 Vòng lặp for (tiếp)
Trang 29}
Trang 30}
Trang 32}
hoặc
do {
lenh;
} while (bieu_thuc);
Trang 333.3.2 Vòng lặp while (tiếp)
Trang 34 Các lenh sau do được thực hiện ít nhất 1 lần dù
bieu_thuc có giá trị như thế nào.
Trang 353.3.2 Vòng lặp while (tiếp)
Ví dụ: Nhập vào điểm của một sinh viên, nếu
người dùng nhập lại.
Nếu dùng lệnh if Chỉ kiểm tra được 1 lần
Không dùng for được vì chưa biết trước số lần
lặp.
Sử dụng vòng lặp while
Trang 36printf("Chuong trinh nhap diem sinh vien\n");
printf("Nhap diem (0<=diem<=10):");
scanf("%f",&diem);
while (diem < 0 || diem > 10)
{
printf("\nBan nhap khong dung!\n");
printf("Ban hay nhap lai (0<=diem<=10):");
Trang 37while (diem < 0 || diem > 10);
printf("\nDiem ban vua nhap la: %.2f", diem);
getch();
}
Trang 383.3.2 Vòng lặp while - kết quả (tiếp)
Trang 39Nội dung chương này
3.1 Cấu trúc lệnh khối
3.2 Cấu trúc rẽ nhánh
3.2.1 Cấu trúc if, if … else
3.2.2 Cấu trúc lựa chọn switch
Trang 403.4 Các lệnh thay đổi cấu trúc lập trình
continue
break
Trang 413.4 Các lệnh thay đổi cấu trúc lập trình
Đối với các lệnh lặp:
Thay đổi việc thực hiện lệnh trong vòng lặp
Trang 423.4 Các lệnh thay đổi cấu trúc lập trình (tiếp)
continue
Bỏ qua việc thực hiện các câu lệnh nằm sau lệnh
continue trong thân vòng lặp.
Chuyển sang thực hiện một vòng lặp mới
break
Thoát khỏi vòng lặp ngay cả khi biểu thức điều kiện của vòng lặp vẫn còn được thỏa mãn.
Trang 433.4 Các lệnh thay đổi cấu trúc lập trình (tiếp)
Trang 443.4 Các lệnh thay đổi cấu trúc lập trình (tiếp)
Ví dụ: Nhập vào 1 số nguyên Kết luận số đó
là số nguyên tố hay là hợp số?
Trang 453.4 Các lệnh thay đổi cấu trúc lập trình (tiếp)
printf("\nNhap gia tri N : "); scanf("%d", &N);
if (N<2) printf("\nSo %d khong la so nguyen to va
khong la hop so.", N);
Trang 46Bài tập
bậc hai: ax 2 + bx + c = 0 với a, b, c nhập vào từ bàn phím.
Bài 2: Viết chương trình nhập một số nguyên
n từ bàn phím và đưa ra n! (theo 3 cách)
Bài 3: Viết chương trình nhập một số nguyên dương n từ bàn phím, đưa ra tổng các số từ
1 đến n (theo 3 cách)
Trang 47Bài tập (tiếp)
Bài 4: Viết chương trình nhập một số nguyên dương n từ bàn phím, đưa ra tổng các số chẵn từ 1 đến n (theo 3 cách)
nguyên nhập từ bàn phím có phải là số nguyên tố hay không ?
Bài 6: Lập trình tính tổng
S = 1 + ½ + 1/3 + + 1/n
với n là số nguyên dương nhập từ bàn phím
Trang 48Bài tập (tiếp)
nguyên dương từ bàn phím và đưa ra ước số chung lớn nhất của chúng.
nguyên từ bàn phím và đưa ra bội số chung nhỏ nhất của chúng.