Thông tin liên hệ
- 036.686.3943
- admin@nguoicodonvn2008.info
Pascal là ngôn ngữ khá cũ, trong thực tế nó không còn được sử dụng phổ biến như trước nữa. So với các ngôn ngữ lập trình script hiện đại thì Pascal khá dài dòng, mức độ trừu tượng cao và cách code khá giống với ngôn ngữ lập trình C. Hầu hết các chương trình C đều có thể dịch được sang Pascal mà chỉ bị thay đổi về cú pháp chứ không làm thay đổi cấu trúc. Mà C thì là một trong những ngôn ngữ lập trình rất phổ biến, do đó nắm được Pascal bạn sẽ tiếp cận C tốt hơn. Nó cũng buộc bạn phải luôn nghĩ về kiểu dữ liệu, điều này sẽ giúp các lập trình viên mới học được một thói quen tuyệt vời khi code.
Và vì không có nhiều giá trị thương mại, Pascal được sử dụng chủ yếu để dạy nhập môn lập trình hoặc dành cho những người yêu thích Pascal tìm tòi. Nếu bạn thích lập trình, mới học nhưng không "hấp thụ" được Pascal có thể thử Python nhé.
Dưới đây là tổng hợp một số bài tập Pascal từ cơ bản đến phức tạp mà Quantrimang.com đã tổng hợp lại, hy vọng việc học của bạn sẽ dễ dàng hơn đôi chút.
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 N, sao cho mỗi số chiếm 4 vị trí và 1 dòng có 15 số.
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.
Nhập 2 số nguyên dương a và b. Sau đó:
Lời giải:
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.
Viết chương trình nhập vào độ dài các cạnh của tam giác rồi tính chu vi, diện tích, 3 đường cao của tam giác. Kiểm tra xem tam giác đó có phải là tam giác cân hay tam giác vuông không.
Lời giải:
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 (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.
Viết chương 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
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 d=0 then
begin
x1:=(-b)/(2*a);
writeln('PT co nghiem kep la: ',x1:0:2);
end
else writeln('PT vo nghiem');
readln
END.
Nhập vào 1 số nguyên gồm 4 chữ số:
Lời giải:
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.
Có thể thay vòng lặp “for i:=2 to trunc(sqrt(n)) do” bằng lệnh while..do..khi đó ta không cần biến ok nữa.
Nhập 2 số 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);
end
else writeln('Khong xac dinh');
readln
END.
Nhập số bất kỳ có 3 chữ số rồi tính tổng các chữ số của số đó.
Lời giải:
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.
Nhập 2 số nguyên a, b, hoán vị 2 số khi a>b.
Lời giải:
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.
Nhập số nguyên dương n, in ra tổng các số nguyên dương từ 1 đến n là bội của 3 hoặc 5.
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.
Nhập n bất kỳ sau đó in ra tổng các chữ số của n.
Lời giải:
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
Nhập vào một số n bất kỳ và kiểm tra xem n có phải là số nguyên tố không.
Code mẫu:
uses crt;
var n,i:integer;
BEGIN
clrscr;
write('Nhap so nguyen duong n: ');
readln(n);
if n<2 then writeln(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.
Nhập 1 số nguyên dương n và kiểm tra xem n có phải là số hoàn hảo không.
Lời giải:
Số hoàn hảo là số có tổng các ước (ngoại trừ nó) bằng chính nó. Ví dụ, số 6 có các ước là 1, 2, 3; số 28, 496 cũng là các số hoàn hảo.
Code mẫu:
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.
Nhập một số nguyên dương n bất kỳ và kiểm tra xem n có phải là số chính phương không.
Code mẫu:
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.
Nhập vào một chuỗi ký tự và kiểm tra xem chuỗi có bao nhiêu nguyên âm, bao nhiêu số?
Code mẫu:
uses crt;
var s:string;dem1,dem2,i:byte;
BEGIN
clrscr;
write('Nhap 1 chuoi: ');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','I','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 chuoi ',s,' co ',dem1,' nguyen am va co ',dem2,' ki tu so');
readln
END.
Nhập 3 số a, b, c bất kỳ. Kiểm tra xem 3 số có thể là độ dài 3 cạnh của một tam giác hay không và thông báo ra màn hình.
Code mẫu:
Var a, b, c: Real;
BEGIN
Writeln ('Nhap do dai 3 canh cua tam giac:');
Write ('a ='); Readln (a);
Write ('b ='); Readln (b);
Write ('c ='); Readln (c);
If (a + b > c) and (b + c > a) and (c + a > b)
and (a > 0) and (b > 0) and (c > 0) Then
Writeln ('Thoa man: Day la 3 canh cua mot tam giac')
Else
Writeln ('Khong thoa man!');
Readln;
END.
Nhập số N bất kỳ. Đếm các số lớn hơn 10 và nhỏ hơn 20 rồi tính tổng của chúng. Sau đó, đưa ra màn hình "So cac so >10 va <20 la:" và "Tong cua chung la:".
Code mẫu:
Var Tong, So: Real; I, N, Dem: Integer;
BEGIN
Write ('Ban muon nhap bao nhieu so: '); Readln (N);
Tong:= 0; Dem:= 0;
For I:= 1 To N Do
Begin
Write ('So = '); Readln (So);
If (So > 10) and (So < 20) Then
Begin
Tong:= Tong + So;
Dem:= Dem + 1;
End;
End;
Writeln ('So cac so >10 va <20 la: ', Dem);
Writeln ('Tong cua chung la:', Tong);
Readln;
END.
Nhập 4 số a, b, c, d. Hãy tìm giá trị lớn nhất của chúng và gán giá trị đó cho biến Max.
Code mẫu:
Var Max, a, b, c, d: Real;
BEGIN
Writeln ('Nhap gia tri cua 4 so: ');
Write ('a = ') ; Readln (a);
Write ('b = ') ; Readln (b);
Write ('c = ') ; Readln (c);
Write ('d = ') ; Readln (d);
Max:= a;
If Max < b Then Max:= b;
If Max < c Then Max:= c;
If Max < d Then Max:= d;
Writeln ('Gia tri lon nhat la: ', Max);
Readln;
END.
Đọc ngày tháng năm, sau đó viết ra màn hình đó là ngày thứ mấy trong tuần.
Code mẫu:
Var Thu, Ngay, Thang: Byte;
Nam: Integer;
BEGIN
Write ('Doc Ngay Thang Nam: ');
Readln ( Ngay, Thang, Nam );
Nam:= 1900 + (Nam mod 1900);
If Thang < 3 Then
Begin
Thang:= Thang + 12;
Nam:= Nam - 1;
End;
Thu:= Abs (Ngay + Thang * 2 + (Thang + 1) * 3
div 5 + Nam + Nam div 4) mod 7;
Case Thu Of
0: Writeln ('Chu Nhat');
1: Writeln ('Thu Hai');
2: Writeln ('Thu Ba');
3: Writeln ('Thu Tu');
4: Writeln ('Thu Nam');
5: Writeln ('Thu Sau');
6: Writeln ('Thu Bay');
End;
Readln;
END.
Viết chương trình: Nhập số báo danh, nhập điểm văn, toán, Anh. In ra màn hình dưới dạng:
Phiếu Báo điểm:
Số báo danh:
Điểm văn:
Điểm toán:
Điểm ngoại ngữ:
Tổng số điểm:
Bạn đã trúng tuyển: Nếu Tổng số điểm >=20.
Bạn không trúng tuyển: Nếu Tổng số điểm <20.
Uses Crt; Var SBD: Integer;
Van, Toan, Anh, Tongdiem: Real;
BEGIN
Clrscr;
Write ('So bao danh: '); Readln(SBD);
Write ('Diem toan: '); Readln(Toan);
Write ('Diem ngoai ngu: '); Readln(Anh);
Write ('Diem van: '); Readln (Van);
Tongdiem:= Toan + Van + Anh;
Clrscr;
Writeln ('Phieu Bao Diem ') ;
Writeln ('So bao danh : ', SBD);
Writeln ('Diem van : ', Van);
Writeln ('Diem toan : ', Toan);
Writeln ('Diem ngoai ngu : ', Anh) ;
Writeln ('Tong diem : ', Tongdiem);
If Tongdiem >= 15 Then
Writeln(' Ban da trung tuyen ');
Else
Writeln(' Ban khong trung tuyen ');
Readln;
END.
Viết chương trình nhập hai số thực. Sau đó hỏi phép tính muốn thực hiện và in kết quả của phép tính đó.
Code mẫu:
Uses Crt;
Var a, b, kq: Real; Pt: Char;
BEGIN
Clrscr;
Write ('a ='); Readln(a);
Write ('b ='); Readln(b);
Write ('Phep tinh thuc hien la (+ - * /): ');
Readln(Pt);
If Pt = '+’ Then kq := a + b;
If Pt = '-’ Then kq := a - b;
If Pt = '*’ Then kq := a * b;
If Pt = '/’ Then kq := a / b;
Write (a, pt, b, '=', kq);
Readln;
END.
Danh sách bài tập này sẽ được cập nhật thêm, bạn lưu lại để làm thêm bài mới nhé.
Nguồn tin: Quantrimang.com
Ý kiến bạn đọc
Những tin mới hơn
Những tin cũ hơn
Tạo form hỏi đáp tương tác trong vài phút và prompt chỉnh sửa
Hướng dẫn sử dụng Google Slides trong Claude
Hướng dẫn sử dụng Wolfram trong ChatGPT giải toán nâng cao
15 prompt AI thú vị cho ngày lễ Halloween
Hoàn thiện một thiết kế thực tế với ChatGPT + Canva
Cách kết nối ElevenLabs agent với hệ thống lên lịch Calendly
Cách tắt app chạy ngầm Windows 11, giảm ngốn RAM trên Win 11
Câu nói hay nhất về tháng 11, chào tháng 11
TOP công cụ AI tạo tài liệu tốt nhất
Cách xây dựng plugin trong ChatGPT
Hướng dẫn tự thiết kế website Portfolio bằng Claude
5 thiết kế ChatGPT + Canva đáp ứng hầu hết các nhu cầu trong cuộc sống
Những công cụ AI tốt nhất giúp giải toán dễ dàng
Hướng dẫn kết nối Booking.com với ChatGPT lên kế hoạch du lịch
15 prompt Gemini tạo ảnh sinh nhật đẹp nhất
Cách tắt bộ nhớ an toàn trên Messenger
Hướng dẫn kết nối Claude với Figma thiết kế giao diện website
Hướng dẫn sử dụng Canva Grow tạo quảng cáo với AI
TOP phần mềm quay màn hình có hỗ trợ AI
Khóa chat trong ChatGPT: cách bật mã PIN, mở khóa và những giới hạn cần biết
Hướng dẫn cài đặt và sử dụng n8n trên Windows 11
Cách lập trình chuyên nghiệp hơn, dễ dàng hơn với tính năng Tệp trên Grok
Công thức tính diện tích hình Elip
Hướng dẫn ngắt kết nối ứng dụng trên ChatGPT
Hướng dẫn tạo đoạn hội thoại cho topic trên Twee
Bức tranh tổng quan về hỗ trợ khách hàng tích hợp AI
Cách sửa lỗi There Are Currently No Power Options Available Windows
Claude Code thực sự có giá bao nhiêu?
Hướng dẫn 8 cách mở bàn phím ảo trên Windows 10
Hướng dẫn tạo flashcard trên Canva AI