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

So sánh (tt)

31

int n = 10;

for (int i = 1; i <= n; i++)

 ;

• 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 i = 1;

while (1)

{

 ;

} int i = 1;

do

{

 ;

} while (1);

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.

32

int n = 100;

while (n < 10)

{

cout<

n++;

}

int n = 100;

do

{

cout<

n++;

}while (n < 10);Kỹ thuật lập trình cơ bản

GV: ThS. Trần Nguyễn Anh Chi 17

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ụ:

33

for (i = 1 ; i <= 10 ; i++ );

{

cout<

cout<<“\n”;

} int i = 1;

while(i <= 10);

{

cout<

i++;

cout<<“\n”;

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

Các file đính kèm theo tài liệu này:

  • pdfbai_giang_ky_thuat_lap_trinh_co_ban_chuong_2_cau_truc_dieu_k.pdf