Untitled
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...