Помогите с программированием, пожалуйста. Pascal1. Массив А (одномерный) задан случайным

Помогите с программированием, пожалуйста. Pascal
1. Массив А (одномерный) задан случайным образом. Найти сумму его элементов с четными номерами, творение отрицательных частей, количество нечетных элементов.
2. Дан одномерный массив, значения элементов которого вводятся с клавиатуры. Отрицательные элементы данного массива поменять их модулями, нулевые остаются неизменными, а положительные - их квадратами. На экран вывести начальный массив и приобретенный итог.
3. Дан массив. Поменять местами первый элемент массива и наибольший. Вывести оба массива.

Задать свой вопрос
Ботвиньев Арсений
В третьем задании, если наибольших значений несколько? Что тогда делать?
Алексей
Здесь, наверное, необходимо чтобы с клавиатуры ввод был, и, соответственно, одно наибольшее.
2 ответа
// PascalABC.NET 3.2, сборка 1417 от 28.03.2017
// Внимание! Если программа не работает, обновите версию!

begin
  var a:=ArrRandom(ReadInteger('n='),-99,99); a.Println;
  var se:=a.Where((x,i)-gt;i.IsOdd).Sum;
  var pn:=a.Where(x-gt;xlt;0).Aggregate(BigInteger(1),(p,q)-gt;p*q);
  var ko:=a.Where(x-gt;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-gt;xlt;0?абс(x):xgt;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
1-ое задание. Быстро сделаю остальное

var
a:array[1..15] of integer;
i,sum,pr,k:integer;
begin
sum:=0;
pr:=1;
k:=0;
for i:=1 to 15 do
begin
a[i]:=random(201)-100;
writeln('a[',i,']=',a[i]);
if i mod 2 = 0 then sum:=sum+a[i];
if a[i]lt;0 then pr:=pr*a[i];
if a[i] mod 2 lt;gt; 0 then k:=k+1;
end;
writeln('Summa elementov s chetnimi nomerami = ',sum);
writeln('Proizvedenie otritsatelnih elementov = ', pr);
writeln('Kol-vo nechetnih elementov = ',k);
end.

2-ое

var
a:array[1..5] of integer;
b:array[1..5] of integer;
i:integer;
begin
writeln('Zapolnite massiv');
for i:=1 to 5 do
begin
read(a[i]);
if a[i]lt;0 then b[i]:=abs(a[i]);
if a[i]gt;0 then b[i]:=sqr(a[i]);
if a[i]=0 then b[i]:=a[i];
end;
writeln;
for i:=1 to 5 do
writeln('a[',i,']=',a[i]);
writeln;
for i:=1 to 5 do
writeln('b[',i,']=',b[i]);
end.

Третье

var
a:array[1..5] of integer;
b:array[1..5] of integer;
ibuf,i,max,q:integer;
begin
max:=0;
writeln('Zapolnite massiv');
writeln;
for i:=1 to 5 do
begin
readln(a[i]);
if a[i]gt;max then max:=a[i];
end;
for i:=1 to 5 do
if a[i]=max then ibuf:=i;
for i:=1 to 5 do
b[i]:=a[i];
b[ibuf]:=a[1];
b[1]:=max;
writeln;
for i:=1 to 5 do
writeln('a[',i,']=',a[i]);
writeln;
for i:=1 to 5 do
writeln('b[',i,']=',b[i]);
end.
Игорь Когаков
2-ое задание
Дарья
Третье задание
, оставишь ответ?
Имя:*
E-Mail:


Последние вопросы

Добро пожаловать!

Для того чтобы стать полноценным пользователем нашего портала, вам необходимо пройти регистрацию.
Зарегистрироваться
Создайте собственную учетную запить!

Пройти регистрацию
Авторизоваться
Уже зарегистрированны? А ну-ка живо авторизуйтесь!

Войти на сайт