Домашние задания: Информатика

Помогите написать программу в PascalABS с случайными числами

1)Сформировать массив B(7) случайными числами от -10 до 10. Найти и распечатать сумму только нечетных элементов массива и отдельно сумму четных.
2)Сформировать массив C(9) случайными числами от 0 до 20. Вычислить куб каждого элемента массива и распечатать.
1) Тут непонятно насчет нечетных элементов - на нечетных позициях или позиция (индекс) тут не при делах. Если не при делах, то вот программа:
 Program P1; 
uses crt;
const n=7;
type massiv=array [1..n] of integer;
var b: massiv;
i, sc, sn: integer; // sc - сумма четных, sn - сумма нечетных
begin
clrscr;
sc:=0;
sn:=0;
for i:=1 to n do b[i]:=random (21)-10;
write ('Был сгенерирован массив:');
for i:=1 to n do write (' ', b[i]);
for i:=1 to n do begin
if b[i] mod 20 then sn:=sn+b[i] else
if b[i] mod 2=0 then sc:=sc+b[i];
end;
writeln (' ');
writeln ('Сумма нечетных элементов массива составляет: ', sn);
write ('Сумма четных элементов массива составляет: ', sc);
end.
Если же речь только про позиции (индексы), то вот:
 Program P1;  
uses crt;
const n=7;
type massiv=array [1..n] of integer;
var b: massiv;
i, sc, sn: integer; // sc - сумма четных, sn - сумма нечетных
begin
clrscr;
sc:=0;
sn:=0;
for i:=1 to n do b[i]:=random (21)-10;
write ('Был сгенерирован массив:');
for i:=1 to n do write (' ', b[i]);
for i:=1 to n do begin
if i mod 20 then sn:=sn+b[i] else
if i mod 2=0 then sc:=sc+b[i];
end;
writeln (' ');
writeln ('Сумма нечетных элементов массива составляет: ', sn);
write ('Сумма четных элементов массива составляет: ', sc);
end.
2)
 Program P2;  
uses crt;
const n=9;
type massiv=array [1..n] of integer;
var c: massiv;
i: integer;
begin
clrscr;
for i:=1 to n do c[i]:=random (21); //Ошибки нет. Т.к. Паскаль верхнюю границу устанавливает на 1 меньше числа в скобках. Т.е. число 20 здесь включено. Если 20 включать не надо (т.е. максимальное число - 19), то исправьте число 21 на 20.
write ('Был сгенерирован массив:');
for i:=1 to n do write (' ', c[i]);
writeln (' ');
write ('Элементы этого массива в кубе:');
for i:=1 to n do write (' ', sqr (c[i])*c[i]);
end.
Ваня Шкурин
Ваня Шкурин
43 559
Лучший ответ
Вот на PascalABC:

const n = 7;
var B : array [1..n] of integer;
S1, S2 : integer;
begin
S1 := 0; S2 := 0;
WriteLn (' Исходный массив: ');
for var i := 1 to n do
begin
B[i] := -10 + random (21);
Write (B[i]:5);
if (B[i] mod 2 = 0) then S1 := (S1+B[i]) else S2 := (S2 + B[i]);
end; WriteLn;
WriteLn ( ' Сумма четных = ',S1, '; Сумма нечетных = ', S2);
end.

Olga Mityushkina
Olga Mityushkina
73 229
 var
b:array[0..6] of Integer;
i:Integer;
oddSumm,evenSumm:Integer;
begin
oddSumm:=0; evenSumm:=0;
WriteLn('Массив:');
for i:= 0 to 6 do
begin
b[i]:=Round(Random*20-10);
if (b[i] mod 2)=1 then
oddSumm:=oddSumm+b[i]
else
evenSumm:=evenSumm+b[i];
WriteLn('b[',i,'] = ',b[i]);
end;
WriteLn('Сумма чётных = ',evenSumm);
WriteLn('Сумма нечётных = ',oddSumm);
end;
 var 
c:array[0..8] of Integer;
i:Integer;
begin
WriteLn('Массив:');
for i:= 0 to 8 do
begin
c[i]:=Round(Random*20);
WriteLn('c[',i,'] = ',c[i],' / c[',i,']^3 = ',c[i]*c[i]*c[i]);
end;
end;
Во втором "c[i]*c[i]*c[i]" можешь заменить на "Power(c[i],3)". Возможно понадобится в uses добавить модуль Math для этого.