Untitled
unknown
pascal
4 years ago
2.2 kB
7
Indexable
program cap2ej10;
type
arbol = ^nodo;
alumno = record
legajo:integer;
apellido:string;
nombre:string;
dni:integer;
anio:integer;
end;
nodo = record
HI:arbol;
HD:arbol;
dato:alumno;
end;
procedure leerReg(var al:alumno);
begin
writeln('Ingrese el legajo del alumno ');
readln(al.legajo);
if (al.legajo <> -1)then
begin
writeln('Ingrese el año de ingreso del alumno ');
readln(al.anio);
if (al.anio > 2010)then
begin
writeln('Ingrese el apellido del alumno ');
readln(al.apellido);
writeln('Ingrese el nombre del alumno ');
readln(al.nombre);
{writeln('Ingrese el DNI del alumno ');
readln(al.dni);}
end;
end;
writeln();
end;
procedure CrearArbol (var a:arbol; elem:alumno);
begin
if (a = nil) then
begin
new(a);
a^.dato:=elem;
a^.HI:=nil;
a^.HD:=nil;
end
else
begin
if (a^.dato.legajo > elem.legajo) then
CrearArbol(a^.HI, elem)
else
CrearArbol(a^.HD, elem);
end;
end;
procedure CargarDatos(var a:arbol);
var
al:alumno;
begin
leerReg(al);
while (al.legajo <> -1) do
begin
if (al.anio > 2010)then
begin
CrearArbol(a,al);
leerReg(al);
end
else
begin
writeln('No se almaceno el alumno porque su anio de ingreso no es posterior al 2010. ');
leerReg(al);
end;
end;
end;
procedure menor15853 (a:arbol);
begin
if (a <> nil)then
begin
if (a^.dato.legajo < 15853) then
begin
writeln('nombre de alumno con numero de legajo menor a 15853: ',a^.dato.nombre);
writeln('apellido de alumno con numero de legajo menor a 15853: ',a^.dato.apellido);
menor15853(a^.HD)
end;
menor15853(a^.HI);
end;
end;
//programa principal
var
a:arbol;
begin
cargarDatos(a);
writeln(a^.dato.legajo);
menor15853(a);
end.Editor is loading...