Clase 9-1

Descargar como pdf o txt
Descargar como pdf o txt
Está en la página 1de 11

ESTRUCTURAS SELECTIVAS

Marirosa Morello Cardiello


Material facilitado por: Prof. Luisa de Castañeda
C soporta dos tipos de sentencias condicionales. Para el manejo de las decisiones
simples, dobles, en bloque: if y para las decisiones múltiples: switch. Ellas
requieren relacionar en forma lógica los valores que toman las variables durante el
transcurso de la ejecución del proceso.
Decisiones simples, dobles y en bloques
La forma general de la sentencia if es:
if (condición) sentencia;
La forma general de la sentencia if con bloques es:
(else sentencia;)
if (expresión) {
La condición se logra enlazando y evaluando el resultado secuencia de sentencias;
}
lógico de relacionar valores que las variables toman (else {
durante la ejecución del proceso. Cualquier resultado secuencia de sentencias
})
cuyo valor sea distinto de cero se toma como "cierto".

sentencia puede ser una sentencia simple o en bloque.


Se debe recordar que en C un bloque es un conjunto de
sentencias encerradas entre llaves ({ }).
Marirosa Morello Cardiello
EJEMPLOS
if (intento == magico) printf(“** Correcto **”);

else printf((“…Incorrecto…”);

En C una sentencia else siempre se refiere al if precedente más cercano que no tenga ya asociada
una sentencia else. Si lo que se desea es asociar el else a alguna otra sentencia if, se deben usar las
llaves, {}.

Ejemplos de cómo codificar la sentencia if

•if(x < 0) printf(“%f”,x);

•if (indicador != 0) printf(“cuenta Nro: %d”, cuenta_no);

ó lo que es lo mismo:

if (indicador) printf(“cuenta Nro: %d”, cuenta_no);

•if(balance < 1000 || estado == ‘R’) printf(“%f”, balance);


Marirosa Morello Cardiello
EJEMPLOS
•if(estado == ‘s’) tasa = 0.20 * pago;

else tasa = 0.14 * pago;

•if(indicador) {
printf(“cuenta Nro: %d”, cuenta_no);
crédito = 0.00;
}
else crédito = 1000.0;

•if (circulo) {
scanf(“%f”, &radio);
área = 3.14159 * radio * radio;
printf(“area del circulo = %f”, área);
}
else {
scanf(“%f %f”, &longitud, &anchura);
área = longitud * anchura);
printf(“área del rectángulo = %f”, área);
}
Marirosa Morello Cardiello
DECISIONES MÚLTIPLES
La sentencia switch compara sucesivamente una variable con una lista de constantes,
enteras o de caracteres. Cuando se encuentra una correspondencia se ejecuta una
sentencia o bloque de sentencias.

La forma genérica de la sentencia switch es:

switch (variable){
case constante1:
secuencia de sentencias
break;
case constante2:
secuencia de sentencias
break;
•••
default:
secuencia de sentencias
}
Marirosa Morello Cardiello
DECISIONES MÚLTIPLES

NOTAS

•La sentencia switch sólo puede comprobar la igualdad del valor de la variable con alguno de
los valores constantes especificados en case.

•No puede haber dos constantes que tengan los mismos valores en el mismo switch.

•Si se utilizan constantes de tipo caracter, se convierten automáticamente a sus valores


enteros.

•Las sentencias break son opcionales, si se omiten la ejecución continúa en la siguiente


sentencia case hasta conseguir una sentencia break o termina el switch.

•Se puede tener un switch dentro de la secuencia de sentencias de otro switch. Incluso si las
constantes case del switch interior y del exterior contienen valores comunes, no hay conflicto.

Marirosa Morello Cardiello


void menu(void)
{
char c;
printf(“1.- Comprobar Ortografía \n”);
printf(“2.- Corregir errores Ortográfícos \n”);
printf(“3.- Mostrar Ortografía \n”);
printf(“Pulse cualquier otra tecla para terminar \n”);
printf(“Introduzca su Opción: ”);

EJEMPLO c = getche(); /* Leer la selección del teclado */


switch(c){
case ‘1’: comprobar();
break;
case ’2’: corregir();
break;
case ‘3’: mostrar();
break;
default: printf(“Ninguna operación fue seleccionada”);
}
} Marirosa Morello Cardiello
•void controlador_ent(void)
{
int c, indic;
c = leer_dispositivo(); /* leer algún tipo de dispositivo */
indic = -1;
switch(c) {
case 1: /* estos casos tienen */

ESTRUCTURA SWITCH
case 2: /* secuencia de sentencias */
case 3: /* comunes */
indic = 0;
break;
case 4: indic = 1;
case 5: error(indic);
break;
default: procesar(c);
}
} Marirosa Morello Cardiello
SENTENCIA SWITCH ANIDADA

switch(x){
case 1: switch(y) {
case 0: printf(“error de división por cero “);
break;
case 1: procesar(x,y);
}
break;
case 2:
•••

Marirosa Morello Cardiello


PRACTICA DE MANEJO DE ESTRUCTURAS DE DECISION
La práctica consiste en que los estudiantes codifiquen en Lenguaje C un Algoritmo donde deben ser usadas las
sentencias de decisión if y switch.

El Algoritmo en cuestión: Calcula el área de un Triángulo, un Cuadrado o un Círculo, dependiendo de la opción


seleccionada y es el siguiente:

•Inicio del Proceso Cálculo del área de una figura geométrica seleccionada

•Hacer área=0, base=0, altura=0, lado=0, radio=0, PI=3.14, código = ””

•Mostrar “Introduzca el código de acuerdo al área que desee calcular”

•Mostrar “A.- Triángulo


B.- Cuadrado
C.- Círculo”

•Leer código Marirosa Morello Cardiello


PRACTICA DE MANEJO DE ESTRUCTURAS DE DECISION
Si código = “A” Entonces
Mostrar “Ingrese el valor de la base del Triángulo”
Leer base
Mostrar “Ingrese el valor de la altura del Triángulo” Si código = “C” Entonces
Leer altura Mostrar “Ingrese el valor del radio del Círculo”
Calcular área = (base * altura) / 2 Leer radio
Mostrar “El área del Triángulo es: “, área Calcular área = PI * radio * radio
Fin del si Mostrar “El área del Círculo es: “, área
Fin del si

Si código = “B” Entonces


Fin del Algoritmo
Mostrar “Ingrese el valor del lado del Cuadrado”
Leer lado
Calcular área = lado * lado
Mostrar “El área del Cuadrado es: “, área
Fin del si
Marirosa Morello Cardiello

También podría gustarte

pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy