Помогите с программированием, пожалуйста. Pascal
1. Массив А (одномерный) задан случайным образом. Найти сумму его элементов с четными номерами, произведение отрицательных элементов, количество нечетных элементов.
2. Дан одномерный массив, значения элементов которого вводятся с клавиатуры. Отрицательные элементы данного массива заменить их модулями, нулевые остаются неизменными, а положительные - их квадратами. На экран вывести исходный массив и полученный результат.
3. Дан массив. Поменять местами первый элемент массива и максимальный. Вывести оба массива.
Answers & Comments
// Внимание! Если программа не работает, обновите версию!
begin
var a:=ArrRandom(ReadInteger('n='),-99,99); a.Println;
var se:=a.Where((x,i)->i.IsOdd).Sum;
var pn:=a.Where(x->x<0).Aggregate(BigInteger(1),(p,q)->p*q);
var ko:=a.Where(x->x.IsOdd).Count;
Writeln('Сумма элементов с четными номерами: ',se);
Writeln('Произведение отрицательных элементов: ',pn);
Writeln('Количество нечетных элементов: ',ko)
end.
Пример
n= 17
7 -60 -7 -96 -14 97 7 -68 -89 -87 -50 49 77 -52 -36 -15 99
Сумма элементов с четными номерами: -232
Произведение отрицательных элементов: -417286023598080000
Количество нечетных элементов: 10
begin
var a:=ReadArrInteger('Вводите:',ReadInteger('n='));
a.Println;
a.Transform(x->x<0?abs(x):x>0?x*x:x); a.Println
end.
Пример
n= 17
Вводите: 7 -60 -7 -96 -14 97 7 -68 -89 -87 -50 49 77 -52 -36 -15 99
7 -60 -7 -96 -14 97 7 -68 -89 -87 -50 49 77 -52 -36 -15 99
49 60 7 96 14 9409 49 68 89 87 50 2401 5929 52 36 15 9801
begin
var a:=ArrRandom(ReadInteger('n='),-99,99); a.Println;
var im:=a.IndexMax;
swap(a[0],a[im]); a.Println;
end.
Пример
n= 16
-73 -46 76 92 -57 -57 81 -96 -92 18 -76 89 13 -83 69 56
92 -46 76 -73 -57 -57 81 -96 -92 18 -76 89 13 -83 69 56