Вводится не пустая последовательность символов, отдельные слова в ней разделены пробелами. Проверить, образуют ли целые числа, встречающиеся в заданной последовательности, арифметическую прогрессию

code: #pascal
program fys;
 
{************************************}
var p,code:integer;    {описание переменных}
    i,j,n:integer;
    s,x:string;
    A:array[1..100] of integer;
 
{начало функции, определяющей ариф. посл. i-ой строки}
function areprogress(n:integer):boolean;
var { секция объявления переменных }
    j:integer; {переменные для прохождения по матрице (по столбцу)  }
    d:integer; {переменная разности между 2-ым и 1-ым элементом строки = "Шаг прогрессии"}
    b:boolean; {результатирующая переменная }
begin
b:=true;   {изначально результат будет ИСТИННЫМ}
d:=A[2]-A[1];{вычисляем "Шаг прогрессии"}
for j:=3 to n do
if A[j]<>A[1]+((j-1)*d) then b:=false; {если арифм. прогрессия нарушается -> результат становится ЛОЖЬю}
areprogress:=b; {функции присваиваем конечный, вычисленный результат}
end;
{---конец функции, определяющей ариф. посл. i-ой строки---}
 
{---------------НАЧАЛО  САМОЙ  ПРОГРАММЫ---------------}
 
begin
write('Vvedite stroky cisel (cerez probel): ');
readln(s);     {считываем с клавы строку с числами }
j:=0;  {обнуляем кол-во чисел в строке}
repeat             {начало цикла записывающего числа из строки - в массив }
p:=pos(' ',s);    {смотрим где есть текущий пробел}
x:=copy(s,1,p-1); {копируем число до пробела}
if p=0 then x:=s; {если пробелов не осталось - то эта вся строка явл. числом}
val(x,i,code);    {преобразовываем строку-число в ЧИСЛО}
                  if code=0 then begin  {если элемент явл. целым числом??}
                  inc(j);   {увеличиваем счётчик кол-ва чисел в строке}
                  A[j]:=i;       {записываем текущее ЦЕЛОЕ число в МАССИВ}
                  end;
delete(s,1,p);   {удаляем из строки проверенное число }
until p=0;       {конец цикла}
 
n:=j;  {"n" присваиваем кол-во чисел (размер массива)}
 
 
writeln;
 
if areprogress(n) then writeln('Obrazuetsya ARIF.PROGR.')
                  else writeln('NE obrazuetsya ARIF.PROGR.');
 
readln;
end.      
Поделиться:

Похожие статьи: