Beruflich Dokumente
Kultur Dokumente
Esta asignatura aporta al perfil del Ingeniero en Tecnologa de la Informacin y Comunicaciones las siguientes competencias: Conocimiento y manejo de tecnologas y herramientas actuales y emergentes acordes a las necesidades del entorno. Concientizarlo de la importancia de la estructuras de datos, para implementarlas en el desarrollo de sistemas de informacin utilizando una metodologa basada en la programacin de componentes e implementando tecnologa web. Identificar las especificaciones, aplicaciones e implementaciones de las principales estructuras de datos. Implementar eficientemente las principales estructuras de datos. Utilizar correctamente las estructuras de datos adecuadas para resolver distintos problemas.
Competencias previas
Aplicar algoritmos computacionales. Aplicar tcnicas de modelado para la solucin de problemas. Aplicar la sintaxis de un lenguaje orientado a objetos. Aplicar un lenguaje orientado a objetos para la solucin de problemas. Utilizar el modelado de objetos. Crear programas en algn lenguaje computacional.
Competencias a desarrollar
Competencias especficas: Aplicar las estructuras de datos en la elaboracin de programas. Utilizar listas enlazadas para la solucin de problemas computacionales. Manipular diversos tipos de rboles para clasificar datos. Comparar los diversos algoritmos de ordenamiento. Comparar los diversos algoritmos de bsqueda. Aplicar la recursividad como estrategia de solucin de problemas. Analizar las estrategias de recuperacin de informacin perdida o daada en dispositivos de almacenamiento secundario
Temario:
1. Fundamentos de estructura de datos 1.1. Definicin. 1.2. Clasificacin. 1.3. Estructuras lineales y no lineales. 1.4. Estructuras dinmicas y estticas. 2. Estructuras lineales 2.1. Pilas estticas y dinmicas. 2.2. Colas estticas y dinmicas. 2.3. Aplicaciones 3. Estructuras no lineales 3.1. Recursividad. 3.2. rboles. 3.3. Grafos. 4. Mtodos de ordenamiento y bsqueda 4.1. Algoritmos de ordenamiento. 4.2. Mtodos de bsqueda. 4.3. Recuperacin de datos.
Unidad 4: Mtodos de ordenamiento y bsqueda Competencia especfica a desarrollar Actividades de Aprendizaje Discutir el uso de los mtodos de ordenamiento, bsqueda y recuperacin de datos en memoria principal y secundaria. Investigar los diversos algoritmos de los mtodos de ordenamiento, bsqueda y recuperacin de datos segn el tipo de Clasificar tcnicas para recuperacin de problema que se desea resolver. informacin en dispositivos de almacenamiento Elaborar un mapa conceptual que visualice primario y secundario. las diferencias entre los mtodos en cuestin. Gestionar datos de forma ptima, para facilitar Aplicar los algoritmos investigados en dos su procesamiento y la toma de decisiones. lenguajes orientados a objeto y anotar observaciones. Elaborar una aplicacin informtica donde se implementen archivos y aplicar mtodos de ordenamiento, bsqueda y recuperacin de datos en memoria principal y secundaria.
Bibliografa
1. Joyanes Aguilar, Luis. Estructura de Datos en Java. Primera edicin. Ed. McGraw Hill. 2007. 2. Lewis, John. Estructura de Datos con JAVA: Diseo de estructuras y algoritmos. Primera edicin. Ed. Pearson. 2007. 3. Guardati Buemo, Silvia. Estructura de Datos orientada a objetos: Algoritmos con C++. Primera edicin. Ed. Pearson. 2007. 4. Allen, Marc. Estructura de Datos con JAVA: Compatible con JAVA 2. Ed. Prentice Hall. 5. Cairo, Osvaldo. Estructura de Datos. Tercera edicin. Ed. McGraw Hill; 2006.
Los criterios de evaluacin y acreditacin respectiva. Fechas de Exmenes Examen 1er 2. 3er Regularizacin o 2 Oportunidad Calificacin Final Fecha Unidades
Otras Observaciones: Personificador Hora de entrada Asistencia a clase Derecho a examen Revisin equitativa Regularizacin Extraordinario I
1.
En la prctica, la mayor parte de informacin til no aparece aislada en forma de datos simples, sino que lo hace de forma organizada y estructurada. Los datos de los diccionarios o enciclopedias son colecciones de datos y serian intiles si no estuvieran organizadas de acuerdo con unas determinadas reglas. Adems bajo esta estructura de organizacin la informacin supone ventajas adicionales al facilitar el acceso y el manejo de datos. Como tendremos ocasin de ver, la seleccin de una estructura de datos frente a otra, a la hora de programar es una decisin importante, ya que ellos influye decisivamente en el algoritmo que se vaya a utilizar para la resolucin del problema. Programacin = Estructura de Datos + Algoritmos 1.1. Definicin.
En programacin, una estructura de datos es una forma de organizar un conjunto de datos elementales con el objetivo de facilitar su manipulacin. Un dato elemental es la mnima informacin que se tiene en un sistema. Bit Acrnimo de Binary digit. (dgito binario). Un bit es un dgito del sistema de numeracin binario (0, 1). Unidad bsica de almacenamiento de informacin, equivale a ocho bits (octeto).
Abrev. K M G T P E Z Y B Ge 210 = 1024 220 = 1 048 576 230 = 1 073 741 824 240 = 1 099 511 627 776 250 = 1 125 899 906 842 624 260 = 1 152 921 504 606 846 976 270 = 1 180 591 620 717 411 303 424 280 = 1 208 925 819 614 629 174 706 176 290 = 1 237 940 039 285 380 274 899 124 224 2100 = 1 267 650 600 228 229 401 496 703 205 376 Factor 103 = 1000 106 = 1 000 000 109 = 1 000 000 000 1012 = 1 000 000 000 000 1015 = 1 000 000 000 000 000 1018 = 1 000 000 000 000 000 000 1021 = 1 000 000 000 000 000 000 000 1024 = 1 000 000 000 000 000 000 000 000 1027 = 1 000 000 000 000 000 000 000 000 000 1030 = 1 000 000 000 000 000 000 000 000 000 000 Tamao
Byte
Nombre Kilo Mega Giga Tera Peta Exa Zetta Yotta Bronto Geop
Carcter
Cualquier signo tipogrfico. Puede ser una letra, un nmero, un signo de puntuacin o un espacio. En gramtica tradicional es cada uno de los segmentos limitados por pausas o espacios en la cadena hablada o escrita que puede aparecer libremente en cualquier posicin y que est dotada de una funcin.
Palabra
1.2.
Clasificacin.
byte short int long char boolean
Predefinidos Ordinal Definidos por el usuario Simple Reales Cronolgicos Apuntador, punteros o referencias
Enumerados Subrango
float double
No Ordinal
Cadenas
String StringBuffer
Estructura de datos
Abstractos
abstract class
1.3.
Estructura de datos lineales, los datos o elementos se almacenan en posiciones de memoria consecutivas. Por ejemplo los Arreglos y las Listas. Estructura de datos no lineales, los datos o elementos no se almacenan en posiciones de memoria consecutivas. Por ejemplo, los rboles son estructura de datos no lineales y se pueden representar estructuras jerrquicas, direcciones o etiquetas de una manera organizada.
Tamao en bits 1 16 8
Rango de valores true o false Nota: El No. de bits puede variar segn la plataforma \u0000 hasta \uFFFF' Conjunto Unicode de ISO -128 a +127 -27 a 27 1
Tamao en bits 16 32 64
Rango de valores -32,768 a +32,767 -215 a 215 1 -2,147,483,648 a +2,147,483,647 -231 a 231 1 -9,223,372,036,854,775,808 a +9,223,372,036,854,775,807 -263 a 263 1 Rango negativo: -3.4028234663852886E+38 hasta -1.40129846432481707E-45 Rango positivo: 1.40129846432481707E-45 hasta 3.4028234663852886E+38 Rango negativo: -1.797693134862157E308 hasta -4.94065645841246544E324 Rango positivo: 4.94065645841246544E324 hasta 1.797693134862157E308
float
32
double
64
Tokens elementos lxico de los programas Existen 5 clase de tokens: identificadores, palabras reservadas, literales, operadores y otros. Identificadores Los identificadores pueden representar variables, constantes, mtodos, nombres de archivos, etc. Diagrama de contexto de los identificadores:
Regla para formar un identificador: 1. Debe comenzar por una letra 2. Despus de la 1er. Letra puede contener letras, dgitos o guin de piso 3. No estn permitidos los espacios en blanco 4. No deben formar palabras reservadas 5. Java es sensibles a las maysculas y minsculas 6. En Java la longitud de los identificadores no tiene lmite.
Arreglos
Una de las caractersticas de Java es que los temas complejos como punteros o apuntadores lo hacen de una forma sencilla. Las referencias no son mas que apuntadores, pero manejados de una forma simplificada. Los arreglos son referencia o apuntadores. Definicin. Un arreglo (vector o tabla) es una secuencia de objetos del mismo tipo. A los objetos se les llama elementos del arreglo y se enumeran del 0 al n-1, adems se almacenan linealmente en posiciones de memoria consecutivas. Unidimensionales. Tipo [ ] identificador
,
Tipo identificador [ ]
,
Los corchetes pueden colocarse de dos formas: o Los corchetes colocados despus del tipo de dato, esto indica que todos los identificadores son arreglos. o Los corchetes colocados despus del identificador, indica que solo el identificador que tenga los corchetes es un arreglo.
Ejemplo: int enteros[], x, y; float [] cal1, cal2, cal3, prom; char [] letra1, letra2[], letra3;
enteros en un arreglos de tipo int, x y y son variables tipo int. cal1, cal2, cal3 y prom son arreglos unidimensionales. letra1 y letra3 son arreglos de una dimension del tipo char y letra2 es una arreglo de arreglos de tipo char (una matriz).
Esto solo esta declarando el nombre del arreglo y el tipo de datos que se van a almacenar en l (referencia), para declarar el nmero de elementos del arreglo se hace por medio del operador new.
Ejemplo: float [] CalificacionFinal; CalificacionFinal = new float [45]; La primera sentencia declara un arreglo CalificacionFinal que manejara tipos de datos float. La segunda sentencia declara que manejara 45 elementos (del 0 al 44). Otra forma de hacer la declaracin del arreglo, as como de los elementos es: float [] CalificacionFinal = new float [45]; Para almacenar datos en un arreglo basta con poner el nombre del arreglo, el subndice, el smbolo igual y la expresin que se quiere almacenar y finalmente punto y coma. CalificacionFinal[5] = 70; System.out.println(La Calificacin Final 6 es: + CalificacionFinal[5]); Otra forma de introducir datos en un arreglos es inicializndolo desde la declaracin. int enteros[] = {5, 4, 9 ,8, 7, 6, 2 , 1, 3, 0}; Tamao de los arreglos (length) Java considera cada arreglo un objeto, debido a ello se pude conocer el nmero de elementos de un arreglo por medio del campo length.
Bidimensionales. Los arreglos vistos anteriormente se conocen como arreglos unidimensionales y se caracterizan por tener un solo subndice. Los arreglos multidimencionales son aquellos que tienen ms de una dimensin y, en consecuencia, ms de un ndice. Los arreglos ms usuales son los de dos dimensiones, conocidos como matrices. Un arreglo de dos dimensiones equivale a una tabla con filas y columnas: n 0 1 2 3 4 0 1 2 3
;
Tipo [ ] [ ] identificador
,
Tipo identificador [ ] [ ]
,
int puestos[ ][ ], x, y; float [ ][ ] cal1, cal2, cal3, prom; puestos en un arreglos de dos dimensiones del tipo int, x y y son variables tipo int. cal1, cal2, cal3 y prom son arreglos bidimensionales.
Como ya se menciono estas declaraciones son simplemente referencias, para declarar el nmero de elementos del arreglo se hace por medio del operador new.
Ejemplo: float [ ][ ] Calificaciones; Calificaciones = new float [45][4]; La primera sentencia declara un arreglo Calificaciones que manejara tipos de datos float. La segunda sentencia declara que manejara 45 filas (del 0 al 44) y 4 columnas (del 0 al 3). Otra forma de hacer la declaracin del arreglo, as como de los elementos es: float [ ][ ] Calificaciones = new float [45][3]; Inicializacin de arreglos multidimensionales Al igual que los arreglos unidimensionales, los arreglos multidimensionales se pueden inicializar desde la declaracin. Ejemplo: int tabla1[][] = { {51, 24, 33}, {32, 23, 45} }; Se define una matriz de 2 filas por 3 columnas Tambin se puede utilizar otros formatos como los siguientes: int tabla1[ ][ ] = { {51, 24, 33}, {32, 23, 45} } int tabla1[ ][ ] = { {51, 24, 33}, {32, 23, 45} }; tabla1[ ][ ] 0 0 1 51 32 1 24 23 2 33 45
tabla2[ ][ ] 0 0 1 2 1 5 9 1 2 6 10 2 3 7 11 3 4 8 12
Java trata los arreglos de dos o ms dimensiones como un arreglo de arreglos, por tanto puede crear arreglos no proporcionales. Por ejemplo: a) double datos[ ][ ] = { {1.5, -2.5}, {5.0, 0.0, 1.5} };
Se ha creado un arreglo con dos filas, la 1 con dos columnas y la 2. con 3. b) int [ ] a = { 1, 3, 5 }, b = { 2, 4, 6, 8, 10 }; int z[ ][ ] = { a, b };
Primero se defini el arreglo a con 3 elementos y despus el arreglos b con 5 elementos, posteriormente se define la matriz z con dos filas, la primera con 3 elementos (los del arreglo a) y la segunda con 5 elementos (los del arreglo b). Mtodo length con los arreglos bidimensionales Para saber la longitud de la ltima dimensin se debe especificar los subndices de los subndices precedentes, por ejemplo para una matriz:
Acceso a los elementos del arreglo bidimensional Por ejemplo si tenemos el siguiente matriz: int [ ][ ] a = new int [3][4]; a Fila 0 Fila 1 Fila 2 Columna 0 a[0][0] a[1][0] a[2][0] Columna 1 a[0][1] a[1][1] a[2][1] Columna 2 a[0][2] a[1][2] a[2][2]
ndice de la columna ndice de la fila Nombre del arreglo
Para almacenar datos en una matriz basta con poner el nombre del arreglo, el subndice de las filas y el subndice de las columnas, el smbolo igual y la expresin que se quiere almacenar y finalmente despus punto y coma. Por ejemplo: a[1][3] = Expresin;
Multidimensionales. Java proporciona la probabilidad de almacenar varias dimensiones, aunque raramente los problemas del mundo real se manejan ms tres dimensiones, esto porque para los seres humanos es difcil representar grficamente arreglos con ms de tres dimensiones. Para representar un arreglo de tres dimensiones lo haremos por medio de un cubo. int cubo [ ][ ][ ] = new int [4][5][3];
4
x 5
Almacenar datos en el arreglo multidimensional: Al igual que en los anteriores arreglos, se deben poner los subndices al cual se quiere acceder y posteriormente la expresin a asignar. cubo[2][3][1] = 15; Objetos que permiten E/S por consola. En Java, la entrada y salida se lee y escribe en flujos (streams). La fuente bsica de entrada de datos es el teclado y la fuente de salida es pantalla. La clase System define dos referencias a objetos static para la gestin de entrada (in) y salida (out). Salida (System.out) El objeto out definida en la clase System est asociado con el flujo de salida, que dirige los datos a consola y permite visualizarlos en pantalla, por ejemplo: System.out.println(Esta es una cadena); Se visualizar en pantalla: Esta es una cadena. Descripcin del mtodo print: void print(cadena) void println(cadena) Despliega una cadena en pantalla. Despliega una cadena en pantalla y al final un carcter de nueva lnea (\n).
Con estos mtodos se puede escribir cualquier cadena o dato de los tipos primitivos, como por ejemplo: System.out.println( "Valores de las Variables: \n" + "a=" + a +"\n" + "b=" + b +"\n" + "x=" + x +"\n" + "y=" + y );
Entrada (System.in) Por medio de un objeto Scanner se puede leer datos desde un programa, esta clase pertenece al paquete java.util y debe ser importada. Para poder utilizarlo instancie un objeto de la siguiente forma: Sacanner identificador = new Scanner (System.in); Esta expresin crea un objeto Scanner y determina que leer los datos desde teclado mediante los siguientes mtodos: identificador.nextBoolean() Para Booleanos identificador.nextByte() Para nmeros Enteros tipo byte identificador.nextShort() Para nmeros Enteros tipo short identificador.nextInt() Para nmeros Enteros tipo int identificador.nextLong() Para nmeros Enteros tipo long identificador.nextFloat() Para nmeros flotantes identificador.nextDouble() Para nmeros doubles identificador.next() Para el siguiente token identificador.nextLine() Para una lnea
El siguiente ejemplo lee dos nmeros enteros desde Windows, los suma y muestra el resultado en una ventana.
Al convertir datos tipo String a tipo int (con Integer.parseInt()) manda una excepcin de formato de numero si ocurre un error.
El mtodo showMessageDialog de la clase JOptionPane tiene varias formas de enviarles parmetros: public static void showMessageDialog(Component componentePadre, Object Mensaje) Donde: componentePadre Determina la ventana en que se desplegara el mensaje, si es null, se despliega en la ventana por defecto. Objeto a desplegar
Mensaje
public static void showMessageDialog(Component componentePadre, Object Mensaje, String Titulo, int TipodeMensaje) Donde: componentePadre Determina la ventana en que se desplegara el mensaje, si es null, se despliega en la ventana por defecto. Objeto a desplegar Cadena de characters de la caja de dialogo Valor entero que determina que imagen se despliega segn la siguiente tabla:
Icono
Descripcin
JOptionPane.ERROR_MESSAGE
Ventana de Error
JOptionPane.INFORMATION_MESSAGE JOptionPane.WARNING_MESSAGE
Icono
Descripcin
JOptionPane.QUESTION_MESSAGE
Ventana de introduccin de datos o seleccin de alguna alternativa Sin Icono Ventana estndar de mtodos
La Clase Math proporciona una gran variedad matemticos al igual que algunas constantes tiles. Campos Descripcin
Mtodos static double abs(double d) static float abs(float f) static long abs(long l) static int abs(int i) static double acos(double d)
Descripcin
Regresa el inverso del coseno del ngulo especificado en radianes. Regresa el inverso del seno del ngulo especificado en radianes. Regresa el inverso de la tangente del nmero especificado. Regresa el ngulo definido por las coordenadas rectangulares (d1, d2) Regresa el entero ms pequeo, mayor o igual d. Ejemplo: Math.ceil(9.3) 10.0 Math.ceil(-9.3) -9.0
Descripcin Regresa el coseno del ngulo especificado en radianes. Regresa ed. Ejemplo:
Math.exp(1.0) 2.71828 Math.exp(2.0) 7.38906 Regresa el entero ms grande, menor o igual a d. Ejemplo:
static double max(double d1, double d2) static float max(float f1, float f2) static long max(long l1, long l2) static int max(int i1, int i2) static double min(double d1, double d2) static float min(float f1, float f2) static long min(long l1, long l2) static int min(int i1, int i2)
static double pow(double base, double exp) throws AritmeticException
Regresa un nmero aleatorio comprendido entre 0.0 y 1.0. 0.0 <= Math.random() <= 1.0 Ejemplo:
A.
Vectores 1) Elabore un programa que declare y cargue un arreglo de 100 elementos de forma aleatoria (el rango de valores estar entre 100 a 999), imprima los nmeros en 4 grupos de 25, calcule e imprime su media aritmtica. 2) Elabore un programa que declare y cargue un arreglo de 100 elementos de forma aleatoria (el rango de valores estar entre 100 a 999), imprima los nmeros en 4 grupos de 25 e imprima la mediana. 3) Elabore un programa que declare y cargue un arreglo de 100 elementos de forma aleatoria (el rango de valores estar entre 100 a 999), imprima los nmeros en 4 grupos de 25 e imprima la moda.
B.
Matrices 1) Elabore un programa que declare y cargue en forma aleatoria una matriz de 5 por 5 (el rango de valore estar entre 10 y 30) y sume los elementos de la diagonal principal e imprima la matriz y el resultado. 2) Elabore un programa que declare y cargue en forma aleatoria una matriz de 5 por 5 (el rango de valore estar entre 50 y 70) y obtenga el producto de la diagonal invertida e imprima la matriz y el resultado 3) Elabore un programa que declare y cargue en forma aleatoria una matriz de 5 por 5 (el rango de valore estar entre 70 y 90) e imprima los elementos que no se encuentran en la diagonal principal y a diagonal invertida. Clases para la implementacin de arreglos. La clase Vector es una estructura que nos permite almacenar una coleccin de objetos, pero a diferencia de los arreglos, la estructura va creciendo conforme se aaden elementos, y a su vez se reduce conforme se quitan elementos de la coleccin. Un Vector permite aadir elementos al comienzo, en medio o al final de dicha coleccin. Esta clase se encuentra en java.utils.Vector. Si se desea declarar un Vector es necesario hacer lo siguiente: Vector elVector; elVector = new Vector( ); Vector elVector = new Vector( );
No es necesario especificar su tamao ya que ste vara conforme se van agregando elementos. Un vector almacena objetos. No puede almacenar tipos de datos primitivos. Mtodos Descripcin Crea un objeto Vector con capacidad de 10 elementos. Si el vector necesita crecer, lo har al doble de su tamao. Crea un objeto Vector con la capacidadInicial especificada. Si el vector necesita crecer, lo har al doble de su tamao. Crea un objeto Vector con capacidadInicial y cuando el vector necesite crecer, lo har en capacidadIncrementar.
Vector()
Vector(int capacidadInicial)
Mtodos
Descripcin Agrega el objeto o en la posicin indicada por index. Recorre los elementos hacia la derecha. Agrega el objeto o al final del vector. Regresa la capacidad actual del vector. Regresa true si existe el objeto o dentro del vector, false de otra manera. Regresa el objeto contenido en la posicin indicada por index. Regresa el objeto contenido en la posicin indicada por index. Busca la primer ocurrencia del objeto elem y devuelve su posicin dentro del vector. Regresa 1 si el objeto no existe dentro de la lista. Inserta el objeto o en la posicin indicada por index. Similar a la funcin add() Regresa true si el Vector esta vaco y falso en caso contrario. Remueve el elemento ubicado en la posicin indicada por index. Remueve la primera ocurrencia del objeto o dentro del vector. Recorre los dems. Remplaza el elemento ubicado en la posicin index por el objeto o. Devuelve el elemento que anteriormente se encontraba en esa posicin. Remplaza el elemento ubicado en la posicin index por el objeto o. Regresa el nmero de componentes ocupados del vector. Regresa un arreglo conteniendo todos los elementos del vector en el mismo orden. Regresa una representacin en String del vector, conteniendo la representacin en string de cada elemento del vector.
void insertElementAt(Object o, int index) bolean isEmpty() boolean remove(int index) boolean remove(Object o)
toString()
La clase Arrays proporciona mtodos estticos para manipular arreglos. Esta clase maneja arreglos a alto nivel, como los mtodos: sort para ordenar arreglos, binarySearch para buscar en un arreglo ordenado, equals para comparar arreglos y fill guardar valores en todos los elementos de un arreglo.
Mtodos
static int binarySearch(char[ ] a, char bu) static int binarySearch(double[ ] a, double bus) static int binarySearch(float[ ] a, float bus) static int binarySearch(int[ ] a, int bus) static int binarySearch(Object[ ] a, Object bus) static boolean equals(char[ ] a, char[ ] a2) static boolean equals(double[ ] a, double[ ] a2) static boolean equals(float[ ] a, float[ ] a2 static boolean equals(int[ ] a, int[ ] a2) static boolean equals(Objeto[ ] a, Object[ ] a2) static void fill(boolean[ ] a, boolean val) static void fill(char[ ] a, char val) static void fill(double[ ] a, double val) static void fill(float[ ] a, float val) static void fill(int[ ] a, int val) static void fill(Object[ ] a, Object val) static void sort(char[ ] a) static void sort(double[ ] a) static void sort(float[ ] a) static void sort(int[ ] a) static void sort(Object[ ] a) static void sort(char[ ] a, int inicio, int fin) static void sort(double[ ] a, int inicio, int fin) static void sort(float[ ] a, int inicio, int fin) static void sort(int[ ] a, int inicio, int fin) static void sort(Object[ ] a, int inicio, int fin)
Descripcin Busca en el arreglo a el elemento bus y regresa la posicin donde lo encontr, si regresa -1 es que no fue localizado. El arreglo debe estar ordenado.
Regresa true si los dos arreglos son iguales uno a uno y false en caso contrario.
Producto de Aprendizaje: 1.2 De los siguientes programas elabore el nmero 4 y uno del 1 al 3: 1. Elabore un mtodo que reciba como parmetro un arreglo y un valor numrico y regrese la posicin en donde se localiza ese elemento en el arreglo, si no lo encuentra regrese el valor -1. Los valores que puede recibir el mtodo pueden ser int, long, float y double. 2. Elabore un programa que lea 10 nombres desde teclado y los inserte ordenadamente en uno objeto tipo Vector. 3. Elabore une mtodo que reciba como argumento un arreglo y un valor booleano, si el valor booleano es true ordene el arreglo ascendente y si es false lo ordene descendente. 4. Elabore un programa que lea los nombres y tres calificaciones de los alumnos de la materia Programacin I, por cada alumno calcule el promedio, tambin calcule el promedio general de la materia e imprima en pantalla ordenado descendente por promedio, el nombre, calificaciones y promedio y al final despliegue cuantos aprobaron, reprobaron y el promedio general.