Другие языки программирования и технологии

В упорядоченный по возрастанию числовой массив из 20 элементов вставить числа –4 и 7, не нарушая упорядоченности. pascal

помогите, пожалуйста
program N67363750;
type
TVector = array[ 1 .. 22 ] of integer;

procedure MyInsert(var a:TVector; var n:byte; x:integer);
var i, j:byte;
begin
i := 1;
while (i <= n) and (x > a[ i ]) do
inc(i); {или i := i + 1;}
inc(n); {или n := n + 1;}
for j := n downto i + 1 do
a[ j ] := a[ j - 1 ];
a[ i ] := x
end;

procedure PrintArray(const a:TVector; const n:byte);
var i:byte;
begin
for i := 1 to n do
write(a[ i ]:4);
writeln
end;

var
a:TVector;
n, i:byte;
begin
randomize;
n := 20;
a[ 1 ] := random(8) - 10;
for i := 2 to n do
a[ i ] := a[ i - 1 ] + random(4) + 1;
writeln('Исходный массив: ');
PrintArray(a, n);
MyInsert(a, n, -4);
writeln('Вставлено число -4:');
PrintArray(a, n);
MyInsert(a, n, 7);
writeln('Вставлено число 7:');
PrintArray(a, n);
readln
end.

P.S. Можно, конечно, передавать процедуре MyInsert указатель на массив, тогда внутри неё стало бы возможно перераспределять под массив динамическую память.
Или передавать, как открытый массив - было бы ещё проще, но вы даже словом не обмолвились, какую реализацию Паскаля используете: Turbo, Free, TMT, Delphi, GNU, ABC, а может даже P или виртовский стандартный xD)). Где-то это нельзя сделать, где-то можно, но по-разному.
DD
Dima De
51 590
Лучший ответ

Похожие вопросы