В заданном массиве найти сумму квадратов чётных элементов. Вывести исходный массив и...

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

В заданном массиве найти сумму квадратов чётных элементов. Вывести исходный массив и результат. ПАСКАЛЬ


Информатика (15 баллов) | 94 просмотров
Дано ответов: 2
0 голосов
Правильный ответ
PascalABC.NET 3.4.0, сборка 1675 от 12.06.2018
Внимание! Если программа не работает, обновите версию!

begin
  var a:=ArrRandom(ReadInteger('n='),-50,50); a.Println;
  Writeln('Сумма квадратов элементов с четными значениями равна ',
      a.Where(t->t.IsEven).Select(t->t*t).Sum);
  Writeln('Сумма квадратов четных по порядку элементов равна ',
      Range(1,a.Length-1,2).Select(i->Sqr(a[i])).Sum)
end.

(150k баллов)
0

Из Вашего условия непонятно, нужны элементы с четным значением или элементы, четные по порядку, поэтому выберите нужный Writeln, а второй удалите.

0

Ох...там квадраты...сейчас исправлю

0

Готово

0

четный элемент это само значение элемента или индекс элемента?

0

Я же написал - два варианта там.

0

Но в любом случае не индекс, а либо значение, либо порядковый номер от начала. К индексу нельзя привязываться, потому что не сказано, от какого значения идет индексация - от 0, от 1 или вообще от -19.

0

динамический массив индексируется с нуля, откуда -19?

0

Динамический - да. Поэтому я говорю о порядковых номерах и для четного порядкового номера начинаю с индекса, равного 1.

0

Но это конкретно в моей программе. В исходном вопросе ничего не сказано, о том, какой массив.

0

Может быть, автор вопроса работает с каким-нибудь FPC со статическими массивами и никто не мешает объявить массив с границами [-19..-12]

0 голосов

// если индекс начального элемента считать 1 то можно так
begin
    var arr := Arr(1,2,3,4,5,6).Println;
    Print('Сумма квадратов элементов массива с четными индексами: S = ' + 
                          arr.Where((el,ind)->odd(ind)).Select(t->t*t).Sum);
end.

(2.5k баллов)