intTypePromotion=1
zunia.vn Tuyển sinh 2024 dành cho Gen-Z zunia.vn zunia.vn
ADSENSE

Vòng Lặp Trong pascal

Chia sẻ: Diemanh Diemanh | Ngày: | Loại File: DOC | Số trang:13

819
lượt xem
171
download
 
  Download Vui lòng tải xuống để xem tài liệu đầy đủ

Vòng Lặp Trong pascal

Chủ đề:
Lưu

Nội dung Text: Vòng Lặp Trong pascal

  1. 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
  2. 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
  3. 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
  4. 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
  5. 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
  6. 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
  7. 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
  8. 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
  9. 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
  10. ****** ****** 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
  11. 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
  12. - 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. 13
ADSENSE

CÓ THỂ BẠN MUỐN DOWNLOAD

 

Đồng bộ tài khoản
2=>2