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

Помогите пожалуйста с Заданием по Паскалю!

Народ, кто может полностью написать мне решение этой задачки:

Имеется упорядоченный по убыванию массив X(i),i=1,2,...n и число b. Требуется образовать массив Z(i),i=1,2,...n+1, обьеденив массив X(i) с числом b, не нарушая упорядоченностей. Новый массив Z вывести на печать.

Помогите пожалуйста!
Вот мой вариант но он кривой.. . Я паскаль ваще оч плохо знаю мне проще на других языках написать чем на нем.
program xepna;
const n=1;
Var
b,i,m:integer;

X:array[1..n] of integer;
Z:array[1..n+1] of integer;

begin
Writeln ('BBeDuTe Array X')
Writeln ('BBeDuTe X[1]');
readln (X[1]);
for i:=2 to n do begin
while X > X[i-1] do begin
Writeln ('BBeDuTe X');
readln (X);
end;
end;
Writeln ('BBeDuTe b');
readln (b);
m:= 0;
while (m<n)>b) do begin
m:=m+1;
end;

Z[m]:=X;
Z[m+1]:=b;
Z[n+1]:=X[m+1];
Writeln ('OTBET Array Z=',Z);
readln;
end.

Если можно то очень срочно надо = (
Доброго времени суток.

Что-то я не понял, массив Х уже упорядочен или его надо упорядочить? Но в любом случае у вас n = 1 т. е. массив Х состоит из одного злемента. И куда вы хотите вставить b?

Вот решение для массива, который вы упорядочиваете при вводе. Для ускорения тестирования всего 5 элементов.

program xepna;
const n = 5;
Var
b,j,k : integer;
X:array[1..n] of integer;
Z:array[1..n+1] of integer;

begin
Writeln ('BBeDuTe Array X');

{ввод элементов массива}
for j:=1 to n do begin
Write ('BBeDuTe X[', j,'] : ');
ReadLn (X[j]);
end;
WriteLn;

{вывод массива Х для контроля}
WriteLn('Array X');
for j:=1 to n do Write (X[j]:4);
WriteLn; WriteLn;

Write ('BBeDuTe b : ');
ReadLn (b);
WriteLn;

for j:=1 to n do
if X[j] >= b then Z[j] := X[j]
else begin
k := j; {запомним позицию первого, меньшего b элемента}
Break; {и прекратим цикл копирования}
end;
Z[k] := b; {записываем число b в массив Z}
for j:=k to n do Z[j+1] := X[j]; {перепишем остальные элементы массива Х}

{вывод массива Z для контроля}
WriteLn('Array Z');
for j:=1 to n+1 do Write (Z[j]:4);

ReadLn;
end.

Если же массив нужно отсортировать после ввода то всавьте этот кусок, который сортирует пузырьком массив Х, сразу после ввода элементов массива Х. Ессно, нужно добавить необходимые переменные.

for i := 1 to n do
for j := 1 to n - i do
if X[j] < X[j + 1] then begin {если текущий элемент меньше следующего переставим их}
b := X[j]; {сначала сохраним в промежуточной переменной}
X[j] := X[j + 1]; {переставляем элементы}
X[j + 1] := b; {восстанавливаем значение}
end;
{все, массив отсортирован}

Удачи!
Sultan Taitenov
Sultan Taitenov
59 612
Лучший ответ