Nếu như là dãy chưa sắp xếp thì ta cần phải sắp xếp lại
Sau đó lấy mốc cấp số cộng là khoảng cách giữa phần tử 1 và phần tử 2, rồi cho chạy từ 2 đến n-1, nếu như khoảng cách giữa 2 số liền kề nhau khác mốc cấp số cộng thì dừng lại và thông báo không phải, ngược lại thì thông báo phải.
Chương trình:
program capsocong;
uses crt;
var A:array[1..100] of integer;
n,i,j,tg,csc:integer;
begin
clrscr;
write('Nhap so luong phan tu: '); readln(n);
for i:=1 to n do
begin
write('Nhap so thu ',i,': '); readln(A[i]);
end;
{---sap-xep---}
for i:=1 to n-1 do
for j:=i+1 to n do
if A[i]>A[j] then
begin
tg:=A[i];
A[i]:=A[j];
A[j]:=tg;
end;
{---khoang-cach---}
csc:=A[2]-A[1];
for i:=2 to n-1 do
if A[i+1]-A[i]<>csc then
begin
write('Khong phai');
break;
end;
if (i=n-1) and (A[n]-A[n-1]=csc) then write('Phai va cap so cong la: ',csc);
readln;
end.