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:
- Mảng (Array)
- Chuỗi (String)
- Ướ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
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
longintthì 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