Untitled

 avatar
unknown
pascal
4 years ago
2.2 kB
3
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...