Bài giảng Lập trình tính toán khoa học kỹ thuật - Buổi 3: Cấu trúc điều khiển - Lê Hoàng Sơn

Lập trình tính toán khoa học kỹ thuật 1

Buổi 3: Cấu trúc điều khiển

Nội dung chính

1 Cấu trúc rẽ nhánh

2 Cấu trúc lặp

3 Bài tập

pdf 20 trang phuongnguyen 8700
Bạn đang xem tài liệu "Bài giảng Lập trình tính toán khoa học kỹ thuật - Buổi 3: Cấu trúc điều khiển - Lê Hoàng Sơn", để tải tài liệu gốc về máy hãy click vào nút Download ở trên

Tóm tắt nội dung tài liệu: Bài giảng Lập trình tính toán khoa học kỹ thuật - Buổi 3: Cấu trúc điều khiển - Lê Hoàng Sơn

Bài giảng Lập trình tính toán khoa học kỹ thuật - Buổi 3: Cấu trúc điều khiển - Lê Hoàng Sơn
 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 
Lập trình tính toán khoa học kỹ thuật 1 
Nội dung chính 
 1 Cấu trúc rẽ nhánh 
 2 Cấu trúc lặp 
 3 Bài tập 
 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 
# include 
# include 
int main() { 
 int a, b; 
 printf("Nhap vao so a: "); 
 scanf("%d", &a); Nhập số nguyên a 
 printf("Nhap vao so b: "); 
 scanf("%d", &b); 
 if (a>b) { Nếu a lớn hơn b 
 printf("a lon hon b.\n"); 
 } 
 else if (a<b) { Nếu a nhỏ hơn b 
 printf("a nho hon b.\n"); 
 } 
 else printf("a bang b.\n"); 
 Nếu a bằng b 
 getch(); 
 return 0; 
} 
 4/18 Lê Hoàng Sơn 
 Cấu trúc switch 
 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 
 Ví dụ: In ra dấu * 
# include 
# include 
int main() { 
 int i; 
 clrscr(); Xóa màn hình 
 printf("Nhap vao so 1, 2 hoặc 3: "); 
 scanf("%d", &i); 
 switch(i) Xem xét các trường hợp của biến i 
 { 
 case 3: printf("***"); break; 
 Nếu i == 3 
 case 2: printf("**"); break; 
 case 1: printf("*"); break; 
 }; 
 printf("An phim bat ky de ket thuc!\n"); 
 getch(); 
 return 0; 
} 
 6/18 Lê Hoàng Sơn 
Nội dung chính 
 1 Cấu trúc rẽ nhánh 
 2 Cấu trúc lặp 
 3 Bài tập 
 7/18 Lê Hoàng Sơn 
 2. Cấu trúc lặp 
 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í dụ: In ma trận 2 x 3 
# include 
# include 
int main() { 
 int i, j; 
 clrscr(); 
 for(i = 1; i<=2; i++) Vòng for thứ nhất theo i 
 { 
 for(j = 1; j<=3; j++) 
 Vòng for thứ hai theo j 
 { 
 printf(“[%d,%d] ", i,j); In phần tử ma trận 
 } 
 printf(“\n”); Xuống dòng 
 } 
 getch(); 
 return 0; 
} 
 9/18 Lê Hoàng Sơn 
 2. Cấu trúc lặp 
 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 
 Ví dụ: Tính tổng số nguyên từ 1 đến n 
# include 
# include 
int main() { 
 int i = 0, n, tong = 0; Khởi tạo i 
 printf("Nhap vao so n: "); 
 scanf("%d", &n); 
 while (i++ < n) Kiểm tra nếu i<n, i++ hay ++i? 
 { 
 tong += i; Tính tổng 
 } 
 printf("Tong: %d", tong); In kết quả 
 getch(); 
 return 0; 
} 
 11/18 Lê Hoàng Sơn 
 2. Cấu trúc lặp 
 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 
 Ví dụ: Kiểm tra password 
# include 
# include 
# define PASSWORD 123456 Khởi tạo 
int main() { 
 int in; 
 do Thực hiện nhập mật khẩu 
 { 
 printf("Nhap vao password: "); 
 scanf("%d", &in); 
 } while (in != PASSWORD); Kiểm tra mật khẩu vừa nhập 
 printf(“\nBan da nhap dung mat khau”); 
 getch(); 
 return 0; 
} 
 13/18 Lê Hoàng Sơn 
 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 
 14/18 Lê Hoàng Sơn 
Câu hỏi thảo luận 
 15/18 Lê Hoàng Sơn 
Nội dung chính 
 1 Cấu trúc rẽ nhánh 
 2 Cấu trúc lặp 
 3 Bài tập 
 16/18 Lê Hoàng Sơn 
 Bài tập 
1. Nhập 2 số thực a, b từ bàn phím. Tìm và in ra 
 màn hình số lớn nhất và số bé nhất 
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 
 dãy số sau: 
 S = 1+1/2+1/3+1/4+...+1/n 
 17/18 Lê Hoàng Sơn 
 Thuật toán sắp xếp 
# include 
# include 
int main() 
{ 
 float max, min, tam; Khởi tạo 
 printf("Nhap vao so max, min: "); 
 scanf("%f%f", &max, &min); 
 if (max < min) Thực hiện đổi chỗ 
 { 
 tam = max; 
 max = min; 
 min = tam; 
 } 
 printf("Max = %5.3f Min = %5.3f", max, min); 
 getch(); 
 return 0; 
} 
 18/18 Lê Hoàng Sơn 
 SWITCH .. CASE (2) 
 switch (month) { 
 case 1: 
 case 3: 
 case 12: { 
 day = 30; 
 break; 
 } 
 case 4: 
 case 11: { 
 day = 31; 
 break; 
 } 
 default: { 
 day = 28; 
 } 
} 
 19/18 Lê Hoàng Sơn 
 Lê Hoàng Sơn 
 C l i c k to 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 

File đính kèm:

  • pdfbai_giang_lap_trinh_tinh_toan_khoa_hoc_ky_thuat_buoi_3_cau_t.pdf