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

Ответы 1

  • { 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)+pend;procedure aOut(k:integer);{ Выводит в строку значения эементов массива, отводя элементу k позиций }var  i:integer;begin  for i:=1 to n do Write(a[i]:k);  Writelnend;function aMax():integer;{ Возвращает максимальное значение элемента в массиве }  var    i,m:integer;begin  m:=a[1];  for i:=2 to n do    if m<a[i] then m:=a[i];  aMax:=mend;function SumBeforeLastPositive():integer;{ Возвращает сумму элементов массива,  расположенных до последнего положительного элемента }var  i,j,s:integer;  flag:boolean;begin  i:=n; flag:=false;  while (not flag) and (i>=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:=send;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]:=0end;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
    • Автор:

      bossy
    • 6 лет назад
    • 0
  • Добавить свой ответ

Еще вопросы

Войти через Google

или

Забыли пароль?

У меня нет аккаунта, я хочу Зарегистрироваться

How much to ban the user?
1 hour 1 day 100 years