Autor |
Mensaje |
hgonzalez
Nivel 1
Registrado: 03 Jul 2008
Mensajes: 3
|
|
Buenas, soy nuevo en esto del foro, pero resulta que quiero presentarme al final y la curse con Garcia hace unos meses y no recuerdo mucho.
Hice uno de los finales que estan subidos al grupo de la materia, y buen, si encuentran algún error y me lo dicen mil gracias, porque la verdad no encontre nada parecido a un final que este resuelto para sacarme las dudas que tenía.
El codigo es este. Le agregue el tema de la carga de los archivos por mas que el enunciado no lo pedía como para poder ver si andaba, y compila, pero a la hora de correr el programa se sale y no pude ver que error tengo ni siquiera con el DEBUG
cualquier ayuda me viene muy bien
muchas gracias!
Program Final4;
Uses CRT;
Type Tdeuda=array[1..12] of integer;
TMaestro=record
num:integer;
nomb:string;
cod:integer;
deuda:tdeuda;
end;
Tcategoria=record
cod:integer;
valor:real;
end;
Tcliente=record
Num:integer;
mes:integer;
end;
Tarchmaestro=file of Tmaestro;
Tarchcategoria=file of Tcategoria;
Tarchcliente=file of tcliente;
Procedure carga(var arch1:tarchmaestro; var arch2:tarchcategoria; var arch3:tarchcliente);
var
num,cod,mes,i:integer;
vec:tdeuda;
reg1:tmaestro;
reg2:tcategoria;
reg3:tcliente;
valor:real;
Begin
writeln('Ingrese numero de cliente');
readln(num);
writeln('cod');
readln(cod);
writeln('deuda?');
for I:=1 to 12 do
readln(vec[i]);
writeln('valor?');
readln(valor);
writeln('mes?');
readln(mes);
reg1.num:=num;
reg1.cod:=cod;
for i:=1 to 12 do
reg1.deuda[i]:=vec[i];
write(arch1,reg1);
reg2.cod:=cod;
reg2.valor:=valor;
write(arch2,reg2);
reg3.num:=num;
reg3.mes:=mes;
write(arch3,reg3);
end;
Procedure Imprimir(var num:integer; var cod:integer; var cant:real);
Begin
writeln('Numero de cliente');
writeln(num);
writeln('Codigo de categor¡a');
writeln(cod);
writeln('Importe abonado total');
writeln(cant);
end;
Procedure actualizar(var maestro:tarchmaestro; var pagos:tarchcliente; var categoria:tarchcategoria);
Var
reg1:tmaestro;
reg2:tcategoria;
reg3:tcliente;
mes,categ,anterior,numero:integer;
consumo,valor,cosumo,suma,total:real;
encontrado:boolean;
Begin
reset(maestro);
reset(pagos);
suma:=0;
total:=0;
numero:=0;
while not(eof(pagos)) do
Begin
read(pagos,reg3);
anterior:=numero;
numero:=reg3.num;
If (anterior<numero) and (anterior <>0) then
begin
imprimir(anterior,categ,suma);
total:=total+suma;
suma:=0;
end
else
begin
mes:=reg3.mes;
seek(maestro,numero);
read(maestro,reg1);
encontrado:=false;
reset(categoria);
categ:=reg1.cod;
while not encontrado do
begin
read(categoria,reg2);
if reg2.cod=categ then
begin
valor:=reg2.valor;
encontrado:=true;
end;
end;
consumo:=reg1.deuda[mes]*valor;
suma:=suma+consumo;
reg1.deuda[mes]:=0;
end;
end;
writeln('El total adeudado es de ',total,'.');
end;
var
arch1:tarchmaestro;
arch3:tarchcategoria;
arch2:tarchcliente;
begin
assign(arch1,'C:\arch1.dat');
assign(arch2,'C:\arch2.dat');
assign(arch3,'C:\arch3.dat');
carga(arch1,arch3,arch2);
readkey;
actualizar(arch1,arch2,arch3);
close(arch1);
close(arch2);
close(arch3);
end.
|
|
|
|
|
|
|
|
|
|
|
Ver tema siguiente
Ver tema anterior
Podés publicar nuevos temas en este foro No podés responder a temas en este foro No podés editar tus mensajes en este foro No podés borrar tus mensajes en este foro No podés votar en encuestas en este foro No Podéspostear archivos en este foro No Podés bajar archivos de este foro
|
Todas las horas son ART, ARST (GMT - 3, GMT - 2 Horas)
Protected by CBACK CrackerTracker365 Attacks blocked.
|
|
[ Tiempo: 0.4974s ][ Pedidos: 20 (0.4232s) ] |