• Jueves 2 de Mayo de 2024, 01:05

Mostrar Mensajes

Esta sección te permite ver todos los posts escritos por este usuario. Ten en cuenta que sólo puedes ver los posts escritos en zonas a las que tienes acceso en este momento.


Mensajes - pablo04

Páginas: [1]
1
Pascal / Re: Matriz
« en: Domingo 29 de Junio de 2008, 21:58 »
Hola, primero q nada, en el for tiene un error, vos pusiste a lo ultimo un "to" y tiene q ir un "do" y ahi t tiene q tirar un error de compilacion, segundo error, le pasas al procedimiento como valor a la matriz, y se la tenes q pasar por referencia para q le haga el cambio, xq por lo q veo ese procedimiento no llama a ningun otro ni tmp imprime en pantalla, por lo cual si le pasas la matriz por valor, hara los cambios, si el procedimiento andubiera, pero luego de salir del mismo no haria cambios. y tercero, vos pusiste Matriz[I,J]:=Matriz[I+1,1], y eso t tiene q dar un error d rango, porq la primer pasada i vale 4 y si le sumas uno, vale 5, pero la matriz es d 4 x 4, por lo cual haces q se vaya de rango. Aca te dejo como seria el procedimiento para mover el 16 a la primer posicion y mover todos los demas una casilla. Espero q te sirva.

Procedure Mover (Var Matriz: tMatriz);
Var i,j,AUX: Integer;

Begin
Aux:= Matriz[4,4];
For I:= 4 Downto 1 do
For J:= 4 Downto 2 do
Matriz [i,j]:= Matriz [I,J-1];
Matriz [1,1]:= Aux;
end;

2
Pascal / Funcion para contar caracteres
« en: Domingo 29 de Junio de 2008, 05:58 »
Hola, estoy haciendo un programa para la facultad, y me surgio un problema, quiero saber como contar la cantidad de caracteres de una variable, probe con la funcin strln(), pero me da error de tipos. Lo q tngo es esto, Un registro de varios campos, quiero q me imprimia en pantalla los valores de los campos del registro, y quiero saber la cantidad de caracteres para imprimirlo ordenadamente dependiendo d la cantidad de caracteres q ocupa la palabra en la pantalla.
Les dejo el codigo para q mas o menos lo entiendan:

treg_emp= record
                        legajo: longint;
                        nombre: string[50];
                        fechaingreso: string[8];
                        domicilio_calle: string[50];
                        domicilio_localidad: string[15];
                        domicilio_provincia: string[15];
                        telefono: string[15];
                        dias_trabajo: t_dias_trabajo;
                        sueldo: real;
                  end;

Ese es el registro, y ahora les pongo los procedimientos

Procedure MostrarEncabezado;

Begin
        Writeln ('____________________________________________________________________________________');
        Writeln ('| Localidad     | N§ Legajo   | Nombre             | Calle                     | Provincia          | Subtotal |');
        Writeln ('|___________|___________|______________|_________________|______________|__________|');
end;

Procedure Most_Listado ( Var A: T_Arch_Emp; Vec_Ind: T_ind; N: T_Rango);

Var
        Reg: TReg_Emp;
        I: T_Rango;
        Aux: TReg_Ind;
        Subtotal: real;
        X: String[15];
        Y: Longint;
        J: String[50];
        K: String[50];
        L: String[15];
Begin
        Reset (A);
        MostrarEncabezado;
        I:=1;
        Subtotal:=0;
        While (I <= N) do
                Begin
                        Aux.Domicilio_Localidad:= Vec_Ind.Domicilio_localidad;
                        While (Aux.Domicilio_Localidad = Vec_Ind.Domicilio_Localidad) and (I<=N) do
                                Begin
                                        Seek (A, Vec_Ind.PRR);
                                        Read (A,Reg);
                                        X:= Reg.Domicilio_Localidad;
                                        Y:= Reg.Legajo;
                                        J:= Reg.Nombre;
                                        K:= Reg.Domicilio_Calle;
                                        L:= Reg.Domicilio_Provincia;
                                        Writeln ('| ',X,'| ':12-strlen(X),Y,'| ':15:strlen(Y),J,'| ',K,'| ',L,'| ',Subtotal,'| ');
                                        Inc(I);
                                        Subtotal:= Subtotal + Reg.Sueldo;
                                end;
                                Writeln (' ':63, Subtotal);
                end;
end;

Ahi les deje los procedure, espero q entiendan cual es el problema q tngo, lo q me dice es q error de tipo... si saben como solucionarlo les agradesco...

Páginas: [1]