Seri 100 bài tập Pascal nâng cao – CHƯƠNG III : CÂU LỆNH CÓ CẤU TRÚC LẶP XÁC ĐỊNH

Bài 20 : Nhập 2 số thực và tính phép tính theo nhu yếuBài 18 : Xem ngày là thứ mấy trong tuầnBài 17 : Tìm giá trị lớn nhất của 4 số

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

Bài 15 : Kiểm tra 3 số có là độ dài cạnh tam giác khôngBài 14 : Đếm nguyên âm, số trong một chuỗiBài 10 : In tổng những chữ số của 1 số ítBài 9 : In những bội của 3 và 5Bài 7 : Tỉnh tổng những chữ số của 1 số ítBài 6 : Tính ăn bậc n của một số ít

Đánh Giá Bài

Chấm điểm cho bài – 9.5

9.5

100

Bài tập pascal vòng lặp for mới nhất và hay nhất

User Rating: 4.7 ( 2 votes)

Dưới đây là phần giới thiệu của onthihsg  : 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. Hãy tham khảo câu lệnh for trong pascal bên dưới nhé

Video hướng dẫn lệnh lặp pascal

Lý thuyết câu lệnh for trong pascal

Vòng lặp xác định

Có hai dạng sau với câu lệnh lặp trong pascal

Dạng tiến      

FOR := TO DO       S;

Dạng lùi

FOR := DOWNTO DO     S;

Sơ đồ thực thi vòng lặp FOR :

Seri 100 bài tập Pascal nâng cao – CHƯƠNG III : CÂU LỆNH CÓ CẤU TRÚC LẶP XÁC ĐỊNH

Chú ý : Khi sử dụng câu lệnh lặp FOR cần chú ý quan tâm những điểm sau :

  • Không nên tuỳ tiện thay đổi giá trị của biến đếm bên trong vòng lặp FOR vì làm như vậy có thể sẽ không kiểm soát được biến đếm.
  • Giá trị Max và Min trong câu lệnh FOR sẽ được xác định ngay khi vào đầu vòng lặp. Do đó cho dù trong vòng lặp ta có thay đổi giá trị của nó thì số lần lặp cũng không thay đổi.

Tổng hợp bài tập vòng lặp for trong pascal

Dưới đây là tổng hợp bài tập câu lệnh for trong pascal mới nhất những bạn hãy tìm hiểu thêm nhé.

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

Đây là bài tập cấu trúc lặp cơ bản : Viết chương trình nhập vào 1 số N nguyên dương và in ra màn hình hiển thị những 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;
    fori: =1to ndobeginifi mod2=0then begin write(i:4) ;dem: =dem+1;end;
      ifdem=15then begin dem: =0;writeln; {in duoc15so 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ố

Đây là bài tập pascal vòng lặp for : 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 các ước số dương của |a+b|

Lời giải :

uses crt;
vara,b,tg,i,tong:integer;
functiontinh(x,y:integer) :integer;
 begintg: =x mod y;
  iftg=0 thentinh: =yelsetinh: =tinh(y,tg) ;
 end;
BEGINclrscr;write(' Nhap a : ') ;readln(a) ;write(' Nhap b : ') ;readln(b) ;tong: =1;
 fori: =2to abs(a+b) do
  if (abs(a+b)mod i=0) thentong: =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) ;readlnEND.

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

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, diện tích quy hoạnh, 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.

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;
 ifd>0then 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) ;endelse ifd=0then begin x1: = ( -b) / (2*a) ;writeln(' PT co nghiem kep la : ',x1:0:2) ;endelsewriteln(' PT vo nghiem ') ;readln END.

Bài 5: Kiểm tra số chẵn lẻ, nguyên tố, hoàn hảo

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

Lời giải :

uses crt;var n,i:integer;ok:boolean;BEGIN clrscr;write(' Nhap n : ') ;readln(n) ;
 ifn mod2=0then writeln(' So ',n,' la so chan ')
  elsewriteln(' So ',n,' la so le ') ;
 ifn<2then write(' So ',n,' khong la so nguyen to ')
 elsebegin ok: =true;
   fori: =2to trunc(sqrt(n) ) do
    ifn mod i=0then ok: =false;
   ifok then writeln(' So ',n,' la so nguyen to ')
    elsewriteln(' 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.

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 mod2=0)and(a> =0)then begin s: =exp(1/n*ln(a) ) ;writeln(' Ket qua la : ',s:0:4) ;endelse if (n mod2< >0)then begin s: =exp(1/n*ln(abs(a) ) ) ;writeln(' Ket qua la : ',s:0:4) ;endelsewriteln(' Khong xac dinh ') ;readln END.

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

Nhập số bất kể có 3 chữ số rồi tính tổng những chữ số của số đó. Lời giải :

uses crt;
vara:integer;tong:byte;
BEGINclrscr;write(' Nhap 1 so co 3 chu so : ') ;readln(a) ;tong: =a mod10;a: =a div10;tong: =tong+a mod10;a: =a div10;tong: =tong+a mod10;writeln(' Tong cac chu so do la : ',tong) ;readlnEND.

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

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) ;
 ifa>b then begin tg: =a;a: =b;b: =tg;end;writeln(a,' ',b) ;readln END.

Bài 9: In các 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 đế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;
 fori: =1to ndo
  if (i mod3=0)or(i mod5=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 các 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; whilem>0 dobegin tong: =tong+m mod10;m: =m div10;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ố ít 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) ;
 ifn<2then writeln(n,' khong la so nguyen to ')
 elsebegin i: =2;
   while ( (i< =trunc(sqrt(n) ) )and(n mod i< >0) ) doi: =i+1;
   ifi>trunc(sqrt(n) )then writeln(n,' la so nguyen to ')
    elsewriteln(n,' khong la so nguyen to ') ;end;readln END.

Bài 12: Kiểm tra số hoàn hảo

Nhập 1 số nguyên dương n và kiểm tra xem n có phải là số tuyệt đối không. Lời giải : Số tuyệt đối là số có tổng những ước ( ngoại trừ nó ) bằng chính nó. Ví dụ, số 6 có 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;
 fori: =1to n div2 do
  ifn mod i=0then tong: =tong+i;
 iftong=n then writeln(n,' la so hoan hao ')
  elsewriteln(n,' khong la so hoan hao ') ;readln END.

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

Nhập một số ít 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) ;
 ifsqrt(n) =trunc(sqrt(n) )then writeln(n,' la so chinh phuong ')
  elsewriteln(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 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;
 fori: =1to length(s) dobeginifs[i]in[' a ',' e ',' i ',' o ',' u ',' y ',' A ',' E ',' I ',' O ',' U ',' Y ']then dem1: =dem1+1;
   ifs[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ố có là độ dài cạnh tam giác không

Nhập 3 số a, b, c bất kể. Kiểm tra xem 3 số hoàn toàn có thể là độ dài 3 cạnh của một tam giác hay không và thông tin ra màn hình hiển thị. Code mẫu :

Vara,b,c: Real;BEGINWriteln (' 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 các 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 hiển thị “ So cac so > 10 va < 20 la : ” và “ Tong cua chung la : ”. Code mẫu :

Var Tong, So: Real;I,N, Dem: Integer;BEGINWrite (' Ban muon nhap bao nhieu so : ') ; Readln (N) ;
    Tong: = 0; Dem: = 0;
    ForI: = 1 ToNDo
      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;BEGINWriteln (' 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ài 18: Xem ngày là thứ mấy trong tuần

Đọc ngày tháng năm, sau đó viết ra màn hình hiển thị đó là ngày thứ mấy trong tuần. Code mẫu :

Var Thu, Ngay, Thang: Byte; 
     	Nam: Integer;BEGINWrite (' Doc Ngay Thang Nam : ') ;
    Readln ( Ngay, Thang, Nam ) ;
    Nam: = 1900 + (Nammod1900) ;
    If Thang < 3 Then
      Begin
         Thang: = Thang + 12;
         Nam: = Nam - 1;
      End;
    Thu: = Abs (Ngay + Thang * 2 + (Thang + 1) * 3div5 + Nam + Namdiv4)mod7;
    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 hiển thị 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;  VarSBD: Integer; 
     Van, Toan, Anh, Tongdiem: Real;BEGINClrscr; 
    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 triển khai và in tác dụng của phép tính đó. Nếu là “ + ”, in tổng hai số lên màn hình hiển thị. Nếu là “ - “, in hiệu hai số lên màn hình hiển thị. Nếu là “ / ”, in thương hai số lên màn hình hiển thị. Nếu là “ * ”, in tích hai số lên màn hình hiển thị. Code mẫu :

Uses Crt;   
Vara,b,kq: Real; Pt: Char;BEGINClrscr; 
    Write (' a = ') ; Readln(a) ; 
    Write (' b = ') ; Readln(b) ; 
    Write (' Phep tinh thuc hien la ( + - * / ) : ') ; 
    Readln(Pt) ; 
    If Pt = ' + ’ Thenkq: =a+b; 
    If Pt = ' - ’ Thenkq: =a-b; 
    If Pt = ' * ’ Thenkq: =a*b; 
    If Pt = '/ ’  Thenkq: =a/b; 
    Write (a,pt,b, ' = ',kq) ; 
    Readln

;

END.

Danh sách bài tập này sẽ được update thêm, bạn lưu lại để làm thêm bài mới nhé.