C CE EN NTTR RO OS SU UP PE ER RIIO OR RS SU UP PE ER RIIO OR RD DE EA ALLTTA A E S P E C I A L I Z A C I Ó N Y A S E S O R Í A ESPECIALIZACIÓN Y ASESORÍA http://www.cfape.com P PR RO OG GR RA AM MA AC CIIÓ ÓN NE EN N LLA AP PLLA ATTA AFFO OR RM MA AW WIIN ND DO OW WS S http://www.cfape.com/ P P R O G R A M A C Ó N A V A N V E B Á S C O C U R S O O N N E PR RO OG GR RA AM MA AC CIIIÓ ÓN N JJJA AV VA AN NIIIV VE ELLL B BÁ ÁS SIIIC CO O (((C CU UR RS SO OO ON N---LLLIIIN NE E))) OBJETIVOS Comprender un típico entorno de desarrollo en Java. Utilizar estructuras de selección simple y selección múltiple Utilizar estructuras repetitivas e iterativas LABORATORIO 2 Msc. Walter Fernandez Toglio. ESTRUCTURAS DE CONTROL 1 C CE EN NTTR RO OS SU UP PE ER RIIO OR RS SU UP PE ER RIIO OR RD DE EA ALLTTA A E S P E C I A L I Z A C I Ó N Y A S E S O R Í A ESPECIALIZACIÓN Y ASESORÍA http://www.cfape.com P PR RO OG GR RA AM MA AC CIIÓ ÓN NE EN N LLA AP PLLA ATTA AFFO OR RM MA AW WIIN ND DO OW WS S http://www.cfape.com/ P P R O G R A M A C Ó N A V A N V E B Á S C O C U R S O O N N E PR RO OG GR RA AM MA AC CIIIÓ ÓN N JJJA AV VA AN NIIIV VE ELLL B BÁ ÁS SIIIC CO O (((C CU UR RS SO OO ON N---LLLIIIN NE E))) TEMAS Estructura de selección if Estructura de selección if – else Estructura de iterativa while Estructura de repetitiva for SOFTWARE NECESARIO NetBeans IDE (http://www.netbeans.info/downloads/index.php) JDeveloper de Oracle (http://www.oracle.com/technetwork/developertools/jdev/overview/index.html) Java SE Development Kit (JDK) Bundles, JDK with NetBeans (http://www.oracle.com/technetwork/java/javase/downloads/jdk-7netbeans-download-432126.html) Otros IDEs de Java JBuilder Eclipse www.eclipse.org Mi Eclipse JCreator www.jcreator.com/ IntelliJ IDEA www.jetbrains.com/idea Msc. Walter Fernandez Toglio. 2 C CE EN NTTR RO OS SU UP PE ER RIIO OR RS SU UP PE ER RIIO OR RD DE EA ALLTTA A E S P E C I A L I Z A C I Ó N Y A S E S O R Í A ESPECIALIZACIÓN Y ASESORÍA http://www.cfape.com P PR RO OG GR RA AM MA AC CIIÓ ÓN NE EN N LLA AP PLLA ATTA AFFO OR RM MA AW WIIN ND DO OW WS S http://www.cfape.com/ P P R O G R A M A C Ó N A V A N V E B Á S C O C U R S O O N N E PR RO OG GR RA AM MA AC CIIIÓ ÓN N JJJA AV VA AN NIIIV VE ELLL B BÁ ÁS SIIIC CO O (((C CU UR RS SO OO ON N---LLLIIIN NE E))) MARCO TEÓRICO Documentación y ejercicios del documento de teoría. Msc. Walter Fernandez Toglio. 3 C CE EN NTTR RO OS SU UP PE ER RIIO OR RS SU UP PE ER RIIO OR RD DE EA ALLTTA A E S P E C I A L I Z A C I Ó N Y A S E S O R Í A ESPECIALIZACIÓN Y ASESORÍA http://www.cfape.com P PR RO OG GR RA AM MA AC CIIÓ ÓN NE EN N LLA AP PLLA ATTA AFFO OR RM MA AW WIIN ND DO OW WS S http://www.cfape.com/ P P R O G R A M A C Ó N A V A N V E B Á S C O C U R S O O N N E PR RO OG GR RA AM MA AC CIIIÓ ÓN N JJJA AV VA AN NIIIV VE ELLL B BÁ ÁS SIIIC CO O (((C CU UR RS SO OO ON N---LLLIIIN NE E))) ACTIVIDADES Analizar y explicar el funcionamiento de .cada uno de los ejemplos. EJEMPLO 1 Desarrollar un programa en Java que calcule varias veces el área de un circulo. SOLUCIÓN Ejecutar el siguiente programa en java. public class ForLoop { public static void main(String[] args) { int limit = 20; int sum = 0; // Sum from 1 to this value // Accumulate sum in this variable // Loop from 1 to the value of limit, adding 1 each cycle for(double radio = 1.0; radio <= 12.0; radio += 2.0) { System.out.println("radio = " + radio + " area = " + Math.PI*radio*radio); } } } EJEMPLO 2 Desarrollar un programa en Java que calcule la suma 1+2+3+4+6+…N. Usando la estructura iterativa while SOLUCIÓN Ejecutar el siguiente programa en java. public class WhileLoop { public static void main(String[] args) { int limit = 20; // Sum from 1 to this value int sum = 0; // Accumulate sum in this variable int i = 1; // Loop counter // Loop from 1 to the value of limit, adding 1 each cycle while(i <= limit) sum += i++; // Add the current value of i to sum System.out.println("sum = " + sum); } } Msc. Walter Fernandez Toglio. 4 C CE EN NTTR RO OS SU UP PE ER RIIO OR RS SU UP PE ER RIIO OR RD DE EA ALLTTA A E S P E C I A L I Z A C I Ó N Y A S E S O R Í A ESPECIALIZACIÓN Y ASESORÍA http://www.cfape.com P PR RO OG GR RA AM MA AC CIIÓ ÓN NE EN N LLA AP PLLA ATTA AFFO OR RM MA AW WIIN ND DO OW WS S http://www.cfape.com/ P P R O G R A M A C Ó N A V A N V E B Á S C O C U R S O O N N E PR RO OG GR RA AM MA AC CIIIÓ ÓN N JJJA AV VA AN NIIIV VE ELLL B BÁ ÁS SIIIC CO O (((C CU UR RS SO OO ON N---LLLIIIN NE E))) EJEMPLO 3 Desarrollar un programa en Java que calcule la suma 1+2+3+4+6+…N. Usando la estructura iterativa Do while SOLUCIÓN Ejecutar el siguiente programa en java. public class DoWhileLoop { public static void main(String[] args) { int limit = 20; // Sum from 1 to this value int sum = 0; // Accumulate sum in this variable int i = 1; // Loop counter // Loop from 1 to the value of limit, adding 1 each cycle do { sum += i; i++; } while(i <= limit); // Add the current value of i to sum System.out.println("sum = " + sum); } } EJEMPLO 4 Desarrollar un programa en Java que calcule el factorial de un número. Usando la estructura repetitiva for SOLUCIÓN Ejecutar el siguiente programa en java. public class Factorial { public static void main(String[] args) { long limit = 20; // Calculate factorial of integers up to this value long factorial = 1; // Calculate factorial in this variable // Loop from 1 to the value of limit for(int i = 1; i <= limit; i++) { factorial = 1; // Initialize factorial int j =2; while(j <= i) factorial *= j++; System.out.println(i + "!" + " es " + factorial); } } } Msc. Walter Fernandez Toglio. 5 C CE EN NTTR RO OS SU UP PE ER RIIO OR RS SU UP PE ER RIIO OR RD DE EA ALLTTA A E S P E C I A L I Z A C I Ó N Y A S E S O R Í A ESPECIALIZACIÓN Y ASESORÍA http://www.cfape.com P PR RO OG GR RA AM MA AC CIIÓ ÓN NE EN N LLA AP PLLA ATTA AFFO OR RM MA AW WIIN ND DO OW WS S http://www.cfape.com/ P P R O G R A M A C Ó N A V A N V E B Á S C O C U R S O O N N E PR RO OG GR RA AM MA AC CIIIÓ ÓN N JJJA AV VA AN NIIIV VE ELLL B BÁ ÁS SIIIC CO O (((C CU UR RS SO OO ON N---LLLIIIN NE E))) EJEMPLO 5 Desarrollar un programa en Java que calcule el factorial de un número. Usando la estructura repetitiva for SOLUCIÓN Ejecutar el siguiente programa en java. public class Factorial { public static void main(String[] args) { long limit = 20; // to calculate factorial of integers up to this value long factorial = 1; // factorial will be calculated in this variable // Loop from 1 to the value of limit OuterLoop: for(int i = 1; i <= limit; i++) { factorial = 1; // Initialize factorial for(int j = 2; j <= i; j++) { if(i > 10 && i % 2 == 1) continueOuterLoop; // Transfer to the outer loop factorial *= j; } System.out.println(i + "!" + " is " + factorial); } } } Msc. Walter Fernandez Toglio. 6 C CE EN NTTR RO OS SU UP PE ER RIIO OR RS SU UP PE ER RIIO OR RD DE EA ALLTTA A E S P E C I A L I Z A C I Ó N Y A S E S O R Í A ESPECIALIZACIÓN Y ASESORÍA http://www.cfape.com P PR RO OG GR RA AM MA AC CIIÓ ÓN NE EN N LLA AP PLLA ATTA AFFO OR RM MA AW WIIN ND DO OW WS S http://www.cfape.com/ P P R O G R A M A C Ó N A V A N V E B Á S C O C U R S O O N N E PR RO OG GR RA AM MA AC CIIIÓ ÓN N JJJA AV VA AN NIIIV VE ELLL B BÁ ÁS SIIIC CO O (((C CU UR RS SO OO ON N---LLLIIIN NE E))) EJEMPLO 6 Desarrollar un programa en Java que muestre números primos. Usando la estructura repetitiva for SOLUCIÓN Ejecutar el siguiente programa en java. public class Primes { public static void main(String[] args) { intnValues = 50; booleanisPrime = true; // The maximum value to be checked // Is true if we find a prime // Check all values from 2 to nValues for(int i = 2; i <= nValues; i++) { isPrime=true; // Assume the current i is prime // Try dividing by all integers from 2 to i-1 for(int j = 2; j < i; j++) { if(i % j == 0) // This is true if j divides exactly { isPrime = false; // If we got here, it was an exact division break; // so exit the loop } } // We can get here through the break, or through completing the loop if(isPrime) // So is it prime? System.out.println(i); // Yes, so output the value } } } Msc. Walter Fernandez Toglio. 7 C CE EN NTTR RO OS SU UP PE ER RIIO OR RS SU UP PE ER RIIO OR RD DE EA ALLTTA A E S P E C I A L I Z A C I Ó N Y A S E S O R Í A ESPECIALIZACIÓN Y ASESORÍA http://www.cfape.com P PR RO OG GR RA AM MA AC CIIÓ ÓN NE EN N LLA AP PLLA ATTA AFFO OR RM MA AW WIIN ND DO OW WS S http://www.cfape.com/ P P R O G R A M A C Ó N A V A N V E B Á S C O C U R S O O N N E PR RO OG GR RA AM MA AC CIIIÓ ÓN N JJJA AV VA AN NIIIV VE ELLL B BÁ ÁS SIIIC CO O (((C CU UR RS SO OO ON N---LLLIIIN NE E))) EJEMPLO 7 Ejecutar el siguiente programa en java. public class TryAssertions { public static void main(String args[]) { intdaysInMonth = 32; if(daysInMonth == 30) { System.out.println("Month is April, June, September, or November"); } else if(daysInMonth == 31) { System.out.println("Month is January, March, May, July, August, October, or December."); } else if(daysInMonth == 28 || daysInMonth == 29) { System.out.println("Month is February."); } else { assert false; } } } Msc. Walter Fernandez Toglio. 8 C CE EN NTTR RO OS SU UP PE ER RIIO OR RS SU UP PE ER RIIO OR RD DE EA ALLTTA A E S P E C I A L I Z A C I Ó N Y A S E S O R Í A ESPECIALIZACIÓN Y ASESORÍA http://www.cfape.com P PR RO OG GR RA AM MA AC CIIÓ ÓN NE EN N LLA AP PLLA ATTA AFFO OR RM MA AW WIIN ND DO OW WS S http://www.cfape.com/ P P R O G R A M A C Ó N A V A N V E B Á S C O C U R S O O N N E PR RO OG GR RA AM MA AC CIIIÓ ÓN N JJJA AV VA AN NIIIV VE ELLL B BÁ ÁS SIIIC CO O (((C CU UR RS SO OO ON N---LLLIIIN NE E))) EJERCICIOS 0 Invertir un String Haga un programa que invierta el String "HOLA QUE TAL" y lo despliegue en la consola. y produzca: "l a t e u q a l o h" 1 Dado un String Haga un programa que elimine un carácter ‘a’ del String "Hola que tal" y lo despliegue en la consola. 2 Pasar 2 números como parámetros y mostrar los números comprendidos entre ellos. 3 Pasar 4 números como parámetros y mostrar los números comprendidos entre primer y segundo número, luego mostrar los números entre el tercer y cuarto número. 4 Dado un arreglo de 2 dimensiones N x M calcular la suma de los elementos. M y N deben ser pasados como parámetro. 5 Dado un arreglo de 2 dimensiones N x M calcular el promedio de los elementos y mostrar los elementos superiores al promedio. M y N deben ser pasados como parámetro. 6 Dado un arreglo de 3 dimensiones calcular la suma de los elementos por fila y la suma de los elementos por columna. 7 Haga un programa que sume dos vectores representados mediante arreglos. 21 70 20 + 15 30 20 = 36 100 40 8 Leer una matriz de 3 por 3 elementos y calcular la suma de cada una de sus filas y columnas, dejando dichos resultados en dos vectores, uno de la suma de las filas y el otro de las columnas. 4 1 5 Suma de filas 21 10 20 4 2 6 Msc. Walter Fernandez Toglio. 6 3 7 7 4 2 9 C CE EN NTTR RO OS SU UP PE ER RIIO OR RS SU UP PE ER RIIO OR RD DE EA ALLTTA A E S P E C I A L I Z A C I Ó N Y A S E S O R Í A ESPECIALIZACIÓN Y ASESORÍA http://www.cfape.com P PR RO OG GR RA AM MA AC CIIÓ ÓN NE EN N LLA AP PLLA ATTA AFFO OR RM MA AW WIIN ND DO OW WS S http://www.cfape.com/ P P R O G R A M A C Ó N A V A N V E B Á S C O C U R S O O N N E PR RO OG GR RA AM MA AC CIIIÓ ÓN N JJJA AV VA AN NIIIV VE ELLL B BÁ ÁS SIIIC CO O (((C CU UR RS SO OO ON N---LLLIIIN NE E))) Suma de columnas 10 12 16 13 9 Calcular la suma de todos los elementos de un array de 3 X 4 X 5, asi como la media aritmetica. 1 (1,1,1) 2 (1,2,1) 3 4 5 (1,1,2) 6 (1,2,2) 7 8 5 6 7 8 2 2 2 2 4 3 2 1 3 3 4 4 1 (1,1,3) 2 (1,2,3) 3 4 5 (2,1,3) 6 7 8 4 3 2 1 1 2 3 4 1 2 3 4 5 6 7 8 5 6 7 8 4 (3,1,4) 3 (3,2,4) 2 1 4 3 (3,2,5) 2 (3,3,5) 1 10 Se disponen de N temperaturas almacenadas en un array. Se desea calcular su media y obtener el número de temperaturas mayores o iguales que la media. 11 Se dispone de una lista de N nombres de alumnos. Escribir un algoritmo que solicite el nombre de un alumno, busque en la lista (array) si el nombre está en la lista. 12 Las notas de un colegio se tiene en una matriz de 30 X 5 elementos (30 número de alumnos y 5 número de asignaturas). Se desea listar las notas de cada alumno y su media. Cada alumno tiene como mínimo 2 asignaturas y máximo cinco, aunque los alumnos no necesariamente todos tienen que tener cinco materias. 13 Se desea realizar un algoritmo que permita controlar las reservas de plazas de un vuelo MADRIDCARACAS, de acuerdo con las siguientes normas de la compañía aérea. Número de plazas del avión:300. Plazas numeradas de 1 – 100 : Fumadores. Plazas numeradas de 101 – 300 : No Fumadores. Se debe realizar la reserva a petición del pasajero y cerrar la reserva cuando no haya plazas libres o el avión este proximo a despegar. Como ampliación de este algoritmo, considere la opción de anulaciones imprevistas de reservas. 14 Escribir un programa que lea una cadena de caracteres que representa el nombre de una entidad y obtenga como resultado, en otra cadena, el acrónimo de la misma. El programa principal realizará las siguientes operaciones: Declarar una cadena de manera estática y de longitud 100 Leer la cadena Contar el número de palabras Llamar a la función void ObtenerSiglas(char frase[], char *siglas) Mostrar los resultados por pantalla Ejemplo: Entrada: Tren articulado ligero Goicoechea Oriol Salida: Tren articulado ligero Goicoechea Oriol T.A.L.G.O. 15 Escribir una función que lea una frase y calcule el número de letras mayúsculas y otra función para calcular el número de letras minúsculas. Msc. Walter Fernandez Toglio. 10