Sentencias de selección Curso de Programación. OBJETIVOS Implementar sentencias de control de selección en un programa usando sentencias if. Implementar.

Slides:



Advertisements
Presentaciones similares
Condicional if y switch
Advertisements

ESTRUCTURAS DE CONTROL
Clase 2 Tipos de datos Asignación de valores Estructura IF Ejercicios
ALGORITMOS Y LENGUAJES Estructuras de Control CONDICIONAL
Estructuras de Decisión I IF - THEN - ELSE
Unidad 1 DISEÑO DE ALGORITMOS ING. Nelwi Baez. MSC
Estructuras de decisión en C
Entendiendo la definición de clases
Fundamentos de Programación
Unidad 4. Estructuras de selección
Concepto de programa. Directorio Concepto de programa. Analisis del problema. Resolucion del problema. Desarroollo de un programa. Partes constitutivas.
Estructuras de Control
Curso de Programación I Parte III
Introducción a la Computación (8va Semana) Lunes 23 de Abril del 2007
Facultad de Ingeniería y Arquitectura Introducción a la Computación 2006 – II (8va Semana) Lunes 25 de Setiembre del 2006 Juan José Montero Román.
POO Java Módulo 3 Elementos de programas Identificadores
PSEUDOCÓDIGO. DISEÑO ESTRUCTURADO USANDO HERRAMIENTAS DE REPRESENTACIÓN DE ALGORITMOS.

ESTRUCTURAS DE CONTROL
ESTRUCTURAS CONTROL SECUENCIAL
Estructuras de Decisión Múltiple
Programación de Computadores
Academia de Informática
Sistemas de Numeración
LÓGICA - DECISIONES Los valores lógicos: constantes, variables y expresiones lógicas, permiten controlar la ejecución de las sentencias de un programa.
Unidad III Elementos del lenguaje C++
Tema 2: Los tipos de datos
CI TEORIA semana 4 Estructura Algorítmica: SELECCIÓN
Switch en PHP Programación en Internet II. Switch en PHP Programación en Internet II Universidad de Guadalajara | Centro Universitario de la Costa Elegir.
Capítulo 1 “Elementos de Programación”
Conversión cadena a número
SENTENCIAS DE CONTROL Ing. José Antonio Poma G..
Sentencias de selección
Capítulo 2 – Estructuras de Control
ESTRUCTURA DE DECISION LOGICA
ESTRUCTURA DE DATOS ESD-243
Resumen Fundamentos de Programación/ Programación I
Teoría – Alejandro Gonzalez
EXPRESIONES Y SENTENCIAS
Unidad II: Fundamentos de Programación

Estructuras de Control.
2008 Escuela de Informática y Telecomunicaciones, DuocUC Escuela de Informática y Telecomunicaciones Clase 7: Control del flujo en BASH Nombre unidad de.
Informática Tema5- Estructuras de Control en C:
Estructuras de Decisión Simples y Dobles
ESTRUCTURA DE DECISION LOGICA
Estructuras de control condicional
Sentencias de repetición
A continuación… Repaso Repaso Estructuras de Decisión Ejemplos
Sesión 12: Python (3) – Estructura Decisión. 2009/1 Circuitos Digitales III 2010/1 Circuitos Digitales III 2010/1 Circuitos Digitales III 2010/1 Informática.
DEV- C++ ·include <iostream> Int x x=x+2(x)
PRINCIPIOS DE PROGRAMACIÓN
Capítulo 2 “Subprogramas/Funciones - Arreglos”
Estructuras selectivas
Estructuras de Decisión
Lic. Carla Aguirre Montalvo
Sentencia Condicional
ESTRUCTURA DE CONTROL REPETITIVAS: WHILE, DO… WHILE
ESTRUCTURAS DE DECISION MULTIPLE
Ing. Esp. Ricardo Cujar. Permite la ejecución de una sentencia, dada una determinada condición. If(condición){ sentencia(s) a ejecutar en caso de que.
PROGRAMACIÓN Grupo de Modelamiento de Sistemas
Presenta: Dr. Jorge Rodríguez Arce.
Estructuras de control selectivas Fundamentos de Programación Departamento de Lenguajes y Sistemas Informáticos Versión Práctica 3.
1 Métodos. 2 Un método es un conjunto de instrucciones definidas dentro de una clase, que realizan una determinada tarea y a las que podemos invocar mediante.
Tema 8: Programación estructurada Introducción La importancia del conocimiento de programación es mucho mayor de lo que se piensa. Aprender a programar.
Tema – 5 Construcciones condicionales Introducción En un programa es usual ejecutar unas instrucciones u otras en función de unas condiciones especificadas.
Este material ha sido desarrollado para alumnos que cursan la asignatura de Programación Básica impartida en el primer semestre en la Facultad de Ingeniería.
ESTRUCTURAS SELECTIVAS Elaborado por; Ing. Alberto Pérez.
1 Clase 6: control (1ª parte) iic1102 – introducción a la programación.
Tipos genéricos Fundamentos de Programación Departamento de Lenguajes y Sistemas Informáticos Unidad Didáctica 3.
Transcripción de la presentación:

Sentencias de selección Curso de Programación

OBJETIVOS Implementar sentencias de control de selección en un programa usando sentencias if. Implementar controles de selección en un programa usando sentencias switch. Escribir expresiones booleanas usando operadores relaciónales y booleanos. Evaluar expresiones booleanas correctamente. Anidar una sentencia if dentro de otra sentencia if then o else correctamente. Elegir la sentencia de selección de control adecuada para una determinada Tarea.

Flujo de control Las sentencias de los programas se ejecutan en secuencia, lo que se denomina ejecución secuencial o flujo de control, secuencial. Sin embargo, se pueden añadir sentencias de toma de decisiones a un programa para alterar este flujo de control. La sentencia que altera el flujo de control se denomina una sentencia de control. En este capítulo se describen algunas sentencias de control importantes denominadas sentencias de selección. En el siguiente capítulo, describiremos otras sentencias de control denominadas sentencias de repetición.

La sentencia if Se usa una sentencia if para especificar qué bloque de código se ejecuta. Un bloque el código puede contener cero o más sentencias. Qué bloque de código se ejecuta depende de resultado de la evaluación de una condición de prueba, denominada expresión booleana. Un sentencia if en un programa que tiene el siguiente formato general: if ( ) else

Operadores relaciónales < // menor que <= // menor que o igual a == // igual a != // distinto de > // mayor que >= // mayor que o igual a

Ejemplos 3 <= 5 //true 6 != 8 //true 5 == 4 //false > 7 //true 4/5 + 8 == 8.8 //false 4.0/5 + 8 == 8.8 //true 43%5/3 +12/3/2 < 5 //true

if (puntuacionPrueba < 6.0) System.out.println(“No ha aprobado“); else System.out.println(“Ha aprobado"); Bloque then Bloque else Expresión Booleana

Diagrama de flujo puntuacionPrueba < 6.0 F o false V o true Ha aprobado No ha aprobado

if (puntuacionPrueba < 6.0) { System.out.pritnln(“No ha aprobado“); System.out.pritnln(“Inténtelo otra vez“); } else { System.out.pritnln(“Ha aprobado“); System.out.pritnln(“Siga trabajando"); } Sentencias compuestas

Estilo if ( ) { } else { } if ( ) { } else { } Estilo 1 Estilo 2

Reglas para escribir los bloques then y else 1. Las llaves izquierda y derecha son necesarias para rodear a las sentencias si el bloque then o el bloque else contienen múltiples sentencias. 2. Las llaves no son necesarias si el bloque then o el bloque else contienen una única sentencia. 3. No se necesita un punto y coma después de la llave derecha.

If abreviado puntuacionPrueba>=9.5 F V if (puntuacionPrueba >= 9.5) { System.out.pritnln(“Ud. Es excelente“); } Ud. Es excelente

Actividad 1. Escribir un programa en Java que lea un número entero y despliegue en la pantalla el letrero “mayor que cero” si el número leido es mayor que cero y el letrero “menor que cero” si es menor que cero. 2. Escriba un programa en Java que lea un número entero y si es un número para lo divida entre 2, si es múltiplo de 3 lo divida entre 3 y si es múltiplo de 5 lo divida entre 5. Deberá imprimir el número leído y una indicación si fue dividido y si así fue, el resultado de la división.

Preguntas rápidas 1. Identifique las sentencias if inválidas a. if(a < b) thenc. if(a < b) x = y; x = y; elseelse { x= z; x= z; } b. if ( a < b ) d. if ( a < b ) { else x = y;x = y; } else x = z; 2. Exprese las siguientes sentencias if-then usando if-then-else. a.if ( a = b ) x = z;

Expresiones booleanas Tres operadores booleanos son AND, OR y NOT. En Java, los símbolos &&, ||, y ! representan los operadores AND, OR y NOT respectivamente. Operadores booleanos y su significado. ABA&&BA||B!A FFFFV FVFVV VFFVF VVVVF V = verdadero, F = falso

ejemplos (2 == (5-3)) || !(3 < 2) && (27%4 == 3) (2 == (2) ) || !( F ) && ( 3 == 3) V || !( F ) && V V || V && V V || V V 4 3 || 5 < 9) V && !( V || V ) V && ! V V && F F

programa ejemplo public class TestBool{ static public void main(String [] args){ boolean a,b: a = (2 == (5-3)) || !(3 3 || 5 < 9); System.out.println(""+a); System.out.println(""+b); } } Salida: true false

Error frecuente Un error muy frecuente cuando se escribe un programa es mezclar los operadores de asignación y de igualdad. Frecuentemente cometemos el error de escribir. if (x = 5)... cuando realmente queríamos decir: if (x == 5)...

Preguntas rápidas Evalúe las siguientes expresiones booleanas. Suponga que x, y y z tienen valores numéricos. a. 3 3 d. 3 < 1 || 5 < 1 && 3 <= 5 2. Identifique errores en las siguientes expresiones y asignaciones booleanas. a. boolean hecho; hecho = 6 = 9; b. 2 < 4 && (3 < 5) + 1 == 3 c. boolean rápido; rápido = true; rápido = ( 34 != 20 ) && rápido;

Sentencias if anidadas Las cláusulas then y else de una sentencia if pueden contener cualquier sentencia, incluyendo otra sentencia if. Una sentencia if que contiene otra sentencia if, bien en el bloque then o bien en el bloque else, se denomina una sentencia if anidada.

Ejemplo if (puntuacionPrueba >= 70) { if (edadEstudiante = 70 //y edad >= 10 System.out.println("Ha aprobado"); } } else { // puntuación prueba < 70 System.out.println ("No ha aprobado"); }

Otra versión if (puntuacionPrueba >= 70 && edadEstudiante = 10 if (puntuacionPrueba >= 70){ System.out.println ("Ha aprobado"); } else { System.out.println ("No ha aprobado"); } }

if (num1 < 0) if (num2 < 0) if (num3 < 0) contadorNegativo = 3; //los tres son negativos else contadorNegativo = 2; //num1 y num2 son negativos else if (num3 < 0) contadorNegativo = 2; //num1 y num3 son negativos else contadorNegativo = 1; //num1 es negativo else if (num2 < 0) if (num3 < 0) contadorNegativo =2; // num2 y num3 son negativos else contadorNegativo = 1; // num2 es negativo else if (num3 < 0) contadorNegativo =1; // num3 es negativo else contadorNegativo =0; // no hay números negativos Contador de números negativos

Otra versión contadorNegativo = 0; if (num1 < 0) contadorNegativo++; if (num2 < 0) contadorNegativo++; if (num3 < 0) contadorNegativo++ ; Escriba en Java las dos versiones. Deberá leer los 3 números y contar los negativos. num1<0? num2<0? num3<0? contadorNegativo=0 contadorNegativo++ V V V F F F

Ejemplo de triángulos Diseñe un programa que lea tres números y determine si es posible obtener un triángulo con estos números. Ejemplo: Si los números son 3, 4 y 5, si es posible obtener un triángulo. Si los números son 2,3 y 6, no es posible obtener un triángulo.

Solución La condición para que formen un triángulo es que la suma de los dos menores sea igual o mayor que el mayor. Por tanto, lo primero es determinar cual es el mayor. Sean a, b y c los tres números. El siguiente algoritmo en Java determina cual es el mayor. if(a>=b && a>=c){ mayor = a; menor1 = b; menor2 = c; } else if(b>=a && b>=c){ mayor = b; menor1 = a; menor2 = c; } else{ mayor = c; menor1 = a; menor2 = b; } a>=b&&a>=c? b>=a&&b>=c? mayor=a menor1=b menor2=c mayor=b menor1=a menor2=c mayor=c menor1=a menor2=b V VF F

Solución una vez determinados el mayor y los dos menores se comprueba si forman triángulo. if(mayor<=menor1+menor2) System.out.println(“SI forman triángulo”); else System.out.println(“NO forman triángulo”);

Programa completo import javabook.*; public class TesSiTriangulo{ static public void main(String[] args){ SimpleInput entrada = new SimpleInput(); int a,b,c,mayor,menor1,menor2; a = entrada.getInteger("teclee un número: "); b = entrada.getInteger("teclee un número: "); c = entrada.getInteger("teclee un número: "); if(a>=b && a>=c){ mayor = a; menor1 = b; menor2 = c; } else if(b>=a && b>=c){ mayor = b; menor1 = a; menor2 = c; } else{ mayor = c; menor1 = a; menor2 = b; } if(mayor<=menor1+menor2) System.out.println("SI forman triángulo"); else System.out.println("NO forman triángulo"); } }

Actividad Agregue código al programa anterior para que determine el tipo de triángulo que forman los tres números; los tipos pueden ser: rectángulo, equilátero, isóceles, escaleno. Note que un triángulo puede ser rectángulo e isóseles o escaleno. Rectangulo: si mayor^2 == menor1^2+menor^2 Equilatero: si mayor == menor1 && mayor == menor2

Cálculo de la nota de un estudiante Prueba puntuación Nota 90 < puntuación A 80 <= puntuación < 90 B 70 <= puntuación < 80 C 60 <= puntuación < 70 D

if (puntuación >= 90) System.out.println("Su nota es A"); else if (puntuación >= 80) System.out.println("Su nota es B"); else if (puntuación >= 70) System.out.println("Su nota es C"); else if (puntuación >= 60) System.out.println("Su nota es D"); else System.out.println("Su nota es F");

else colgado if (x < y) if (x < z) System.out.println ("Hola") ; else System.out.println ("Adiós") ;

Solución if (x < y){ if (x < z) System.out.println ("Hola") ; } else System.out.println ("Adiós") ;

Preguntas rápidas 1.Rescriba las siguientes sentencias de if anidados sin usar ningún anidamiento: a. if ( a = b ) x = y; x = z; else else x = z; x = y; else else x = z; x = z;

Preguntas rápidas 2. Dé formato a las siguientes sentencias if usando sangrado. a. if(a d)x = y; else x = z; b. if(a d)x = y;}else x = z; c. if(a<b)x = y;if(a<c)x-z;else if(c<d) z = y;

Sentencia switch La sentencia switch permite elegir entre varias alternativas. Sintaxis switch ( ){ case :[case :] ;break;... [default: ;break;] } caso a caso b Acción del caso a break; Acción del caso b break; caso z Acción del caso z break; Acción por omisión

Ejemplo El siguiente fragmento de código imprime un letrero si un número es primo y mayor que cero y menor que 10, otro letrero si es no primo y mayor 1ue cero y menor que 10 y otro letrero si es menor que 1 o mayor que 10. switch (num){ case 1:case 2:case 3:case 5:case 7: System.out.println(“primo, >0 y 0 y 10”); }

Ejemplo: días de la semana Escriba una sentencia switch que para desplegar un mensaje con el día de la semana dada una variable dia con valores de 0 a 6. switch (dia){ case 0:System.out.println(“Domingo”); break; case 1:System.out.println(“Lunes”); break; case 2:System.out.println(“Martes”);break; case 3:System.out.println(“Miércoles”); break; case 4:System.out.println(“Jueves”); break; case 5:System.out.println(“Viernes”); break; case 6:System.out.println(“Sabado”); break; default:System.out.println(“día incorrecto”); }

Ejemplo: día hábil 2. Escriba un a sentencia switch para desplegar el letrero “día habil” si una variable diaSemana vale de 1 a 5, desplegar “sabado” si vale 6 y “domingo” si vale 0. switch (dia){ case 0:System.out.println(“Domingo”); break; case 1:case 2:case 3:case 4:case 5: System.out.println(“día hábil”); break; case 6:System.out.println(“Sabado”); break; default:System.out.println(“día incorrecto”); }

Ejemplo: pago horas extra Escriba un sentencia switch para calcular el pago de horas extra a un trabajador. Si las horas son entre semana se le pagará el doble por hora extra, si es el sábado el triple y si es domingo el cuádruple. Suponga las variables horas, para las horas, dia para el día de la semana, pagoPorHora para el pago por hora normal y pagoTotal para el pago total. switch (dia){ case 0:pagoTotal = 4*pagoPorHora*horas; break; case 1:case 2:case 3:case 4:case 5: pagoTotal = 2*pagoPorHora*horas; break; case 6:pagoTotal = 3*pagoPorHora*horas; } if(dia == 0) pagoTotal = 4*pagoPorHora*horas; if(dia == 1 || dia == 2 || dia==3 || dia == 4 || dia == 5) pagoTotal = 2*pagoPorHora*horas; if(dia == 6) pagoTotal = 3*pagoPorHora*horas;

V.2 Sentencia “Switch” Veamos un ejemplo usando la sentencia “switch” y el complemento de “break” o su falta del mismo: Import javabook.*; public class ejemswicth { public static void main(String args[ ]){ int t; SimpleInput teclado=new SimpleInput(); t=teclado.getInteger(“Escriba un número “); switch (t){ case 1: System.out.println("Ahora "); break; case 2: System.out.println(" es "); case 3: System.out.println("el"); System.out.println(" momento para que todos los hombres\n");break; case 5: case 6: System.out.println("hagan ");break; case 7: case 8: case 9: System.out.print("."); } // switch } // main } // class Su ejecución será: Sí t=0 resulta ►► Sí t=1 resulta ►►Ahora Sí t=2 resulta ►►Ahora es el momento para Sí t=3 resulta ►►el momento para Sí t=5 ó 6 resulta ►►hagan Sí t=7, 8 ó 9 resulta ►►. El caso de t=4 es idéntico a t=0 La ejecución tomando la serie de valores: 1,2,3,4,5,6,7,8,9 será Ahora es el momento para que todos los hombres el momento para que todos los hombres hagan.

V.2 Sentencia “Switch” Usando la sentencia “switch” podemos reescribir el programa de conversión octal, binario y hexadecimal como: import javabook.*; public class converter { public static void main(String args[]) { SimpleInput disp=new SimpleInput(); int opcion, valor; String res; System.out.println(" CONVERTIDOR DE ENTERO A: "); System.out.println(" "); System.out.println(" 1) DECIMAL A HEXADECIMAL "); System.out.println(" 2) DECIMAL A OCTAL "); System.out.println(" 3) DECIMAL A BINARIO "); System.out.println(" "); opcion=disp.getInteger("Escriba su opción: "); valor=disp.getInteger("Dé el valor a convertir: "); switch (opcion) { case 1: res=Integer.toHexString(valor); System.out.println("Número "+valor+" a Hexadecimal "+res); break; case 2: res=Integer.toOctalString(valor); System.out.println("Número "+valor+" a Octal "+res); break; case 3: res=Integer.toBinaryString(valor); System.out.println("Número "+valor+" a Binario "+res); break; } // switch } // main } //classs

Actividad Se requiere calcular el valor de los primeros cinco polinomios de Legendre, los cuales se definen como: Escriba un programa en Java que lea el valor de x y un valor n de 0 a 4 y evalúe el polinomio de Legendre adecuado. Escriba una sentencia switch para este programa, si el valor de n está fuera de rango, envíe el mensaje adecuado.