Universidad del Valle Facultad de Ingeniería Escuela de Ingeniería de Sistemas y Computación Algoritmia y Programación Examen Final Diciembre de 2012 NOMBRE: _______________________________________ GRUPO: ___ CALIF:_______ 1. [30%] Arreglos unidimensionales Suponga que una empresa tiene 100 empleados y sus datos los almacena en arreglos como se muestra en el ejemplo siguiente. codigos 120 500 712 113 111 800 401 813 123 318 … nombres Pepe Juan David Luisa Ana Antonio Teresa Felipe Paco Luis … salarios 5000 7000 3000 3100 12000 4000 3300 1000 3000 4000 … 1.1) 15% Escriba en pseudocódigo un algoritmo que cálcule el valor mensual de la nómina de la empresa 1.2) 15% Escriba en pseudocódigo calcule el salario más alto de la empresa y quien es el empleado que lo tiene. 2. [30%] Pruebas de escritorio. 2.1) [15%] Prueba de escritorio con arreglos unidimensionales. public static void metodoUno(){ int arreglo[] = new int[10]; String salida = ""; for (int i = 0; i < arreglo.length ; i=i+1){ if(i%2==0){ arreglo[i] = arreglo[i] + 1; } else{ arreglo[i]= i * i; } } for (int i = 0; i < arreglo.length ; i=i+1){ salida = salida + arreglo[i] + " - " } System.out.print(salida); } Al invocar metodoUno( ) en el cuadro de diálogo se visualiza el mensaje: _____________________ 2.2) [15%] Prueba de escritorio con matrices. Dadas las siguientes matrices: matrizUno 0 5 2 5 2 0 3 4 3 3 3 matrizDos 0 5 2 5 3 2 0 3 3 0 5 4 3 0 5 3 0 3 3 3 0 // Nota: matrizUno y matrizDos son variables globales public void metodoDos(){ int res = 0; for(int i = 0; i<matrizUno.length; i = i + 1){ for(int j = matrizUno[0].length - 1; j >= 0; j = j - 1){ if ( i > j ){ res = res + matrizUno[i][j] + matrizDos[i][j]; } } } JOptionPane.showMessageDialog(null, "salida = " + res) } Al invocar metodoDos( ) en el cuadro de diálogo se visualiza el mensaje: ______________________ 3) [20%] En un curso de algoritmia se han almacenado las notas y los códigos de los estudiantes como se muestra a continuación. En el arreglo codigos se almacena el código de los estudiantes matriculados en el curso. La matriz notas contiene las calificaciones de cada estudiante. Cada fila de la matriz contiene las notas de un estudiante. Suponga que en el curso se han matriculado 50 estudiantes. La primera fila de la matriz contiene las notas del primer estudiante del arreglo (090001), la segunda fila contiene las notas del estudiante de la segunda posición (090002), y así sucesivamente. Códigos 090001 090002 090003 090004 090005 090006 090007 090008 090009 … Notas Parcial 1 Parcial 2 Labs proy 4,5 4,0 3,0 4,0 4,5 4,0 3,0 4,0 4,5 4,0 3,0 4,0 4,5 4,0 3,0 4,0 ….. ….. …… ….. 3.1) [10%] Desarrolle un método que calcule la nota definitiva de cada estudiante y la almacena en un nuevo arreglo llamado definitiva. Suponga que cada tipo de nota vale el 25%. 3.2) [5%] Desarrolle un método que cuente el número de estudiantes que ganaron el curso. 3.3) [5%] Desarrolle un método que calcule el promedio de notas definitivas en el curso. 4) [20%] Interfaces gráficas. Suponga que la Universidad del Valle usa un programa para guardar los datos de los estudiantes y el valor a pagar por matrícula. Suponga también que en este programa se han creado 3 arreglos de tamaño n. El primer arreglo llamado estudiantes guarda el código de cada estudiante, el segundo arreglo llamado nombres guarda el nombre de cada estudiante y el tercero arreglo llamado matriculas guarda el valor de la matrícula de cada estudiante. 4.1) [5%] Escriba un método en Java (método actionPerformed) que lea los datos del estudiante y los almacene en cada uno de los arreglos cuando el usuario oprima el botón Guardar, 4.2) [5%] Escriba un método en Java (método actionPerformed) que muestre en el área de texto el código, nombre y valor de la matricula de todos los estudiantes cuando el usuario oprima el botón Listar, 4.3) [10%] Escriba un método en Java (método actionPerformed) que permita encontrar la información de un estudiante por medio del código cuando el usuario oprima el botón Buscar. El usuario escribe el código y el algoritmo debe buscarlo en el arreglo. Si lo encuentra es porque el estudiante está matriculado y se muestra el nombre y el valor a pagar. Si el código no se encuentra en el arreglo, se mostrará un mensaje que diga que ese estudiante no está matriculado. DESCRIPCION Mostrar el área de texto Ingresar un valor entero INSTRUCCION JOptionPane.showMessageDialog(null,scroll); variable=Integer.parseInt(JOptionPane.showInputDialog(“Digite un valor”)); Sentencia do-while do{ instrucciones a repetir }while (condición); for (inicializar variable de control ; condición ; actualizar variable de control) instrucciones a repetir Inicializar variable de control while(condición){ Instrucciones a repetir } if (condición){ Instrucciones si se cumple la condición } else{ Instrucciones si no se cumple la condición } TipoDeDato nombreArreglo [] = new tipoDeDato [tamaño] Ej.: int enteros []= new int[7]; TipoDeDato nombreArreglo [][] = new tipoDeDato [filas] [col] Ej.: int matrizEnteros [][] = new int [5][7]; Sentencia for Sentencia while Sentencia if-else Crear un arreglo unidimensional Crear un arreglo bidimensional