[ Foro de Pascal ]
Hola me podrian ayudar con esto?..
- Leer una matriz de 3 por 3 y calcular la suma de cada una de sus filas y columnas,
colocando los resultados en dos vectores, uno para la suma de las filas y otro para la suma
de las columnas.
como hago para sumar las filas y las columnas por separado? Gracias
Aquí tengo el código para que lo analices:
program Matriz3x3;
uses CRT;
var
mat: array[1..3,1..3] of integer;
sumaFila: array[1..3] of integer;
sumaCol: array[1..3] of integer;
i, j: integer;
BEGIN
{Inicializamos los dos vectores a cero}
for i:=1 to 3 do
Begin
sumaFila[i]:= 0;
sumaCol[i]:= 0;
End;
{Leemos los datos para la matriz de 3x3}
for i:=1 to 3 do
Begin
for j:=1 to 3 do
Begin
write('Introduzca el elemento ',i,',',j,': ');
readln(mat[i,j]);
End;
End;
{Calculamos la suma de cada fila y cada columna con un solo ciclo for}
for i:=1 to 3 do
for j:=1 to 3 do
Begin
sumaFila[i]:= sumaFila[i] + mat[i,j];
sumaCol[i]:= sumaCol[i] + mat[j,i];
End;
{Mostramos el vector que contiene la suma de las filas}
Writeln('VECTOR SUMA DE FILAS: ');
for i:=1 to 3 do
Begin
Writeln(sumaFila[i]);
End;
{Mostramos el vector que contiene la suma de las columnas}
Writeln('VECTOR SUMA DE COLUMNAS: ');
for j:=1 to 3 do
Begin
Write(sumaCol[j]:4);
End;
writeln;
readln;
END.
luis no le hagas las tareas a nadie , mas bien explica porque haces un daño tio, no es lo mismo verlo hecho que intentarlo, asi que pienso que mal de tu parte hacer los programas
Lo siento, pero aquí tengo que defender a Luis. Es un fuente suficientemente comentado como para que la solución sea entendible y quien la reciba pueda llegar más allá del "copiar y pegar".
Yo prefiero dar pistas primero, y ayudar con la solución cuando está claro que ya se ha intentado, pero su solución es clara y ayudará a Carolina... si Carolina realmente quiere aprender.
Al leer la pregunta de Carolina, entendí que ella solo quería una orientación, ella no quería que le hicieran todo el ejercicio, por eso decidí hacer el código completo y comentado, para que ella lo analizara y luego preguntara.
Saludos.
muy desafortunada tu intervencion jorgemadrid pues a ti que te da si el compañero resulve los programas para ayudar, sino te gusta pues pon tu solucion o puntos de vista pero no ataques al compañero luis cuando lo que intenta es ayudar, si que es verdad que lo mejor y por experiencia lo digo es hacer uno mismo sus propios programas y no que alguien los haga por que entonces todo sera facil y pues es mal habito esperar que la gente resulva los programas, lo interesante es que sean soluciones propias.
Hola muchas gracias por ayudarme.. a continuacion pondre el codigo que yo intente pero que no funciona y no me doy cuenta por que razon.. tiene procedimientos porque los programas que debo hacer tienen que tener procedimientos o funciones..
program ejercicio2;
uses
crt;
type
matriz= array [1..3,1..3] of integer;
fila= array[1..3] of integer;
columna= array[1..3] of integer;
var
mat: matriz;
sumafila: fila;
sumacolumna:columna;
i,j: integer;
procedure carga (var mat: matriz);
begin
writeln ('Ingrese valores');
for i:=1 to 3 do
for j:= 1 to 3 do
readln (mat[i,j]);
end;
procedure suma (var sumafila:fila; sumacolumna:columna; mat:matriz);
begin
for i:=1 to 3 do
for j:=1 to 3 do
begin
sumaFila[i]:= sumaFila[i] + mat[i,j];
sumaColumna[i]:= sumaColumna[i] + mat[j,i];
end;
end;
begin
carga (mat);
suma (sumafila,sumacolumna,mat);
Writeln('VECTOR SUMA DE FILAS: ');
for i:=1 to 3 do
Begin
Writeln(sumaFila[i]);
End;
Writeln('VECTOR SUMA DE COLUMNAS: ');
for j:=1 to 3 do
Begin
Writeln(sumacolumna[j]);
End;
end.
En el procedimiento "suma", te faltó declarar el parámetro sumacolumna como un parámetro por referencia, o sea no le colocaste la palabra reservada "var" por delante; al ser un parámetro por valor no afectará a la variable que está en el cuerpo principal del programa.
Otra cosa que deberías agregar es un "readln" al final del programa para que éste se detenga y puedas observar los resultados.
Saludos.
Muchas gracias por su ayuda! :)
(No se puede continuar esta discusión porque tiene más de dos meses de antigüedad. Si tienes dudas parecidas, abre un nuevo hilo.)