Buổi 3: Cấu trúc điều khiển
Giảng viên: TS. Lê Hoàng Sơn
lehoangson@hus.edu.vn
1
Lập trình tính toán khoa học kỹ thuật
Nội dung chính
Cấu trúc rẽ nhánh
1
Cấu trúc lặp
2
Bài tập
3
2/18 Lê Hoàng Sơn
1. Cấu trúc rẽ nhánh
Cú pháp If tổng quát: If (biểu thức A) { Các lệnh; } else If (biểu thức B) { Các lệnh; } else { Các lệnh; }
Trong C cho phép sử dụng các cấu trúc if lồng nhau để giải quyết bài toán
3/18 Lê Hoàng Sơn
Ví dụ: So sánh hai số a và b
Nhập số nguyên a
Nếu a lớn hơn b
Nếu a nhỏ hơn b
Nếu a bằng b
# include 4/18 Lê Hoàng Sơn Cú pháp switch tổng quát:
switch (biểu thức)
{
case A: các lệnh;
break;
case B: các lệnh;
break;
case C: các lệnh;
break;
}; Nếu biểu thúc (toán học, logic) nhận giá trị nào thì sẽ thực hiện các lệnh tương ứng 5/18 Lê Hoàng Sơn Xóa màn hình Xem xét các trường hợp của biến i Nếu i == 3 # include 6/18 Lê Hoàng Sơn 1 2 3 7/18 Lê Hoàng Sơn Cú pháp for tổng quát:
for (đk khởi tạo; đk dừng; thay đổi giá trị biến)
{
Các lệnh;
} Điều kiện khởi tạo chỉ được thực hiện đúng một lần duy nhất
Khi nào gặp điều kiện dừng thì mới thoát khỏi vòng for. Nếu không thì thay đổi giá trị biến Có thể dùng cấu trúc các vòng for lồng nhau
Muốn thoát khỏi vòng lặp không qua điều kiện dừng, phải dùng lệnh break, goto hoặc return 8/18 Lê Hoàng Sơn Vòng for thứ nhất theo i Vòng for thứ hai theo j In phần tử ma trận Xuống dòng 9/18 Lê Hoàng Sơn Cú pháp while tổng quát:
while (biểu thức)
{
Các lệnh;
} Dùng cú pháp này khi không biết trước số vòng lặp
Nếu biểu thức nhận giá trị true thì thực hiện lệnh; còn ngược lại thì thoát ra ngoài luôn. Sau khi thực hiện lệnh lại kiểm tra lại giá trị của biểu thức.
Ta có thể dùng câu lệnh break để thoát khỏi vòng lặp theo ý muốn 10/18 Lê Hoàng Sơn Khởi tạo i Kiểm tra nếu i Tính tổng In kết quả # include 11/18 Lê Hoàng Sơn Cú pháp do .. while tổng quát:
do
{
Các lệnh;
} while (biểu thức); Dùng cú pháp này khi không biết trước số vòng lặp
Thực hiện lệnh trước
Nếu biểu thức nhận giá trị true thì chạy tiếp các lệnh. Ngược lại, thoát ra ngoài luôn. Ta có thể dùng câu lệnh break để thoát khỏi vòng lặp theo ý muốn 12/18 Lê Hoàng Sơn Khởi tạo Thực hiện nhập mật khẩu Kiểm tra mật khẩu vừa nhập # include 13/18 Lê Hoàng Sơn 14/18 Lê Hoàng Sơn 15/18 Lê Hoàng Sơn 1 2 3 16/18 Lê Hoàng Sơn 1. Nhập 2 số thực a, b từ bàn phím. Tìm và in ra 2. Viết chương trình nhập vào tháng, in ra tháng đó có bao nhiêu ngày 3. Viết chương trình tính n!. Với n nhập từ bàn phím
4. Viết chương trình nhập vào N số nguyên, đếm xem có bao nhiêu số âm, bao nhiêu số dương và
bao nhiêu số không 5. Viết chương trình tính tổng của n số đầu tiên của S = 1+1/2+1/3+1/4+...+1/n 17/18 Lê Hoàng Sơn Khởi tạo Thực hiện đổi chỗ 18/18 Lê Hoàng Sơn day = 30;
break; day = 31;
break; day = 28; case 1:
case 3:
case 12: {
}
case 4:
case 11: {
}
default: {
} switch (month) {
} 19/18 Lê Hoàng Sơn Lê Hoàng SơnCấu trúc switch
Ví dụ: In ra dấu *
Nội dung chính
Cấu trúc rẽ nhánh
Cấu trúc lặp
Bài tập
2. Cấu trúc lặp
Ví dụ: In ma trận 2 x 3
# include
2. Cấu trúc lặp
Ví dụ: Tính tổng số nguyên từ 1 đến n
2. Cấu trúc lặp
Ví dụ: Kiểm tra password
Tóm tắt bài học
Cấu trúc rẽ nhánh: if và switch
Cấu trúc lặp
for
while
do .. while
Câu hỏi thảo luận
Nội dung chính
Cấu trúc rẽ nhánh
Cấu trúc lặp
Bài tập
Bài tập
màn hình số lớn nhất và số bé nhất
dãy số sau:
Thuật toán sắp xếp
# include
SWITCH .. CASE (2)
C l i c k t o e d i t c o m p a n y s l o g a n .
Lập trình tính toán khoa học kỹ thuật