Instrucción de selección múltiple switch.

Documentos relacionados
En Java, un arreglo es un grupo de variables (llamados elementos o componentes) que contienen valores, todos del mismo tipo.

Estructura de datos y Programación

Introducción a Java. Introducción a Java. Programación I

Java. Introducción a la Programación Orientada a Objetos

5. Sentencias selectivas o condicionales

VARIABLES, CONSTANTES Y EXPRESIONES ASIGNACIÓN. TIPOS ELEMENTALES. PRECEDENCIA DE LOS ESTRUCTURAS DE CONTROL. CONDICIONAL E

Para leer la entrada de consola, lo primero que se hace es construir un Scanner que este asociado al flujo de entrada estándar System.

Unidad Didáctica 3. Tipos genéricos. Fundamentos de Programación Departamento de Lenguajes y Sistemas Informáticos

Curso Informática Lección 2. Introducción a la programación en Java

Unidad Didáctica 2. Elementos básicos del lenguaje Java Tipos, declaraciones, expresiones y asignaciones

RESUMEN DE CONCEPTOS BASICOS DE PROGRAMACION JAVA

Bloque II. Elementos del lenguaje de programación Java

Variables. Una variable no es más que un nombre simbólico que identifica una dirección de memoria: vs.

Centro Asociado Palma de Mallorca. Antonio Rivero Cuesta

Tema 3. Estructuras de control y programación estructurada

Centro Asociado Palma de Mallorca. Antonio Rivero Cuesta

Tema 2. El lenguaje JAVA

VARIABLES, CONSTANTES Y EXPRESIONES ASIGNACIÓN. TIPOS ELEMENTALES. PRECEDENCIA DE LOS ESTRUCTURAS DE CONTROL. CONDICIONAL E

Es ambigua, ya que la división y la multiplicación tienen el mismo grado de precedencia, qué parte de la expresión se realiza primero?

Palabras reservadas de C++ y C. Una palabra reservada no puede declararse como un identificador, esto haría un conflicto entre conectores y funciones.

TEMA 5. CONTROL DE FLUJO DEL PROGRAMA. Sentencia Instrucción Expresión Operadores + Operandos Sintaxis: Sentencia ;

Docente: Juan Carlos Pérez P. Alumno : Fecha : Nota:

FACULTAD DE INGENIERÍA

Construcciones del Lenguaje Java

Informática I. While & do While

Programcaión Básica. Secuencias de Control y Repetición. Arturo Vega González.

abril de 2017 Desarrollo de aplicaciones en Java Tipos de datos primitivos Tipos de datos Elementos de aplicaciones simples

3.3 Conceptos Básicos del Lenguaje Java

Estructuras de control selectivas

a. Cuántas veces se ejecuta la instrucción System.out.println? b. Cuál es el diagrama de flujo correspondiente a este fragmento?

Prueba N o 1. Programación II

Estructuras de Control JAVA

HOJA DE EJERCICIOS 5 PROGRAMACIÓN CON EXCEPCIONES EN JAVA

6. Sentencias repetitivas o bucles

Objetivo de aprendizaje del tema

Algoritmo, Estructuras y Programación I Ing. Marglorie Colina

Unidad II. Fundamentos de programación en Java. Ing. José Luis Llamas Cárdenas

Curso de Java Introducción a la Programación II

Qué es Java? Un lenguaje de programación Un entorno de desarrollo Un entorno de aplicación Un entorno de despliegue Es similar en sintaxis de C + +.

Carlos Montenegro. Programación Orientada a Objetos Proyecto Curricular de Ingeniería de Sistemas

Unidad V. Ya veremos qué poner en "algunas_palabras" y "algo_más", por ahora sigamos un poco más.

Introducción a Java (II) Dr. (c) Noé Alejandro Castro Sánchez

Dobles: Es el caso de la instrucción if-else (punto 1.2).

Introducción al lenguaje Java

GUÍA DE LABORATORIO 5 ARREGLOS DE UNA DIMENSIÓN

Operadores aritméticos

Operadores de comparación

Andrés Donaciano Martínez Guillén -.- Fundamentos de programación -.andresmtzgwordpress.com

Fundamentos del Lenguaje de Programación Java

PROGRAMACIÓN ORIENTADA A OBJETOS (L40629) Sabino Miranda-Jiménez

Clase adicional 2. Estructuras básicas de control. Temas

Lección 3 Sentencias de control

ESTRUCTURAS DE CONTROL

CURSO : ESTRUCTURA DE DATOS DOCENTE : ING. JUAN ZEVALLOS VALLE

Centro Asociado Palma de Mallorca. Antonio Rivero Cuesta

Taller de Programación I. Tema 02: Programación en Java, estructuras iterativas y condicionales

CONCEPTOS BASICOS DEL LENGUAJE JAVA

FACULTAD DE INGENIERÍA

Elementos léxicos del lenguaje de programación Java

Descripción de un Programa

Programación n Orientada a Objetos Sentencias Java Parte I. Ing. Julio Ernesto Carreño o Vargas MsC.

TEMA 2. LENGUAJE C. CONCEPTOS BÁSICOS Y PROGRAMACIÓN ELEMENTAL.

o Una clase es un tipo al cual pertenecen objetos o instancias de la clase.

Actividad Algoritmos, Estructura y Programación I. FOR, DO-WHILE

Tema 7.- Fundamentos de la Programación Orientada a Objetos

Fundamentos de programación

Introducción rápida a la programación (estructurada ) con C++

Estatutos de Control C# Estatutos de Decisión (Selección)

Programación en Lenguaje C

Identificadores, palabras reservadas, tipos de datos, operadores aritméticos y el sistema estándar de salida en Java

7. Otras sentencias Sentencia break. 84 A. García-Beltrán y J.M. Arranz

FUNDAMENTOS DE INFORMÁTICA

TEMA 4. ESTRUCTURAS DE CONTROL

Los parámetros: son los campos que se comunican a los métodos de los objetos.

HERENCIA. Problema: Reparar el el coche. Jesús (Valencia) Luis, Mecánico (Valencia) Antonio, Servicio Técnico Ferrari (Madrid)

Programación Estructurada

Partes de un programa en Java. A. Ejemplo de un Programa en Java /* Programa Ejemplo de Java: Muestra una Ventana Archivo: Ejemplo1.

FUNCIONES O MÉTODOS. Algoritmia y Programación

GUÍA DE TRABAJO N 1 C# Ing. Néstor Raúl Suarez Perpiñan Página 1 de 13

Java para programadores

Se guardan en archivos con extencion c y los cabezales con extension h

Clases en Java. Declaración de clases en Java 02/09/16. Ing. Roberto Martínez Román - public class Alumno { private int matricula;

Tema 2: EL TIPO DE DATOS ENTERO. INSTRUCCIÓN DE ASIGNACIÓN Y DE COMPOSICIÓN SECUENCIAL

Estructura repetitiva do while

Introducción a la Programación

TEMA 5. CONTROL DE FLUJO DEL PROGRAMA. Sentencia Instrucción Expresión Operadores + Operandos Sintaxis: Sentencia ;

GUÍA DE LABORATORIO #3 ESTRUCTURAS ALGORÍTMICAS CONDICIONALES SIMPLES, DOBLES Y MÚLTIPLES

INTRODUCCIóN A LA PROGRAMACIóN APUNTES DE JAVA APUNTES DE JAVA

Introducción a Java 10/02/2011. Tokens. Juan Manuel Fernández Peña Curso Rev Tokens. Tokens

WHILE Y DO WHILE BREAK EN LENGUAJE C. BUCLES MIENTRAS. FORZAR SALIDA O TERMINACIÓN. EJEMPLO (CU00534F)

Arreglos Unidimensionales En este tipo de arreglo se hace uso de un índice solamente para hacer referencia a una posición particular del arreglo.

TEMA 1. Introducción a la programación. CONSIDERACIONES GENERALES.

ESTRUCTURAS DE CONTROL

Principios de Computadoras II

Tema 2. El lenguaje de programación Java (Parte 1)

Parte I: Programación en un lenguaje orientado a objetos

BREAK: FORZAR SALIDA BUCLES FOR, WHILE, DO EN C. LOOP. STATEMENT NOT WITHIN LOOP OR SWITCH (CU00545F)

Transcripción:

Instrucción de selección múltiple switch. Java cuenta con la instrucción switch de selección múltiple para realizar distintas acciones, con base en os posibles valores de una variable o expresión entera. Cada acción se asocia con un valor de una expresión entera. Cada acción se asocia con un valor de una instrucción entera constante (es decir, un valor constante de tipo byte, short, int o char, pero no long) que la variable o expresión en la que se basa la instrucción switch puede asumir. El siguiente código no solo calcula el promedio de un conjunto de calificaciones numéricas introducidas por el usuario, sino que utiliza una instrucción switch para determinar si cada calificación es el equivalente de A, B, C, D o F, para incrementar el contador de la calificación apropiada. La clase también imprime en pantalla un resumen del número de estudiantes que recibieron cada calificación. Actividades: 1. Compile y ejecute el programa 2. Realice un diagrama de flujo del mismo 3. Identifique y explique cada uno de los métodos con los que esta compuesto el programa 4. En la línea 48 (aprox.) se declara la variable calificación que almacenará la entrada del usuario. Las siguientes líneas piden al usuario que introduzca calificaciones enteras y escriba el indicador de fin de archivo para terminar la entrada. El indicador de fin de archivo es una combinación de teclas dependiente del sistema. Que el usuario introduce para indicar que no hay más datos que introducir. <ctrl> d ó <ctrl> z dependiendo del sistema. Nota: enviar los resultados por e-mail y publicarlos en el blog // LibroCalificaciones.java // La clase LibroCalificaciones usa la instrucción switch para contar las calificaciones A, B, C, D y F. import java.util.scanner; // el programa usa la clase Scanner public class LibroCalificaciones private String nombredelcurso; // nombre del curso que representa este LibroCalificaciones private int total; // suma de las calificaciones private int contadorcalif; // número de calificaciones introducidas private int acuenta; // cuenta de calificaciones A private int bcuenta; // cuenta de calificaciones B private int ccuenta; // cuenta de calificaciones C private int dcuenta; // cuenta de calificaciones D private int fcuenta; // cuenta de calificaciones F // el constructor inicializa nombredelcurso; // las variables de instancia int se inicializan en 0 de manera predeterminada public LibroCalificaciones( String nombre ) nombredelcurso = nombre; // inicializa nombredelcurso } // fin del constructor

// método para establecer el nombre del curso public void establecernombredelcurso( String nombre ) nombredelcurso = nombre; // almacena el nombre del curso } // fin del método establecernombredelcurso // método para obtener el nombre del curso public String obtenernombredelcurso() return nombredelcurso; } // fin del método obtenernombredelcurso // muestra un mensaje de bienvenida al usuario de LibroCalificaciones public void mostrarmensaje() // obtenernombredelcurso obtiene el nombre del curso System.out.printf( "Bienvenido al libro de calificaciones para\n%s!\n\n", obtenernombredelcurso() ); } // fin del método mostrarmensaje // introduce un número arbitrario de calificaciones del usuario public void introducircalif() Scanner entrada = new Scanner( System.in ); int calificacion; // calificación introducida por el usuario System.out.printf( "%s\n%s\n %s\n %s\n", "Escriba las calificaciones enteras en el rango de 0 a 100.", "Escriba el indicador de fin de archivo para terminar la entrada:", "En UNIX/Linux/Mac OS X escriba <ctrl> d y despues oprima Intro", "En Windows escriba <ctrl> z y despues oprima Intro" ); // itera hasta que el usuario introduzca el indicador de fin de archivo while ( entrada.hasnext() ) calificacion = entrada.nextint(); // lee calificacion total += calificacion; // suma calificacion a total ++contadorcalif; // incrementa el número de calificaciones // llama al método para incrementar el contador apropiado incrementarcontadorcalifletra( calificacion ); } // fin de while } // fin del método introducircalif // suma 1 al contador apropiado para la calificación especificada public void incrementarcontadorcalifletra( int calificacion ) // determina cuál calificación se introdujo switch ( calificacion / 10 ) case 9: // calificacion está entre 90 case 10: // y 100 ++acuenta; // incrementa acuenta break; // necesaria para salir del switch case 8: // calificacion está entre 80 y 89 ++bcuenta; // incrementa bcuenta break; // sale del switch case 7: // calificacion está entre0 70 y 79

++ccuenta; // incrementa ccuenta break; // sale del switch case 6: // calificacion está entre 60 y 69 ++dcuenta; // incrementa dcuenta break; // sale del switch default: // calificacion es menor que 60 ++fcuenta; // incrementa fcuenta break; // opcional; de todas formas sale del switch } // fin de switch } // fin del método incrementarcontadorcalifletra // muestra un reporte con base en las calificaciones introducidas por el usuario public void mostrarreportecalif() System.out.println( "\nreporte de calificaciones:" ); // si el usuario introdujo por lo menos una calificación... if ( contadorcalif!= 0 ) // calcula el promedio de todas las calificaciones introducidas double promedio = (double) total / contadorcalif; // imprime resumen de resultados System.out.printf( "El total de las %d calificaciones introducidas es %d\n", contadorcalif, total ); System.out.printf( "El promedio de la clase es %.2f\n", promedio ); System.out.printf( "%s\n%s%d\n%s%d\n%s%d\n%s%d\n%s%d\n", "Numero de estudiantes que recibieron cada calificacion:", "A: ", acuenta, // muestra el número de calificaciones A "B: ", bcuenta, // muestra el número de calificaciones B "C: ", ccuenta, // muestra el número de calificaciones C "D: ", dcuenta, // muestra el número de calificaciones D "F: ", fcuenta ); // muestra el número de calificaciones F } // fin de if else // no se introdujeron calificaciones, por lo que imprime el mensaje apropiado System.out.println( "No se introdujeron calificaciones" ); } // fin del método mostrarreportecalif } // fin de la clase LibroCalificaciones

La clase prueba de calificaciones, crea un objeto LibroCalificaciones. Qué invoca el método introducircalif del objeto para imprimir en pantalla un mensaje de bienvenida para el usaurio. Etc. Actividades. 1. Compile y ejecute el programa 2. Realice un diagrama de flujo del mismo 3. Identifique y explique cada uno de los métodos con los que esta compuesto el programa y asócielo con el proceso anterior. Nota: enviar los resultados por e-mail y publicarlos en el blog // PruebaLibroCalificaciones.java // Crea objeto LibroCalificaciones, introduce las calificaciones y muestra un reporte. public class PruebaLibroCalificaciones public static void main( String args[] ) // crea objeto LibroCalificaciones llamado milibrocalificaciones y // pasa el nombre del curso al constructor LibroCalificaciones milibrocalificaciones = new LibroCalificaciones( "CS101 Introduccion a la programacion en Java" ); milibrocalificaciones.mostrarmensaje(); // muestra un mensaje de bienvenida milibrocalificaciones.introducircalif(); // lee calificaciones del usuario milibrocalificaciones.mostrarreportecalif(); // muestra reporte basado en las calificaciones } // fin de main } // fin de la clase PruebaLibroCalificaciones

Instrucciones break y continue Cuando break se ejecuta en una instrucción while, for, do while, o switch, ocasiona la salida inmediata de esa instrucción. La ejecución continúa con la primera instrucción después de la instrucción de control. Los usos comunes de break son para escapar anticipadamente del ciclo, o para omitir el resto de una instrucción switch. // PruebaBreak.java // La instrucción break para salir de una instrucción for. public class PruebaBreak public static void main( String args[] ) int cuenta; // la variable de control también se usa cuando termina el ciclo for ( cuenta = 1; cuenta <= 10; cuenta++ ) // itera 10 veces if ( cuenta == 5 ) // si cuenta es 5, break; // termina el ciclo System.out.printf( "%d ", cuenta ); } // fin de for System.out.printf( "\nsalio del ciclo en cuenta = %d\n", cuenta ); } // fin de main } // fin de la clase PruebaBreak Actividades. 1. Compile y ejecute el programa 2. Realice un diagrama de flujo del mismo 3. Identifique y explique cada uno de los métodos con los que esta compuesto el programa. Nota: enviar los resultados por e-mail y publicarlos en el blog

Instrucción Continue Cuando la instrucción continue se ejecuta en una instrucción while, for o do while, omite las instrucciones restantes en el cuerpo del ciclo y continúa con la siguiente iteración del ciclo. En las instrucciones while y do while, la aplicación evalúa la prueba de continuación de ciclo justo después de que se ejecuta la instrucción continue. // PruebaContinue.java // Instrucción continue para terminar una iteración de una instrucción for. public class PruebaContinue public static void main( String args[] ) for ( int cuenta = 1; cuenta <= 10; cuenta++ ) // itera 10 veces if ( cuenta == 5 ) // si cuenta es 5, continue; // omite el resto del código en el ciclo System.out.printf( "%d ", cuenta ); } // fin de for System.out.println( "\nse uso continue para omitir imprimir 5" ); } // fin de main } // fin de la clase PruebaContinue Actividades. 1. Compile y ejecute el programa 2. Realice un diagrama de flujo del mismo 3. Identifique y explique cada uno de los métodos con los que esta compuesto el programa Nota: enviar los resultados por e-mail y publicarlos en el blog

Operadores Lógicos Es siguiente programa demuestra el uso de los operadores lógicos y lógicos booleanos; para ello produce una tabla de verdad. Los resultados muestran la expresión que se evalúo y el resultado boolean de esa expresión. Los valores de las expresiones boolean se muestran mediante printf, usando el especificador de formato %b, que imprime la palabra true o false, con base en el // OperadoresLogicos.java // Los operadores lógicos. public class OperadoresLogicos public static void main( String args[] ) // crea tabla de verdad para el operador && (AND condicional) System.out.printf( "%s\n%s: %b\n%s: %b\n%s: %b\n%s: %b\n\n", "AND condicional (&&)", "false && false", ( false && false ), "false && true", ( false && true ), "true && false", ( true && false ), "true && true", ( true && true ) ); // crea tabla de verdad para el operador (OR condicional) System.out.printf( "%s\n%s: %b\n%s: %b\n%s: %b\n%s: %b\n\n", "OR condicional ( )", "false false", ( false false ), "false true", ( false true ), "true false", ( true false ), "true true", ( true true ) ); // crea tabla de verdad para el operador & (AND lógico booleano) System.out.printf( "%s\n%s: %b\n%s: %b\n%s: %b\n%s: %b\n\n", "AND logico booleano (&)", "false & false", ( false & false ),

"false & true", ( false & true ), "true & false", ( true & false ), "true & true", ( true & true ) ); // crea tabla de verdad para el operador (OR inclusivo lógico booleano) System.out.printf( "%s\n%s: %b\n%s: %b\n%s: %b\n%s: %b\n\n", "OR inclusivo logico booleano ( )", "false false", ( false false ), "false true", ( false true ), "true false", ( true false ), "true true", ( true true ) ); // crea tabla de verdad para el operador ^ (OR exclusivo lógico booleano) System.out.printf( "%s\n%s: %b\n%s: %b\n%s: %b\n%s: %b\n\n", "OR exclusivo logico booleano (^)", "false ^ false", ( false ^ false ), "false ^ true", ( false ^ true ), "true ^ false", ( true ^ false ), "true ^ true", ( true ^ true ) ); // crea tabla de verdad para el operador! (negación lógica) System.out.printf( "%s\n%s: %b\n%s: %b\n", "NOT logico (!)", "!false", (!false ), "!true", (!true ) ); } // fin de main } // fin de la clase OperadoresLogicos Actividades. 1. Compile y ejecute el programa 2. Realice un diagrama de flujo del mismo 3. Identifique y explique cada uno de los métodos con los que esta compuesto el programa Nota: enviar los resultados por e-mail y publicarlos en el blog

Ejemplo de GUI y gráficos: dibujo de rectángulos y óvalos Aquí se demuestra cómo dibujar rectángulos y óvalos, usando los métodos drawrect y drawoval de Graphics. Se empieza con la declaración de clases para figuras, que extiende a Jpanel. La variable de instancia opción, determina si paintcomponent debe dibujar rectángulos u óvalos. El constructor inicializa opción con el valor que se pasa en el parámetro opcionusuario. El método paintcomponent realiza el dibujo actual. Se debe recordar que la primera instrucción en el método paintcomponent debe ser llamada a super.paintcomponent. Con la instrucción switch se elige entre dibujar rectángulos y óvalos. El método drawrect requiere cuatro argumentos. Los primeros dos representan las coordenadas x y y, de la esquina superior izquierda del rectángulo; las siguientes dos representan la altura y anchura del rectángulo. En este ejemplo, se empieza en la posición 10 píxeles hacia abajo y 10 pixeles a la derecha de la esquina superior izquierda, y cada iteración del ciclo avanza la esquina superior izquierda otros 10 pixeles hacia abajo y a la derecha. La anchura y la altura del rectángulo empiezan en 50 pixeles, y se incrementan por 10 pixeles en cada iteración. // Figuras.java // Demuestra cómo dibujar distintas figuras. import java.awt.graphics; import javax.swing.jpanel; public class Figuras extends JPanel private int opcion; // opción del usuario acerca de cuál figura dibujar // el constructor establece la opción del usuario public Figuras( int opcionusuario ) opcion = opcionusuario; } // fin del constructor de Figuras // dibuja una cascada de figuras, empezando desde la esquina superior izquierda public void paintcomponent( Graphics g ) super.paintcomponent( g ); for ( int i = 0; i < 10; i++ ) // elije la figura con base en la opción del usuario switch ( opcion ) case 1: // dibuja rectángulos g.drawrect( 10 + i * 10, 10 + i * 10, 50 + i * 10, 50 + i * 10 ); break; case 2: // dibuja óvalos g.drawoval( 10 + i * 10, 10 + i * 10, 50 + i * 10, 50 + i * 10 ); break; } // fin del switch

} // fin del for } // fin del método paintcomponent } // fin de la clase Figuras // PruebaFiguras.java // Aplicación de prueba que muestra la clase Figuras. import javax.swing.jframe; import javax.swing.joptionpane; public class PruebaFiguras public static void main( String args[] ) // obtiene la opción del usuario String entrada = JOptionPane.showInputDialog( "Escriba 1 para dibujar rectangulos\n" + "Escriba 2 para dibujar ovalos" ); int int opcion = Integer.parseInt( entrada ); // convierte entrada en // crea el panel con la entrada del usuario Figuras panel = new Figuras( opcion ); JFrame aplicacion = new JFrame(); // crea un nuevo objeto JFrame aplicacion.setdefaultcloseoperation( JFrame.EXIT_ON_CLOSE ); aplicacion.add( panel ); // agrega el panel al marco aplicacion.setsize( 300, 300 ); // establece el tamaño deseado aplicacion.setvisible( true ); // muestra el marco } // fin de main } // fin de la clase PruebaFiguras Actividad. Dibuje 12 círculos concéntricos en el centro de un objeto JPanel. El círculo más interno debe tener un radio de 10 píxeles, y cada círculo sucesivo debe tener un radio de 10 pixeles mayor que el anterior. Empiece por buscar el centro del objeto JPanel. Para obtener la esquina superior izquierda de un círculo, avance un radio hacia arriba y un radio hacia la izquierda partiendo del centro. La anchura y la altura del rectángulo delimitador es el diámetro del circulo (el doble del radio)