• Jueves 14 de Noviembre de 2024, 04:20

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 - pablo_ace

Páginas: [1]
1
Pascal / Problema Restriccion
« en: Viernes 6 de Junio de 2008, 03:54 »
Tengo un programa que consiste en crear altas de receptores y extender el archivo de receptores ya existentes con las altas nuevas.
El problema que tengo es que me especifican que en el campo pais tienen que ir Argentina, Chile, Uruguay y Paraguay. Esta armado un case of pero creo que esta mal  (x eso esta con // al comienzo). Esta hecho con if pero tambien creo q esta mal porque el programa anda pero si pongo p.ej. Japon, el programa sigue sin realizar la restriccion. Les paso el codigo a ver donde esta la falla.
Gracias de antemano!!

ACA ESTA EL CODIGO:
program Untitled;
uses crt;
type
Ts30 = string[30];
Ts9 = string[9];
Tvector = Array [1..3] of char;

TregReceptor = Record
ApellidoNombre: Ts30;
Mail: Ts30;
Pais: Ts9;
Acontecimiento: Tvector;
End;

TarchReceptores = file of TregReceptor;

Procedure ASIGNARABRIR (Var archout, archrec: TarchReceptores);
Begin
Assign (archout,'c:\nuevorec.dat');
Assign (archrec, 'c:\receptores.dat');
Rewrite (archout);
Reset (archrec);
End;

Function PAISCORRECTO (pais: string[9]): boolean;
begin
//case pais of
// 'argentina','ARGENTINA': PAISCORRECTO:= true;
// 'chile', 'CHILE': PAISCORRECTO:= true;
// 'paraguay', 'PARAGUAY': PAISCORRECTO:= true;
// 'uruguay', 'URUGUAY': PAISCORRECTO:= true;
// end;
if(pais = 'argentina') or (pais='ARGENTINA') THEN PAISCORRECTO:=false;
if (pais = 'chile') or (pais='CHILE') THEN PAISCORRECTO:=false;
if (pais= 'chile') or (pais= 'CHILE') THEN PAISCORRECTO:=false;
if (pais= 'paraguay') or (pais= 'PARAGUAY') THEN PAISCORRECTO:=false;
if (pais= 'uruguay')or (pais= 'URUGUAY')  THEN PAISCORRECTO:=false;
end;


Procedure ALTAS (Var archout: TarchReceptores; Var rec: TregReceptor);
var
respuesta:boolean;
letra: char;

Begin
        respuesta:=true;
        Writeln ('Ingrese su Nombre y Apellido');
        Readln (rec.apellidonombre);
                while rec.apellidonombre<>'' do
                        begin
                        Writeln ('Ingrese el Mail');
                        Readln (rec.mail);
                                while (respuesta)  do
                                 begin
                                 Writeln ('Ingrese el Pais de Residencia');
                                 readln(rec.pais);
                                 respuesta:= PAISCORRECTO(rec.pais);
                                 if (respuesta= true) then writeln ('Pais inexistente.');
                                 end ;
                                 respuesta:= true;
        writeln;
        Writeln ('Si desea tarjeta de Navidad sin animacion presione A, si desea con animacion presione D');
        Readln (rec.acontecimiento[1]);
        Writeln ('Si desea tarjeta de San Valentin sin animacion presione A, si desea con animacion D');
        Readln (rec.acontecimiento[2]);
        Writeln ('Si desea tarjeta de Año Nuevo sin animacion presione A, si desea con animacion D');
        Readln (rec.acontecimiento[3]);
        Write (archout, rec);
        Writeln ('Ingrese su Nombre y Apellido');
        Readln (rec.apellidonombre);
                        end
end;

Procedure EXTENDERRECEPTORES (Var archout,archrec: TarchReceptores; Var rec: TregReceptor; Var n:longint);
Begin
seek (archout, 0);
while not eof (archout) do
begin
n:= filesize (archrec);
seek (archrec,n);
read (archout, rec);
write (archrec, rec);
end;
end;

Procedure CERRAR (Var archrec, archout: TarchReceptores);
Begin
Close (archrec);
Close (archout);
end;

Var
archout: Tarchreceptores;
archrec: TarchReceptores;
rec: TregReceptor;
n:longint;

Begin
clrscr;
ASIGNARABRIR (archout, archrec);
ALTAS (archout, rec);
EXTENDERRECEPTORES (archout, archrec, rec, n);
CERRAR (archrec, archout);

End.

Páginas: [1]