Bài giảng Công nghệ thông tin - Chương V: Các toán tử điều khiển
Bạn đang xem 20 trang mẫu của tài liệu "Bài giảng Công nghệ thông tin - Chương V: Các toán tử điều khiển", để 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_cong_nghe_thong_tin_chuong_v_cac_toan_tu_dieu_khie.ppt
Nội dung text: Bài giảng Công nghệ thông tin - Chương V: Các toán tử điều khiển
- CHÆÅNG V CAÏC TOAÏN TÆÍ ÂIÃÖU KHIÃØN I. Toaïn tæí IF II. Cuï phaïp: III. Daûng 1: IV. if (Biãøu thæïc âiãöu kiãûn) V. ; VI. Daûng 2: VII. if (Biãøu thæïc âiãöu kiãûn) VIII. ; IX. else X. ;
- Chæïc nàng: - Nãúu Biãøu thæïc âiãöu kiãûn coï giaï trë bàòng 1 thç thæûc hiãûn Cáu lãûnh 1. - Ngæåüc laûi thç thæûc hiãûn Cáu lãûnh 2 (Daûng 2), hoàûc thæûc hiãûn caïc lãûnh sau if (Daûng 1) Vê duû: Giaíi phæång trçnh báûc hai: #include "stdio.h" #include "math.h" void main() { int a,b,c; float x1,x2,del; clrscr(); printf("\nNhap he so a = "); scanf("%d",&a);
- printf("\nNhap he so b = "); scanf("%d",&b); printf("\nNhap he so c = "); scanf("%d",&c); del=pow(b,2)-4*a*c; if (del >= 0) { printf("Phuong trinh co nghiem"); x1=(b-sqrt(del))/2*a; x2=(b+sqrt(del))/2*a; printf("\n x1 = %6.2f",x1); printf("\n x2 = %6.2f",x2); } else printf("\n Phuong trinh vo nghiem"); getch(); }
- Chuï yï: - Hoaìn toaìn giäúng caïc ngän ngæî láûp trçnh khaïc, thç C cuîng cho pheïp sæí duûng caïc toaïn tæí if läöng nhau. Vê duû: if (a>b) if (b>c) z = b else z = c
- - Mäüt daûng khaïc cuía kiãøu toaïn tæí if läöng nhau: if (Biãøu thæïc âiãöu kiãûn 1) ; else if (biãøu thæïc âiãöu kiãûn 2) ; . . . else if (biãøu thæïc âiãöu kiãûn n-1) ; else ;
- Vê duû: Viãút chæång trçnh nháûp vaìo mäüt säú tæì 1 âãún 7 vaì cho hiãøu thë thæ trong tuáön. #include "stdio.h" void main() { int t; clrscr(); printf("Nhap so thu tu cua ngay trong tuan t = "); scanf("%d",&t); if (t==1) printf("\nNgay chu nhat"); else if (t==2)
- printf("\nNgay thu hai"); else if (t==3) printf("\nNgay thu ba"); else if (t==4) printf("\nNgay thu tu"); else if (t==5) printf("\nNgay thu nam"); else if (t==6) printf("\nNgay thu sau"); else printf("\nNgay thu bay"); getch(); }
- II. Toaïn tæí switch Vãö yï tæåíng gáön giäúng toaïn tæí Case Of cuía Pascal. Toaïn tæí switch cho pheïp càn cæï vaìo giaï trë cuía mäüt biãøu thæïc nguyãn âãø choün mäüt trong nhiãøu caïch nhaíy.
- Cuï phaïp: swith (Biãøu thæïc) { case n1: ; case n2: . . case nk: [default: ;] }
- Trong âoï: - ni laì caïc säú nguyãn, hàòng kyï tæû hoàûc biãøu thæïc hàòng, caïc ni cáön coï caïc giaï trë khaïc nhau. - Âoaûn chæång trçnh âàût giæîa { vaì } chênh laì thán cuía switch. - default laì mäüt thaình pháön khäng bàõt buäüc - Thæï tæû cuía ni vaì default khäng theo tráût tæû naìo caí. - Sæû hoaût âäüng cuía switch tuyì thuäüc vaìo giaï trë cuía biãøu thæïc. - Khi biãøu thæïc coï giaï trë ni thç nhaíy tåïi cáu lãûnh ni - Khi biãøu thæïc khaïc caïc giaï trë ni thç nhaíy âãún cáu lãûnh coï nhaîn default (nãúu coï), hoàûc ra khoíi switch.
- - Ra khoíi switch: Maïy seî ra khoíi switch khi gàûp lãûnh break hoàûc gàûp dáúu ngoàûc âäúng cuäúi cuìng (})cuía switch. Coï thãø duìng lãûnh goto trong thán switch âãø nhaíy âãún mäüt lãûnh ngoaìi thán switch Nãúu switch nàòm trong mäüt haìm naìo thç coï thãø sæí duûng lãûnh return âãø ra khoíi haìm âoï. Chuï yï: Khi maïy nhaíy tåïi mäüt lãûnh naìo thç sæû hoaût âäüng tiãúp theo cuía noï seî phuû thuäüc vaìo caïc lãûnh âæïng sau cáu lãûnh naìy.Tæïc laì nãúu maïy nhaíy tåïi cáu lãûnh coï nhaîn case ni thç noï coï thãø thæûc hiãûn táút caí caïc lãûnh sau âoï cho tåïi khi gàûp lãûnh break, goto hoàûc return.
- Vê duû: Viãút laûi chæång trçnh åí vê duû trãn bàòng caïch sæí duûng switch. #include "stdio.h" void main() { int ch,t; tt: clrscr(); printf("Nhap so thu tu cua ngay trong tuan t = "); scanf("%d",&t); switch (t) { case 1:printf("\nNgay chu nhat"); break; case 2:printf("\nNgay thu hai"); break; case 3:printf("\nNgay thu ba");
- break; case 4:printf("\nNgay thu tu"); break; case 5:printf("\nNgay thu nam"); break; case 6:printf("\nNgay thu sau"); break; case 7:printf("\nNgay thu bay"); break; default:printf("\nNhap lai"); getch(); goto tt; } printf("\nTiep tuc khong 1/0 ch = "); scanf("%d",&ch); if (ch==1) goto tt; }
- III. Toaïn tæí goto vaì nhaîn 1. Nhaîn coï cuìng daûng nhæ tãn biãún vaì âi liãön sau noï laì dáúu (:), nhaîn coï thãø gaïn cho báút kyì cáu lãûnh naìo trong chæång trçnh Vê duû: tt:clrscr(); /* tt laì nhaîn cuía cáu lãûnh xoaï maìn hçnh clrscr()*/ 1. Toaïn tæí goto coï daûng: goto nhaîn; Khi gàûp cáu lãûnh naìy maîy seî nhaíy tåïi cáu lãûnh co nhaîn viãút sau tæì khoaï goto
- Chuï yï: - Cáu lãûnh goto vaì nhaîn cáön nàòm trong mäüt haìm. Âiãöu âoï noïi lãn ràòng: Toaïn tæí goto chè cho pheïp nhaíy tæì vë trê naìy sang vë trê khaïc trong thán cuía haìm. Khäng duìng nhaíy tæì haìm naìy sang haìm khaïc. - Khäng cho pheïp duìng toaïn tæí goto âãø nhaíy tæì ngoaìi vaìo trong mäüt khäúi lãûnh, nhæng âiãöu ngæåüc laûi thç coï thãø thæûc hiãûn âæåüc. IV. Toaïn tæí for Cuï phaïp: for (biãøu thæïc 1; biãøu thæïc 2; biãøu thæïc 3)
- Chæïc nàng: Cho thæûc hiãûn cáu lãûnh sau for våïi säú láön âënh træåïc båíi caïc biãøu thæïc trong for. Trong âoï: - Biãøu thæïc 1: Laì mäüt toaïn tæí gaïn âãø taûo giaï trë khåíi âáöu cho biãún âiãöu khiãøn. - Biãøu thæïc 2: Laì mäüt quan hãû logic biãøu thë âiãöu kiãûn âãø tiãúp tuûc chæång trçnh. - Biãøu thæïc 3: Laì mäüt toaïn tæí gaïn âuìng âãø thay âäøi giaï trë cuía biãún âiãöu khiãøn - Trong ba Biãøu thæïc trong ngoàûc for coï thãø thiãøu khäng âuí ba hoàûc nhiãöu hån ba biãøu thæïc
- Chuï yï: ØKhi biãøu thæïc 2 vàõng màût thç noï luän luän âæåüc xem laì âuïng. Trong træåìng håüp naìy viãûc ra khoíi voìng làûp for cáön âæåüc thæûc hiãûn nhåì lãûnh break, goto hoàûc return. ØTrong dáúu ngoàûc troìn sau tæì khoaï for gäöm ba pháön phán caïch nhau båíi dáúu ;. Trong mäùi pháön khäng nhæîng coï thãø viãút mäüt biãøu thæïc maì coìn coï quyãön âæåüc viãút mäüt daîy biãøu thæïc phán caïch nhau båíi dáúu pháøy (,). Khi âoï caïc biãøu thæïc trong mäùi pháön seî âæåüc xaïc âënh láön læåüt tæì traïi sang phaíi. Tênh âuïng sai cuía daîy biãøu thæïc trong pháön thæï hai âæåüc hiãøu laì tênh âuïng sai cuía biãøu thæïc cuäúi cuìng trong daîy naìy.
- Ø Bãn trong thán cuía mäüt toaïn tæí for coï thãø sæí duûng caïc toaïn tæí for khaïc. Tæïc laì caïc voìng for läöng nhau. Ø Khi gàûp cáu lãûnh break trong thán for, maïy seî ra khoíi toaïn tæí for sáu nháút chæïa cáu lãûnh naìy Ø Trong thán for coï thãø sæí duûng toaïn tæí goto âãø nhaïy ra khoíi voìng for âãún mäüt vë trê báút kyì naìo âoï. Cuîng coï thãø duìng return trong thán for âãø tråí vãö mäüt haìm naìo âoï.
- Vê duû 1: Nháûp vaì Sàõp xãúp maíng mäüt chiãöu theo chiãöu tàng dáön. #include "stdio.h" main() { int i,j,temp; int a[10]; clrscr(); for (i=0;i<10;++i) { printf("a[%d] ",i); scanf("%d",&a[i]); }
- for (i=0;i a[j]) { temp = a[i]; a[i] = a[j]; a[j] = temp; } for (i=0;i<10;++i) printf("%d ",a[i]); getch(); return 0; }
- Vê duû 2: Tçm giaï trë ám âáöu tiãn cuía mäüt ma tráûn #include "stdio.h" main() { int i,j,temp; int a[3][3]; clrscr(); for (i=0;i<3;++i) for (j=0;j<3;++j) { printf("a[%d,%d] ",i,j);
- scanf("%d",&temp); a[i][j]=temp; } for (i=0;i<3;++i) { for (j=0; j<3;++j) printf(" %10d",a[i][j]); printf("\n"); } for (i=0;i<3;++i) for (j=0; j<3;++j) if (a[i][j]<0) goto timthay; printf("\n Ma tran khong co phan tu am"); goto kethuc;
- timthay: printf("So am dau tien trong ma tran la %d",a[i][j]); kethuc: ; getch(); return 0; }
- Vê duû 3: Viãút chæång trçnh tçm säú låïn nháút vaì nhoí nháút cuía tæìng cäüt trong ma tráûn. #include "stdio.h" main() { int i,j,max,min,temp; int a[4][4]; clrscr(); for (i=0;i<4;++i) for (j=0;j<4;++j) { printf("a[%d,%d] ",i,j);
- scanf("%d",&temp); a[i][j]=temp; } for (i=0;i<3;++i) { for (j=0; j<3;++j) printf(" %10d",a[i][j]); printf("\n"); } for (j=0;j<3;++j) { max=min=a[0][j];
- for (i=0; i max) max=a[i][j]; if (a[i][j]<min) min=a[i][j]; } printf("\n Cot %d \n Max = %d \nMin = %d",i,max,min); } getch(); return 0; }
- VI. Toaïn tæí while Cuîng giäúng nhæ for, toaïn tæí while duìng âãø xáy dæûng voìng làûp, tuy nhiãn säú láön làûp khäng xaïc âënh træåïc. Cuï phaïp: while (Biãøu thæïc âiãöu kiãûn) Chæïc nàng: Cáu lãûnh váøn coìn âæåüc thæûc hiãûn tæïc laì voìng làûp âæåüc thæûc hiãn khi Biãøu thæïc âiãöu kiãûn coìn giaï trë âuïng (giaï trë khaïc 0), vaì Cáu lãûnh khäng âæåüc thæûc hiãûn tæïc laì ra khoíi voìng làûp khi Biãøu thæïc âiãöu kiãûn coï giaï trë ngæåüc laûi.
- Chuï yï: ØTrong dáúu ngoàûc troìn sau tæì khoaï while khäng nhæîng coï thãø viãút mäüt biãøu thæïc maì coìn coï quyãön âæåüc viãút mäüt daîy biãøu thæïc phán caïch nhau båíi dáúu pháøy (,). Tênh âuïng sai cuía daîy biãøu thæïc âæåüc hiãøu laì tênh âuïng sai cuía biãøu thæïc cuäúi cuìng trong daîy. ØBãn trong thán cuía mäüt toaïn tæí while coï thãø sæí duûng caïc toaïn tæí while khaïc. Tæïc laì caïc voìng while läöng nhau. Ø Khi gàûp cáu lãûnh break trong thán while, maïy seî ra khoíi toaïn tæí while sáu nháút chæïa cáu lãûnh naìy
- Ø Trong thán while coï thãø sæí duûng toaïn tæí goto âãø nhaïy ra khoíi voìng for âãún mäüt vë trê báút kyì naìo âoï. Cuîng coï thãø duìng return trong thán while âãø tråí vãö mäüt haìm naìo âoï. Vê duû: Viãút chæång trçnh xeït xem mäüt säú nháûp vaìo tæì ban phêm coï phaíi laì säú nguyãn täú khäng
- #include "stdio.h" main() { int i,j,n; clrscr(); printf("Nhap mot so bat ky n = "); scanf("%d",&n); i=2; while (n%i<>0 && i<n-1) i=i+1; if (i=n-1) printf("\n %d Chinh la so nguyen to",n);
- else printf("\n %d Chinh la hop so",n); getch(); return 0; } VI. Toaïn tæí do - while Ngæåüc våïi while laì kiãøm tra biãøu thæïc âiãöu kiãûn træåïc khi thæûc hiãûn cáu lãûnh, coìn do-while thç thæûc hiãûn cáu lãûnh træåïc khi kiãøm tra biãøu thæïc âiãöu kiãûn.
- Cuï phaïp: do while (Biãøu thæïc âiãöu kiãûn) Chæïc nàng: Cáu lãûnh váøn coìn âæåüc thæûc hiãûn tæïc laì voìng làûp âæåüc thæûc hiãn khi Biãøu thæïc âiãöu kiãûn coìn giaï trë sai (giaï trë = 0), vaì Cáu lãûnh khäng âæåüc thæûc hiãûn tæïc laì ra khoíi voìng làûp khi Biãøu thæïc âiãöu kiãûn coï giaï trë ngæåüc laûi. Coï thãø hiãøu laì: Biãøu thæïc âiãöu kiãûn trong while duìng âãø thæûc hiãûn cáu lãûnh, coìn Biãøu thæïc âiãöu kiãûn trong do-while duìng âãø thoaït khoíi voìng làûp.