Tổng hợp bài tập Pascal có giải, từ dễ đến khó – Sưu tầm

Công nghệ

Pascal là tiếng nói của một dân tộc khá cũ, trong thực tế nó ko còn được sử dụng phổ biến như trước nữa. So với những tiếng nói của một dân tộc lập trình script tiên tiến thì Pascal khá dài dòng, mức độ trừu tượng cao và nhữngh code khá giống với tiếng nói của một dân tộc lập trình C. Hầu hết những chương trình C đều mang thể dịch được sang Pascal mà chỉ bị thay đổi về cú pháp chứ ko làm thay đổi cấu trúc. Mà C thì là một trong những tiếng nói của một dân tộc 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 những lập trình viên mới học được một thói quen tuyệt vời lúc code.

Và vì ko mang nhiều giá trị thương mại, Pascal được sử dụng được quan tâm để 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 ko “hấp thụ” được Pascal mang thể thử Python nhé.

Dưới đây là tổng hợp một số bài tập Pascal từ cơ bản tới 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.

Bài 1: In số chẵn ra màn hình

Viết chương trình nhập vào 1 số N nguyên dương và in ra màn hình những số chẵn từ 0 tới N, sao cho mỗi số chiếm 4 vị trí và 1 dòng mang 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.

Bài 2: Tính, in tổng, hiệu, tích, thương của 2 số

Nhập 2 số nguyên dương a và b. Sau đó:

  • Tính và in ra màn hình tổng, hiệu, tích thương và ước chung lớn nhất của 2 số đó.
  • Tính tổng những ước số dương của |a+b|

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.

Bài 3: Kiểm tra xem tam giác mang cân, vuông ko

Viết chương trình nhập vào độ dài những cạnh của tam giác rồi tính chu vi, thể tích, 3 đường cao của tam giác. Kiểm tra xem tam giác đó mang phải là tam giác cân hay tam giác vuông ko.

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.

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

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.

Bài 5: Kiểm tra số chẵn lẻ, nguyên tố, tuyệt vời

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 mang phải là số nguyên tố ko
  • Kiểm tra xem mang phải là số tuyệt vời ko

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..lúc đó ta ko cần biến ok nữa.

Bài 6: Tính ăn bậc n của một số

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.

Bài 7: Tỉnh tổng những chữ số của một số

Nhập số bất kỳ mang 3 chữ số rồi tính tổng những 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.

Bài 8: Hoán vị 2 số

Nhập 2 số nguyên a, b, hoán vị 2 số lúc 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.

Bài 9: In những bội của 3 và 5

Nhập số nguyên dương n, in ra tổng những số nguyên dương từ 1 tới 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.

Bài 10: In tổng những chữ số của một số

Nhập n bất kỳ sau đó in ra tổng những 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

Bài 11: Kiểm tra số nguyên tố

Nhập vào một số n bất kỳ và kiểm tra xem n mang phải là số nguyên tố ko.

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.

Bài 12: Kiểm tra số tuyệt vời

Nhập 1 số nguyên dương n và kiểm tra xem n mang phải là số tuyệt vời ko.

Lời giải:

Số tuyệt vời là số mang tổng những ước (ngoại trừ nó) bằng chính nó. Ví dụ, số 6 mang những ước là 1, 2, 3; số 28, 496 cũng là những số tuyệt vời.

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.

Bài 13: Kiểm tra số chính phương

Nhập một số nguyên dương n bất kỳ và kiểm tra xem n mang phải là số chính phương ko.

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.

Bài 14: Đếm nguyên âm, số trong một chuỗi

Nhập vào một chuỗi ký tự và kiểm tra xem chuỗi mang 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.

Bài 15: Kiểm tra 3 số mang là độ dài cạnh tam giác ko

Nhập 3 số a, b, c bất kỳ. Kiểm tra xem 3 số mang thể là độ dài 3 cạnh của một tam giác hay ko 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.

Bài 16: Đếm những số theo điều kiện và tính tổng

Nhập số N bất kỳ. Đếm những 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.

Bài 17: Tìm giá trị lớn nhất của 4 số

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.

Bài 18: Xem ngày là thứ mđó trong tuần

Đọc ngày tháng năm, sau đó viết ra màn hình đó là ngày thứ mđó 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.

Bài 19: In phiếu báo điểm

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 ko 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.

Bài 20: Nhập 2 số thực và tính phép tính theo yêu cầu

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 đó.

Nếu là “+”, in tổng hai số lên màn hình.

Nếu là “-“, in hiệu hai số lên màn hình.

Nếu là “https://quantrimang.com/”, in thương hai số lên màn hình.

Nếu là “*”, in tích hai số lên màn hì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é.

Xem thêm:

Các bạn đang xem tin tức tại Sưu tầm 24h – Chúc những bạn một ngày vui vẻ

Từ khóa: Tổng hợp bài tập Pascal mang giải, từ dễ tới khó

Bài viết liên quan

Trả lời

Email của bạn sẽ không được hiển thị công khai.