Vous êtes sur la page 1sur 33

CHNG V CAC TOAN T IU KHIN

I. Toan t IF Cu phap: Dang 1: if (Biu thc iu kin) <cu lnh 1>; Dang 2: if (Biu thc iu kin) <cu lnh 1>; else <cu lnh 2>;

Chc nng: - Nu Biu thc iu kin co gia tr bng 1 th thc hin Cu lnh 1. - Ngc lai th thc hin Cu lnh 2 (Dang 2), hoc thc hin cac lnh sau if (Dang 1) V du: Giai phng trnh bc hai: #include "stdio.h" #include "math.h" void main() { int a,b,c; float x1,x2,del; clrscr();

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: - Hoan toan ging cac ngn ng lp trnh khac, th C cung cho phep s dung cac toan t if lng nhau. V du: if (a>b) if (b>c) z=b else z=c ...

- Mt dang khac cua kiu toan t if lng nhau: if (Biu thc iu kin 1) <cu lnh 1>; else if (biu thc iu kin 2) <cu lnh 2>; . . . else if (biu thc iu kin n-1) <cu lnh n-1>; else <cu lnh n>;

V du: Vit chng trnh nhp vao mt s t 1 n 7 va cho hiu th th trong tun. #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.

Toan t switch V y tng gn ging toan t Case .. Of cua Pascal. Toan t switch cho phep cn c vao gia tr cua mt biu thc nguyn chon mt trong nhiu cach nhay.

Cu phap: swith (Biu thc) { case n1: <Cac cu lnh>; case n2: <Cac cu lnh> . . case nk: <cac cu lnh> [default: <cac cu lnh>;] }

Trong o: - ni la cac s nguyn, hng ky t hoc biu thc hng, cac ni cn co cac gia tr khac nhau. - oan chng trnh t gia { va } chnh la thn cua switch. - default la mt thanh phn khng bt buc - Th t cua ni va default khng theo trt t nao ca. - S hoat ng cua switch tuy thuc vao gia tr cua biu thc.
- Khi biu thc co gia tr ni th nhay ti cu

- Ra khoi switch:
May se ra khoi switch khi gp lnh break hoc gp du ngoc ng cui cung (})cua switch. Co th dung lnh goto trong thn switch nhay n mt lnh ngoai thn switch Nu switch nm trong mt ham nao th co th s dung lnh return ra khoi ham o.

Chu y: Khi may nhay ti mt lnh nao th s hoat ng tip theo cua no se phu thuc vao cac lnh ng sau cu lnh nay.Tc la nu may nhay ti cu lnh co nhan case ni th no co th thc hin tt ca cac lnh sau o cho ti khi gp lnh break, goto hoc return.

V du: Vit lai chng trnh v du trn bng cach s dung 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;

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. Toan t goto va nhan

Nhan co cung dang nh tn bin va i lin sau no la du (:), nhan co th gan cho bt ky cu lnh nao trong chng trnh
V du: tt:clrscr(); /* tt la nhan cua cu lnh xoa man hnh clrscr()*/ Toan t goto co dang: goto nhan; Khi gp cu lnh nay may se nhay ti cu lnh co nhan vit sau t

Chu y: - Cu lnh goto va nhan cn nm trong mt ham. iu o noi ln rng: Toan t goto ch cho phep nhay t v tr nay sang v tr khac trong thn cua ham. Khng dung nhay t ham nay sang ham khac. - Khng cho phep dung toan t goto nhay t ngoai vao trong mt khi lnh, nhng iu ngc lai th co th thc hin c. IV. Toan t for Cu phap: for (biu thc 1; biu thc 2;

Chc nng: Cho thc hin cu lnh sau for vi s ln nh trc bi cac biu thc trong for. Trong o:

- Biu thc 1: La mt toan t gan


tao gia tr khi u cho bin iu khin. - Biu thc 2: La mt quan h logic biu th iu kin tip tuc chng trnh. - Biu thc 3: La mt toan t gan ung thay i gia tr cua bin

Chu y: Khi biu thc 2 vng mt th no lun lun c xem la ung. Trong trng hp nay vic ra khoi vong lp for cn c thc hin nh lnh break, goto hoc return. Trong du ngoc tron sau t khoa for gm ba phn phn cach nhau bi du ;. Trong mi phn khng nhng co th vit mt biu thc ma con co quyn c vit mt day biu thc phn cach nhau bi du phy (,). Khi o cac biu thc trong mi phn se c xac nh ln lt t trai sang phai. Tnh ung sai cua day biu thc

Bn

trong thn cua mt toan t for co th s dung cac toan t for khac. Tc la cac vong for lng nhau. Khi gp cu lnh break trong thn for, may se ra khoi toan t for su nht cha cu lnh nay Trong thn for co th s dung toan t goto nhay ra khoi vong for n mt v tr bt ky nao o. Cung co th dung return trong thn for tr v mt ham nao o.

V du 1: Nhp va Sp xp mang mt chiu theo chiu tng dn. #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<10;++i) for (j=i+1; j<10;++j) if (a[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: Tm gia tr m u tin cua mt ma trn #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: Vit chng trnh tm s ln nht va nho nht cua tng ct trong ma trn. #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<3;++i) { if (a[i][j]>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. Toan t while Cung ging nh for, toan t while dung xy dng vong lp, tuy nhin s ln lp khng xac nh trc. Cu phap: while (Biu thc iu kin) <Cu lnh> Chc nng: Cu lnh vn con c thc hin tc la vong lp c thc hin khi Biu thc iu kin con gia tr ung (gia tr khac 0), va Cu lnh khng c thc hin tc la ra khoi vong lp khi Biu thc iu kin co gia

Chu y: Trong du ngoc tron sau t khoa while khng nhng co th vit mt biu thc ma con co quyn c vit mt day biu thc phn cach nhau bi du phy (,). Tnh ung sai cua day biu thc c hiu la tnh ung sai cua biu thc cui cung trong day. Bn trong thn cua mt toan t while co th s dung cac toan t while khac. Tc la cac vong while lng nhau.

Trong thn while co th s dung toan t goto nhay ra khoi vong for n mt v tr bt ky nao o. Cung co th dung return trong thn while tr v mt ham nao o. V du: Vit chng trnh xet xem mt s nhp vao t ban phm co phai la s nguyn t khng

#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. Toan t do - while Ngc vi while la kim tra biu thc iu kin trc khi thc hin cu lnh, con do-while th thc hin cu lnh trc khi kim tra biu thc iu kin.

Cu phap: do <Cu lnh> while (Biu thc iu kin) Chc nng: Cu lnh vn con c thc hin tc la vong lp c thc hin khi Biu thc iu kin con gia tr sai (gia tr = 0), va Cu lnh khng c thc hin tc la ra khoi vong lp khi Biu thc iu kin co gia tr ngc lai. Co th hiu la: Biu thc iu kin trong while dung thc hin cu lnh, con Biu thc iu kin trong do-while

Vous aimerez peut-être aussi