YOMEDIA
ADSENSE
Vòng Lặp Trong pascal
819
lượt xem 171
download
lượt xem 171
download
Download
Vui lòng tải xuống để xem tài liệu đầy đủ
Bình luận(0) Đăng nhập để gửi bình luận!
Nội dung Text: Vòng Lặp Trong pascal
- Vßng LÆp I. Vßng lÆp cã sè bíc lÆp c¸c ®Þnh Tr íc hÕt chóng ta xÐt vÝ dô sau : Gi¶ sö ta ph¶i viÕt ra mµn h×nh c¸c sè tõ 0 ®Õn 24, mçi sè chiÕm 1 dßng ViÖc nµy cã thÓ thùc hiÖn b»ng 25 lÖnh Writeln Writeln(0) Writeln(1) .......... Writeln(24) C¸ch viÕt nµy râ rµng lµ dµi dßng vµ tÎ nh¹t trong khi nã cã quy luËt Chóng ta cã thÓ thay thÕ b»ng lÖnh Writeln(I) trong ®ã I lµ mét biÕn nguyªn bÊt k× nhËn gi¸ trÞ tõ 0..24 FOR I:=0 TO 24 DO Writeln(I) Vßng lÆp nµy cho I ch¹y tõ 0 ®Õn 24 víi mçi gi¸ trÞ cña I, m¸y sÏ thùc hiÖn c«ng viÖc viÕt sau ch÷ DO (lµm), ë ®©y lµ Writeln(I) MÉu viÕt tæng qu¸t : FOR BiÕn_®iÒu_khiÓn:=Gi¸_trÞ_®Çu TO Gi¸_trÞ_cuèi DO Vµ ngîc l¹i ta cã mÉu : FOR BiÕn_®iÒu_khiÓn:=Gi¸_trÞ_®Çu DOWNTO Gi¸_trÞ_cuèi DO II. Vßng lÆp cã sè bíc lÆp kh«ng x¸c ®Þnh Cã 2 kiÓu vßng lÆp kh«ng x¸c ®Þnh REPEAT WHILE DO ; BEGIN UNTIL ; ; END; Trong lÖnh REPEAT ... UNTIL ... m¸y tÝnh sÏ lÆp ®i lÆp l¹i chu k× sau : thùc hiÖn cho ®Õn khi cã gi¸ trÞ TRUE. Gi÷a REPEAT vµ UNTIL kh«ng cÇn dïng BEGIN vµ END Cßn trong vßng lÆp WHILE ... DO m¸y tÝnh sÏ lÆp ®i lÆp l¹i chu k× sau : chõng nµo cã gi¸ trÞ TRUE th× ®i thùc hiÖn ®îc ®Æt gi÷a BEGIN vµ END C¶ hai vßng lÆp ®Òu cã sè lÇn lÆp kh«ng x¸c ®Þnh tr íc. CÇn ph¶i lu ý lµ trong khi thùc hiÖn lÆp, ta ph¶i cã mét lÖnh lµm thay ®æi mét biÕn trong biÓu 1
- thøc Boolean ®Ó thay ®æi gi¸ trÞ biÓu thøc nh»m dõng vßng lÆp l¹i v× nÕu kh«ng vßng lÆp sÏ ch¹y m·i kh«ng dõng VD : TÝnh A = 1 + 1/2 + 1/3 + ... + 1/N Dïng REPEAT vµ cho I ch¹y thuËn A:=0;I:=1; REPEAT A := A + 1/I; I := I + 1; UNTIL I>N; Writeln('Tæng = ',A:10:8); Dïng WHILE vµ cho I ch¹y ngîc A:=0;I:=N; WHILE I>0 DO BEGIN A := A + 1/I; I := I - 1; END; Bµi 1:{ NhËp sè nguyªn d¬ng N. Sau ®ã nhËp N sè nguyªn d¬ng. T×m sè lín nhÊt, nhá nhÊt vµ tÝnh trung b×nh cña c¸c phÇn tö} var i,a,n:integer;{Khai b¸o i,a,n kiÓu integer} max,min,tong:integer;{Khai b¸o max,min,tong kiÓu integer} begin write('N = ');readln(n);{NhËp N} min:=maxint;{G¸n min b»ng maxint} max:=0;tong:=0;{G¸n max vµ tæng b»ng 0} for i:=1 to n do{Cho i ch¹y tõ 1 ®Õn n} begin write('So thu ',i,' : ');readln(a);{§äc sè thø i vµo biÕn a} if min>a then min:=a;{NÕu min>a th× g¸n min b»ng a} if max
- Bµi 2: { N¨m nay con a tuæi, cha b tuæi. Dïng WHILE tÝnh xem sau mÊy n¨m n÷a hoÆc tr íc ®©y mÊy n¨m tuæi cha gÊp ®«i tuæi con H íng dÉn NÕu a*2=b th× ë hiÖn t¹i NÕu a*2b th× ë trong qu¸ khø} var a,b,so:integer;{a,b,so kiÓu integer} begin write('Nhap tuoi con, tuoi cha : ');readln(a,b);{NhËp tuæi con, tuæi cha} if a=b*2 then write('Hien tai tuoi cha gap doi con'){NÕu a=b th× ë hiÖn t¹i} else if a*2
- tich:longint;{tich kiÓu longint} begin write('A, B = ');readln(a,b);{§äc a,b} tich:=a*b;{G¸n tich b»ng a*b} while ab do{Trong khi ab th×} if a>b then a:=a-b else b:=b-a;{NÕu a>b th× g¸n a=a-b ngîc l¹i g¸n b=b-a} writeln('UCLN = ',a);{XuÊt UCLN (a hoÆc b)} writeln('BCNN = ',tich div b);{XuÊt BCNN} readln; end. Bµi 4: { Dïng REPEAT ... UNTIL in ra mµn h×nh b¶ng nh©n N (tõ Nx1 tíi Nx10)} var i,n:integer;{Khai b¸o i,n kiÓu integer} begin write('N = ');readln(n);{§äc N} i:=0;{G¸n i b»ng 0} repeat inc(i);{T¨ng i} writeln(n:2,' x ',i:2,' = ',n*i:3);{XuÊt n,i,n*i} until i=10; readln; end. Bµi 5:{ In ra mµn h×nh c¸c gi¸ trÞ sin, cos, tan cña c¸c gãc 0, 5, 10, 15 ... 90 H íng dÉn Dïng hµm sin(x) cos(x) nhng ph¶i ®æi sè ®é sang radian (X cã ®¬n vÞ lµ radian) b»ng CT Radian = pi*Sè ®é / 180 TÝnh tang dùa vµo CT tan=sin/cos nhng nhí tan90 kh«ng tån t¹i} const pi=3.14;{Khai b¸o h»ng pi=3.14} var i:integer;{i kiÓu integer} x:real;{x kiÓu real} begin for i:=0 to 18 do{Cho i ch¹y tõ 0 ®Õn 18 (i*5 t ¬ng øng sè ®é)} begin x:=pi*i*5/180;{§æi i*5 ®é sang x radian} write('Sin ',i*5:2,' = ',sin(x):0:5,' ');{XuÊt sin} write('Cos ',i*5:2,' = ',cos(x):0:5,' ');{XuÊt cos} if i18 then write('Tan ',i*5:2,' = ',sin(x)/cos(x):0:5){NÕu i18 th× xuÊt sin(x)/cos(x)} 4
- else write('Tan 90 khong ton tai');{Ngîc l¹i xuÊt Tan kh«ng tån t¹i} writeln; end; readln; end. Bµi 6: { BiÕt N! = 1x2x3x..xN In ra mµn h×nh giai thõa c¸c sè tõ 1 tíi 12 1! = 1 2! = 2 3! = 6 H íng dÉn Ph¶i dïng kiÓu longint ®Ó tÝnh v× sè rÊt lín } uses crt; var i,n:longint;{Khai b¸o i,n kiÓu longint} begin clrscr;{Xo¸ mµn h×nh} n:=1;{G¸n n b»ng 1} for i:=1 to 12 do{Cho i ch¹y tõ 1 ®Õn 12} begin n:=n*i;{G¸n n b»ng n*i} writeln(i,' ! = ',n);{XuÊt ra N} end; readln; end. Bµi 7: { NhËp sè nguyªn d¬ng N (NN j=1->N k=1->N : XuÊt i,j,k ChØnh hîp kh«ng lÆp : i=1->N j=1->N k=1->N : NÕu ijk th× xuÊt 5
- Tæ hîp i=1->N-2 j=i+1->N-1 k=j+1->N : XuÊt i,j,k} var i,j,k,n:byte;{i,j,k,n kiÓu byte} begin write('N = ');readln(n);{§äc N} writeln('Cac chinh hop lap :'); for i:=1 to n do{Cho i ch¹y tõ 1 ®Õn N} for j:=1 to n do{Cho j ch¹y tõ 1 ®Õn N} for k:=1 to n do{Cho k ch¹y tõ 1 ®Õn N} write(i,j,k,' '); readln; writeln('Cac chinh hop khong lap :'); for i:=1 to n do{Cho i ch¹y tõ 1 ®Õn N} for j:=1 to n do{Cho j ch¹y tõ 1 ®Õn N} for k:=1 to n do{Cho k ch¹y tõ 1 ®Õn N} if(ij)and(jk)and(ik)then write(i,j,k,' ');{NÕu ijk th× xuÊt míi xuÊt i,j,k} readln; writeln('Cac to hop :'); for i:=1 to n-2 do{Cho i ch¹y tõ 1 ®Õn N-2} for j:=i+1 to n-1 do{Cho j ch¹y tõ i+1 ®Õn N-1} for k:=j+1 to n do{Cho k ch¹y tõ j+1 ®Õn N} write(i,j,k,' '); readln; end. Bµi 8: { In ra mµn h×nh b¶ng cöu ch¬ng tõ 1->10 H íng dÉn Dïng hµm GOTOXY(x,y) ®Ó di chuyÓn tíi to¹ ®é cét x dßng y trªn mµn h×nh Ta chia chiÒu ngang mµn h×nh thµnh 5 cét, chiÒu däc mµn h×nh thµnh 2 hµng. Tõ hµng 2..11 ta in b¶ng 1,2,3,4,5. Tõ hµng 13..22 ta in b¶ng 6,7,8,9,10 Khi ta tíi hµng i x j th× to¹ ®é b¾t ®Çu sÏ lµ y = j+1 nÕu i=6 x = ((i-1)mod 5)*16+1;} uses crt; 6
- var i,j,x,y:byte;{i,j,x,y kiÓu byte} begin clrscr;{Xo¸ mµn h×nh} for i:=1 to 10 do{Cho i ch¹y tõ 1 ®Õn 10 (i lµ b¶ng)} for j:=1 to 10 do{Cho j ch¹y tõ 1 ®Õn 10} begin if i
- begin writeln('So trau dung : ',std);{XuÊt std} writeln('So trau nam : ',stn);{XuÊt stn} writeln('So trau gia : ',stg3*3);{XuÊt stg} writeln; end; readln; end. Bµi 10: { T×m tÊt c¶ c¸c sè cã 3 ch÷ sè sao cho abc = A^3 + B^3 + C^3} var a,b,c:byte;{a,b,c kiÓu byte} begin writeln('Cac so can tim la : '); for a:=1 to 9 do{Cho a ch¹y} for b:=0 to 9 do{Cho b ch¹y} for c:=0 to 9 do{Cho c ch¹y} if a*100+b*10+c=a*a*a+b*b*b+c*c*c then writeln(a,b,c);{NÕu §K tho¶ th× xuÊt a,b,c} readln; end. Bµi 11: { NhËp sè nguyªn N. a. In ra mµn h×nh N sè nguyªn d¬ng lÎ ®Çu tiªn lµ béi cña 3 b. In ra mµn h×nh sè nguyªn ch½n ®Çu tiªn chia hÕt cho 3 d 2, chia 5 d 4 c. In ra mµn h×nh c¸c sè chÝnh ph¬ng nhá h¬n hoÆc b»ng N*N H íng dÉn a. DÔ thÊy d·y lµ cÊp sè céng. Sè nguyªn ®Çu tiªn lµ 3, c«ng sai lµ 6 Sè nguyªn d¬ng lÎ thø i lµ béi cña 3 3+(i-1)*6 b. D·y lµ cÊp sè céng. Sè nguyªn ®Çu tiªn lµ 14, c«ng sai lµ 3*5*2=30. Sè thø i sÏ cã c«ng thøc 14+(i-1)*30; c. DÔ dµng nhËn ra ®ã lµ nh÷ng sè i*i(i
- writeln;writeln('Cau b'); for i:=1 to n do write(14+(i-1)*30:5);{Cho i ch¹y vµ in ra n phÇn tö theo CT ë thuËt to¸n} writeln;writeln('Cau c'); for i:=1 to n do write(i*i:5);{Cho i ch¹y vµ in ra n phÇn tö theo CT ë thuËt to¸n} readln; end. Bµi 12: { NhËp mét sè N kiÓu longint. a. In ra mµn h×nh sè ch÷ sè cña nã. b. TÝnh sè M b»ng c¸ch lÊy ngîc l¹i sè N VD : N = 1234 Cã 4 ch÷ sè M = 4321 H íng dÉn LÇn lît c¾t tõng ch÷ sè cña N tõ tr¸i qua N = N div 10. T¨ng sè ch÷ sè lªn 1 vµ kÕt hîp ch÷ sè ®ã vµo tr íc M} var n,m:longint;{N, M kiÓu longint} scs:byte;{scs kiÓu byte} begin write('N = ');readln(n);{§äc N} m:=0;scs:=0;{G¸n m vµ scs b»ng 0} while n>0 do{Trong khi n>0 th×} begin m:=m*10+n mod 10;{KÕt hîp ch÷ sè hµng ®¬n vÞ cña N vµo sau M} inc(scs);{T¨ng sè ch÷ sè lªn 1} n:=n div 10;{C¾t bá ch÷ sè hµng ®¬n vÞ cña N} end; writeln('So chu so : ',scs);{XuÊt sè ch÷ sè} writeln('M = ',m);{XuÊt M} readln; end. Bµi 13:{ NhËp chiÒu dµi, chiÒu réng cña mét hcn. H·y vÏ ra mµn h×nh VD : a=4 b=6 a. * * * * * * ****** 9
- ****** ****** b.* * * * * * ** ** * * * * * *} uses crt; var i,j,a,b:byte;{i,j,a,b kiÓu byte} begin clrscr;{Xo¸ mµn h×nh} write('A, B = ');readln(a,b);{§äc a,b} writeln('Cau a'); for i:=1 to a do{Cho a ch¹y tõ 1 ®Õn a} begin for j:=1 to b do write('* ');{In ra b kÝ tù '* '} writeln; end; writeln('Cau b'); for j:=1 to b do write('* ');writeln;{In ra b kÝ tù '* '} for i:=1 to a-2 do{Cho i ch¹y tõ 1 ®Õn a-2} begin write('* '); for j:=1 to b-2 do write(' ');{In ra b kÝ tù ' '} writeln('*'); end; for j:=1 to b do write('* ');{In ra b kÝ tù '* '} readln; end. Bµi 14: { NhËp ®é cao h cña mét tam gi¸c. In ra mµn h×nh c¸c tam gi¸c cã d¹ng * ***** * ** **** *** *** *** ***** **** ** ******* ***** * ******* * * h=5} 10
- uses crt; var i,j,h:byte;{i,j,h kiÓu byte} begin clrscr;{Xo¸ mµn h×nh} write('H = ');readln(h);{NhËp H} writeln('Cau a'); for i:=1 to h do{Cho i ch¹y tõ 1 ®Õn h} begin for j:=1 to i do write('*');{In ra i kÝ tù '*' cña dßng i} writeln; end; readln; writeln('Cau b'); for i:=h downto 1 do{Cho i ch¹y tõ h xuèng 1} begin for j:=1 to i do write('*');{In ra i kÝ tù '*' cña dßng i} writeln; end; readln; writeln('Cau c'); for i:=1 to h do{Cho i ch¹y tõ 1 ®Õn h} begin for j:=1 to h-i do write(' ');{In ra h-i kÝ tù ' '} for j:=1 to 2*i-1 do write('*');{In ra 2*i- 1 kÝ tù '*'} writeln; end; readln; end. Bµi 15: { T×m c¸c sè tù nhiªn nhá h¬n 1000 sao cho nã b»ng tæng c¸c íc cña nã (kh«ng kÓ chÝnh nã) H íng dÉn Cho i ch¹y tõ 2 ®Õn 1000 - TÝnh tæng c¸c íc cña i 11
- - NÕu tæng = i th× xuÊt i} var i,j,tong:integer;{i,j,tong kiÓu integer} begin writeln('Cac so can tim'); for i:=2 to 1000 do{Cho i ch¹y tõ 2 ®Õn 1000} begin tong:=0;{G¸n tong b»ng 0} for j:=1 to i div 2 do{Cho j ch¹y tõ 1 ®Õn i div 2} if i mod j=0 then tong:=tong+j;{NÕu i chia hÕt cho j th× céng j vµo tong} if tong=i then writeln(i);{NÕu tong=i th× xuÊt i} end; readln; end. Bµi 16: { NhËp sè N. KiÓm tra N xem nã cã ph¶i lµ sè nguyªn tè kh«ng H íng dÉn Cho i ch¹y tõ 2 ®Õn trunc(sqrt(n)). - NÕu trong lóc ch¹y N mod i=0 th× N kh«ng nguyªn tè - Ngîc l¹i N nguyªn tè} var i,n:integer;{i,n kiÓu integer} kq:boolean;{kq kiÓu boolean} begin write('N = ');readln(n);{§äc N} kq:=true;{G¸n kq b»ng true} for i:=2 to trunc(sqrt(n))do{Cho i ch¹y tõ 2 ®Õn trunc(sqrt(N))} if n mod i=0 then{NÕu n chia hÕt cho i th×} begin kq:=false;{G¸n kq=false} break;{BÎ g·y vßng lÆp b»ng lÖnh Break (kh«ng cho vßng lÆp ch¹y tiÕp} end; if kq then writeln('So nguyen to')else write('Khong la so nguyen to');{NÕu kq th× N lµ sè nguyªn tè ngîc l¹i th× kh«ng} readln; end. 12
- 13
ADSENSE
Thêm tài liệu vào bộ sưu tập có sẵn:
Báo xấu
LAVA
AANETWORK
TRỢ GIÚP
HỖ TRỢ KHÁCH HÀNG
Chịu trách nhiệm nội dung:
Nguyễn Công Hà - Giám đốc Công ty TNHH TÀI LIỆU TRỰC TUYẾN VI NA
LIÊN HỆ
Địa chỉ: P402, 54A Nơ Trang Long, Phường 14, Q.Bình Thạnh, TP.HCM
Hotline: 093 303 0098
Email: support@tailieu.vn