Консультация № 138520
29.05.2008, 17:03
0.00 руб.
0 1 1
уважаемые эксперты, помогите решить.
Составить программу, формирующую одномерный массив, состоящий из N вещественных элементов. Преобразовать массив таким образом, чтобы начала располагались все отрицательные элементы, а потом – все положительные (элементы, равные 0, считать положительными).
заранее спасибо

Обсуждение

давно
Профессор
401888
1232
30.05.2008, 12:09
общий
это ответ
Здравствуйте, Корчагин Петр Александрович!
Сделал с поцедурами, с сохранением порядка и без дополнительного иассива. Решение с пояснениями в приложении.

Приложение:
uses crt;const n=15;var a:array[1..n]of integer; i:integer;Procedure Vvod; {создание и вывод на экран массива}beginrandomize;writeln(‘Ishodnayj massiv:‘);for i:=1 to n do begin a[i]:=random(10)-3; write(a[i],‘ ‘); end;writeln;end;Procedure Perest; {перестановка элементов}var k,j,x:integer;begink:=0;for i:=1 to n doif a[i] <0 then {если меньше ноля} begin k:=k+1; {считаем} x:=a[i]; {запоминаем число} for j:=i downto k+1 do {сдвигаем массив} begin a[j]:=a[j-1]; {на одну позицию вправо} end; a[k]:=x; {на свободное место вставляем отрицательное чимло} end;end;Procedure Vyvod; {вывод массива после перестановки}beginwriteln(‘rezultat:‘);for i:=1 to n dowrite(a[i],‘ ‘);readlnend;beginclrscr;Vvod;Perest;Vyvod;end.
Форма ответа