Const N = 7; Var A:array[1..N]of integer; i:integer; S,Sn,P,Pn:real; Begin S:=0; Sn:=0; P:=1; Pn:=1; For i:= 1 to N do Begin A[i]:=random(7)+1; Write(A[i],' '); if A[i] mod 2 = 0 then Begin S:=S+A[i]; P:=P*A[i]; End else Begin Sn:=Sn+A[i]; Pn:=Pn*A[i]; End End; WriteLn; WriteLn('Сумма чётных элементов =',S); WriteLn('Произведение чётных элементов =',P); WriteLn('Сумма НЕчётных элементов =',Sn); WriteLn('Произведение НЕчётных элементов =',Pn); End.
Роман_Гречина
14.04.2020
Если три нуля значащие, значит число начинается с единицы. Поскольку любое число в развернутой записи есть сумма произведений, каждое из которых представляет собой произведение цифры, находящейся на n-й позиции на основание системы счисления, возведенной в степень n-1, то понятно, что чем больше по величине будут цифры в старших разрядах, тем больше будет само число. В применении к двоичной системе это означает, что слева должны стоять все единицы, а справа - нули. Получаем 11000(2)=1х2^4+1x2^3=16+8+=24(10) - тут символ ^ означает возведение в степень. ответ: 24
ИгоревичАндрей
14.04.2020
Function IsPrime(n:integer):Boolean; { Проверка, является ли число простым } var p:integer; found:Boolean; begin found:= (n mod 2 = 0); p:=3; while (not found) and (sqr(p)<=n) do begin found:=(n mod p = 0); p:=p+2 end; IsPrime:=(not found) or (p = 2) end;
const m1 = 20; n1 = 20;
var a: array[1..m1, 1..n1] of integer; s,k:array[1..n1] of integer; i, j, m, n, sum, kol: integer;
begin Write('Введите через пробел число строк и столбцов массива: '); Readln(m, n); Randomize; Writeln(#13#10, 'Исходный массив'); for i := 1 to m do begin for j := 1 to n do begin a[i,j]:= Random(99)+1; Write(a[i,j]:3) end; Writeln end; for j:=1 to n do begin sum:=0; kol:=0; for i:=1 to m do if IsPrime(a[i,j]) then begin sum:=sum+a[i,j]; kol:=kol+1 end; s[j]:=sum; k[j]:=kol end; Writeln('*** Сумма простых элементов по столбцам ***'); for j:=1 to n do Write(s[j]:4); Writeln; Writeln('*** Количество простых элементов по столбцам ***'); for j:=1 to n do Write(k[j]:4); Writeln end.
Тестовое решение:
Введите через пробел число строк и столбцов массива: 12 15
N = 7;
Var
A:array[1..N]of integer;
i:integer;
S,Sn,P,Pn:real;
Begin
S:=0;
Sn:=0;
P:=1;
Pn:=1;
For i:= 1 to N do
Begin
A[i]:=random(7)+1;
Write(A[i],' ');
if A[i] mod 2 = 0 then
Begin
S:=S+A[i];
P:=P*A[i];
End
else
Begin
Sn:=Sn+A[i];
Pn:=Pn*A[i];
End
End;
WriteLn;
WriteLn('Сумма чётных элементов =',S);
WriteLn('Произведение чётных элементов =',P);
WriteLn('Сумма НЕчётных элементов =',Sn);
WriteLn('Произведение НЕчётных элементов =',Pn);
End.