0

Tài liệu tổng hợp nhỏ về Pascal

đã đăng vào 27, Tháng 10, 2026, 21:04

Dưới đây là một số tài liệu về code trong lập trình Pascal mà bạn có thể nên biết.

Các tài liệu bao gồm:
  1. Mảng (Array)
  2. Chuỗi (String)
  3. Ước chung lớn nhất và Bội chung nhỏ nhất

Nếu các bạn muốn học hay tìm hiểu nhiều hơn về lập trình thì ta có thể search qua các trang website, tìm tài liệu, làm các dạng bài tập thường xuyên để từ đó có được kinh nghiệm và kiến thức cho mình.

Trang web về tài liệu lập trình:

• C++: https://www.blog.28tech.com.vn/c-tai-lieu-hoc-lap-trinh-c

• Pascal: https://thcslaobaohh.quangtri.edu.vn/co-cau-to-chuc/ban-dai-dien-cha-me-hoc-sinh/ly-tin/trao-doi/tai-lieu-boi-duong-hsg-pascal.html

Lưu ý: File lập trình Pascal có đuôi .PAS.

1. Mảng (Array)

program MangArray;
uses crt;
var A:array[1..100] of Integer;
    i,j,n,max,min,tong,tam:Integer;
    tbc:real;
begin
  clrscr;
  Write('Nhập số phần tử: '); Readln(n);
  For i:=1 to n do
  Begin
    Write('Phần tử ',i,': '); Readln(A[i]);
  end;
  max:=A[1]; min:=A[1]; tong:=0;

  // Phần tử nhỏ nhất, lớn nhất và trung bình cộng
  for i:=1 to n do
  Begin
    if A[i]>max then max:=A[i];
    if A[i]<min then min:=A[i];
    tong:=tong+A[i];
  End;
  tbc:=tong/n;

  // Sắp xếp nổi bọt
  for i:=1 to n-1 do
    for j:=i+1 to n do
      if A[i]>A[j] then
      Begin
        tam:=A[i];
        A[i]:=A[j];
        A[j]:=tam;
      End;

  Writeln;
  Writeln('Phần tử nhỏ nhất: ',min);
  Writeln('Phần tử lớn nhất: ',max);
  WriteLn('TBC các phần tử: ',tbc:0:4);
  if n>1 then
  begin
    Writeln;
    Writeln('Các phần tử sắp xếp tăng dần: ');
    For i:=1 to n do
    Begin
      Write(A[i],' ');
    End;
  end;  
  readln;
end.
  • Lưu ý: Các biến là số nguyên.
Ví dụ:
  • Nhập từ máy tính:
Nhập số phần tử: 5
Phần tử 1: 3
Phần tử 2: 5
Phần tử 3: 8
Phần tử 4: 6
Phần tử 5: 2
  • Kết quả ra màn hình:
Phần tử nhỏ nhất: 2
Phần tử lớn nhất: 8
TBC các phần tử: 4.8000

Các phần tử sắp xếp tăng dần:
2 3 5 6 8

2. Chuỗi (String)

program Chuoi;
uses crt;
Var st,st1,st2,st3:string[255];
    i,j,tong,vt,max,code:integer;
    Dem:array[1..200] of integer;

// Mảng “Dem[i]” trong đó i:
// 1-100: Xuất ra màn hình
// 101-200: Không xuất ra màn hình

// Chương trình con Sâu đối xứng   
function dx(st:string):boolean;
Var i,d:Integer;
Begin
  d:=0;
  dx:=false;
  for i:=1 to (length(st) div 2) do
  if st[i]=st[length(st)+1-i] then d:=d+1;
  if d=(length(st) div 2) then dx:=true;
end;

Begin
  clrscr; tong:=0; max:=0;
  For i:=1 to 200 do Dem[i]:=0;

  Writeln('Nhập chuỗi: '); Readln(st);
  st1:=st; st2:=st; st3:=st;

  // Đếm các kí tự
  // Tính tổng các chữ số
  // Chuyển các chữ cái hoa thành thường
  For i:=1 to length(st) do
    if (st[i]>='0') and (st[i]<='9') then
    Begin
      Inc(Dem[1]);
      Val(st[i],Dem[102],code);
      tong:=tong+Dem[102];
    End else
    if (st[i]>='a') and (st[i]<='z')
    or (st[i]>='A') and (st[i]<='Z') then
    Begin
      Inc(Dem[2]);
      if (st[i]>='A') and (st[i]<='Z') then
      st[i]:=chr(ord(st[i])+32);
    End else Inc(Dem[5]);

  // Xoá kí tự trùng lặp
  For i:=1 to length(st1)-1 do
  begin
    j:=i+1;
    While j<=length(st1) do
    Begin
      If st1[i]=st1[j] then delete(st1,j,1)
      else inc(j);
    end;
  end;

  // Sâu con đối xứng
  for i:=1 to length(st2) do
    for j:=i+1 to length(st2) do
    if dx(copy(st2,i,j-i+1)) then inc(Dem[3]);

  // Chuỗi số dài nhất
  For i:=1 to length(st2) do
  if (st2[i]>='0') and (st2[i]<='9') then
    Begin
      inc(Dem[101]);
      if max<Dem[101] then
      Begin
        max:=Dem[101];
        vt:=i;
      end;
    end else Dem[101]:=0;

  // Xuất ra màn hình
  Writeln;
  Writeln('Chuỗi có độ dài: ',length(st3));
  If Dem[1] > 0 then
  Begin
    Writeln;
    Writeln('Có ',Dem[1],' số');
    Writeln('Tổng các số: ',tong);
  End;

  If Dem[2] > 0 then
  begin
    Writeln;
    Writeln('Có ',Dem[2],' chữ');
  End;

  If Dem[5] > 0 then
  Begin
    Writeln;
    Writeln('Có ',Dem[5],' kí tự');
  End;

  If st3<>st then
  Begin
    Writeln;
    Writeln('Chuỗi khi không có chữ viết hoa:');
    Writeln(st);
  End;

  If st3<>st1 then
  Begin
    Writeln;
    WriteLn('Chuỗi khi không có kí tự trùng lặp:');
    Writeln(st1);
  End;

  If (Dem[1] < length(st3)) and (Dem[1] > 0) then
  Begin
    Writeln;
    Writeln('Chuỗi có sâu số dài nhất là:');
    Writeln(Copy(st2,vt-max+1,max),' với độ dài ',max);
  End;

  If Dem[3]>0 then
  Begin
    Writeln;
    Writeln('Chuỗi có ',Dem[3],' sâu (con) đối xứng');
  End;

Readln;
end.
Ví dụ 1:
  • Nhập từ máy tính:
Nhập chuỗi:
sencode.io.vn
  • Kết quả ra màn hình:
Chuỗi có độ dài: 13

Có 11 chữ

Có 2 kí tự

Chuỗi khi không có kí tự trùng lặp:
sencod.iv
Ví dụ 2:
  • Nhập từ máy tính:
Nhập chuỗi:
AbC1232_DEf44546.
  • Kết quả ra màn hình:
Chuỗi có độ dài: 17

Có 9 số
Tổng các số: 31

Có 6 chữ

Có 2 kí tự

Chuỗi khi không có chữ viết hoa:
abc1232_def44546.

Chuỗi khi không có kí tự trùng lặp:
AbC123_DEf456.

Chuỗi có sâu số dài nhất là:
44546 với độ dài 5

Chuỗi có 3 sâu (con) đối xứng

3. Ước chung lớn nhất và bội chung nhỏ nhất

program UCLNvaBCNN;
uses crt;
var A:array[1..100] of longint;
    i,n,UCLN,BCNN,tich: longint;
    fi,fo: text;

function UC(x,y:longint): longint;
var tg: longint;
Begin
  While y<>0 do
  begin
    tg:=x mod y;
    x:=y;
    y:=tg;
  end;
  UC:=x;
end;

Begin
  Assign(fi,'UCLNVABCNN.INP'); reset(fi);
  Assign(fo,'UCLNVABCNN.OUT'); rewrite(fo);
  readln(fi,n);
  tich := 1;
  for i:=1 to n do
  Begin
    read(fi,A[i]);
    tich := tich * A[i];
  end;
  UCLN:=UC(A[1],A[2]);
  For i:=1 to n-1 do
  Begin
    if(UCLN>UC(A[i],A[i+1])) then
      UCLN:=UC(A[i],A[i+1]);
  End;
  BCNN:=tich div UCLN;
  writeln(fo,'UCLN = ',UCLN);
  write(fo,'BCNN = ',BCNN);
  close(fi); close(fo);
end.
  • Lưu ý: Tính UCLN và BCNN cho tất cả các phần tử (với n ≥ 2). Nếu tích của tất cả các phần tử lớn hơn giới hạn longint thì chương trình có thể báo sai hoặc không cho kết quả chính xác.
Ví dụ:
  • Nhập từ file (UCLNVABCNN.INP):
5
12 18 15 24 30
  • Kết quả ra file (UCLNVABCNN.OUT):
UCLN = 3
BCNN = 777600

Trên đây là những tài liệu nhỏ về lập trình Pascal của mình. Mong là nếu thấy hay thì cho mình một like nhé, có gì thiếu hay sai sót thì có thể comment ở đây.


Bình luận

Hãy đọc nội quy trước khi bình luận.


Không có bình luận tại thời điểm này.