Bài giảng Kĩ thuật lập trình cơ bản - Chương 2: Cấu trúc điều khiển - Trần Nguyễn Anh Chi
Bạn đang xem 20 trang mẫu của tài liệu "Bài giảng Kĩ thuật lập trình cơ bản - Chương 2: Cấu trúc điều khiển - Trần Nguyễn Anh Chi", để tải tài liệu gốc về máy bạn click vào nút DOWNLOAD ở trên
Tài liệu đính kèm:
- bai_giang_ki_thuat_lap_trinh_co_ban_chuong_2_cau_truc_dieu_k.pdf
Nội dung text: Bài giảng Kĩ thuật lập trình cơ bản - Chương 2: Cấu trúc điều khiển - Trần Nguyễn Anh Chi
- Kỹ thuật lập trình cơ bản Chương 2: Cấu trúc điều khiển Trường Cao đẳng Công nghệ Thông Tin Khoa Công nghệ Thông Tin CHƯƠNG 2 CẤU TRÚC ĐIỀU KHIỂN PHẦN 1: CẤU TRÚC ĐIỀU KIỆN và RẼ NHÁNH GV: ThS. TRẦN NGUYỄN ANH CHI TpHCM, 02/2011 Câu lệnh điều kiện IF Câu lệnh IF thiếu (chỉ xét trường hợp ĐÚNG) Biểu thức Đúng điều kiện Lệnh 1 Lệnh n 2 GV: ThS. Trần Nguyễn Anh Chi 1
- Kỹ thuật lập trình cơ bản Chương 2: Cấu trúc điều khiển Câu lệnh điều kiện IF (tt) Cú pháp: if(biểu thức điều kiện) if(biểu thức điều kiện) ; { ; Ví dụ 1: void main() } { int x, y; cout >x>>y; if(x >= y) cout >x>>y; if(x >= y) { cout<<“Gia tri cua x lon hon y“; x = x – y; cout<<“Gia tri x moi: “<<x; } } 4 GV: ThS. Trần Nguyễn Anh Chi 2
- Kỹ thuật lập trình cơ bản Chương 2: Cấu trúc điều khiển Câu lệnh điều kiện IF (tt) Câu lệnh IF đủ (xét trường hợp ĐÚNG và SAI) Sai Biểu thức Đúng điều kiện Lệnh 1’ Lệnh 1 Lệnh n’ Lệnh n 5 Câu lệnh điều kiện IF (tt) Cú pháp: if(biểu thức điều kiện) if(biểu thức điều kiện) ; { else ; ; } else { ; } 6 GV: ThS. Trần Nguyễn Anh Chi 3
- Kỹ thuật lập trình cơ bản Chương 2: Cấu trúc điều khiển Câu lệnh điều kiện IF (tt) Ví dụ 1: void main() { int x, y; cout >x>>y; if(x >= y) cout >x>>y; if(x >= y) { cout<<“Gia tri cua x lon hon y“; x = x – y; cout<<“Gia tri x moi: “<<x; } else //x < y { cout<<“Gia tri cua y lon hon x“; y = y – x; cout<<“Gia tri y moi: “<<y; } } 8 GV: ThS. Trần Nguyễn Anh Chi 4
- Kỹ thuật lập trình cơ bản Chương 2: Cấu trúc điều khiển Câu lệnh điều kiện IF (tt) Một số lưu ý: • Không được thêm ; sau điều kiện của if. • Câu lệnh if có thể lồng nhau và else sẽ tương ứng với if gần nó nhất. Ví dụ: if (a != 0) if (b > 0) cout 0”; else cout 0) cout 0”; else cout 0) cout = 0 { if (delta == 0) cout 0 cout<<“PT co 2 nghiem phan biet”; } 10 GV: ThS. Trần Nguyễn Anh Chi 5
- Kỹ thuật lập trình cơ bản Chương 2: Cấu trúc điều khiển Câu lệnh SWITCH Đ = S Đ = S 11 Câu lệnh SWITCH (tt) Cú pháp: switch (biểu thức) case n1: ; break ; case n2: ; break ; case nk: ; break ; [default: ; ] 12 GV: ThS. Trần Nguyễn Anh Chi 6
- Kỹ thuật lập trình cơ bản Chương 2: Cấu trúc điều khiển Câu lệnh SWITCH (tt) void main() Ví dụ 1: { int n; cout >n; switch(n) { case 1: cout<<“Mot”; break; case 2: cout<<“Hai”; break; default: cout<<“Ba”; } } 13 Câu lệnh SWITCH (tt) Một số lưu ý: • ni là các hằng số nguyên hoặc ký tự • Các giá trị trong mỗi trường hợp phải khác nhau • switch sẽ nhảy đến case tương ứng và thực hiện đến khi nào gặp break hoặc cuối switch sẽ kết thúc. Ví dụ: 14 GV: ThS. Trần Nguyễn Anh Chi 7
- Kỹ thuật lập trình cơ bản Chương 2: Cấu trúc điều khiển Câu lệnh SWITCH (tt) switch(n) { case 1: cout<<“Mot”; case 2: cout<<“Hai”; case 3: cout<<“Ba”; } switch(n) { case 1: cout<<“Mot”; break; case 2: cout<<“Hai”; break; case 3: cout<<“Ba”; } 15 Trường Cao đẳng Công nghệ Thông Tin Khoa Công nghệ Thông Tin CHƯƠNG 2 CẤU TRÚC ĐIỀU KHIỂN PHẦN 2: CẤU TRÚC LẶP GV: ThS. TRẦN NGUYỄN ANH CHI TpHCM, 02/2011 GV: ThS. Trần Nguyễn Anh Chi 8
- Kỹ thuật lập trình cơ bản Chương 2: Cấu trúc điều khiển Đặt vấn đề Ví dụ . Viết chương trình xuất các số từ 1 đến 10 Sử dụng 10 câu lệnh cout . Viết chương trình xuất các số từ 1 đến 1000 Sử dụng 1000 câu lệnh cout !!! Giải pháp . Sử dụng cấu trúc lặp để lặp lại một hành động trong khi còn thỏa một điều kiện nào đó. . Có 3 câu lệnh lặp: for, while, do while 17 Câu lệnh FOR Cú pháp for( ; ; ) Ví dụ 1: Xuất câu “Hello!” 10 lần, Bước buoc Đk Xuất mỗi lần trên 1 dòng 1 1 buoc 10? Hello void main() 2 2 buoc 10? Hello { 3 3 buoc 10? Hello int buoc; 4 4 buoc 10? Hello for(buoc=1 ; buoc<=10 ; buoc++) 5 5 buoc 10? Hello cout<<“Hello“<<endl; 6 6 buoc 10? Hello } 7 7 buoc 10? Hello Biểu thức Biểu thức Bước 8 8 buoc 10? Hello khởi đầu điều kiện nhảy 9 9 buoc 10? Hello 10 10 buoc 10? Hello 11 buoc 10? 18 GV: ThS. Trần Nguyễn Anh Chi 9
- Kỹ thuật lập trình cơ bản Chương 2: Cấu trúc điều khiển Câu lệnh FOR (tt) Sơ đồ Khởi gán Sai Đúng (Biểu thức ĐK = 0) (Biểu thức ĐK 0) Kiểm tra biểu thức điều kiện Thực hiện (các) lệnh trong vòng lặp Tăng/Giảm chỉ số lặp (bước nhảy) 19 Câu lệnh FOR (tt) Ví dụ 2: Tính tổng S(n) = 1+2+3+ +n, n>0 void main() Ví dụ: n = 5 { int s=0, i; Bước i Đk s cout >n; for(i=1 ; i<=n ; i++) s=s+i; cout<<“Tong = “<<s; } 20 GV: ThS. Trần Nguyễn Anh Chi 10
- Kỹ thuật lập trình cơ bản Chương 2: Cấu trúc điều khiển Câu lệnh FOR (tt) Ví dụ 3: Tính tổng S(n)=1+3+ +(2n-1), n>0 void main() Ví dụ: n = 3 { Bước i Đk s int s=0, i; for(i=1 ; i ; while( ) { ; ; } Ví dụ 1: Xuất câu “Hello!” 10 lần, mỗi lần trên 1 dòng 22 GV: ThS. Trần Nguyễn Anh Chi 11
- Kỹ thuật lập trình cơ bản Chương 2: Cấu trúc điều khiển Câu lệnh WHILE (tt) Biểu thức khởi đầu void main() { int buoc; buoc = 1; Biểu thức điều kiện while(buoc 0 void main() { Ví dụ: n = 5 int i; Bước i Đk s long s = ; i = 1; while(i<=n) { s=s*i; i++; } cout<<“Tich = “<<s; } 24 GV: ThS. Trần Nguyễn Anh Chi 12
- Kỹ thuật lập trình cơ bản Chương 2: Cấu trúc điều khiển Câu lệnh WHILE (tt) Ví dụ 3: Tính tích S(n) = 2*4* *2n, n>0 void main() { Ví dụ: n = 5 int i; Bước i Đk s long s = ; i = ; while(i=1 i++) { s = ; i = ; } cout ; do { ; ; } while( ); 26 GV: ThS. Trần Nguyễn Anh Chi 13
- Kỹ thuật lập trình cơ bản Chương 2: Cấu trúc điều khiển Câu lệnh DO WHILE (tt) Sơ đồ Khởi gán Lệnh 1 Tăng/Giảm chỉ số lặp Sai Biểu thức Đúng điều kiện 27 Câu lệnh DO WHILE (tt) Ví dụ : Xuất câu “Hello!” 10 lần, mỗi lần trên 1 dòng void main() { int buoc; buoc = 1; Biểu thức khởi đầu do { cout<<“Hello“<<endl; buoc++; Bước nhảy } while(buoc<10); } Biểu thức điều kiện 28 GV: ThS. Trần Nguyễn Anh Chi 14
- Kỹ thuật lập trình cơ bản Chương 2: Cấu trúc điều khiển Câu lệnh DO WHILE (tt) • Câu lệnh DO WHILE sẽ được thực hiện ít nhất 1 lần void main() { int n; do { cout >n; }while (n 100); } Thường sử dụng trong trường hợp nhập có kiểm tra. 29 So sánh FOR, WHILE và DO WHILE • Đều có thể lặp lại nhiều hành động. Ví dụ: n = 10; for (int i = 1; i <= n; i++) cout<<i<<endl; int i = 1; while (i <= n) { cout<<i<<endl; i++; } int i = 1; do { cout<<i<<endl; i++; } while (i <= n); 30 GV: ThS. Trần Nguyễn Anh Chi 15
- Kỹ thuật lập trình cơ bản Chương 2: Cấu trúc điều khiển So sánh (tt) • Số lần lặp thường được xác định ngay trong câu lệnh FOR, trong khi WHILE và DO WHILE có thể sử dụng điều kiện khác để thoát. int n = 10; for (int i = 1; i <= n; i++) ; int i = 1; while (1) { ; } int i = 1; do { ; } while (1); 31 So sánh (tt) • FOR, WHILE có thể không thực hiện lần nào. • DO WHILE sẽ được thực hiện ít nhất 1 lần. int n = 100; while (n < 10) { cout<<n<<“\t”; n++; } int n = 100; do { cout<<n<<“\t”; n++; }while (n < 10); 32 GV: ThS. Trần Nguyễn Anh Chi 16
- Kỹ thuật lập trình cơ bản Chương 2: Cấu trúc điều khiển Một số lưu ý • Không được thêm ; ngay sau lệnh FOR, WHILE Tương đương câu lệnh rỗng. Ví dụ: for (i = 1 ; i <= 10 ; i++ ); { cout<<i<<“\t”; cout<<“\n”; } int i = 1; while(i <= 10); { cout<<i<<“\t”; i++; cout<<“\n”; } 33 Một số lưu ý (tt) • Nếu có nhiều thành phần trong từng biểu thức của FOR, thì các thành phần cách nhau bằng dấu , Ví dụ: int i, j; for (i=1, j=2 ; i+j < 10 ; i++, j+=2) cout<<(i + j); 34 GV: ThS. Trần Nguyễn Anh Chi 17
- Kỹ thuật lập trình cơ bản Chương 2: Cấu trúc điều khiển Một số lưu ý (tt) • Nếu có nhiều thành phần trong biểu thức điều kiện của WHILE và DO WHILE, thì các điều kiện kết hợp với nhau bằng phép AND (&&) hoặc phép OR (||) Ví dụ: int i=1, j=1, n = 3, m = 5; while(i<=n && j<m) { cout<<i+j<<“\t”; i++; j++; } 35 Một số lưu ý (tt) • Có thể có các câu lệnh lặp lồng nhau. Ví dụ: int i, j, n = 3, m = 5; for (i = 1; i <= n; i++) { for (j = 1; j <= m; j++) { cout<<(i + j); cout<<“\n”; } } 36 GV: ThS. Trần Nguyễn Anh Chi 18
- Kỹ thuật lập trình cơ bản Chương 2: Cấu trúc điều khiển Một số lưu ý (tt) • Trong câu lệnh FOR có thể không có Ví dụ: int i; for (i = 1 ; i Ví dụ: int i; for (i = 1 ; i <= 10 ; i++ ) cout<<i<<endl; int i; for (i = 1 ; i <= 10 ; ) { cout<<i<<endl; i++; } 38 GV: ThS. Trần Nguyễn Anh Chi 19
- Kỹ thuật lập trình cơ bản Chương 2: Cấu trúc điều khiển Một số lưu ý (tt) • Trong câu lệnh lặp có thể không có Ví dụ: int i; for (i = 1; i 10) break; cout<<i<<endl; } 39 Một số lưu ý (tt) • Lệnh break làm kết thúc vòng lặp • Lệnh continue bỏ qua lần lặp hiện tại Ví dụ: for (i = 1; i <= 10; i++) { if (i % 2 == 0) break; cout<<i; } for (i = 1; i <= 10; i++) { if (i % 2 == 0) continue; cout<<i; } 40 GV: ThS. Trần Nguyễn Anh Chi 20
- Kỹ thuật lập trình cơ bản Chương 2: Cấu trúc điều khiển Một số lưu ý (tt) • Vòng lặp đi xuôi: giá trị bước nhảy tăng dần • Vòng lặp đi ngược: giá trị bước nhảy giảm dần Ví dụ: int i; for (i = 1 ; i = 1 ; i ) cout<<i<<“\t”; Xuất: 41 Một số lưu ý (tt) • Câu lệnh lặp có thể bị lặp vô tận (bị loop). Ví dụ 1: int i; for (i = 1 ; i <= 10 ; i ) cout<<i<<“\t”; Xuất: Ví dụ 2: int n = 1; while (n < 10) { cout<<n<<“\t”; } Xuất: 42 GV: ThS. Trần Nguyễn Anh Chi 21
- Kỹ thuật lập trình cơ bản Chương 2: Cấu trúc điều khiển Một số lưu ý (tt) • Câu lệnh lặp có thể không được thực hiện lần nào, nếu ngay từ lần đầu điều kiện lặp đã không thỏa. Ví dụ: int i, n=0; for (i = 1 ; i 10) { cout<<n<<endl; n ; } 43 GV: ThS. Trần Nguyễn Anh Chi 22