Написать программу на С++ или паскаль. Помогите пожалуйста!!! В одномерном массиве, состоящем из n вещественных элементов, вычислить: -максимальный элемент массива; -сумма элементов массива, расположенных до последнего положи...

Написать программу на С++ или паскаль. Помогите пожалуйста!!! В одномерном массиве, состоящем из n вещественных элементов, вычислить: -максимальный элемент массива; -сумма элементов массива, расположенных до последнего положительного элемента . Сжать массив, удалив из него все элементы, модуль которых находится в интервале (a.b). Освободившийся в конце массива элементы заполнить нулями.
Гость
Ответ(ы) на вопрос:
Гость
{ PascalABC.Net } const   nn=100; var   a:array[1..nn] of integer;   n:integer; procedure aInit(p,q:integer); { Инициализирует массив случайными целыми значениями из интервала [p;q] } var   i,k:integer; begin   Randomize;   k:=q-p+1;   for i:=1 to n do a[i]:=Random(k)+p end; procedure aOut(k:integer); { Выводит в строку значения эементов массива, отводя элементу k позиций } var   i:integer; begin   for i:=1 to n do Write(a[i]:k);   Writeln end; function aMax():integer; { Возвращает максимальное значение элемента в массиве }   var     i,m:integer; begin   m:=a[1];   for i:=2 to n do     if m=1) do begin     flag:=(a[i]<=0);     if not flag then Dec(i)   end;   s:=0;   for j:=1 to i-1 do s:=s+a[j];   SumBeforeLastPositive:=s end; procedure aShrink(pa,pb:integer); { Процедура сжимает массив, удаляя из него элементы, модуль которых находится в интервале [pa;pb]. Освободившийся элементы заполняются нулями. } var   i,j,k:integer;   flag:boolean; begin   k:=0; i:=1;   while i<=n do     if a[i] in [pa..pb] then     begin       if k=0 then k:=i-1;       j:=i+1; flag:=false;       while (not flag) and (j<=n) do begin         flag:=not (a[j] in [pa..pb]);         if not flag then Inc(j);       end;       if flag then begin Inc(k); a[k]:=a[j]; i:=j+1 end       else i:=n+1     end     else begin Inc(k); a[k]:=a[i]; Inc(i) end;   for i:=k+1 to n do a[i]:=0 end; var   p,q,k,b,c:integer; begin   Write('Укажите количество членов в массиве: ');   Read(n);   Write('Укажите интервал значений элементов массива: ');   Read(p,q);   Write('Укажите интервал исключаемых элементов массива: ');   Read(b,c);   Write('Укажите количество позиций для вывода значений элемента: ');   Read(k);     aInit(p,q);   Write('Исходный массив'); aOut(k);   Writeln('Значение максимального элемента равно ',aMax());   Writeln('Сумма до последнего положительного равна ',SumBeforeLastPositive());   Writeln('Сжатый массив');   aShrink(b,c); aOut(k) end.     Тестовое решение: Укажите количество членов в массиве: 15 Укажите интервал значений элементов массива: -6 9 Укажите интервал исключаемых элементов массива: -2 3 Укажите количество позиций для вывода значений элемента: 3 Исходный массив  7  7  7 -1  5  5 -5  6  0 -1  3  2 -4  1  8 Значение максимального элемента равно 8 Сумма до последнего положительного равна 35 Сжатый массив   7  7  7  5  5 -5  6 -4  8  0  0  0  0  0  0
Не нашли ответ?
Ответить на вопрос
Похожие вопросы