Programación II |
Examen Final |
Febrero de 1999 | Altillo.com |
1. Se tiene un Árbol Binario de Búsqueda que almacena los vuelos que salen de un aeropuerto durante un día.
Cada nodo contiene:
Nº de vuelo 501..999
Hora de salida real
El árbol está ordenado en forma ascendente por hora de salida.
Por razones climáticas se prevé que el aeropuerto permanecerá cerrado hasta una determinada hora.
SE PIDE:
a) Definir la estructura en Pascal (parte declarativa: CONST, TYPE y VAR).
b) Desarrollar un procedimiento con los parámetros necesarios y suficientes, que dada la hora a la que empezará a operar el aeropuerto, emita por pantalla la información de todos los vuelos suspendidos, ordenados cronológicamente y devuelva la cantidad de vuelos suspendidos.
Ejemplo: Si la hora de comienzo es 11:00
Emitirá: Suspendidos
Vuelo 905 8:40
Vuelo 804 10:00
Vuelo 703 10:30
Vuelo 901 10:50
Vuelo 707 10:55
Retornará: 5
2. Dada la siguiente declaración y procedimiento:
Type
TY_PARB = ^TY_NARB;
TY_NARB = record
NUM : Integer;
IZQ,DER : TY_PARB
end;
Var
ARB : TY_PARB;
OK : Boolean;
Procedure BRANDON (Var ARB: TY_PARB; V, N: Integer; Var OK: Boolean);
Var R : Boolean;
Begin
R := (N mod V = 0);
if R then
if ARB = NIL then
begin
new(ARB);
ARB^.NUM := N;
ARB^.IZQ := NIL;
ARB^.DER := NIL;
OK := R
end
else
if ARB^.NUM > N then
BRANDON (ARB^.IZQ,V,N,OK)
else
if ARB^.NUM < N then
BRANDON (ARB^.DER,V,N,OK)
End;
a) Realizar su seguimiento cuando se lo invoca con la siguientes instrucciones y el árbol binario de la figura:
OK := FALSE;
BRANDON (ARB, ARB^.NUM, 42, OK);
b) Indicar claramente el valor que retorna el procedimiento y las llamadas realizadas.
c) Qué hace el procedimiento BRANDON?