program registro(input,output);
uses crt;
const numpersona=3;
type
carasteristica=record
cedula,edad,telefono: integer;
apellido,nombre,sexo,nacionalidad: string;
end;
lista=Array[1..numpersona] of carasteristica;
var personas:lista; var cant:integer;
procedure insertar(var personas:lista; var cant:integer);
var ced,ed,tel,x:integer;
var ape,nom,nac:string;
var encontrado:integer;
begin
encontrado:=0;
writeln('ingrese cedula');
readln(ced);
if (cant=0) then
encontrado:=0
else
for x:=1 to cant do
begin
if (ced=personas
.cedula) then
begin
encontrado:=1;
end;
end;
if (encontrado=0) then
begin
cant:=cant+1;
writeln('ingrese apellido');
readln(ape);
writeln('ingrese nombre');
readln(nom);
writeln('ingrese edad');
readln(ed);
writeln('ingrese nacionalidad');
readln(nac);
writeln('ingrese telefono');
readln(tel);
personas[cant].cedula:=ced;
personas[cant].apellido:=ape;
personas[cant].nombre:=nom;
personas[cant].edad:=ed;
personas[cant].nacionalidad:=nac;
personas[cant].telefono:=tel;
end
else
writeln(' Registro ya existe');
end;
procedure mostrar(var personas:lista; var cant:integer);
var x: integer;
begin
for x:=1 to cant do
writeln(' cedula: ',personas
.cedula,' apellido: ',personas
.apellido,' nombre: ',personas
.nombre,' edad: ',personas
.edad,' nacionalidad: ',personas
.nacionalidad,' telefono: ',personas
.telefono);
readkey;
end;
begin
end.
procedure ordenar(var personas:lista; var cant:integer);
var x,y,z:integer;
var aux:dat;
begin
for x:=1 to cant do
begin
for y:=x+1 to cant do
begin
if personas
>cant[y] then
for z:=1 to cant do
begin
aux
:=cant[z];
cant[z]:=cant[y];
cant[y]:=aux[z];
end;
end;
end;
end;
procedure modificar(var personas:lista; var cant:integer);
var x,valor,encon,posicion,nuevodat:integer;
var opcion:string;
begin
repeat
clrscr;
encon:=0;
writeln('ingrese valor a modificar');
readln(valor);
for x:=1 to cant do
begin
if (valor= personas
.cedula)then
begin
encon:=1;
posicion:=x;
end;
end;
if encon=0 then
writeln('dato no encontrado')
else
begin
for x:=posicion to cant do
personas
.cedula:=cant[nuevodat];
end;
writeln('ingrese nueva dato');
readln(nuevodat);
personas
.cedula:=cant[nuevodat];
writeln('desea buscar otra opcion');
readln(opcion);
until (opcion='n') or (opcion='N');
end;
procedure buscar(var personas:lista; var cant:integer);
var valor:integer;
var x,encontrado:integer;
var opcion:string;
begin
repeat
clrscr;
encontrado:=0;
writeln('ingrese valor a buscar');
readln(valor);
for x:=1 to cant do
begin
if (valor= personas
.cedula) then
begin
encontrado:=1;
end;
end;
if encontrado=0 then
writeln('no encontrado');
else
begin
writeln('valor encontrado',valor);
writeln('desea buscar otro?');
end;
readln(opc);
until (opc='n') or opc(='N');
end;
procedure eliminar(var personas:lista; var cant:integer);
var x,i,encontrado,posicion,cedula:integer;
var opci,valor:string;
begin
repeat
clrscr;
encontrado:=0;
writeln('eliminar valor');
readln(valor);
for x:=1 to cant do
if (valor= personas
.cedula) then
begin
encontrado:=1;
posicion:=x;
end;
if encontrado=0 then
writeln('datos no encotrados')
else
for x:=posicion to cant do
begin
personas
.cedula:=cant[x+1,1];
personas
.cedula:=cant[x+1,2];
personas
.cedula:=cant[x+1,3];
personas
.cedula:=cant[x+1,4];
personas
.cedula:=cant[x+1,5];
end;
personas[x,1]:='';
personas[x,2]:='';
personas[x,3]:='';
personas[x,4]:='';
personas[x,5]:='';
writeln('Quiere borrar otra fila');
readln(opci);
until opci='n';
end;
var opcion:integer;
begin
repeat
clrscr;
writeln('menu principal');
writeln('1 insertar');
writeln('2 mostrar');
writeln('3 ordenar');
writeln('4 modificar');
writeln('5 buscar');
writeln('6 eliminar');
writeln('7 salir');
repeat
readln (opcion);
until (opcion >0) and (opcion <8);
clrscr;
case (opcion) of
1:insertar(personas);
2:mostrar(personas);
3:ordenar(personas);
4:modificar(personas);
5:buscar(personas);
6:eliminar(personas);
end;
until opcion=7;
readkey;
end.