с решением по информатике по теме "одномерные массивы" (язык программирования pascal). написать программы: 1) даны два числа а и в. если числа положительные, вычислить произведение этих чисел, если хотя бы одно их них отрицательное, вычислить сумму квадратов этих чисел. 2) дан произвольный массив, замените каждый второй элемент массива на ноль, а каждый пятый увеличите в 2 раза. и выведите полученный массив на экран.
Var
A,B:integer;
Begin
ReadLn(A,B);
if (A>0)and(B>0) then WriteLn(A*B)
else WriteLn(A*A+B*B);
End.
2)
Const
N=30;
Var
A:array[1..N] of integer;
Begin
For var i:= 1 to N do
Begin
A[i]:=random(100)-50;
Write(A[i]:3,' ');
End;
WriteLn;
For var i:= 1 to N do
Begin
if i mod 2 = 0 then A[i]:=0
else if i mod 5 = 0 then A[i]:=A[i]*2;
Write(A[i]:3,' ');
End;
End.
// Внимание! Если программа не работает, обновите версию!
1)
begin
var a,b:real;
Read(a,b);
if (a>0) and (b>0) then Writeln('Произведение равно ',a*b)
else Writeln('Сумма квадратов равна ',a*a+b*b)
end.
2)
begin
var a:=ArrRandom(ReadInteger('n='),-99,99); a.Println;
for var i:=0 to a.Length-1 do
if i.IsOdd then a[i]:=0
else
if (i+1) mod 5 =0 then a[i]*=2;
a.Println;
end.
Пример
n= 17
7 -49 -21 84 87 12 27 86 -29 -55 -32 -83 -24 96 -3 -3 -78
7 0 -21 0 174 0 27 0 -29 0 -32 0 -24 0 -6 0 -78
Замечание
"Каждый второй" и "каждый пятый" дают пересечение на каждом десятом. И получается. что каждый десятый элемент должен быть обнулён. как каждый второй и удвоен, как каждый пятый, так что все равно получим ноль.