Предмет: Информатика, автор: DeNKA72

дан массив b 60 заполнить целыми случайными числами найти произведение чисел кратных 7

Ответы

Автор ответа: DexelGamer
0
//Pascal ABC.Net
Var b:array[1..60] of longint;i:longint;pr:int64;
Begin
pr:=1;
for i:=1 to 60 do
begin
b[i]:=random(99)+1;
if (b[i] mod 7=0) then pr*=b[i];
end;
writeln('Получившийся массив:');
for i:=1 to 60 do
write(b[i],' ');
writeln;
writeln('Произведение чисел кратных 7 равно ',pr);
End.

//Если не пашет (ошибка компиляции):
//1) В строке if (b[i] mod 7=0) then pr*=b[i]; замени pr*=b[i]; на pr:=pr*b[i];
//2) Если всё равно ошибка компиляции, попробуй int64 заменить на longint
//3) Если всё равно ошибка компиляции, longint переименуй в integer.

Автор ответа: Аноним
0
Можно даже сделать random(2)+1...
Автор ответа: DexelGamer
0
А почему бы и нет? В условии ведь не было ничего сказано.
Автор ответа: Аноним
0
Да хотя бы потому, что если не указано, задача должна позволять задавать числа во всем диапазоне представления данных. Либо, надо указывать верхнюю границу таких данных, после которых может появиться неконтролируемое переполнение.
Автор ответа: Аноним
0
В Вашем варианте предельный случай (теоретически возможный) - это все 60 элементов на максимуме. Что дает даже для random(13)+1 величину порядка 13 в шестидесятой степени.
Автор ответа: Аноним
0
Чему вас только учат...?
Автор ответа: Аноним
0
1. Современное эффективное решение

// PascalABC.NET 3.2, сборка 1362 от 14.12.2016
// Внимание! Если программа не работает, обновите версию!

begin
  var a:=ArrRandom(60,1,99); a.Println;
  Writeln('П=',a.Where(x->x mod 7=0).Aggregate(BigInteger(1),(x,y)->x*y))
end.

Пример
79 23 80 37 68 93 7 77 16 29 97 73 36 33 36 98 91 67 28 37 91 17 42 28 83 85 33 28 8 28 61 85 76 92 78 31 82 91 43 35 21 7 27 83 82 57 36 28 13 42 88 38 54 73 36 62 80 52 54 82
П=6217461925940365408788480

2. А вот решение, каким обычно обучают в школе

var
  a:array[1..60] of integer;
  i:integer;
  p:real;
begin
  Randomize;
  p:=1;
  for i:=1 to 60 do
    begin
    a[i]:=Random(99)+1;
    Write(a[i],' ');
    if a[i] mod 7=0 then p:=p*a[i]
    end;
  Writeln;
  Writeln('П=',p)
end.

Пример
61 17 39 73 2 48 22 17 42 22 82 37 29 59 70 11 43 29 21 31 31 10 44 27 11 68 76 39 68 84 64 39 78 64 25 32 80 1 92 28 98 5 27 28 82 92 20 59 49 98 93 1 33 97 85 52 72 13 62 33
П=1.91341954266624E+15
Похожие вопросы
Предмет: Математика, автор: ulia69583
Предмет: Алгебра, автор: charock
Предмет: Информатика, автор: Н0911