ErrorDeSintaxis

Pequeños fragmentos de código fuente en distintos lenguajes de programación, agrupados por categorías.

Puedes buscar entre los fuentes existentes, o aportar los tuyos.

Pascal: Agenda básica en Pascal (1: menú y array)

Agenda básica, para guardar datos de hasta 1000 personas. Permite añadir y buscar.

Lenguaje: Pascal (compilador: Free Pascal 2.4)

Categoría: Básico

(* Fuente procedente de ErrorDeSintaxis.es *)
(* Agenda básica, para guardar datos de hasta *)
(*  1000 personas. Permite añadir y buscar. *)
(* Lenguaje: Pascal *)
(* Compilador: Free Pascal 2.4 *)
(* Nivel: Básico *)
(* Disponible desde 23/12/2011 *)
(* Aportado por Nacho *)
(* Autor original: Nacho Cabanes *)
(* Web original: http://www.aprendeaprogramar.com *)

program Agenda;
 
type
    tipoPersona = record
        nombre: string;
        email: string;
        anyoNacimiento: integer;
    end;
 
const
    capacidad = 1000;
 
var
    gente: array[1..capacidad] of tipoPersona;  { Los datos }
    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 < capacidad) then
                begin
                    inc(cantidad);
                    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 el año de nacimiento: ');
                    ReadLn(gente[cantidad].anyoNacimiento);
 
                     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].nombre) > 0 then
                    begin
                        encontrado := true;
                        WriteLn( i,' - Nombre: ', gente[i].nombre,
                          ', Email: ', gente[i].email,
                          ', Nacido en: ', gente[i].anyoNacimiento);
                    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.
 

 
Resultado:

Agenda

1- Añadir una nueva persona
2- Ver nombres de todos
3- Buscar una persona
0- Salir
Escoja una opción: 1

Introduciendo la persona 1
Introduzca el nombre: Juan
Introduzca el correo electrónico: 1@1.1
Introduzca el año de nacimiento: 1900

Agenda

1- Añadir una nueva persona
2- Ver nombres de todos
3- Buscar una persona
0- Salir
Escoja una opción: 1

Introduciendo la persona 2
Introduzca el nombre: Jaime
Introduzca el correo electrónico: 2@.2.2
Introduzca el año de nacimiento: 1910

Agenda

1- Añadir una nueva persona
2- Ver nombres de todos
3- Buscar una persona
0- Salir
Escoja una opción: 2

1 Juan
2 Jaime

Agenda

1- Añadir una nueva persona
2- Ver nombres de todos
3- Buscar una persona
0- Salir
Escoja una opción: 3

¿Qué texto busca? a
1 - Nombre: Juan, Email: 1@1.1, Nacido en: 1900
2 - Nombre: Jaime, Email: 2@.2.2, Nacido en: 1910

Agenda

1- Añadir una nueva persona
2- Ver nombres de todos
3- Buscar una persona
0- Salir
Escoja una opción: 0


Saliendo...