В одномерном массиве, состоящем из n вещественных элементов, вычислить: 1. Номер...

0 голосов
155 просмотров

В одномерном массиве, состоящем из n вещественных элементов, вычислить: 1. Номер минимального по модулю элемента массива.
2. Сумму модулей элементов массива, расположенных после первого отрицательного элемента.
3. Сжать массив, удалив из него элементы, величина которых находится в интервале [a, b]. Освободившиеся в конце массива элементы заполнить нулями.


Информатика (178 баллов) | 155 просмотров
Дано ответов: 2
0 голосов
Правильный ответ
// PascalABC.NET 3.3, сборка 1625 от 17.01.2018
// Внимание! Если программа не работает, обновите версию!

begin
  var n:=ReadInteger('n=');
  var v:=SeqRandom(n,-99,99).Select(t->0.1*t).ToArray;
  v.Println;
  var imin:=v.Select(t->Abs(t)).ToArray.IndexMin;
  Writeln('Номер минимального по модулю элемента- ',imin+1);
  var fn:=v.Select((x,i)->(x,i)).Where(t->t[0]<0).First[1];<br>  Writeln('Сумма модулей элементов после первого отрицательного равна ',
      v[fn+1:].Sum(t->Abs(t)));
  var (a,b):=ReadReal2('Введите границы интервала значений для удаления:');
  v:=v.Where(t->not t.Between(a,b)).ToArray;
  var m:=n-v.Length;
  if n>0 then begin
    SetLength(v,n);
    for var i:=v.Length to n-1 do v[i]:=0.0
    end;
  v.Println
end.

Пример
n= 15
-9.4 3.9 6.2 -2.5 -5.2 9 4.9 -9.5 4.4 2.4 -8.8 3.1 -7.7 5.6 8.9
Номер минимального по модулю элемента- 10
Сумма модулей элементов после первого отрицательного равна 82.1
Введите границы интервала значений для удаления: -20 2
3.9 6.2 9 4.9 4.4 2.4 3.1 5.6 8.9 0 0 0 0 0 0
(150k баллов)
0

Товарищ программист,а вы уверены,что 2.4 -минимальное по модулю число?

0

Извиняюсь,перепутал

0 голосов
Python 3.Среда разработки IDLE.Примеры и программа в файле
(1.4k баллов)
0

Мда,этого не учел(

0

Решение исправлено

0

Что-то ни разу не видел,чтобы модераторы удаляли решения с программами