Bài tập pascal cơ bản - Pdf 14

Bài tập pascal cơ bản dành cho hs-sv
thiết kế bởi: Vũ Đức Quang
Bài 1:
Viết chương trình nhập vào 1 số N nguyên dương và in ra màn hình các sỗ chẵn từ 0N
mỗi số chiếm 4 vị trí và 15 số trên 1 dòng.
Lời giải:
uses crt; {khai bao' thu vien crt}
var n,i,dem:integer;
BEGIN
clrscr;{ cau lenh xoa man hinh};
write('Nhap n: ');readln(n);
dem:=0;
for i:=1 to n do
begin
if i mod 2=0 then
begin
write(i:4);
dem:=dem+1;
end;
if dem=15 then
begin
dem:=0;
writeln;{in duoc 15 so thi xuong dong};
end;
end;
readln
END.
Bài 2:
Nhập vào 2 số nguyên dương a và b.
+ Tính và in ra màn hình tổng, hiệu, tích, thương và UCLN của 2 số đó
+ Tính tổng các ước số dương của |a+b|

BEGIN
clrscr;
write('Nhap do dai canh a: ');readln(a);
write('Nhap do dai canh b: ');readln(b);
write('Nhap do dai canh c: ');readln(c);
cv:=a+b+c;
p:=(a+b+c)/2;
dt:=sqrt(p*(p-a)*(p-b)*(p-c));
writeln('Chu vi tam giac la: ',cv:0:4);
writeln('Dien tich tam giac la: ',dt:0:4);
writeln('Duong cao canh thu 1 la: ',dt*2/a:0:4);
writeln('Duong cao canh thu 2 la: ',dt*2/b:0:4);
writeln('Duong cao canh thu 3 la: ',dt*2/c:0:4);
if (a=b) or (a=c) or(b=c) then writeln('Tam giac can');
if (a*a=b*b+c*c) or (b*b=a*a+c*c) or (c*c=b*b+a*a)then
writeln('Tam giac vuong');
readln
END.
Bài 4:
Lập trình giải phương trình bậc 2:
Lời giải:
uses crt;
var a,b,c,x1,x2,d:real;
BEGIN
clrscr;
write('Nhap a: ');readln(a);
write('Nhap b: ');readln(b);
write('Nhap c: ');readln(c);
d:=b*b-4*a*c;
if d>0 then

for i:=2 to trunc(sqrt(n)) do
if n mod i=0 then ok:=false;
if ok then writeln('So ',n,' la so nguyen to')
else writeln('So ',n,' khong la so nguyen to');

end;
readln
END.
Có thể thay câu lệnh lặp “for i:=2 to trunc(sqrt(n)) do” bằng câu lệnh while do khi đó ta
không cần biến ok nữa.
Bài 6:
Nhập n,a hãy tính căn bậc n của a:
Lời giải:
uses crt;
var n:integer;a,s:real;
BEGIN
clrscr;
write('Nhap a: ');readln(a);
repeat
write('Nhap n: ');readln(n);
until (n>0);
if (n mod 2=0) and (a>=0) then
begin
s:=exp(1/n*ln(a));
writeln('Ket qua la: ',s:0:4);
end
else if (n mod 2<>0) then
begin
s:=exp(1/n*ln(abs(a)));
writeln('Ket qua la: ',s:0:4);

if a>b then
begin
tg:=a;
a:=b;
b:=tg;
end;
writeln(a,' ',b);
readln
END.
Bài 9:
Nhập số nguyên dương n in ra tổng các số nguyên dương là bội của 3 hoặc 5 từ 1—>n
Lời giải:
uses crt;
var n,tong,i:integer;
BEGIN
clrscr;
write('Nhap so nguyen duong n: ');readln(n);
tong:=0;
for i:=1 to n do
if (i mod 3=0) or (i mod 5=0) then
tong:=tong+i;
writeln('Tong cac so chia het cho 3 hoac 5 tu 0 > ',n,' la: ',tong);
readln
END.
Bài 10:
Nhập n in ra tổng các chữ số của n:
Lời giải:
uses crt;
var n,m:longint;tong:byte;
BEGIN

else writeln(n,' khong la so nguyen to');
end;
readln
END.
Bài 12:
Số hoàn hảo là số mà có tổng các ước của nó không kể nó bằng chính nó.
VD: số 28 có các ước là: 1 2 4 7 14
số 6 có các ước là: 1 2 3
Lập trình nhập vào 1 số nguyên dương n và kiểm tra xem số đó có là số hoàn hảo không?
Lời giải:
uses crt;
var n:longint;tong,i:integer;
BEGIN

clrscr;
write('Nhap so nguyen duong n: ');readln(n);
tong:=0;
for i:=1 to n div 2 do
if n mod i=0 then tong:=tong+i;
if tong=n then writeln(n,' la so hoan hao')
else writeln(n,'khong la so hoan hao');
readln
END.
Bài 13:
Số chính phương là số có căn bậc 2 là 1 số nguyên.
VD số 9 là số chính phương vì căn bậc 2 của 9 bằng 3.
Lập trình nhập 1 số nguyên dương n từ bàn phím kiểm tra xem số đó có là số chính
phương không?
Lời giải:
uses crt;

Bó lại cho tròn
Ba mưoi sáu con
Một trăm chân chẵn
Lời giải:
uses crt;
var cho:byte;
BEGIN
clrscr;
for cho:=1 to 25 do
if 4*cho+(36-cho)*2=100 then
writeln('So ga la: ',36-cho,' so cho la: ',cho);
readln
END.
Bài 16:
Nhập 1 số nguyên dương n <1000 cho biết có bao nhiêu số nguyên tố từ 0n
Lời giải:
uses crt;
var n,i,j,dem:integer;
BEGIN
clrscr;
write('Nhap so nguyen duong n: ');readln(n);
dem:=0;
for i:=2 to n do
begin
j:=2;
while ((j<=trunc(sqrt(i))) and (i mod j<>0)) do
j:=j+1;
if j>trunc(sqrt(i)) then dem:=dem+1;
end;
writeln('So luong so nguyen to trong khoang tu 0 >',n,' la: ',dem);

clrscr;
write('Nhap n: ');readln(n);
ft:=1;ftn:=1;tong:=2;
for i:=2 to n do
begin
f:=ft+ftn;
tong:=tong+f;
ftn:=ft;
ft:=f;
end;
writeln('Tong n so hang dau day fibolaci la: ',tong);
readln
END.
Có thể biến đổi đề bài của bài toán đi như: tính số phibonaci thứ n hoặc nhập vào 1 số
kiểm tra xem số đó có phải là số phibonaci hay không…Các bài đó làm tương tự.
Bài 19:
Nhập số nguyên dương n lập chương trình tính:
S1= 1+3+5+7+…+(2*n+1)
Lời giải:
uses crt;
var i,n,s1:integer;
BEGIN

clrscr;
write('Nhap n: ');readln(n);
s1:=0;
for i:=1 to 2*n+1 do
if i mod 2<>0 then s1:=s1+i;
writeln('Tong S1 la: ',s1);
readln

until (m<=n) and (m>0);
tu:=1;mau:=1;
for i:=n-m+1 to n do
tu:=tu*i;
for i:=2 to m do
mau:=mau*i;

s3:= tu div mau;
writeln('to hop chap ',m,' cua ',n,' la: ',s3);
readln
END.
Bài 22:
Nhập số thực dương e(e<0.01) rồi tính tổng
S4=1+1/22+1/32+…+1/n2 +… (chương trình kết thúc khi 1/n2<e)
Lời giải:
uses crt;
var s4,e:real;i:integer;
BEGIN
clrscr;
repeat
write('Nhap so thuc duong e<0.01: ');
readln(e);
until (e>0) and (e<0.01);
s4:=0;i:=1;
while 1/(i*i)>e do
begin
s4:=s4+1/(i*i);
i:=i+1;
end;
writeln('Ket qua la: ',s4:0:4);

n,max,min,i:integer;
BEGIN
clrscr;
write('Nhap n: ');readln(n);
for i:=1 to n do
begin
write('Nhap A[',i,']: ');
readln(a[i]);
write('Nhap B[',i,']: ');
readln(b[i]);
write('Nhap C[',i,']: ');
readln(c[i]);
write('Nhap D[',i,']: ');
readln(d[i]);
end;
for i:=1 to n do
begin
write(a[i],' ',b[i],' ',c[i],' ',d[i],' ');
max:=a[i];min:=a[i];
if b[i]>max then max:=b[i];
if c[i]>max then max:=c[i];
if d[i]>max then max:=d[i];
write(max,' ');
if b[i]<min then min:=b[i];
if c[i]<min then min:=c[i];
if d[i]<min then min:=d[i];
writeln(min);
end;
readln
END.

Lời giải:
uses crt;
var n,i,max,min:integer;
a:array[1 1000] of integer;
BEGIN
clrscr;
repeat
write('Nhap so nguyen duong n: ');
readln(n);
until (n>0) and (n<=1000);
for i:=1 to n do
begin
write('Nhap A[',i,']: ');
readln(a[i]);
end;
max:=a[1];min:=a[1];
for i:=2 to n do
begin
if a[i]>max then max:=a[i];
if a[i]<min then min:=a[i];
end;
writeln('Max cua day so la: ',max);
writeln('Min cua day so la: ',min);
readln
END.
Bài 27:
Nhập số nguyên dương n và dãy số a1,a2,…,an. Hãy sắp xếp dãy đó tăng dần và in dãy
đã
được sắp xếp ra màn hình.
Lời giải:

Var
so1,so2:Word;
p:LongInt;
tiep:Char;
Begin
Writeln('TINH UOC SO CHUNG LON NHAT, BOI SO CHUNG NHO NHAT');
Writeln(' Su dung vong lap Repeat Until');
Writeln(' ');
Repeat
Writeln;
Write('-Nhap so thu nhat: ');
Readln(so1);
Write('-Nhap so thu hai : ');
Readln(so2);
p:=so1 * so2;
Write('+Uoc so chung lon nhat cua ',so1,' va ',so2,' la: ');
Repeat
if so1 > so2 Then
so1:=so1 - so2
Else
so2:=so2 - so1;
Until so1=so2;
Writeln(so1);
Writeln;
Writeln('+Boi so chung nho nhat: ',P Div so1);
Writeln;
Write('-Co tiep tuc nua khong ? (C/K) ');
Readln(tiep);
Until Upcase(tiep)='K';
Writeln;

End.
Viết chương trình Pascal tìm USCLN, BSCNN
Program Uoc_so_Boi_so_chung;
Var
a,b:Word;
p:LongInt;
Begin
Writeln('UOC SO CHUNG LON NHAT, BOI SO CHUNG NHO NHAT');
Writeln(' ');
Write('-Nhap so thu nhat a= ');
Readln(a);
Write('-Nhap so thu hai b= ');
Readln(b);
p:=a * b;
Write('+Uoc so chung lon nhat cua ',a,' va ',b,' la: ');
While a <> b Do
Begin
If a > b Then
a:=a - b
Else
b:=b-a
End;
Writeln(a);
Writeln;
Writeln('+Boi so chung nho nhat cua chung la: ',p Div a);
writeln;
Writeln(' Bam phim <Enter> de ket thuc');
Readln
End.
30. Viết chương trình Pascal tìm các ước của số nguyên N

For i:= 1 To N Do
S:=S+(1/i);
Writeln;
Writeln('+Tong nghich dao cua ',n,' so nguyen dau tien= ',S:0:2);
Writeln;
Writeln(' Bam phim <Enter> de ket thuc');
Readln
End.
32. Viết chương trình Pascal tính tổng bình phương các số lẻ
Program Tong_binh_phuong;
Var
i,n,tong:Integer;
Begin
Writeln('TINH TONG BINH PHUONG CAC SO LE');
Writeln(' Tu 1 den N');
Writeln(' ');
Write('-Nhap N= ');
Readln(n);
tong:=0;
For i:=1 To N Do
If odd(i) Then
tong:=tong+sqr(i);
Writeln;
Writeln('+Tong binh phuong cac so le cua ',n,' so nguyen= ',tong);
Writeln;
Writeln(' Bam phim <Enter> de ket thuc');
Readln
End.

33. Viết chương trình Pascal tìm số lớn nhất trong N số nguyên

Writeln('SO VUA NHAP CO PHAI LA SO NGUYEN TO ?');
Writeln(' ');
Write('-Nhap mot so : ');
Readln(n);
While n > 1 Do
Begin
i:=2;
While (n Mod i <> 0) Do
i:=i+1;
if i=n Then
Writeln('-So ',n,' la so nguyen to')
Else
Writeln('-So ',n,' khong phai la so nguyen to');
Write('-Nhap mot so (so 0 de ngung): ');
Readln(n);
End;
Writeln;
Writeln(' Bam phim <Enter> de ket thuc');
Readln
End.
35. Viết chương trình Pascal phân tích N thành các thừa số nguyên tố
Program thuaso;
Var
n,i:Integer;
Begin
Writeln('PHAN TICH N THANH TICH CAC THUA SO NGUYEN TO');
Writeln(' ');
Write('-Nhap so N= ');
Readln(n);
Repeat

Writeln('+Dien tich= ',s:10:2);
End
Else
Writeln('+Khong phai la Tam giac');
Writeln;
Writeln(' Bam phim <Enter> de ket thuc');
Readln
End.
37. Viết chương trình Pascal kiểm tra đây là tam giác gì
Program Tam_giac;
Var
a,b,c:Integer;
tamgiac,deu,can:Boolean;
Begin
Writeln('BA CANH CUA TAM GIAC ?');
Writeln(' ');
Write('-Nhap so thu nhat= ');
Readln(a);
Write('-Nhap so thu hai = ');
Readln(b);
Write('-Nhap so thu ba = ');
Readln(c);
tamgiac:=False;
deu:=False;
can:=False;
If (a+b>c) And (b+c>a) And (c+a>b) Then
Begin
tamgiac:=True;
If (a=b) And (b=c) Then
deu:=True;

n,tong:Integer;
Begin
Writeln('TINH TONG CUA N SO NGUYEN');
Writeln(' ');
Writeln;
Write('-Nhap so nguyen N: ');
Readln(n);
tong:=(n * (n + 1) DIV 2);
Writeln('*Tong tu 1 den N = ',tong);
Writeln(' Bam phim <Enter> de ket thuc');
Readln
End.


Nhờ tải bản gốc
Music ♫

Copyright: Tài liệu đại học © DMCA.com Protection Status