I'm trying to add two multi-dimensional arrays of different sizes.
I hope you understand my code the variables are in portuguese.
Program NOTA_ALUNO;
Var
A,B,C: Array[1..100,1..100] Of Integer;
contadorHorizontal,contadorVertical: Integer;
valoresVertical_A,valoresHorizontal_A,mm,nn: Integer;
valoresVertical_B,valoresHorizontal_B: Integer;
Begin
Writeln('digite as dimensões das matrizes:');
Readln(valoresHorizontal_A,valoresVertical_A);
Writeln('digite os elementos da matriz A:');
For contadorHorizontal := 1 To valoresHorizontal_A Do
Begin
For contadorVertical := 1 To valoresVertical_A Do
Begin
Read(A[contadorHorizontal,contadorVertical]);
End;
Readln;
End;
Writeln('digite as dimensões das matrizes:');
Readln(valoresHorizontal_B,valoresVertical_B);
Writeln('digite os elementos da matriz B:');
For contadorHorizontal := 1 To valoresHorizontal_B Do
Begin
For contadorVertical := 1 To valoresVertical_B Do
Begin
Read(B[contadorHorizontal,contadorVertical]);
End;
Readln;
End;
And here is what I did. If the values of the x axis of array A is
bigger than of array B, I'd take the number of array B and add one and fill the missing spaces with zeroes. But that doesn't work:
If (valoresHorizontal_A > valoresHorizontal_B) Then
nn := valoresHorizontal_B+1;
For contadorHorizontal := nn To valoresHorizontal_A Do
Begin
B[contadorHorizontal,contadorVertical] := 0;
End;
{calcular a soma de A + B}
For contadorHorizontal := 1 To valoresHorizontal_A Do
Begin
For contadorVertical := 1 To valoresVertical_A Do
Begin
C[contadorHorizontal,contadorVertical] :=
A[contadorHorizontal,contadorVertical] +
B[contadorHorizontal,contadorVertical];
End;
End;
{imprimir o resultado}
Writeln('O resultado da soma de A+B:');
For contadorHorizontal := 1 To valoresHorizontal_A Do
Begin
For contadorVertical := 1 To valoresVertical_A Do
Begin
Write(C[contadorHorizontal,contadorVertical],' ');
{deixar espaço entre números}
End;
Writeln; { quebra linha }
End;
Readln;
End.
horiz_A > horiz_B. 2) What ifhoriz_B > horiz_A? 3) What ifvert_A > vert_Bor ifvert_B > vert_A? 4) What if any dimension is bigger than 100? Finally, when you write results, you write the values in vertical order horizontally. Is that your intention? - Tom Brunberg