Почему выдает (встречно 'until', а ожидалось ';') Var a:array[1..50] of byte;
n,p, i,k,m,j,x,y,z: integer;
begin
writeln('Введите количество элементов');
readln(p);
repead;
n:=4;
for i:=n downto 1 do begin
a[i]:=p mod 10;
p:= p div 10;
end;
For i:=1 To n-1 Do Begin
k := i;
For j := i + 1 To n Do
If a[j] >= a[k] Then
k := j;
m := a[i];
a[i] := a[k];
a[k] := m;
end;
x:=a[1]*1000+a[2]*100+a[3]*10+a[4];
For i := 1 To N - 1 Do Begin
k := i;
For j := i + 1 To n Do
If a[j] <= a[k] Then
k := j;
m := a[i];
a[i] := a[k];
a[k] := m;
end;
y:=a[1]*1000+a[2]*100+a[3]*10+a[4];
z:=x-y;
until z=p;
writeln(z);

end.

zaret1 zaret1    3   13.06.2020 22:55    2

Ответы
Катякатя2005 Катякатя2005  15.10.2020 13:57

Var a:array[1..50] of byte;

n,p, i,k,m,j,x,y,z: integer;

begin

writeln('Введите количество элементов');

readln(p);

repeat;  - обратите внимание, что Вы написали repead, хотя нужно repeat.

n:=4;

for i:=n downto 1 do begin

a[i]:=p mod 10;

p:= p div 10;

end;

For i:=1 To n-1 Do Begin

k := i;

For j := i + 1 To n Do

If a[j] >= a[k] Then

k := j;

m := a[i];

a[i] := a[k];

a[k] := m;

end;

x:=a[1]*1000+a[2]*100+a[3]*10+a[4];

For i := 1 To N - 1 Do Begin

k := i;

For j := i + 1 To n Do

If a[j] <= a[k] Then

k := j;

m := a[i];

a[i] := a[k];

a[k] := m;

end;

y:=a[1]*1000+a[2]*100+a[3]*10+a[4];

z:=x-y;

until z=p;

writeln(z);

end.

ПОКАЗАТЬ ОТВЕТЫ
Другие вопросы по теме Информатика