[ Foro de Pascal ]
Hola, estoy practicando pascal les dejo mi codigo, mi problema se encuentra en el case 3 donde doy la opcion de buscar que basicamente explota el programa xD cuando le pido que busque por CI sin embargo si le digo que busque por .nombre lo encuentra sin problemas
¿como arreglo eso? para que al buscar y la persona coloque la CI aparezca la persona guardada con esa CI?
y porfa si pueden y no es molestia tambien me gustaria mandar un mensaje tipo error cuando por ejemplo en el campo de cedula me colocaran una letra ¿como aria eso? tipo que si en ves de colocar 12345 me colocan asdas les bote un mensaje de " campo incorrecto intente de nuevo"
program Agenda0b;
var
gente: array [1..1000] of { Los datos }
record
nombre: string;
email: string;
ci: integer;
end;
cantidad: integer; { Cantidad de datos existentes }
opcion: integer; { Opción escogida }
i: integer; { Para bucles "for" }
textoBuscar: string; { Para búsquedas }
encontrado: boolean; { Idem }
{Cuerpo del programa principal}
begin
cantidad := 0;
repeat
WriteLn('Agenda');
WriteLn;
WriteLn('1- Añadir una nueva persona');
WriteLn('2- Ver nombres de todos');
WriteLn('3- Buscar una persona');
WriteLn('0- Salir');
Write('Escoja una opción: ');
ReadLn(opcion);
WriteLn;
case opcion of
1: { Añadir datos de una persona }
if cantidad < 1000 then
begin
cantidad := cantidad + 1;
WriteLn('Introduciendo la persona ', cantidad);
Write('Introduzca el nombre: ');
ReadLn(gente[cantidad].nombre);
Write('Introduzca el correo electrónico: ');
ReadLn(gente[cantidad].email);
Write('Introduzca la ci: ');
ReadLn(gente[cantidad].ci);
WriteLn;
end
else
WriteLn('Base de datos llena');
2: { Ver nombres de todos }
begin
if cantidad = 0 then
WriteLn('No hay datos')
else
for i := 1 to cantidad do
WriteLn(i, ' ', gente[i].nombre);
WriteLn;
end;
3: { Buscar una persona }
begin
Write('¿Qué texto busca? ');
ReadLn( textoBuscar );
encontrado := false;
for i := 1 to cantidad do
if pos (textoBuscar, gente[i].ci) > 0then
begin
encontrado := true;
WriteLn( i,' - Nombre: ', gente[i].nombre,
', Email: ', gente[i].email,
', Nacido en: ', gente[i].ci);
end;
if not encontrado then
WriteLn('No se ha encontrado.');
WriteLn;
end;
0: { Salir de la aplicación }
begin
WriteLn;
WriteLn('Saliendo...');
WriteLn;
end;
else
begin
WriteLn;
WriteLn('Opción incorrecta!');
WriteLn;
end;
end; { Fin de "case" }
until opcion = 0;
end.
(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.)