Cấu trúc lựa chọn Cho phép lựa chọn một trong nhiều trường hợp... Cấu trúc lựa chọn Lưu ý − Biểu thức trong switch phải có kết quả là giá trị kiểu số nguyên int, char, long, ….. Cấu t
Trang 1Chương 5:
Cấu trúc điều khiển
Trang 3THĐC - Văn Thị Thiên Trang - 2010
Trang 41 Cấu trúc rẽ nhánh
Dạng không đầy đủ
Ý nghĩa
− Nếu <bt đkiện> đúng
Thực hiện <công việc> Thoát
− Nếu <bt đkiện> sai
Trang 5THĐC - Văn Thị Thiên Trang - 2010
Trang 7THĐC - Văn Thị Thiên Trang - 2010
Trang 9THĐC - Văn Thị Thiên Trang - 2010
3. Viết chương trình giải pt bậc nhất ax+b=0
4. Viết chương trình giải pt bậc hai ax2+bx+c=0
Trang 11THĐC - Văn Thị Thiên Trang - 2010
11
2 Cấu trúc lựa chọn
Cho phép lựa chọn một trong nhiều trường hợp
Trang 122 Cấu trúc lựa chọn
Lưu ý
− Biểu thức trong switch() phải có kết quả là giá trị kiểu số nguyên (int, char, long, …)
− Các giá trị sau case phải là kiểu số nguyên
− Không bắt buộc phải có default
Trang 13THĐC - Văn Thị Thiên Trang - 2010
13
2 Cấu trúc lựa chọn
Cho biết số ngày của tháng bất kỳ
Trang 142 Cấu trúc lựa chọn
Ý NGHĨA CÂU LỆNH
Nếu biểu thức nguyên có giá trị bằng nhãn n i
− nhảy đến thực hiện các lệnh của nhãn đó
Nếu không bằng
− nhảy đến thực hiện các lệnh trong thành phần tùy chọn default
Ra khỏi toán tử switch khi
− gặp câu lệnh break
− hoặc gặp dấu “}” của câu lệnh switch
Chú ý, khi nhảy tới nhãn ni, nếu kết thúc dãy lệnh
trong nhãn này không có câu lệnh break thì sẽ tiếp tục thực hiện các lệnh trong nhãn n
Trang 15THĐC - Văn Thị Thiên Trang - 2010
Trang 16Cấu trúc lặp
Vòng lặp for
Vòng lặp while
vòn lặp do while
Trang 17THĐC - Văn Thị Thiên Trang - 2010
− Thực hiện công việc lặp đi lặp lại nhiều lần
− <biểu thức 2>: Biểu thức điều kiện
for( biểu thức 1; biểu thức 2; biểu thức 3;)
<công việc >
Trang 18− Nếu giá trị của biểu thức 2 sai
Thoát khỏi for
− Nếu giá trị của biểu thức 2
đúng Thực hiện <công
việc>
Bắt đầu
Tính giá trị biểu thức 1
Biểu thức 2 (bt điều kiện)
Công việc
Đúng
Kết thúc
Sai
Trang 19THĐC - Văn Thị Thiên Trang - 2010
19
3.1 Cấu trúc lặp - for
Một số lưu ý khi sử dụng câu lệnh for
thức con được phân biệt bởi dấu phẩy
Trang 203.1 Cấu trúc lặp - for
Nhận xét
− BT1 chỉ được tính một lần
− BT2, BT3 và khối lệnh trong thân lệnh for được lặp đi lặp lại nhiều lần
− Khi biểu thức 2 vắng mặt thì nó được xem là đúng
− Có thể sử dụng các lệnh for lồng nhau
Câu lệnh sau làm gì ?
for(;;){}
Trang 21THĐC - Văn Thị Thiên Trang - 2010
Trang 22printf(“Nhap n:”); scanf(“%d”, &n);
//tính tổng n số nguyên đầu tiên
for(int i=1; i<=n; i++)
S=S+i;
printf(“Tong cac so tu 1 den %d =%d”,n,S);
//tính xn
printf(“Nhap x:”); scanf(“%d”, &x);
for(i=1; i<=n; i++)
//tính S=-1+2-3+….+(-1)n.n
int tam=1;
for(i=1;i<=n; i++) {
tam=tam*(-1);
S=S+tam*i;
} printf(“Tong la: %d”, S); getch();
}
Trang 23THĐC - Văn Thị Thiên Trang - 2010
23
3.2 Cấu trúc lặp - while
Lặp lại một công việc cho đến khi điều kiện sai
Cú pháp
Vòng lặp dừng khi điều kiện sai
Khối lệnh thực hiện công việc có thể rỗng, có thể
làm thay đổi điều kiện.
while( Biểu thức điều kiện )
Trang 24Kiểm tra n có phải số nguyên tố không?
Kiểm tra n có phải số chính phương không?
Trang 25THĐC - Văn Thị Thiên Trang - 2010
printf(“%3d”, i);
i+=1; //hoặc i++; hoặc i=i+1;
}
Trang 26Ví dụ minh họa
Kiểm tra n là số nguyên tố?
− n là số nguyên tố n chỉ chia hết cho 1 và chính nó
Nếu n chia hết cho mộtt số trong [2…n-1] thì n không phải là số NT
− Hoặc n là số NT n chỉ có 2 ước
Nếu n có nhiều hơn 2 ước thì n không phải là số NT
Trang 27THĐC - Văn Thị Thiên Trang - 2010
Trang 28− n là số nguyên tố n chỉ chia hết cho 1 và chính nó
Nếu n chia hết cho một số trong [2…n-1] thì n không phải là số NT
Trang 29THĐC - Văn Thị Thiên Trang - 2010
Lặp một công việc nào đó khi điều kiện còn đúng
− Lệnh do…while thực hiện công việc
ít nhất 1 lần
− Vòng lặp dừng lại khi điều kiện sai
− Khối lệnh thực hiện công việc có thể rỗng,
có thể làm thay đổi điều kiện
do
<Công việc>
while ( Biểu thức điều kiện );
Trang 303.3 Cấu trúc lặp – do while
So sánh các vòng lặp
− for, while
− do while
Viết chương trình thực hiện
1. Nhập số nguyên n, nếu n<0 thì yêu cầu nhập lại
2. In dãy số từ 1 n
3. Tính tổng n số nguyên đầu tiên
4. Đổi số thập phân sang dạng nhị phân
Trang 31THĐC - Văn Thị Thiên Trang - 2010
Trang 32Lưu ý
Các cấu trúc điều khiển có thể sử dụng kết hợp với nhau
for kết hợp if, while kết hợp if
Nhiều vòng for lồng nhau, while lồng nhau…
Trang 33THĐC - Văn Thị Thiên Trang - 2010
33
Một số lệnh đặc biệt
Lệnh break thường được sử dụng kết hợp lệnh lặp
Lệnh break dùng để thoát khỏi vòng lặp
Nếu có nhiều lệnh lặp lồng nhau thì lệnh break chỉ thoát vòng lặp trực tiếp chứa nó
Lệnh break cũng dùng để thoát khỏi lệnh switch … case
Trang 35THĐC - Văn Thị Thiên Trang - 2010
35
Bài kiểm tra
Nhập số nguyên 10<=n <=100, nếu nhập sai thì yêu cầu nhập lại
Tính tích các số chia hết cho 5 trong phạm vi từ 1 n
Hiển thị các số chẵn trong phạm vi từ 1 n