26 tháng 11, 2015

Bài tập Pascal cơ bản dành cho học sinh - sinh viên

Bài viết dưới đây sẽ giới thiệu đến các bạn học sinh - sinh viên tổng hợp các bài tập Pascal cơ bản để các bạn tham khảo. Chúc các bạn học tốt!


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.

uses crt; 
var n,i,dem:integer;
BEGIN
clrscr;
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;
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|.

uses crt;
var a,b,tg,i,tong:integer;
function tinh(x,y:integer):integer;
begin
tg:=x mod y;
if tg=0 then tinh:=y else tinh:=tinh(y,tg);
end;
BEGIN
clrscr;
write('Nhap a: '); readln(a);
write('Nhap b: '); readln(b);
tong:=1;
for i:=2 to abs(a+b) do
if (abs(a+b) mod i =0) then tong:=tong+i;
writeln('Tong 2 so la: ', a+b);
writeln('Hieu 2 so la: ', a-b);
writeln('Tich 2 so la: ', a*b);
writeln('Thuong 2 so la: ', a/b:0:4);
writeln('UCLN 2 so la: ', tinh(a,b));
writeln('Tong cac uoc cua ',a+b,' la: ', tong);
readln
END.

Bài 3: Lập chương trình nhập vào độ dài các cạnh của tam giác rồi thực hiện:
+ Tính chu vi, diện tích, 3 đường cao của tam giác.
+ Kiểm tra xem tam giác đó có là tam giác cân hoặc vuông không?

uses crt;
var a,b,c,cv,dt,p:real;
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 (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');
realn
END.

Bài 4: Lập trình giải phương trình bậc 2:

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
begin
x1:=(-b+sqrt(d))/(2*a);
x2:=(-b-sqrt(d))/(2*a);
writeln('2 nghiem PT la: ',x1:0:2,'va: ',x2:0:2);
end
else if = 0 then
begin
x1:=(-b)/(2*a);
writeln('PT co nghiem kep: ',x1:0:2);
end
else writeln('PT vo nghiem');
readln
END.

Bài 5: Nhập vào 1 số nguyên gồm 4 chữ số
+ Kiểm tra tính chẵn lẻ.
+ Kiểm tra xem có phải là số nguyên tố không?
+ Kiểm tra xem có phải là số hoàn hảo không?

uses crt;
var n,i:integer;ok:boolean;
BEGIN
clrscr;
write('Nhap n:');readln(n);
if n mod 2=0 then writeln('So ',n,' la so chan')
else writeln('So ',n,' la so le');
if n<2 then write('So ',n,' khong la so nguyen to')
else
begin
ok:=true;
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.

Bài 6: Nhập n, a. Hãy tính căn bậc n của a.

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);
end
else writeln('Khong xac dinh');
readln
END.

Bài 7: Nhập số có 3 chữ số, tính tổng các chữ số của nó.

uses crt;
var a:integer;tong:byte;
BEGIN
clrscr;
write('Nhap 1 so co 3 chu so: ');readln(a);
tong:=a mod 10;
a:=a div 10;
tong:=tong+a mod 10;
a:=a div 10;
tong:=tong+a mod 10;
writeln('Tong cac chu so do la: ',tong);
readln
END.

Bài 8: Nhập 2 số nguyên, hoán vị 2 số đó khi a>b.

uses crt;
var a,b,tg:integer;
BEGIN
clrscr;
write('Nhap a: ');readln(a);
write(Nhap b: ');readln(b);
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.

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.

uses crt;
var n,m:longint;tong:byte;
BEGIN
clrscr;
write('Nhap n: ');readln(n);
tong:=0;m:=n;
while m>0 do
begin
tong:=tong+m mod 10;
m:=m div 10;
end;
writeln('Tong cac chu so cua ',n,' la: ',tong);
readln
END.

Bài 11: Số nguyên tố là số nguyên dương chỉ chia hết cho 1 và chính nó, ngoại trừ 0 và 1. Lập trình nhập vào 1 số nguyên dương n và kiểm tra xem nó có phải là số nguyên tố không?

uses crt;
var n,i:integer;
BEGIN
clrscr;
write('Nhap so nguyen duong n: ');
readln(n);
if n<2 then write(n,' khong la so nguyen to')
else
begin
i:=2;
while ((i<=trunc(sqrt(n))) and (n mod i<>0)) do
i:=i+1;
if i>trunc(sqrt(n)) then writeln(n,' la so nguyen to')
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ó.
Ví dụ: số 28 có các ước số là: 1 2 4 7 14
           số 6 có các ước số 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?

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.
Ví dụ: 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?

uses crt;
var n:longint;
BEGIN
clrscr;
write('Nhap so nguyen duong n: ');readln(n);
if sqrt(n)=trunc(sqrt(n)) then writeln(n,' la so chinh phuong')
else writeln(n,' khong la so chinh phuong');
readln
END.

Bài 14: Nhập vào 1 xâu kí tự và cho biết xâu vừa nhập vào có bao nhiêu nguyên âm và bao nhiêu kí tự số.

uses crt;
var s:string;dem1,dem2,i:byte;
BEGIN
clrscr;
write('Nhap 1 xau: ');readln(s);
dem1:=0;dem2:=0;
for i:=1 to length(s) do
begin
if s[i] in ['a','e','i','o','u','y','A','E','O','U','Y'] then dem1:=dem1+1;
if s[i] in ['0','1','2','3','4','5','6','7','8','9'] then dem2:=dem2+1;
end;
writeln('Trong xau ',s,' co ',dem1,' nguyen am va co ',dem2,' ki tu so');
readln
END.