Представь себе одну колею. Посредине отходит тупик на 11 вагонов. По краям два поезда.
1) Левый проезжает вперед и задком заходит в тупик, оставляя там 11 вагонов. Потом выезжает и возвращается на место - влево.
2) Правый подъезжает к вагонам и прицепляет к себе спереди паровоза (у паровоза "зад - перед" одно и то же) и оттаскивает на место вправо.
3) Левый опять протягивает вперед и задком полностью заезжает в тупик.
4) Правый двигается по колее, занимая место слева. Он теперь левый.
5) Левый выезжает и занимает место справа. Он теперь правый.
6) Левый протягивает назад и заталкивает в тупик 11 вагонов не своих. Выезжает обратно.
7) Правый подцепляет свои вагоны и каждый едет дальше!
Все это справедливо, если в тупик можно заехать с правой стороны. Если с левой - картина меняется на зеркальную.
<h2>Заменить нечётные элементы по значению</h2>
program raf105;
var
a:array[1..20] of integer;
i,min: integer;
begin
min:= 10000;
writeln('Исходный массив:');
for i:=1 to 20 do
begin
a[i]:= random(-30,20);
writeln(a[i]);
if a[i]<min
then min:= a[i];
end;
writeln('Изменённый массив:');
for i:=1 to 20 do
begin
if (a[i] mod 2)<>0
then a[i]:= min;
writeln(a[i]);
end;
end.
<h2>Заменить нечётные элементы по индексу</h2>
program raf105;
var
a:array[1..20] of integer;
i,min: integer;
begin
min:= 10000;
writeln('Исходный массив:');
for i:=1 to 20 do
begin
a[i]:= random(-30,20);
writeln(a[i]);
if a[i]<min
then min:= a[i];
end;
writeln('Изменённый массив:');
for i:=1 to 20 do
begin
if (i mod 2)<>0
then a[i]:= min;
writeln(a[i]);
end;
end.
<h3><em><u>Язык PascalABC</u></em></h3>
begin
ReadSeqIntegerWhile(p -> p <> 0)
.Where(p -> p < 200)
.Max
.Println
end.
100% 3 способа тв что ето же проще простого