Foros-FIUBA Foros HostingPortal
 FAQ  •  Buscar  •  Wiki  •  Apuntes  •  Planet  •  Mapa  •  Eyeon  •  Chat
Preferencias  •  Grupos de Usuarios
Registrarse  •  Perfil  •  Entrá para ver tus mensajes privados  •  Login
Ver tema siguiente
Ver tema anterior

Responder al tema Ver tema anteriorEnviar por mail a un amigo.Mostrar una Lista de los Usuarios que vieron este TemaGuardar este Tema como un archivoPrintable versionEntrá para ver tus mensajes privadosVer tema siguiente
Autor Mensaje
Fabricio
Nivel 8


Edad: 34
Registrado: 20 Nov 2008
Mensajes: 851
Ubicación: Villa del Parque, barrio turro
Carrera: Civil
CARRERA.civil.3.jpg
MensajePublicado: Mar Ago 14, 2012 4:52 pm  Asunto:  Duda procedimiento de apareo (ejercicio de coloquio) Responder citandoFin de la PáginaVolver arriba

Bueno, uno de los puntos del coloquio era, dados 2 archivos (arstock y ardiario), generar un 3ero llamado Stockfin, ordenado por codigo de producto, y 2 archivos de texto (pedidos y errores (mismo orden)), en errores figuran los productos que figuran en ardiario pero no figuran en arstock, y en pedidos aparecen los productos que quedaron con stock por debajo del stock minimo.
Pueden faltar codigos de producto en los 2 archivos y ambos estan ordenados (descendentemente o asdencente, no recuerdo) por codigo de producto y a su vez Ardiario esta ordenado por codigo de sucursal.

La cuestion es que no me aprobaron el coloquio, y entre uno de los errores estaba que, segun me dijo el profesor, nunca supuse que un producto puede estar en varias sucursales, pero no puedo encontrar en mi procedimiento donde deje pasar eso, dejo el procedimiento tipeado: (puse solo las estructuras que se usan y el procedimiento, todo el resto era redundante)

Código:


type

Tregstock=record      Tregdiario=record         
   codigo:1..9999;         codigo:1..9999;
   precio:real;         cantvend:real;
   stactual:real;         codsuc:1000..10000;
   stminimo:real;      end;
end;

tarstock=file of tregstock;
tardiario=file of tregdiario;
tarpedidos= file of text;

var
   arstock,stockfin:tarstock;
   ardiario:tardiario;
   pedidos,errores:tarpedidos;

procedure apareo (var arstock,stockfin:tarstock; var ardiario:tardiario; var pedidos,errores:tarpedidos);
var
   regstock,regfin:tregstock;
   regdiario:tregdiario;
   fins,find:boolean;
   texto:string[50];

begin
   reset(arstock);
   reset(ardiario);
   rewrite(stockfin);
   rewrite(pedidos);
   rewrite(errores);
   leers(arstock,regstock,fins);
   leerd(ardiario,regdiario,find);
   while(not fins)and(not find)do
      begin
         if(regstock.codigo>regdiario.codigo)then
            while(regdiario.codigo<>regstock.codigo)do
               leerd(ardiario,regdiario,find)
         else
            if(regstock.codigo<regdiario.codigo)then
               while(regstock.codigo<>regidario.codigo)do
                  begin
                     texto:='error: el codigo '+regdiario.codigo+'no figura en el estock';
                     writeln(errores,texto);
                     leers(arstock,regstock,fins);
                  end
            else
               if(regstock.codigo=regdiario.codigo)then
                  begin
                     regstock.stactual:=regstock.stactual-regdiario.cantvend;
                     if(regstock.stactual<regstock.stminimo)then
                        begin
                           texto:='codigo: '+regstock.codigo+' stock menor al minimo';
                           writeln(pedidos,texto);
                        end;
                     write(stockfin,regstock);
                     leers(arstock,regstock, fins);
                     leerd(ardiario,regdiario,find);
                  end;
      end;
   whle(not fins) do
      begin
         write(stockfin,regstock);
         leers(arstock,regstock,fins);
      end;
   while(not find)do
      begin
         texto:='error:el codigo '+regdiario.codigo+'no figura en el stock';
         writeln(errores,texto);
         leerd(ardiario,regdiario,find);
      end;
   close(ardiario);
   close(arstock);
   close(stockfin);
   close(pedidos);
   close(errores);
end;


_________________
[tex]100 \% \ \  {ingeniero}[/tex]

Aries Género:Masculino Dragón OfflineGalería Personal de FabricioVer perfil de usuarioEnviar mensaje privado
lamorsa
Nivel 8


Edad: 35
Registrado: 14 Nov 2009
Mensajes: 671
Ubicación: Monte Grande (Far South)
Carrera: Informática y Sistemas
argentina.gif
MensajePublicado: Mar Ago 14, 2012 5:02 pm  Asunto:  (Sin Asunto) Responder citandoFin de la PáginaVolver arriba

No mencionaste que campos almacena en cada registro de los archivos arstock y ardiario.
En el caso que en dichos archivos contenga un campo que tenga un codigo de sucursal o nombre de sucursal. tienen razon en decirte que tendrias que verificar el stock un mismo codigo de producto en todas las sucursales existentes.

_________________
Image

Aquario Género:Masculino Gato OfflineGalería Personal de lamorsaVer perfil de usuarioEnviar mensaje privado
Fabricio
Nivel 8


Edad: 34
Registrado: 20 Nov 2008
Mensajes: 851
Ubicación: Villa del Parque, barrio turro
Carrera: Civil
CARRERA.civil.3.jpg
MensajePublicado: Mar Ago 14, 2012 5:18 pm  Asunto:  (Sin Asunto) Responder citandoFin de la PáginaVolver arriba

Claro, en realidad tendria que haber agregado dentro del if cuando son iguales, que si siguen siendo iguales los codigos de ambos archivos, vaya acumulando la cantidad vendida y lea otro registro de ardiario y al final la reste del total (o ir restando y leyendo en un ciclo) y luego eso grabarlo en el registro del codigo correspondiente, algo asi

Código:


if(regstock.codigo=regdiario.codigo)then
     begin
        while(regstock.codigo=regdiario.codigo)do
         begin
            regstock.stactual:=regstock.stactual-regdiario.cantvend;
            leerd(ardiario,regdiario,find);
         end;
        if(regstock.stactual<regstock.stminimo)then
            begin
                texto:='codigo: '+regstock.codigo+' stock menor al minimo';
                writeln(pedidos,texto);
            end;
        write(stockfin,regstock);
        leers(arstock,regstock, fins);
    end;
         


gracias por la ayuda!!!! Very Happy

_________________
[tex]100 \% \ \  {ingeniero}[/tex]

Aries Género:Masculino Dragón OfflineGalería Personal de FabricioVer perfil de usuarioEnviar mensaje privado
Mostrar mensajes de anteriores:      
Responder al tema Ver tema anteriorEnviar por mail a un amigo.Mostrar una Lista de los Usuarios que vieron este TemaGuardar este Tema como un archivoPrintable versionEntrá para ver tus mensajes privadosVer tema siguiente

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 CrackerTracker
365 Attacks blocked.

Powered by phpBB2 Plus, phpBB Styles and Kostenloses Forum based on phpBB © 2001/6 phpBB Group :: FI Theme :: Mods y Créditos

Foros-FIUBA está hosteado en Neolo.com Cloud Hosting

[ Tiempo: 0.5845s ][ Pedidos: 20 (0.5114s) ]