Домашние задания: Другие предметы

Задачка в Pascale, никак не получается..

Здравствуйте, с праздником!Надо на курсовую, в суть задания вник, но как написать в программе - не пойму все никак.. Может у кого будут соображения?Дан массив размера N. Продублировать в нем элементы с четными номерами (2, 4, ..). Условной оператор не использовать. Исходный массив отсортировать в порядке невозрастания. Числа сформировать с помощью генератора случайных чисел.Насколько я понимаю, программа должна выглядеть так:1 2 2 3 4 4 5 6 6 и так далее, в зависимости от величины N. Для сортировки использовал "пузырьковой" метод, то есть метод сортировки обменом. Но само задание сделать никак не удается. Очень прошу помочь знающих и понимающих людей в решении данного вопроса.
я так понимаю, что другой массив использовать не слудует, поэтому так

nmax=100;
var
a:array[1..nmax] of integer;
maxn,temp,i,j,n:integer;
flag:boolean;
begin
readln(n);
randomize;
for i:=1 to n do
begin
a[ i ]:=random(100);
write(a[ i ],' ');
end;
writeln;
j:=1;
repeat
flag:=true;
for i:=1 to n-j do
if a[ i ] < a[ i+1 ]
then begin
temp:=a[ i ];
a[ i ]:=a[ i+1 ];
a[ i+1 ]:=temp;
flag:=false
end;
until flag;
for i:=1 to n do
write(a[ i ],' ');
writeln;
i:=2;
maxn:=n div 2+n;
repeat
for j:=n downto i+1 do
a[ j+1 ]:=a [j ];
n:=n+1;
a[ i+1 ]:=a[ i ];
i:=i+3;
until n=maxn;
for i:=1 to n do
write(a[ i ],' ');
readln
end.
Catherine Wayne
Catherine Wayne
63 514
Лучший ответ
Фрагмент программы (ai -элемент массива, не печатаются []):
...
var a:array[20]of integer;
f:booleah;
i:ingeger;
begin
f:=false;
for i:=1 to 4 do
begin
case f of
true:writeln(ai,' ,',ai);f:=false;end;
false:f:=true;
end;
end;
end;

Пример исходного массива:
[3,12,5,7]
Сортировка:
[12,7,5,3]
Результат:
[12,7,7,5,3,3]

Вместо вывода на экран осталось переписывать в другой массив.
Или реализовать механизм вставки со сдвигом, как в линейном списке.
А While- условный оператор, Если нет, можно писать
While (a mod 2)=0 do
begin
for n:=k downto i do {k-количество элементов в массиве}
begin
a[n+1]:=a[n];
end;
end;
И будет пахать.
Сергей Лужков
Сергей Лужков
1 041

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