1. Trang chủ
  2. » Công Nghệ Thông Tin

Bài tập Pascal - Nguyễn Thị Huê _ THPT Tân Yên II – Bắc Giang

20 14 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 20
Dung lượng 185,77 KB

Nội dung

Kiểm tra N có là số đẹp số hoàn hảo là số nguyên dương, đọc từ trái sang phải nó, chữ số đứng trước... Tính chu vi, diện tích, độ dài 3 đường cao..[r]

(1)NguyÔn ThÞ Huª _ THPT T©n Yªn II – B¾c Giang Bµi tËp Pascal Mét sè ®o¹n lÖnh cÇn nhí 1.1 Cấu trúc chương trình Pascal { PhÇn khai b¸o} - Khai báo tên chương trình: - Khai b¸o th­ viªn: program <tên chương trình>; uses <tªn th­ viÖn>; - Khai b¸o h»ng: const <tªn h»ng> : <gi¸ trÞ cña h»ng>; - Khai b¸o biÕn: var <tªn biÕn> : <kiÓu d÷ liÖu>; - Khai báo chương trình con: Thñ tôc: procedure <tªn thñ tôc> [ (danh s¸ch c¸c tham sè) ] <phÇn khai b¸o c¸c biÕn dïng thñ tôc>; Begin <d·y c¸c lÖnh> End; Hµm : function <tªn hµm> [(danh s¸ch tham sè)] : <kiÓu d÷ liÖu> <phÇn khai b¸o c¸c biÕn dïng thñ tôc>; Begin <d·y c¸c lÖnh> <tªn hµm> : <biÓu thøc>: { tr¶ l¹i gi¸ trÞ cho hµm} End; {Phần thân chương trình} Begin <D·y c¸c lÖnh>; End 1.2 Mét sè kiÓu d÷ liÖu hay dïng - KiÓu nguyªn: Byte: Từ đến 255 Integer: Từ -215 đến 215 -1 -1Lop11.com (2) victory.no.bad@gmail.com Word: Từ đến 216 -1 Longint: Từ -231 đến 231 - - KiÓu thùc: Real: có giá trị tuyệt đối nằm phạm vi từ 10-38 đến 1038 - KiÓu kÝ tù: Char: 256 kÝ tù bé m· ASCII - KiÓu logic: Boolean: cã gi¸ trÞ True hoÆc False 1.3 Thủ tục chuẩn vào/ đơn giản - NhËp d÷ liÖu tõ bµn phÝm: Read (<danh s¸ch c¸c biÕn vµo>); HoÆc Readln (<danh s¸ch c¸c biÕn vµo>); - XuÊt d÷ liÖu mµn h×nh: Write (<danh s¸ch kÕt qu¶ ra>); HoÆc Writeln (<danh s¸ch kÕt qu¶ ra>); 1.4 C©u lÖnh rÏ nh¸nh - If - then: D¹ng thiÕu: If <®iÒu kiÖn> then <c©u lÖnh>; Dạng đủ: If <®iÒu kiÖn> then <c©u lÖnh 1> else <c©u lÖnh 2>; - Case - of: Case <biÓu thøc> of <h»ng 1> : <lÖnh 1>; <h»ng 2> : <lÖnh 2>; … <h»ng n - 1> : <lÖnh n - 1>; Else <h»ng n> : <lÖnh n>; End; -2Lop11.com (3) NguyÔn ThÞ Huª _ THPT T©n Yªn II – B¾c Giang 1.5 C©u lÖnh lÆp - Lặp với số lần biết trước: Dạng tiến: For <biến đếm> := <giá trị đầu> to <giá tri cuối> <c©u lÖnh>; Dạng lùi: For <biến đếm> := <giá trị cuối> downto <giá trị đầu> <c©u lÖnh>; - Lặp với số lần chưa biết trước: While <®iÒu kiÖn> <lÖnh>; Repeat <c©u lÖnh>; Until <®iÒu kiÖn>; 1.6 M¶ng chiÒu - Khai b¸o Trùc tiÕp: Var <tªn biÕn m¶ng> : array [ kiÓu chØ sè ] of <kiÓu phÇn tö>; Gi¸n tiÕp: Type <tªn kiÓu m¶ng> = array [ kiÓu chØ sè ] of <kiÓu phÇn tö>; Var <tªn biÕn m¶ng> : <tªn kiÓu m¶ng>; - NhËp m¶ng For i:= to n Begin Write (‘ nhap A[‘,i,’] = ’); Readln (a[i]); End; - In m¶ng For i:= to n Write (A[i] : 5); 1.7 M¶ng chiÒu - Khai b¸o Trùc tiÕp: -3Lop11.com (4) victory.no.bad@gmail.com Var <tªn biÕn m¶ng> : array [ kiÓu chØ sè hµng, kiÓu chØ sè cét] of <kiÓu phÇn tö>; Gi¸n tiÕp: Type <tªn kiÓu m¶ng> = array [ kiÓu chØ sè hµng, kiÓu chØ sè cét] of <kiÓu phÇn tö>; Var <tªn biÕn m¶ng> : <tªn kiÓu m¶ng>; - NhËp m¶ng For i:= to n For j:=1 to m Begin Write (‘ nhap A[’,i,’,’,j,’] = ’); Readln (a[i,j]); End; - In m¶ng For i:= to n Begin For j:=1 to m Write (A[i,j]:5 ); Readln; End; 1.8 X©u - Khai b¸o Var <tên biến xâu> : String [ <độ dài lớn xâu> ]; - NhËp x©u Write (‘ nhap vao xau: ‘); readln ( <tªn x©u>); - In x©u Write (‘xau: ‘, <tªn x©u>); Mét sè thuËt to¸n c¬ b¶n 2.1 Kiểm tra N có là số chẵn (tương tự số lẻ) If N mod 2=0 then write (‘N la so chan’); -4Lop11.com (5) NguyÔn ThÞ Huª _ THPT T©n Yªn II – B¾c Giang 2.2 Kiểm tra N có phải là số chính phương (số chính phương là số bình phương số nguyên dương) If Sqr(Round(Sqrt(N)))= N then write(‘N la so chinh phuong’); 2.3 Kiểm tra N có là số nguyên tố (số nguyên tố là số nguyên dương có ước nguyên dương là và chính nó) i := 2; m := Round ( Sqrt (N)); { i vµ m khai b¸o kiÓu nguyªn} While (i<=m) and (N mod i <> 0) i := i + 1; If i>m then Write (‘ N la so nguyen to’); 2.4 Kiểm tra N có là số hoàn hảo (số hoàn hảo là số nguyên dương có tổng c¸c ­íc trõ nã b»ng chÝnh nã) S := 0; { S khai b¸o cïng kiÓu víi N} For i := to N - If N mod i = then S := S + i ; If S = N write (‘ N la so hoan hao’); 2.5 Kiểm tra N có là số đẹp (số hoàn hảo là số nguyên dương, đọc từ trái sang phải nó, chữ số đứng trước <= chữ số đướng sau) {BiÕn kt khai b¸o kiÓu logic} Str (N, S); { S khai b¸o kiÓu x©u} Kt := True; While i := 1; (kt = true) and (i < length(S)) Begin If S[i+1] < S[i] then kt := False; I := i+1; End; If kt write (‘ N la so dep’); -5Lop11.com (6) victory.no.bad@gmail.com Bµi tËp 3.1 Bµi tËp h×nh häc Bài 1: Cho tam giác có độ dài cạnh là a, b, c Tính chu vi, diện tích, độ dài đường cao Kiểm tra xem tam giác đó là vuông, hay cân? uses crt; var a,b,c, cv:integer; p, dt: real; begin clrscr; write(' nhap dai canh:'); readln(a,b,c); if (a+b<c) or (a+c<b) or (b+c<a) then write(' nhap kich thuoc canh sai') else begin cv := a+b+c; writeln(' chu vi tam giac: ',cv); p:=cv/2; dt:= sqrt(p*(p-a)*(p-b)*(p-c)); writeln('dien tich tam giac: ',dt:6:2); if (a*a+b*b=c*c) or (b*b+c*c=a*a) or (c*c+a*a=b*b) then begin writeln(' day la tam giac vuong'); if (a>b) and (a>c) then begin writeln('do dai duong cao thu nhat: ',b); writeln('do dai duong cao thu hai: ',c); writeln('do dai duong cao thu ba: ',dt/a:6:2); end; if (b>a) and (b>c) then -6Lop11.com (7) NguyÔn ThÞ Huª _ THPT T©n Yªn II – B¾c Giang begin writeln('do dai duong cao thu nhat: ',a); writeln('do dai duong cao thu hai: ',c); writeln('do dai duong cao thu ba: ',dt/b:6:2); end; if (c>b) and (c>a) then begin writeln('do dai duong cao thu nhat: ',a); writeln('do dai duong cao thu hai: ',b); writeln('do dai duong cao thu ba: ',dt/c:6:2); end; end else begin if (a=b) and (b=c) and (a=c) then writeln('day la tam giac deu') else if (a=b) or (b=c) or (a=c) then writeln('day la tam giac can'); writeln('do dai duong cao thu nhat: ',dt/b:6:2); writeln('do dai duong cao thu hai: ',dt/c:6:2); writeln('do dai duong cao thu ba: ',dt/a:6:2); end; end; readln; -7Lop11.com (8) victory.no.bad@gmail.com end Bài 2: Cho điểm A(xa,ya), B(xb,yb), C(xc,yc), D(xd,yd) Cho biết vị trí tương đối D tam giác ABC var ax, bx, cx, dx, ay, by, cy, dy:real; a,b,c:real; p, p1, p2, p3:real; s, s1, s2, s3: real; d1, d2, d3: real; begin writeln('nhap toa cho cac diem:'); write('diem A:'); readln(ax,ay); write('diem B:'); readln(bx,by); write('diem C:'); readln(cx,cy); write('diem D:'); readln(dx,dy); a:=sqrt(sqr(bx-ax)+sqr(by-ay)); {AB} b:=sqrt(sqr(bx-cx)+sqr(by-cy)); {BC} c:=sqrt(sqr(ax-cx)+sqr(ay-cy)); {CA} p:=(a+b+c)/2; s:=sqrt(p*(p-a)*(p-b)*(p-c)); d1:=sqrt(sqr(ax-dx)+sqr(ay-dy)); {AD} d2:= sqrt(sqr(bx-dx)+sqr(by-dy)); {BD} d3:= sqrt(sqr(cx-dx)+sqr(cy-dy)); {CD} p1:=(c+d1+d3)/2; { ACD } p2:=(a+d1+d2)/2; { ABD } p3:=(b+d2+d3)/2; { BCD } s1:= sqrt(p1*(p1-d1)*(p1-d3)*(p1-c)); -8Lop11.com (9) NguyÔn ThÞ Huª _ THPT T©n Yªn II – B¾c Giang s2:= sqrt(p2*(p2-d1)*(p2-d2)*(p2-a)); s3:= sqrt(p3*(p3-d2)*(p3-d3)*(p3-b)); if abs(s-s1-s2-s3)<0.001 then write('D thuoc tgiac ABC') else if abs(s1)<0.001 then write('D nam tren AC') else if abs(s2)<0.001 then write('D nam tren AB') else if abs(s3)<0.001 then write('D nam tren BC') else write('D nam ngoai tgiac ABC'); readln; end Bµi 3: 3.2 Bµi tËp vÒ sè nguyªn Bài 1: Nhập vào số nguyên dương a và b Tính và in màn hình: tổng, hiệu, tích, thương a/b và UCLN(a,b) Uses crt; Var a,b, tong, hieu, tich, ucln: integer; Thuong: real; Begin Clrscr; Write (‘nhap a va b: ‘); readln (a,b); Writeln (‘Tong‘,a,‘+’,b,’=’,a + b); Writeln (‘Hieu‘,a,‘-’,b,’=’,a - b); Writeln (‘Tich‘, a,‘*’,b ,’=’,a * b); Writeln (‘Thuong‘,a,‘/’,b ,’=’, a/b:5:2); While a<>b -9Lop11.com (10) victory.no.bad@gmail.com If a>b then a := a-b Else b:=b-a; Writeln (‘UCLN(‘,a,‘va’,b,’)=’, a ); Readln; End Bài 2: Giải phương trình trùng phương: ax4 + bx2+c = uses crt; var a,b,c:integer; d,t,t1,t2:real; begin clrscr; writeln('he so a,b,c:'); readln(a,b,c); if (a=0) then writeln('nhap lai') else begin {dat t=x*x} d:=b*b-4*a*c; if d<0 then write('PT vo ng') else if d=0 then begin t:=-b/(2*a); if t>0 then begin writeln('PT co 2ng:'); writeln('x1=',-sqrt(t):6:2); writeln('x2=',sqrt(t):6:2); end else if t=0 then writeln('PT co ng nhat x=0') - 10 Lop11.com (11) NguyÔn ThÞ Huª _ THPT T©n Yªn II – B¾c Giang else writeln('Pt vo ng'); end else {d>0} begin t1:=(-b-sqrt(d))/(2*a); t2:=(-b+sqrt(d))/(2*a); if (t1<0) and (t2<0) then write('Pt vo ng'); if (t1=0) and (t2=0) then write('Pt co ng x=0'); if (t1>0) and (t2>0) then begin writeln('PT co ngh:'); write('x1=',-sqrt(t1):6:2,'x2=',sqrt(t1):6:2); write('x3=',-sqrt(t2):6:2,'x2=',sqrt(t2):6:2); end; if (t1>0) and (t2<0) then begin writeln('PT co ng:'); write('x1=',-sqrt(t1):6:2,'x2=',sqrt(t1):6:2); end; if (t1<0) and (t2>0) then begin writeln('PT co ng:'); write('x1=',sqrt(t2):6:2,'x2=',sqrt(t2):6:2); end; end; end; readln; end Bài 3: Giải hệ phương trình: - 11 Lop11.com (12) victory.no.bad@gmail.com a1x+b1 y=c1  a x+b y=c uses crt; var a1, b1, c1, a2, b2, c2:integer; d, dx, dy:real; begin clrscr; writeln('nhap cac he so a1,b1,c1:'); readln(a1,b1,c1); writeln('nhap cac he so a2,b2,c2:'); readln(a2,b2,c2); d:=a1*b2-a2*b1; dx:=c1*b2-c2*b1; dy:=a1*c2-a2*c1; if (d=0) and ((dx<>0) or (dy<>0)) then writeln('HPT vo ng') else if (d=0) and (dx=0) and (dy=0) then writeln('HPT co vo so ng') else begin writeln('HPT co ng:'); writeln('x=',dx/d:3:2,'y=',dy/d:3:2); end; readln; end Bµi 4: NhËp vµo sè nguyªn KiÓm tra: + N chia hÕt cho kh«ng? + N bao nhiªu ch÷ sè? + Tæng c¸c ch÷ sè cña N? - 12 Lop11.com (13) NguyÔn ThÞ Huª _ THPT T©n Yªn II – B¾c Giang + Số đảo ngược N? uses crt; var n,m,t:word; s,s1:string; i:byte; begin clrscr; write(' N=');readln(n); if n mod 3=0 then writeln(n,' chia het cho 3') else writeln(n,' khong chia het cho 3'); m:=n; i:=0; t:=0; while m>0 begin i:=i+1; t:=t+m mod 10; m:=m div 10; end; writeln('so cac chu so cua ',n,':',i); writeln('tong cac chu so cua ',n,':',t); str(n,s); for i:=length(s) downto s1:=s1+s[i]; writeln(' so dao nguoc cua ',n,':',s1); readln; end Bµi 5: tÝnh tæng cña N ngh×n VND tõ lo¹i tiÒn: 1000 VND, 2000 VND, 5000 VND Lập trình tất các phương án uses crt; var i,j,k,n,d: integer; begin clrscr; - 13 Lop11.com (14) victory.no.bad@gmail.com write('so tien (don vi la nghin VND): '); readln(n); d:=0; for i:=1 to n for j:=1 to n div for k:=0 to n div if n=i+j*2+k*5 then begin d:=d+1; writeln('phuong an thu ',d,' :'); write(n,'000 VND = ',i,'*1000 + ',j,'*2000 +',k,'*5000'); writeln; end; readln; end Bµi 6: TÝnh gi¸ trÞ cña ®a thøc f(x) = anxn+ an-1xn-1+… a1x1+a0 var x,n,i:integer; f:real; a:array [0 100] of integer; begin write('x=');readln(x); write('n=');readln(n); writeln('nhap cac he so:'); for i:=0 to n begin write('A[',i,']=');readln(a[i]); end; f:=a[n]; for i:=n downto - 14 Lop11.com (15) NguyÔn ThÞ Huª _ THPT T©n Yªn II – B¾c Giang f:=f*x +a[i-1]; f:=f+a[0]; writeln('KQ: ',f:7:2); readln; end 3.3 Bµi tËp vÒ m¶ng Bµi 1: Thùc hiÖn c¸c phÐp tÝnh céng, trõ, nh©n ma trËn vu«ng (Chó ý: céng vµ trõ chØ thùc hiÖn ®­îc víi ma trËn cïng cì n x m Nh©n ma trËn thùc hiÖn víi ma trËn cã dang: Anxm x Bmxl) uses crt; var a,b,c,d: array[1 10,1 10] of integer; m,n,l,i,j,k:byte; begin clrscr; write('n=');readln(n); for i:=1 to n for j:=1 to n begin write('A[',i,',',j,']='); readln(a[i,j]); end; for i:=1 to n for j:=1 to n begin write('B[',i,',',j,']='); readln(b[i,j]); end; for i:=1 to n - 15 Lop11.com (16) victory.no.bad@gmail.com for j:=1 to n begin c[i,j]:=a[i,j]+b[i,j]; d[i,j]:=a[i,j]-b[i,j]; end; writeln('ma tran tong:'); for i:=1 to n begin for j:=1 to n write(c[i,j]:5); writeln;writeln; end; writeln('ma tran hieu:'); for i:=1 to n begin for j:=1 to n write(d[i,j]:5); writeln;writeln; end; for i:=1 to n for k:=1 to n begin c[i,k]:=0; for j:=1 to n c[i,k]:=c[i,k]+a[i,j]*b[j,k]; end; writeln('ma tran tich:'); for i:=1 to n begin for j:=1 to n write(c[i,j]:6); writeln;writeln; end; - 16 Lop11.com (17) NguyÔn ThÞ Huª _ THPT T©n Yªn II – B¾c Giang readln; end Bµi 2: NhËp m¶ng chiÒu cÊp nxn + Kiểm tra xem mảng có đối xứng qua đường chéo chính không + §­a phÇn tö lín nhÊt, nhá nhÊt cña m¶ng + Cã sè nµo lµ ­íc cña mäi sè kh«ng? Cã sè nµo lµ béi cña mäi sè kh«ng? uses crt; var a: array[1 10,1 10] of integer; n,i,j,max,min:byte; kt:boolean; begin clrscr; write('n=');readln(n); for i:=1 to n for j:=1 to n begin write('A[',i,',',j,']='); readln(a[i,j]); end; for i:=1 to n begin for j:= to n write(a[i,j]:5); writeln; end; kt:=true; i:=1; j:=1; while (i<=n) and (j<=n) and (kt=true) begin if a[i,j]<>a[j,i] then kt:=false; i:=i+1; - 17 Lop11.com (18) victory.no.bad@gmail.com j:=j+1; end; if kt=true then writeln('MT doi xung qua duong cheo chinh') else writeln('Mt ko doi xung qua duong cheo chinh'); max:=a[1,1]; min:=a[1,1]; for i:=1 to n for j:=1 to n begin if a[i,j]>max then max:=a[i,j]; if a[i,j]<min then min:=a[i,j]; end; writeln('GTLN cua mang:', max,' GTNN cua mang:',min); kt:=true; for i:=1 to n if a[i] mod <>0 then kt:=false; if kt=true then writeln(a[i],'la uoc cua moi so') else writeln('ko co so nao la uoc cua moi so'); kt:=true; for i:=1 to n if max mod a[i] <> then kt:=false; if kt=true then write(max,'la boi cua moi so') else writeln('ko co so nao la boi cua moi so'); readln; end Bµi 3: NhËp ma trËn vu«ng nxn + TÝnh tæng c¸c phÇn tö ë dßng vµ cét + TÝnh tæng c¸c phÇn tö trªn ®­êng chÐo chÝnh vµ ®­êng chÐo phô - 18 Lop11.com (19) NguyÔn ThÞ Huª _ THPT T©n Yªn II – B¾c Giang uses crt; var a: array[1 10,1 10] of integer; n,i,j,t1,t2:byte; begin clrscr; write('n=');readln(n); for i:=1 to n for j:=1 to n begin write('A[',i,',',j,']='); readln(a[i,j]); end; for i:=1 to n begin for j:=1 to n write(a[i,j]:5); writeln; writeln; end; t1:=0; for i:=1 to n t1:=t1+a[2,i]+a[i,2]; t1:=t1-a[2,2]; writeln('tong cac phan tu o dong cot 2: ',t1); t2:=0; for i:=1 to n t2:= t2 + a[i,i] + a[i,n-i+1]; if n mod <>0 then t2:=t2-a[(n div 2)+1,(n div 2)+1]; writeln('tong cac phan tu tren duong cheo chinh va duong cheo phu: ',t2); readln; end - 19 Lop11.com (20) victory.no.bad@gmail.com Bµi 4: NhËp vµo d·y sè nguyªn S¾p xÕp l¹i thµnh d·y kh«ng gi¶m uses crt; type mt=array[1 100] of integer; var a:mt; n,i,j,t,cv:byte; procedure hoan_vi(var x,y:integer); var tg:integer; begin tg:=x; x:=y; y:=tg; end; procedure nhap_day(var a:mt;n:integer); begin for i:=1 to n begin write('A[',i,']=');readln(a[i]); end; end; procedure in_day(var a:mt;n:integer); begin writeln; for i:=1 to n write(a[i]:7); end; procedure sx_lua_chon(var a:mt;n:integer); var m:integer; begin for i:=1 to n begin m:=1; - 20 Lop11.com (21)

Ngày đăng: 01/04/2021, 20:26

TỪ KHÓA LIÊN QUAN

w