Olá.
Curso primeiro ano de ADS e estou fazendo uns exercícios para nota de lógica de programação.
Minha professora passou um exercício com o seguinte enunciado:
Crie um programa dividido em procedimentos e função. Crie o procedimento Entrada que deverá ter declarado localmente a matriz dados 4x5 com números quaisquer. Crie o procedimento Positivos que deverá ter uma variável matriz positivo que armazenará apenas os números positivos contidos na matriz dados e o seu respectivo fatorial.O cálculo do fatorial deverá ser obtido na função Fatorial. Exiba o conteúdo das duas matrizes no procedimento positivos.
Criei os procedimentos para receber os números na matriz e outro para armazenar numa outra matriz, apenas números positivos, mas já faz horas que não consigo resolver esse erro. Segue código.
Erro na linha 43: A posição do 0 vetor está fora dos limites
Program Pzim ;
type num = array[1..4,1..5] of integer;
//entrada dos numeros
procedure entradaDados();
var
x, y: integer;
numeros:num;
begin
for x := 1 to 4 do
for y := 1 to 5 do
begin
write('Digite 12 valores correspondentes a matriz 4x5: ');
readln(numeros[x,y]);
end;
end;
//armazenamento dos numeros positivos
procedure numPositivo(numeros:num);
var
positivos: array[1..20,1..2] of integer;
x, y, cont: integer;
begin
for numeros[x,y] := 1 to 20 do
begin
for numeros[x,y] := 1 to 2 do
begin
if numeros[x,y] > 0 then
cont := cont+1;
positivos[cont,1] := numeros[x,y];
end;
if numeros[x,y] > 0 then
positivos[x,y] := numeros[x,y]
end;
for x := 1 to 4 do
for y := 1 to 5 do
begin
writeln(positivos[x,y]);
end;
end;
Begin
entradaDados;
numPositivo;
End.
Agradeço desde já.