procedure ShiftRight(ip: integer); // сдвигает к началу массива все элементы. расположенные за ip var i: integer; begin for i := ip to n - 1 do a[i] := a[i + 1]; a[n] := -32768 end;
var i, j, mx, px: integer;
begin Randomize; writeln('Исходный массив'); mx := -100; px := 0; for i := 1 to n do begin a[i] := Random(30) - 15; write(a[i]:4); if mx < a[i] then begin mx := a[i]; px := i end end; writeln; writeln('Результирующий массив'); if px = n then for i := 1 to n - 1 do writeln(a[i]:4) else begin for i := 1 to px - 1 do write(a[i]:4); ShiftRight(px); i := px; while (i <= n) and (a[i] <> -32768) do if a[i] < mx then begin write(a[i]:4); i := i + 1 end else ShiftRight(i) end; writeln end.
1) 120:100*2=2,4 см вырастет ребёнок за 1 месяц 2) 120+2,4=122,4 см рост ребёнка через месяц 3) 122,4:100*2=2,448≈2,45 см вырастет ребёнок за второй месяц 4) 122,4+2,45=124,85 см рост ребёнка через 2 месяца 5) 124,85:100*2=2,497≈2,5 см вырастет ребёнок за третий месяц 6) 124,848+2,5=127,348≈127,35 см рост ребёнка через 3 месяца 7) 127,35:100*2=2,547≈2,55 см вырастет ребёнок за 4 месяц 8) 127,35+2,55=129,9 см рост ребёнка через 4 месяца 9) 129,9:100*2=2,598≈2,6 см вырастет ребенок за 5 месяц 10) 129,9+2,6=132,5 см рост ребёнка через 5 месяцев 11) 132,5:100*2=2,65 см вырастет ребёнок за 6 месяц 12) 132,5+2,65=135,15 см рост ребенка через 6 месяцев 13) 135,15:100*2=2,703≈2,7 см вырастет ребёнок за 7 месяц 14) 135,15+2,7=137,85 см рост ребенка через 7 месяцев 15) 137,85:100*2=2,757≈2,8 см вырастет за 8 месяц 16) 137,85+2,8=140,65 см рост через 8 месяцев 17) 140,65:100*2=2,813≈2,8 см вырастет за 9 месяц 18) 140,65+2,8=143,45 см рост через 9 месяцев 19) 143,45:100*2=2,869≈2,9 см вырастет за 10 месяц 20) 143,45+2,9=146,35 см рост через 10 месяцев 21) 146,35:100*2=2,927≈3 см вырастет за 11 месяц 22) 146,35+3=149,35 см рост через 11 месяцев 23) 149,35:100*2=2,987≈3 см вырастет за 12 месяц 24) 149,35+3=152,35 см рост ребенка через 12 месяцев
n = 50;
var
a: array[1..n] of integer;
procedure ShiftRight(ip: integer);
// сдвигает к началу массива все элементы. расположенные за ip
var
i: integer;
begin
for i := ip to n - 1 do a[i] := a[i + 1];
a[n] := -32768
end;
var
i, j, mx, px: integer;
begin
Randomize;
writeln('Исходный массив');
mx := -100;
px := 0;
for i := 1 to n do
begin
a[i] := Random(30) - 15;
write(a[i]:4);
if mx < a[i] then begin
mx := a[i];
px := i
end
end;
writeln;
writeln('Результирующий массив');
if px = n then
for i := 1 to n - 1 do writeln(a[i]:4)
else
begin
for i := 1 to px - 1 do write(a[i]:4);
ShiftRight(px);
i := px;
while (i <= n) and (a[i] <> -32768) do
if a[i] < mx then
begin
write(a[i]:4);
i := i + 1
end
else ShiftRight(i)
end;
writeln
end.
Тестовый пример:
Исходный массив
1 2 -13 0 -2 14 -15 4 -6 -3 14 4 -10 -7 -5 11 -1 -10 9 -10 -12 14 4 -9 -5 -14 9 -9 9 5 3 -10 -15 -3 4 -14 -10 7 1 -11 -8 -15 5 -6 9 -3 9 -14 -3 1
Результирующий массив
1 2 -13 0 -2 -15 4 -6 -3 4 -10 -7 -5 11 -1 -10 9 -10 -12 4 -9 -5 -14 9 -9 9 5 3 -10 -15 -3 4 -14 -10 7 1 -11 -8 -15 5 -6 9 -3 9 -14 -3 1
2) 120+2,4=122,4 см рост ребёнка через месяц
3) 122,4:100*2=2,448≈2,45 см вырастет ребёнок за второй месяц
4) 122,4+2,45=124,85 см рост ребёнка через 2 месяца
5) 124,85:100*2=2,497≈2,5 см вырастет ребёнок за третий месяц
6) 124,848+2,5=127,348≈127,35 см рост ребёнка через 3 месяца
7) 127,35:100*2=2,547≈2,55 см вырастет ребёнок за 4 месяц
8) 127,35+2,55=129,9 см рост ребёнка через 4 месяца
9) 129,9:100*2=2,598≈2,6 см вырастет ребенок за 5 месяц
10) 129,9+2,6=132,5 см рост ребёнка через 5 месяцев
11) 132,5:100*2=2,65 см вырастет ребёнок за 6 месяц
12) 132,5+2,65=135,15 см рост ребенка через 6 месяцев
13) 135,15:100*2=2,703≈2,7 см вырастет ребёнок за 7 месяц
14) 135,15+2,7=137,85 см рост ребенка через 7 месяцев
15) 137,85:100*2=2,757≈2,8 см вырастет за 8 месяц
16) 137,85+2,8=140,65 см рост через 8 месяцев
17) 140,65:100*2=2,813≈2,8 см вырастет за 9 месяц
18) 140,65+2,8=143,45 см рост через 9 месяцев
19) 143,45:100*2=2,869≈2,9 см вырастет за 10 месяц
20) 143,45+2,9=146,35 см рост через 10 месяцев
21) 146,35:100*2=2,927≈3 см вырастет за 11 месяц
22) 146,35+3=149,35 см рост через 11 месяцев
23) 149,35:100*2=2,987≈3 см вырастет за 12 месяц
24) 149,35+3=152,35 см рост ребенка через 12 месяцев