Ngôn ngữ lập trình pascal
bài tập ngôn ngữ lập trình pascal phần I: các bài tập làm quen cấu trúc điều khiển, cấu trúc lặp phần II: các bài tập mảng phần III: các bài tập xâu phần IV: các bài tập bản ghi phần V: các bài tập tệp Trang 1 Phần I: Các bài tập làm quen cấu trúc điều khiển, cấu trúc lặp Bài tập: Tìm số lớn nhất trong 3 số a,b,c. program BT; var a,b,c,max:real; begin write('nhap a,b,c='); readln(a,b,c); max:=a; if max<b then max:=b; if max<c then max:=c; writeln('gia tri lon nhat=',max); readln; end. Bài tập: Tìm giá trị tuyệt đối của số x. program BT; var x,gttd:real; begin write('nhap x='); readln(x); if x<0 then gttd:=-x else gttd:=x; writeln('gia tri tuyet doi cua x=',gttd); readln; end. Bài tập: Nhập vào số đo 3 đoạn thẳng. Kiểm tra xem 3 đoạn thẳng đó có lập thành một tam giác hay không. program BT; var a,b,c:real; begin repeat write('nhap a,b,c la so duong='); readln(a,b,c); until (a>0) and (b>0) and (c>0); if (a+b>c) and (a+c>b) and (b+c>a) then writeln('a,b,c la 3 canh cua mot tam giac') else writeln('a,b,c khong la 3 canh cua mot tam giac'); readln; end. Trang 2 Bµi tËp: NhËp vµo mét sè nguyªn d¬ng, kiÓm tra xem sè ®ã cã ph¶i lµ sè nguyªn tè hay kh«ng. program BT; var n:integer; function snt(n:integer):boolean; var i:integer; begin snt:=true; for i:=2 to trunc(sqrt(n)) do if n mod i = 0 then begin snt:=false; exit; end; end; begin repeat write('nhap n la so nguyen duong='); readln(n); until n>0; if snt(n) then writeln(n,' la so nguyen to') else writeln(n,' khong phai la so nguyen to'); readln; end. Bµi tËp: NhËp vµo mét sè nguyªn d¬ng, kiÓm tra xem sè ®ã cã ph¶i lµ sè chÝnh ph¬ng hay kh«ng. program BT; var x:integer; y:real; begin repeat write('nhap x la so nguyen duong='); readln(x); until x>0; y:=sqrt(x); if(trunc(y)-y=0) then writeln('day la so chinh phuong') else writeln('day khong phai la so chinh phuong'); readln; end. Trang 3 Bài tập: Tìm tất cả các số nguyên tố nhỏ hơn n ( n là một số nguyên dơng đợc nhập vào từ bàn phím ). program BT; var i,n:integer; function snt(x:integer):boolean; var i:integer; begin snt:=true; for i:=2 to trunc(sqrt(x)) do if x mod i = 0 then begin snt:=false; exit; end; end; begin repeat write('nhap n la so nguyen duong='); readln(n); until n>0; for i:=2 to n do if snt(i) then write(i:8); readln; end. Bài tập: Tìm tổng s=1- 3 1 + 5 1 - vi ai = i 1 sao cho ai Epsilon cho trớc. program BT; var i,ai:integer; s,e:real; begin write('nhap epsilon='); readln(e); s:=1; ai:=1; i:=2; while ai<e do begin ai:=2*i-1; if i mod 2=1 then s:=s+1/ai else s:=s-1/ai; inc(i); end; writeln('tong s= ',s:2:2); readln; end. Trang 4 Bài tập:Viết ra màn hình n số hạng đầu tiên trong dãy số Fibonaxi. Dãy Fibonaxi là dãy thoả mãn: F i = 1 <=> i = 1, 2 F i-2 + F i-1 <=> i 3 program BT; var t,s,i,n:integer; begin repeat write('nhap n la so nguyen duong='); readln(n); until n>0; t:=1; s:=1; write(t:8); write(s:8); for i:=3 to n do begin s:=s+t; t:=s-t; write(s:8); end; readln; end. Bài tập: Tìm số tự nhiên nhỏ nhất có đúng n ớc số. program BT; var n,i,d,so:integer; begin repeat write('nhap n la so nguyen duong='); readln(n); until n>0; so:=n-1; d:=0; while d<>n do begin d:=0; so:=so+1; for i:=1 to so do if so mod i=0 then d:=d+1; end; writeln('so co ',n,' uoc so nho nhat la ',so); readln; end. Trang 5 Bµi tËp: NhËp vµo mét sè nguyªn d¬ng, kiÓm tra xem sè ®ã cã bao nhiªu íc. program BT; var n,i,d:integer; begin repeat write('nhap n la so nguyen duong='); readln(n); until n>0; i:=1; d:=0; for i:=1 to n do if n mod i=0 then d:=d+1; writeln('so ',n,' co so uoc la ',d); readln; end. Bµi tËp: Gi¶i vµ biÖn luËn ph¬ng tr×nh bËc nhÊt 2 Èn: ax + by = c dx + ey = f program BT; var a,b,c,d,e,f,M,Dx,Dy,x,y:real; begin write('nhap a,b,c,d,e,f='); readln(a,b,c,d,e,f); M:=a*e-b*d; Dx:=c*e-b*f; Dy:=a*f-c*d; if (Dx<>0) and (Dy<>0) then begin x:=Dx/M; y:=Dy/M; writeln('x=',x); writeln('y=',y); end else if (Dx=0) and (Dy=0) then writeln('he pt co vo so nghiem') else writeln('he pt vo nghiem'); readln; end. Trang 6 Bµi tËp: Gi¶i vµ biÖn luËn ph¬ng tr×nh bËc nhÊt 1 Èn: ax + b = 0 program BT; var a,b,x:real; begin write('nhap a,b='); readln(a,b); if a=0 then if b=0 then writeln('pt vo so nghiem') else writeln(' pt vo nghiem') else begin x:=-b/a; writeln('x=',x); end; readln; end. Bµi tËp: Gi¶i vµ biÖn luËn ph¬ng tr×nh bËc 2: ax 2 + bx + c = 0 program BT; var a,b,c,d,x1,x2:real; begin write('nhap a,b,c='); readln(a,b,c); d:=b*b-4*a*c; if d<0 then writeln('pt vo nghiem') else if d=0 then writeln('pt co nghiem kep=',-b/2*a) else begin writeln('pt co 2 nghiem'); x1:=((-b+sqrt(d))/(2*a)); x2:=((-b-sqrt(d))/(2*a)); writeln('x1=',x1:5:2); writeln('x2=',x2:5:2); end; readln; end. Trang 7 Bài tập: Tìm ớc số chung lớn nhất của 2 số nguyên dơng a,b. program BT; var a,b:integer; begin repeat write('nhap a,b la so nguyen duong='); readln(a,b); until (a>0) and (b>0); while a<>b do if a>b then a:=a-b else b:=b-a; writeln('uscln=',a); readln; end. Bài tập: Tìm bội số chung nhỏ nhất của 2 số nguyên dơng a,b. program BT; var a,b,m,n:integer; begin repeat write('nhap a,b la so nguyen duong='); readln(a,b); until (a>0) and (b>0); m:=a; n:=b; while a<>b do if a>b then a:=a-b else b:=b-a; writeln('bscnn=',(m*n)/a); readln; end. Bài tập: Tính giá trị luỹ thừa với cơ số x và số mũ y ( x 0 ). program BT; var x,y,z:real; begin write('nhap x,y='); readln(x,y); if x>0 then begin z:=exp(y*ln(x)); writeln('gia tri can tim la ',z:10:10); end else if x=0 then writeln('gia tri can tim la 0') else begin writeln('ko tinh dc gia tri do x khong thoa man'); readln; end; readln; end. Trang 8 Bài tập: "Nhân ấn độ": Để nhân hai số nguyên dơng x và y, ngời ta thực hiện đồng thời (số lần thực hiện nh nhau) hai thao tác: - Lấy x chia cho 2 lấy phần nguyên. - Lấy y nhân với 2. Quá trình trên sẽ dừng lại khi x=1. Trong quá trình thực hiện ngời ta ghi nhớ x là lẻ. Tổng của các số y trong các lần x lẻ trong quá trình thực hiện chính là kết quả của phép nhân ấn độ x ì y. Hãy cài đặt thuật toán trên dới dạng một hàm để tính tích của hai số x và y. program BT; var S,a,b:integer; begin repeat write('nhap a,b la so nguyen duong='); readln(a,b); until (a>0) and (b>0); S:=0; while a<>1 do begin if a mod 2=1 then S:=S+b; a:=a div 2; b:=b*2; end; S:=S+b; writeln('tich cua a va b=',S); readln; end. Bài tập: Tìm S = = n i i 1 program BT; var i,n,S:integer; begin repeat write('nhap n la so nguyen duong='); readln(n); until n>0; S:=0; for i:=1 to n do S:=S+i; writeln('tong S= ',S); readln; end. Trang 9 Bµi tËp: TÝnh P! program BT; var i,n,P:longint; begin repeat write('nhap n la so duong='); readln(n); until n>=0; P:=1; for i:=1 to n do P:=P*i; writeln('P = ',P); readln; end. Bµi tËp: ViÕt ra mµn h×nh d·y sè sau: 12;34;56;78;100; program BT; var i,n,s:integer; begin repeat write('nhap n la so nguyen duong='); readln(n); until n>0; s:=12; write(s:8); for i:=2 to n do begin s:=s+22; write(s:8); end; readln; end. Trang 10 [...]... ******* ***** *** * program BT; var i,j,t:integer; begin t:=9; for i:=5 downto 1 do begin write('':6-i); for j:=t downto 1 do write('*'); t:=t-2; writeln; end; readln; end Trang 14 Bài tập: Viết chơng trình in ra màn hình bảng cửu chơng dạng 1 nh sau: 1* 1 =1 1* 2 =2 1* 3 =3 1* 4 =4 1* 5 =5 1* 6 =6 1* 7 =7 1* 8 =8 1* 9 =9 2* 1 =2 3* 1 =3 4* 1 =4 5* 1 =5 6* 1 =6 7* 1 =7 8* 1 =8 9* 1 =9 2* 2 =4 3* 2 =6... =36 5* 9 =45 6* 9 =54 7* 9 =63 8* 9 =72 9* 9 =81 program BT; var i,j:integer; begin for j:=1 to 9 do begin for i:=1 to 9 do write(i:2,'*',j:2,'=',(i*j):2); writeln; end; readln; end Bài tập: Viết chơng trình in ra màn hình bảng cửu chơng dạng 2 nh sau: 1* 1 =1 1* 2 =2 1* 3 =3 1* 4 =4 1* 5 =5 1* 6 =6 1* 7 =7 1* 8 =8 1* 9 =9 2* 2 =4 2* 3 =6 3* 3 =9 2* 4 =8 3* 4 =12 4* 4 =16 2* 5 =10 3* 5 =15 4* 5 =20 5*... for j:=1 to p do B[i,j]:=A[j,i]; end; begin write('nhap m,n='); readln(m,n); nhap(A,m,n); viet(A,m,n); chuyenvi(A,B,m,n); viet(B,n,m); readln; end Trang 28 Phần III: Các bài tập xâu Bài tập: Viết chơng trình đảo lộn một xâu program BT; type xau=string; var ST1,ST2:xau; function daoxau(X:xau):xau; var Y:xau;i:integer; begin Y:=''; for i:=length(X) downto 1 do Y:=Y+X[i]; daoxau:=Y; end; begin write('nhap . bài tập ngôn ngữ lập trình pascal phần I: các bài tập làm quen cấu trúc điều khiển, cấu trúc lặp phần II: các bài. nguyên. - Lấy y nhân với 2. Quá trình trên sẽ dừng lại khi x=1. Trong quá trình thực hiện ngời ta ghi nhớ x là lẻ. Tổng của các số y trong các lần x lẻ trong quá trình thực hiện chính là kết quả. x=',gttd); readln; end. Bài tập: Nhập vào số đo 3 đoạn thẳng. Kiểm tra xem 3 đoạn thẳng đó có lập thành một tam giác hay không. program BT; var a,b,c:real; begin repeat write('nhap a,b,c