Дана последовательность из n неотрицательных целых чисел! На каждом шаге эти числа упорядочиваются по возрастанию и каждые два соседних числа заменяют на разность большего и меньшего. Эту операцию повторяют до тех пор, пока не останется одно число. Напишите программу которая моделирует описанный процесс — Pascal(Паскаль)

uses crt;
const max=20;
type mas=array[1..max] of integer;
procedure Sort(var v:mas;n:byte);
var i,j:byte;
    x:integer;
begin
for i:=1 to n-1 do
for j:=i+1 to n do
if v[i]>v[j] then
 begin
  x:=v[i];
  v[i]:=v[j];
  v[j]:=x;
 end;
end;
procedure New(var v:mas;var n:byte);
var i:byte;
    x:integer;
begin
for i:=1 to n-1 do
 begin
  x:=v[i+1];
  v[i]:=x-v[i];
 end;
n:=n-1;
end;
procedure Vyvod(var v:mas;n:byte);
var i:byte;
begin
for i:=1 to n do
write(v[i]:4);
writeln;
end;
var a:mas;
    n,i,j,k:byte;
begin
clrscr;
randomize;
repeat
write('Размер массива n=');
readln(n);
until n in [1..max];
for i:=1 to n do
a[i]:=random(100)+1;
Vyvod(a,n);
for i:=1 to n-1 do
 begin
  Sort(a,n);
  New(a,n);
  Vyvod(a,n);
 end;
readln
end.

Leave a Comment

30 − = 24