SEGUNDO PARCIAL

lunes, 9 de enero de 2012

PLAN DE VUELO

El plan de vuelo (flight plan) es el informe donde se indican todos los datos referentes a un vuelo. En éste, además de información técnica añadida por el piloto debe constar el lugar de salida, destino, altitud, velocidad de crucero, y todos los puntos por donde pasará la aeronave.
Estos puntos suelen ser estaciones VOR e intersecciones que ya están establecidas por la OACI (Organización de Aviación Civil Internacional) y que a su vez conforman las rutas aéreas. También se suelen incluir datos referentes a la aeronave como, carga de combustible, nombre del comandante, hora y fecha (ZULU). El plan de vuelo puede ser visual (VFR) o instrumental (IFR). En el caso de vuelo VFR se incluirán los puntos por donde pasará la aeronave, en el caso de vuelo IFR se deberán indicar puntos de salida y aproximación instrumental que ya están establecidos como estándares; Así como también las aerovías y puntos de reporte obligatorios. También en un plan de vuelo, se especifica:
- La altitud o nivel de vuelo a volar.
- El equipo de navegación que se cuenta abordo de la aeronave y el tipo de transpondedor.
- El equipo de salvamento que se encuentra abordo.
- La identificación o matrícula de la aeronave.
- Tipo de vuelo (Aviación General, Militar, Vuelo con Itinerario (Scheduled), Vuelo sin Itinerario (Non-Scheduled).
- Número de tripulantes (Y nombres).
- Categoría de la estela turbulenta (Ligera, Media, Pesada)
- Velocidad de crucero.
- Tiempo estimado en ruta (EET).
- El (Los) Aeropuerto(s) Alterno(s)
- Existe un compartimento llamado "OTROS DATOS" que sirve para señalar el nombre de los pasajeros; quién es el operador de la aeronave; si existiese un instructor abordo, se escribiría su nombre y número de licencia, al igual que el nombre de la escuela; si se cuenta con algún tipo de sistema especial abordo (ej. RMK/TCAS Onboard: Lo que significa que tiene el Sistema de Alerta de Colisión de Tráfico); entre otros.
- La autonomía de la aeronave (El combustible abordo expresado en HORAS).
- Personas (además de los tripulantes) abordo.
- Color y marcas de la aeronave.
- Observaciones.
- Nombre del piloto al mando, del primer oficial y sus números de licencia.
- El domicilio de los pilotos (o base de vuelo).
- Firma del piloto al mando.
- Firma del comandante del aeropuerto. si son vuelos internacionales los pilotos deben de hablar el idioma de ruta para poder comunicarce con los pasajeros y las aeromozas deben

ARBOLES BINARIOS

En ciencias de la computación, un árbol binario es una estructura de datos en la cual cada nodo siempre tiene un hijo izquierdo y un hijo derecho. No pueden tener más de dos hijos (de ahí el nombre "binario"). Si algún hijo tiene como referencia a null, es decir que no almacena ningún dato, entonces este es llamado un nodo externo. En el caso contrario el hijo es llamado un nodo interno. Usos comunes de los árboles binarios son los árboles binarios de búsqueda, los montículos binarios y Codificación de Huffman.
En teoría de grafos, se usa la siguiente definición: «Un árbol binario es un grafo conexo, acíclico y no dirigido tal que el grado de cada vértice no es mayor a 3». De esta forma sólo existe un camino entre un par de nodos.
Un árbol binario con enraizado es como un grafo que tiene uno de sus vértices, llamado raíz, de grado no mayor a 2. Con la raíz escogida, cada vértice tendrá un único padre, y nunca más de dos hijos. Si rehusamos el requerimiento de la conectividad, permitiendo múltiples componentes conectados en el grafo, llamaremos a esta última estructura un bosque.

Tipos de árboles binariosUn árbol binario es un árbol con raíz en el que cada nodo tiene como máximo dos hijos.

Un árbol binario lleno es un árbol en el que cada nodo tiene cero o dos hijos.
Un árbol binario perfecto es un árbol binario lleno en el que todas las hojas (vértices con cero hijos) están a la misma profundidad (distancia desde la raíz, también llamada altura).
A veces un árbol binario perfecto es denominado árbol binario completo. Otros definen un árbol binario completo como un árbol binario lleno en el que todas las hojas están a profundidad n o n-1, para alguna n.

Un árbol binario es un árbol en el que ningún nodo puede tener más de dos subárboles. En un árbol binario cada nodo puede tener cero, uno o dos hijos (subárboles). Se conoce el nodo de la izquierda como hijo izquierdo y el nodo de la derecha como hijo derecho.

METODOS DE BUSQUEDA

La búsqueda es el proceso de localizar un registro (elemento) con un valor de llave particular. La búsqueda termina exitosamente cuando se localiza el registro que contenga la llave buscada, o termina sin éxito, cuando se determina que no aparece ningún registro con esa llave.

Normalmente un archivo secuencial se almacena en bloques, en un orden secuencial simple de los registros. La organización física del archivo en una cinta o disco se corresponde exactamente con la ubicación lógica del archivo. En este caso, el procedimiento para ubicar los nuevos registros en un archivo de pila separado, llamado archivo de registro (log file) o archivo de transacciones. Periódicamente, se realiza una actualización por lotes que mezcla el archivo de registro con el archivo maestro para producir un nuevo archivo en secuencia correcta de claves.
Búsqueda secuencial, también se le conoce como búsqueda lineal. Supongamos una colección de registros organizados como una lista lineal. El algoritmo básico de búsqueda secuencial consiste en empezar al inicio de la lista e ir a través de cada registro hasta encontrar la llave indicada (k), o hasta al final de la lista. .........



La situación óptima es que el registro buscado sea el primero en ser examinado. El peor caso es cuando las llaves de todos los n registros son comparados con k (lo que se busca). El caso promedio es n/2 comparaciones.

Este método de búsqueda es muy lento, pero si los datos no están en orden es el único método que puede emplearse para hacer las búsquedas. Si los valores de la llave no son únicos, para encontrar todos los registros con una llave particular, se requiere buscar en toda la lista

ORDENACION INTERNA

Su finalidad es organizar ciertos datos (normalmente arrays o ficheros) en un orden creciente o decreciente mediante una regla prefijada (numérica, alfabética...). Atendiendo al tipo de elemento que se quiera ordenar puede ser: Ordenación interna: Los datos se encuentran en memoria (ya sean arrays, listas, etc), y son de acceso aleatorio o directo (se puede acceder a un determinado campo sin pasar por los anteriores). Ordenación externa: Los datos están en un dispositivo de almacenamiento externo (ficheros), y su ordenación es más lenta que la interna. Ordenación interna Los métodos de ordenación interna se aplican principalmente a arrays unidimensionales. Los principales algoritmos de ordenación interna son:
Selección: Este método consiste en buscar el elemento más pequeño del array y ponerlo en primera posición; luego, entre los restantes, se busca el elemento más pequeño y se coloca en segudo lugar, y así sucesivamente hasta colocar el último elemento. Por ejemplo, si tenemos el array {40,21,4,9,10,35}, los pasos a seguir son:

{4,21,40,9,10,35} <-- Se coloca el 4, el más pequeño, en primera posición : se cambia el 4 por el 40. {4,9,40,21,10,35} <-- Se coloca el 9, en segunda posición: se cambia el 9 por el 21. {4,9,10,21,40,35} <-- Se coloca el 10, en tercera posición: se cambia el 10 por el 40. {4,9,10,21,40,35} <-- Se coloca el 21, en tercera posición: ya está colocado. {4,9,10,21,35,40} <-- Se coloca el 35, en tercera posición: se cambia el 35 por el 40. Si el array tiene N elementos, el número de comprobaciones que hay que hacer es de N*(N-1)/2. private static void permuta (int[] V, int i, int j) { int t; t= V[i]; V[i]= V[j]; V[j]= t; } // Ordenacion por seleccion public static void seleccion (int[] V) { int L= V.length; int menor,i,j; for (i= 0; i < L-1; i++) { for (j= i+1,menor=i; j < L; j++) if (V[j] < V[menor]) menor= j; // el mas pequeño permuta (V, i, menor); } } Burbuja: Consiste en comparar pares de elementos adyacentes e intercambiarlos entre sí hasta que estén todos ordenados. Con el array anterior, {40,21,4,9,10,35}: Primera pasada: {21,40,4,9,10,35} <-- Se cambia el 21 por el 40. {21,4,40,9,10,35} <-- Se cambia el 40 por el 4. {21,4,9,40,10,35} <-- Se cambia el 9 por el 40. {21,4,9,10,40,35} <-- Se cambia el 40 por el 10. {21,4,9,10,35,40} <-- Se cambia el 35 por el 40. Segunda pasada: {4,21,9,10,35,40} <-- Se cambia el 21 por el 4. {4,9,21,10,35,40} <-- Se cambia el 9 por el 21. {4,9,10,21,35,40} <-- Se cambia el 21 por el 10. Ya están ordenados, pero para comprobarlo habría que acabar esta segunda comprobación y hacer una tercera. Si el array tiene N elementos, para estar seguro de que el array está ordenado, hay que hacer N-1 pasadas, por lo que habría que hacer (N-1)*(N-i-1) comparaciones. //metodo de la burbuja public static void burbuja (int[] V) { int L= V.length; boolean cambios; for (int i= 0; i < L-1; i++) { cambios= false; for (int j= L-1; j > i; j--) { if (V[j-1] > V[j]) { permuta (V, j-1, j); cambios= true; } } if (! cambios) break; } }
Inserción directa: En este método lo que se hace es tener una sublista ordenada de elementos del array e ir insertando el resto en el lugar adecuado para que la sublista no pierda el orden. Para el ejemplo {40,21,4,9,10,35}, se tiene:
{40,21,4,9,10,35} <-- La primera sublista ordenada es {40}. Insertamos el 21: {40,40,4,9,10,35} <-- aux=21; {21,40,4,9,10,35} <-- Ahora la sublista ordenada es {21,40}. Insertamos el 4: {21,40,40,9,10,35} <-- aux=4; {21,21,40,9,10,35} <-- aux=4; {4,21,40,9,10,35} <-- Ahora la sublista ordenada es {4,21,40}. Insertamos el 9: {4,21,40,40,10,35} <-- aux=9; {4,21,21,40,10,35} <-- aux=9; {4,9,21,40,10,35} <-- Ahora la sublista ordenada es {4,9,21,40}. Insertamos el 10: {4,9,21,40,40,35} <-- aux=10; {4,9,21,21,40,35} <-- aux=10; {4,9,10,21,40,35} <-- Ahora la sublista ordenada es {4,9,10,21,40}. Y por último insertamos el 35: {4,9,10,21,40,40} <-- aux=35; {4,9,10,21,35,40} <-- El array está ordenado. En el peor de los casos, el número de comparaciones que hay que realizar es de N*(N-1)/2. public static void inserccion(int[] V) { int L= V.length; int j, aux; for (int i= 0; i < L-1; i++) { j= i+1; aux= V[j]; while (j > 0 && aux < V[j-1]) { V[j]= V[j-1]; j--; } V[j]= aux; } } Inserción binaria: Es el mismo método que la inserción directa, excepto que la búsqueda del orden de un elemento en la sublista ordenada se realiza mediante una búsqueda binaria, lo que supone un ahorro de tiempo .
Shell: Es una mejora del método de inserción directa, utilizado cuando el array tiene un gran número de elementos. En este método no se compara a cada elemento con el de su izquierda, como en el de inserción, sino con el que está a un cierto número de lugares (llamado salto) a su izquierda. Este salto es constante, y su valor inicial es N/2 (siendo N el número de elementos, y siendo división entera). Se van dando pasadas hasta que en una pasada no se intercambie ningún elemento de sitio. Entonces el salto se reduce a la mitad, y se vuelven a dar pasadas hasta que no se intercambie ningún elemento, y así sucesivamente hasta que el salto vale 1.

viernes, 16 de diciembre de 2011

METODOS DE ORDENAMIENTO

sábado, 19 de noviembre de 2011

CODIGO FIBONACCI

  1. #include <iostream.h>
  2. #include <stdlib.h>
  3.  
  4. void main()
  5. {
  6.   int a,b,x,c,l;
  7.   a=1; b=1; x=0; c=0;
  8.   cout<<"Introduce el limite de la serie: "; cin>>l;
  9.   if (l>0) {
  10.     if (l==1) cout<<"1"<<endl;
  11.     else
  12.       {
  13.       cout<<endl<<a<<", "<<b<<", ";
  14.       while (c<l-2)
  15.         {
  16.          c++;
  17.          x=a+b;
  18.          cout<<x<<", ";
  19.          a=b;
  20.          b=x;
  21.         }
  22.       }
  23.   }
  24.   system("PAUSE");
  25. }



EXPOSICION EN EQUIPO