Даны два двумерных массива. Найти в первом массиве сумму тех элементов, которые кратны 3...

0 голосов
54 просмотров

Даны два двумерных массива. Найти в первом массиве сумму тех элементов, которые кратны 3 и 5 и найти во втором массиве найти произведение отрицательных элементов.
program z1;
var a:array [1..2,1..2] of integer;
i,j,s,p:integer;
begin
for i:=1 to 2 do
for j:=1 to 2 do
readln (a[i,j]);
s:=0;
for i:=1 to 2 do
for j:=1 to 2 do
If (a[i,j] mod 3=0) and (a[i,j] mod 5=0) then
begin
s:= s+a[i,j];
end;
writeln ('сумма элементов, которые кратны 3 и 5=',s);
p:=1;
for j:=1 to 2 do
begin
if a[j] < 0 then
p:=p* a[j];
end;
writeln('Произведение отрицательных чисел=',p);
end.
Что не так с программой? Пишет вот такую ошибку: Program1.pas(19) : Нельзя преобразовать тип array [1..2] of integer к integer


Информатика (25 баллов) | 54 просмотров
0

Из условия задачи "Даны два двумерных массива" а у вас в коде используется только один...

Дан 1 ответ
0 голосов
Правильный ответ

Сделал с нуля, вот.

Program naconecto;vara:array [1..2,1..2] of integer;b:array [1..2,1..2] of integer;i,j,s,p:integer; BEGINrandomize;s:=0;p:=1;for i:=1 to 2 do  begin    for j:=1 to 2 do      begin        A[i,j]:=random(-100,100);        B[i,j]:=random(-100,100);        if (A[i,j] mod 3 = 0) and (A[i,j] mod 5 = 0) then          begin            s:=s+A[i,j];          end;        if B[i,j]<0 then          begin            p:=p*B[i,j];          end;      end;  end;writeln('npou3BegeHue=',p);writeln('cyMMa=',s);readln;END.<br>
судя по твоей программы ты мыслишь так, когда говорят двумерный массив, ты думаешь что это нужно 2 отдельных массива сделать (получается одномерных), а не 1 (получается двумерный) и суёшь их каждый отдельно в один массив (двумерный), так появляется твой один двумерный, состоящий из двух одномерных. Задача хочет чтобы было два двумерных, например A и B. Ну а чтобы не создавать им 2 элемента внутри, можно рандомные числа ввести, чтобы не мучится вводить. И смотрю храмает в районе записей A[j] и A[i,j]. Разница в том, что в двумерном массиве в Pascal'e запись A[j] когда двумерный массив у тебя выведет все значения у номера столбца (что явл. j например 1), это те что сверху вниз. A[i] выведет значения всех данных первой строки (если I = 1). Чтоб конкретно к яйчейке обратится, нужно указать A[i,j] например A[1,2] будет ячейка первой строки отступом и второго столбца (отступом сверху). Представлять можно таблицой.

(2.8k баллов)
0

Спасибо большое!!! Очень помогли.