Даны два двумерных массива. найти в первом массиве сумму тех элементов, которые кратны 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
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.
судя по твоей программы ты мыслишь так, когда говорят двумерный массив, ты думаешь что это нужно 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] будет ячейка первой строки отступом и второго столбца (отступом сверху). Представлять можно таблицой.