[ Foro de Pascal ]

mejoras?

07-Mar-2014 15:22
Invitado (rocioJ)
1 Respuestas

buenas , profesor queria me dieras tus consejos a mejorar un programa que bueno segun lo que me piden me funciona como lo he hecho pero quiero ver tu punto de vista en como hubiese sido mas elegante o eficiente la solucion, es para crecer gracias,

el programita es basico y se trata de a partir de tres vectores  ingresados por teclado ,crear su respectiva matriz:
A= 10   12  2    5    4
B=  1     8   3   19  20
C=  4    6  23    9   15

                                          10   12   2     5    4
    entonces   Matriz=    1     8    3    19  20
                                          4      6   23    9   15

bien yo lo he hecho asi, espero por favor me indiques mejoras y correcciones que te agradezco profesor.


program devectoresAmatriz;
uses crt;
const M=3;
 var A,B,C:array[1..15] of integer;
        Matriz:array[1..15,1..15] of integer;
       i,j,N,fila:integer;
begin
    writeln('digite las dimensiones de los tres vectores :' );
   readln(N);
   writeln('digite los valores para el vector A : ');
   for i:=1 to N do
   begin
       writeln('A[',i,']:');
       readln(A[i]);
   end;
clrscr;
writeln('digite los valores para el vector B : ');
 for i:=1 to N do
   begin
       writeln('B[',i,']:');
       readln(B[i]);
   end;
clrscr;
writeln('digite los valores para el vector C : ');
 for i:=1 to N do
   begin
       writeln('C[',i,']:');
       readln(C[i]);
    end;

writeln;

 for i:=1 to M do
   begin
    fila:=i;
    for j:=1 to N do
     begin
        if fila=1 then
           Matriz[fila,j]:=A[J]
          else
              if fila=2 then
                Matriz[fila,j]:=B[j]
              else
                  if fila=3 then
                    Matriz[fila,j]:=C[j];
       end;
    end;
(*mostrar la matriz*)
for i:=1 to M do
 begin
  for j:=1 to N do
   write(Matriz[i,j]:3);
   writeln;
  end; 
readln;
 end.              


             


07-Mar-2014 19:35
Luis Torres (+18)

Está muy bien. Yo cambiaría la parte de ingresar cada vector a la matriz, en vez de utilizar dos ciclos for, lo haría con uno solo, de la siguiente manera:



for j:=1 to N do
  begin
      Matriz[1,j]:= A[j];
      Matriz[2,j]:= B[j];
      Matrz[3,j]:= C[j];
  end;



Saludos.






(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.)