Преобразовать массив так, чтобы элементы, большие 1, располагались после всех остальных - Pascal ABC

Узнай цену своей работы

Формулировка задачи:

В одномерном массиве, состоящем из n вещественных элементов, вычис лить: 1) максимальный по модулю элемент массива; 2) сумму элементов массива, расположенных между первым и вторым положительными элементами. Преобразовать массив таким образом, чтобы элементы, большие 1, располагались после всех остальных. Упорядочить каждую часть массива по возрастанию, используя алгоритм сортировки методом прямого выбора

Решение задачи: «Преобразовать массив так, чтобы элементы, большие 1, располагались после всех остальных»

textual
Листинг программы
uses  crt;
const n = 10;
var mas:array[1..n] of real;
    i,j,i1,i2,k,p,x:integer;
    max, sum: real;
begin
writeln('Исходный массив');
i1:=0;
i2:=0;
for i:=1 to n do
 begin
  mas[i]:=-3+6*random;
  write(mas[i]:6:2);
  if mas[i]>0 then
  if i1=0 then i1:=i
  else if i2=0 then i2:=i;
 end;
max:=mas[1];
for i:= 2 to n do
if abs(max)<abs(mas[i]) then max:= mas[i];
writeln;
writeln('1) Максимальный по модулю=',max:0:2);
write('2) ');
if i1=0 then writeln('В массиве нет положительных чисел')
else if i2=0 then writeln('В массиве нет двух положительных чисел');
sum:=0;
if i2-i1>1 then
for i:=i1+1 to i2-1 do
sum:=sum+mas[i];
writeln('Сумма элементов между первым и вторым полжительными=',sum:0:2);
k:=0;
for i:=1 to n do
if mas[i]<=1 then//переставим меньшие 1 вперед
  begin
    k:=k+1;
    sum:=mas[i];
    for j:=i downto k+1 do
    mas[j]:=mas[j-1];
    mas[k]:=sum;
  end;
writeln('3) Перестановка больших 1 в конец');
for i:=1 to n do
write(mas[i]:6:2);
writeln;
for i:=2 to k do
for j:=1 to i-1 do
if mas[i]<mas[j] then
 begin
  sum:=mas[i];
  for p:=i-1 downto j do
  mas[p+1]:=mas[p];
  mas[j]:=sum;
 end;
for i:=k+2 to n do
for j:=1 to i-1 do
if mas[i]<mas[j] then
 begin
  sum:=mas[i];
  for p:=i-1 downto j do
  mas[p+1]:=mas[p];
  mas[j]:=sum;
 end;
writeln('4) Сортировка обеих частей');
for i:=1 to n do
write(mas[i]:6:2);
end.

Оцени полезность:

5   голосов , оценка 4 из 5
Похожие ответы