Помогите пожалуйста! Задан массив действительных чисел. Заменить отрицательные элементы,...

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

Помогите пожалуйста!
Задан массив действительных чисел. Заменить отрицательные элементы, не попадающие в интервал (-4,7; -0,1), их модулями.
Вводится последовательность из N произвольных чисел. Найти наибольшее число в последовательности. Если таких чисел несколько, определить, сколько их.


Информатика (17 баллов) | 19 просмотров
Дан 1 ответ
0 голосов
Правильный ответ
// PascalABC.NET 3.3, сборка 1573 от 04.11.2017
// Внимание! Если программа не работает, обновите версию!

begin
  var a:=SeqRandom(ReadInteger('n='),-1000,1000).Select(t->t/100).ToArray;
  a.Println;
  a.Transform(t->t.Between(-4.7,-0.1)?t:-t); a.Println
end.

Пример
n= 10
6.6 -4.4 -2.21 -4.95 -7.26 1.38 -5.8 0.77 -4.41 3.31
-6.6 -4.4 -2.21 4.95 7.26 -1.38 5.8 -0.77 -4.41 -3.31

begin
  var n:=ReadInteger('n=');
  var (max,k,tmp):=(integer.MinValue,0,0);
  loop n do begin
    Read(tmp);
    if tmp>max then (max,k):=(tmp,1)
    else if tmp=max then k+=1
    end;
  Writeln('Максимум ',max,' встречен ',k,' раз(а)')
end.

Пример
n= 8
-6 -9 12 7 -5 12 10 -3
Максимум 12 встречен 2 раз(а)

(150k баллов)
0

Большое спасибо