ESTRUCTURAS DE SELECCIÓN SENTENCIAS IF Y SWITCH EN C++

21
ESTRUCTURAS DE SELECCIÓN ESTRUCTURAS DE SELECCIÓN SENTENCIAS IF Y SWITCH Sugerencias y herramientas para crear para crear y presentar diapositivas en formato panorámico

Transcript of ESTRUCTURAS DE SELECCIÓN SENTENCIAS IF Y SWITCH EN C++

Page 1: ESTRUCTURAS DE SELECCIÓN SENTENCIAS IF Y SWITCH EN C++

ESTRUCTURAS DE SELECCIÓN ESTRUCTURAS DE SELECCIÓN SENTENCIAS IF Y SWITCHSugerencias y herramientas para crear para crear y presentar diapositivas en formato panorámico

Page 2: ESTRUCTURAS DE SELECCIÓN SENTENCIAS IF Y SWITCH EN C++

Contenido Contenido 1. Estructuras de control2. La sentencia if3. Sentencia if de dos alternativas if-else4. Sentencias if-else anidadas4. Sentencias if else anidadas5. Sentencias de control switch6. Expresiones condicionales: el operador ?:

E l ió i i d i ló i7. Evaluación en cortocircuito de expresiones lógicas8. Puesta a punto de programas9. Resumen 10. Ejercicios

Page 3: ESTRUCTURAS DE SELECCIÓN SENTENCIAS IF Y SWITCH EN C++

Estructuras de controlEstructuras de controlLas estructuras de control controlan el flujo de ejecuciónde un programa o función. Las estructuras de controlpermiten combinar instrucciones o sentenciasindividuales en una simple unidad lógica con un puntoindividuales en una simple unidad lógica con un puntode entrada y un punto de salidaLas instrucciones o sentencias se organizan en 3 tiposg pde estructuras de control que sirven para controlar elflujo de la ejecución: sentencia, selección (decisión) yrepeticiónrepetición.

Page 4: ESTRUCTURAS DE SELECCIÓN SENTENCIAS IF Y SWITCH EN C++

La sentencia ifLa sentencia ifEn C la estructura de control de selección principal esp puna sentencia if. La sentencia if tiene dos alternativas oformatos posibles. El formato mas sencillo tiene lasintaxis siguiente:If (condición) sentencia;

condición; es una expresión entera (lógica).Sentencia; es cualquier sentencia ejecutable, que se ejecutara solo si la condición toma un valor distinto de ceroejecutara solo si la condición toma un valor distinto de cero

Page 5: ESTRUCTURAS DE SELECCIÓN SENTENCIAS IF Y SWITCH EN C++

Ejemplos Ejemplos /* este programa lee dos números enteros y comprueba cual es el valor del resto de la división, si el resto es cero, n es divisible por d*/

#include <stdio.h>

#include <stdlib.h>

int main ()

{{

int n, d;

printf ("introduzca dos enteros: ");

scanf ("%d,%d",&n,&d);

if (n%d==0)

printf("%d es divisible por %d\n",n,d);

system("PAUSE");

return 0;

}

Page 6: ESTRUCTURAS DE SELECCIÓN SENTENCIAS IF Y SWITCH EN C++

Ejemplos Ejemplos /*visualiza la tarifa de luz según el gasto de corriente eléctrica para un gasto menor de 1000kwh la tarifa es de 1.2, entre 1000 y 1850kwh es de 1 y mayor a 1850kwh es de 0.9 USD */

#include <stdio.h>

#include <stdlib.h>

#define TARIFA1 1.2

#define TARIFA2 1.0

#define TARIFA3 0.9

int main ()

{

float gasto, tasa;

printf ("\n gasto de corriente:");

scanf("%f", &gasto);

if (gasto<1000.0) tasa=TARIFA1;

if (gasto>=1000.0 && gasto<=1850.0) tasa=TARIFA2;

if (gasto>1850.0) tasa=TARIFA3;

printf("\nTasa que le corresponde a %.1f Kwh es de %f\n",gasto,tasa);

system("PAUSE");

return 0;

}

Page 7: ESTRUCTURAS DE SELECCIÓN SENTENCIAS IF Y SWITCH EN C++

Sentencia if de dos alternativas: if-elseSentencia if de dos alternativas: if-else

Un segundo formato de la sentencia if es la sentenciaUn segundo formato de la sentencia if es la sentenciaif-else. Este formato de la sentencia if tiene la siguientesintaxis:If (expresión_logica) Sentencia1 else Sentencia2En este formato Accion1 y Accion2 son individualmenteEn este formato Accion1 y Accion2 son individualmente,o bien una única sentencia que termina en un (;) o ungrupo de sentencias encerrado entre llavesgrupo de sentencias encerrado entre llaves

Page 8: ESTRUCTURAS DE SELECCIÓN SENTENCIAS IF Y SWITCH EN C++

Ejemplos Ejemplos /*calcular el mayor de los números leídos en el teclado y visualizar en la pantalla*/

#include <stdio.h>

#include <stdlib.h>

int main()

{

int x,y;

printf("introduzca dos enteros:");

scanf("%d,%d",&x,&y);

if(x>y)

printf("el mayor es:%d\n",x);

elseelse

printf("el mayor es:%d\n",y);

system("PAUSE");

return 0;

}}

Page 9: ESTRUCTURAS DE SELECCIÓN SENTENCIAS IF Y SWITCH EN C++

Ejemplos Ejemplos /*dada la función f(x), calcular la función para un valor dado de x y visualizarlo en la pantalla

f(x)= {x^2-x para x<=0.0

{-x^2+3x para x>0 */

#include <stdio.h>

#include <stdlib.h>

#include <math.h>

int main ()

{

float f,x;

printf ("\n Elige un valor de x:");

scanf ("%f",&x); /*seleccion del rango en el que se encuentra x*/

if (x<=0.0)

f=pow(x,2)-x;

else

f=-pow(x,2)+3*x;

printf ("f(%.1f)=%.3f\n",x,f);

system ("PAUSE");

return 0;

}

Page 10: ESTRUCTURAS DE SELECCIÓN SENTENCIAS IF Y SWITCH EN C++

Sentencias if-else anidadasSentencias if else anidadas

Una sentencia if es anidada cuando la secuencia deUna sentencia if es anidada cuando la secuencia dela rama verdadera o la rama falsa, es a su vez unasentencia ifsentencia if.Una sentencia if anidada se puede utilizar parai l t d i i i lt tiimplementar decisiones con varias alternativas omulti-alternativas

Page 11: ESTRUCTURAS DE SELECCIÓN SENTENCIAS IF Y SWITCH EN C++

Formato Formato

Page 12: ESTRUCTURAS DE SELECCIÓN SENTENCIAS IF Y SWITCH EN C++

Ejemplos Ejemplos /*calcular el mayor de 3 números enteros*/

#include <stdio.h>

#include <stdlib.h>

int main ()

{

int a,b,c, mayor;

printf ("\nIntroduzca tres numeros enteros:");

scanf ("%d,%d,%d",&a,&b,&c);

if (a>b)

if(a>c)mayor=a;

else mayor=c;

else

if (b>c) mayor=b;

else mayor=c;

printf ("El mayor es %d\n",mayor);

system("PAUSE");

return 0;

}

Page 13: ESTRUCTURAS DE SELECCIÓN SENTENCIAS IF Y SWITCH EN C++

Sentencia de control switchSentencia de control switchLa sentencia switch es una sentencia C que se utilizaLa sentencia switch es una sentencia C que se utilizapara seleccionar una de entre múltiples alternativas. Lasentencia switch es especialmente útil cuando alpselección se basa en el valor de una variable simple ode una expresión simple denominada expresión dep p pcontrol o selector. El valor de esta expresión puede serde tipo int o chart, pero no float ni double

Page 14: ESTRUCTURAS DE SELECCIÓN SENTENCIAS IF Y SWITCH EN C++

Sintaxis Sintaxis

Page 15: ESTRUCTURAS DE SELECCIÓN SENTENCIAS IF Y SWITCH EN C++

Ejemplos Ejemplos /*dada una nota de un examen mediante un código escribir el literal que le corresponde a la nota*/

#

case 'C': puts("Aprobado");#include <stdio.h>

#include <stdlib.h>

int main ()

{

char nota;

break;case 'D':case 'F': puts("Suspendido");

breakchar nota;

printf ("Introduzca calificacion (A-F) y pulse Intro:");

scanf("%c",&nota);

switch (nota)

{

break;default:

puts("No es posible esta nota");}

case 'A': puts("Exelente. Examen superado");

break;

case 'B': puts("Notable. Suficiencia");

}puts ("Final de programa");system("PAUSE");return 0;

}

Page 16: ESTRUCTURAS DE SELECCIÓN SENTENCIAS IF Y SWITCH EN C++

Expresiones condicionales: El operador ?:Expresiones condicionales: El operador ?:C tiene un tercer mecanismo de selección, una expresiónque produce uno de dos valores, resultado de unaexpresión lógica o booleana (también denominadacondición) Este mecanismo se denomina expresióncondición). Este mecanismo se denomina expresióncondicional. Una expresión condicional tiene el formatoC?A:B y es realmente una operación ternaria (tres

d ) l C A B l doperandos) en el que C, A y B son los tres operandos y?: es el operadorCondición ? Expresion1 : expresion2Condición ? Expresion1 : expresion2

Page 17: ESTRUCTURAS DE SELECCIÓN SENTENCIAS IF Y SWITCH EN C++

Evaluación en cortocircuito de expresiones lógicasEvaluación en cortocircuito de expresiones lógicas

Cuando se evalúan expresiones lógicas en C se puedeemplear una técnica denominada evaluación encortocircuito. Este tipo de evaluación significa que se puededetener la evaluación de una expresión lógica tan prontop g pcomo su valor pueda ser determinado con certeza.Si x es negativo, la expresión

( 0)&&( 1)(x>=0)&&(y>1)Se evalúa en cortocircuito ya que x>=0 será falso y por tanto elvalor final de la expresión será falso.

Page 18: ESTRUCTURAS DE SELECCIÓN SENTENCIAS IF Y SWITCH EN C++

Errores frecuentes de programaciónErrores frecuentes de programaciónUno de los errores mas comunes en una sentencia if es utilizar un operador de asignación (=)en lugar de un operador de igualdad (==)en lugar de un operador de igualdad ( )En una sentencia if anidada, cada clausula else se corresponde con la if precedente mascercana.Las comparaciones con los operadores == de cantidades algebraicamente iguales pueden

d l f l d b d l d l lproducir una expresión lógica falsa, debido a que la mayoría de los números reales no sealmacenan exactamenteCuando en una sentencia switch o en un bloque de sentencias falta una de las llaves ({,})aparece un mensaje de error “cumpound statement missing } in fuction”El selector de una sentencia switch debe ser de tipo entero o compatible enteroCuando se utiliza una sentencia switch, asegúrese que el selector switch y las etiquetas caseson del mismo tipo (int, chart pero no float). Si el valor se evalúa a un valor no listado enninguna de las etiquetas case la sentencia switch no gestionara ninguna acción; por estaninguna de las etiquetas case, la sentencia switch no gestionara ninguna acción; por estacausa se suele poner una etiqueta default para resolver este problema

Page 19: ESTRUCTURAS DE SELECCIÓN SENTENCIAS IF Y SWITCH EN C++

Resumen Resumen

Page 20: ESTRUCTURAS DE SELECCIÓN SENTENCIAS IF Y SWITCH EN C++

Ejercicios Ejercicios Escribir un programa que lea tres enteros y emita un mensaje que indique i tá d é isi están o no en orden numérico

Determine si el carácter asociado a un código introducido por el teclado corresponde a un carácter alfabético, digito, de puntuación, especial o no imprimibleimprimibleEscribir un programa que acepte fechas escritas de modo usual y las visualice como tres númerosE ibi j t i l l l d i l L d Escribir y ejecutar un programa que simule un calculador simple. Lee dos enteros y un carácter. Si el carácter es un +, se imprime la suma; si es un –se imprime la diferencia; si es un *, se imprime el producto; si es un /, se imprime el cociente; y si es un % se imprime el restoimprime el cociente; y si es un % se imprime el resto

Page 21: ESTRUCTURAS DE SELECCIÓN SENTENCIAS IF Y SWITCH EN C++

Patrón de prueba de pantalla panorámica (16:9)

Prueba de la relación de

aspecto

(Debe parecer circular)

16x9

4x3