23
ESTRUCTURA DE DECISION LOGICA EN LENGUAJE C

ESTRUCTURA DE DECISION LOGICA EN LENGUAJE C. MENU DEL DIA Repaso clase anterior. Estructura general de un programa. Tipos de datos. Primer programa breve

Embed Size (px)

Citation preview

Page 1: ESTRUCTURA DE DECISION LOGICA EN LENGUAJE C. MENU DEL DIA Repaso clase anterior. Estructura general de un programa. Tipos de datos. Primer programa breve

ESTRUCTURA DE DECISION LOGICA EN LENGUAJE C

Page 2: ESTRUCTURA DE DECISION LOGICA EN LENGUAJE C. MENU DEL DIA Repaso clase anterior. Estructura general de un programa. Tipos de datos. Primer programa breve

MENU DEL DIA• Repaso clase anterior.

• Estructura general de un programa.• Tipos de datos.• Primer programa breve.• Estructuras en C

• Manejo de constantes en C.• Segundo programa breve.

• Estructuras de decisión lógica en C - Estructura if.

• Ejemplo 1.• Ejemplo 2.

• Algunas anotaciones sobre la estructura if.

• Estructuras de decision multiple en C – Estructura if / else if / else.

• Estructura switch.

Page 3: ESTRUCTURA DE DECISION LOGICA EN LENGUAJE C. MENU DEL DIA Repaso clase anterior. Estructura general de un programa. Tipos de datos. Primer programa breve

ESTRUCTURA GENERAL DE UN PROGRAMA

algoritmo (nombre_algoritmo)variables: tipo_1: lista_variables_1 tipo_2: lista_variables_2 . . . tipo_N: lista_variables_Nconstantes: lista_identificadores = valorINICIO sentencia_1 sentencia_2 . . . sentencia_NFIN_INICIOfin(nombre_algoritmo)

#include <librerias_del_sistema>#include “librerias_propias”

variables_globales;

int main() { variables_locales; sentencia_1; sentencia_2; . . . sentencia_N;Return 0;}

Formato de un programa algorítmico en pseudocódigo y en lenguaje C.

Page 4: ESTRUCTURA DE DECISION LOGICA EN LENGUAJE C. MENU DEL DIA Repaso clase anterior. Estructura general de un programa. Tipos de datos. Primer programa breve

TIPOS DE DATOSVARIABLES

En Pseudocódigo En lenguaje C

enteras int, short, long, unsigned, long long

reales float, double

alfanuméricas char

tipo nom_var1 <, nom_var2, nom_var3 <= valor_inicial>, nom_varN>;

variables: entero: num_estudiantes real: prom_grupo, estatura, peso entero: num_clases = 0 entero: num_x = -9, num_y, num_z entero: deudas = 400000 real: c = -9., d, e = 1.5e-15 real: f = 4.03e19, g =.03 alfanumerico: sexo = ‘F’ alfanumerico: grado = ‘A’, c = 64 alfanumerico: nom_real = “Ramon Valdez”; alfanumerico: nom_artistico = “Don Ramon”; alfanumerico: email;

int num_estudiantes;float prom_grupo, estatura, peso;int num_clases = 0; int num_x = -9, num_y, num_z;unsigned deudas = 400000;float c = -9., d, e = 1.5e-15;double f = 4.03e19, g =.03;char sexo = ‘F’;char nom_real[20] = “Ramon Valdez”;char nom_artistico[] = “Don Ramon”;char email[50];char grado = ‘A’, c = 64;

Page 5: ESTRUCTURA DE DECISION LOGICA EN LENGUAJE C. MENU DEL DIA Repaso clase anterior. Estructura general de un programa. Tipos de datos. Primer programa breve

PRIMER PROGRAMA BREVE

Page 6: ESTRUCTURA DE DECISION LOGICA EN LENGUAJE C. MENU DEL DIA Repaso clase anterior. Estructura general de un programa. Tipos de datos. Primer programa breve

ESTRUCTURAS EN C

SI (expresión_logica) ENTONCES secuencia 1 | camino 1SINO Secuencia 2 | camino 2FIN_SI

if (expresión_logica) { código_secuencia1;}else { código_secuencia2;}

MIENTRAS(expresión_logica)HAGA secuencia FIN_MIENTRAS

while (expresion_logica) { secuencia}

PARA (VC = LI,LF,INC) HAGA secuencia FIN_PARA

for(expre1;expre2;expre3) { secuencia;}

Page 7: ESTRUCTURA DE DECISION LOGICA EN LENGUAJE C. MENU DEL DIA Repaso clase anterior. Estructura general de un programa. Tipos de datos. Primer programa breve

HEMOS VISTO LAS VARIABLES, PERO QUE PASA CON LAS CONSTANTES?

algoritmo (nombre_algoritmo)variables: tipo_1: lista_variables_1 tipo_2: lista_variables_2 . . . tipo_N: lista_variables_Nconstantes: lista_identificadores = valorINICIO sentencia_1 sentencia_2 . . . sentencia_NFIN_INICIOfin(nombre_algoritmo)

constantes: PI = 3.14 TAMAÑO = 46 IVA = 0.16 asterisco = ‘*’ mensaje = “que hay de nuevo viejo”

En C las constantes se pueden declarar con la directiva de preprocesador #define o agregando el modificador const en la declaración de una variable.

#define PI 3.14#define TAMAÑO 46#define IVA 0.16const char asterisco = ‘*’;const char mensaje[] = “que hay de nuevo viejo”;

Hemos visto las variables, ¿pero que pasa con las constantes?

Page 8: ESTRUCTURA DE DECISION LOGICA EN LENGUAJE C. MENU DEL DIA Repaso clase anterior. Estructura general de un programa. Tipos de datos. Primer programa breve

SEGUNDO PROGRAMA BREVE

Page 9: ESTRUCTURA DE DECISION LOGICA EN LENGUAJE C. MENU DEL DIA Repaso clase anterior. Estructura general de un programa. Tipos de datos. Primer programa breve

ESTRUCTURAS DE DECISION LOGICA EN C – ESTRUCTURA if

Los condicionales son empleados para elegir entre diferentes alternativas de acción.

En el caso de C la estructura empleada para el uso de condicionales es la estructura if, cuya sintaxis básica se muestra a continuación

if (condicion) { instrucciones_caso_verdadero}else { instrucciones_caso_falso}

SI (condicion) ENTONCES instrucciones_caso_verdaderoSI_NO instrucciones_caso_falsoFIN_INICIO

Page 10: ESTRUCTURA DE DECISION LOGICA EN LENGUAJE C. MENU DEL DIA Repaso clase anterior. Estructura general de un programa. Tipos de datos. Primer programa breve

EJEMPLO 1Realice un algoritmo que diga si una persona es mayor de edad o no. El usuario debe ingresar la edad por teclado.

Page 11: ESTRUCTURA DE DECISION LOGICA EN LENGUAJE C. MENU DEL DIA Repaso clase anterior. Estructura general de un programa. Tipos de datos. Primer programa breve

EJEMPLO 2A un trabajador se le aplica un aumento del 15% en su salario si este es menor de $400000 y 8% en caso contrario. Realice un programa en C que imprima el sueldo del trabajador

Page 12: ESTRUCTURA DE DECISION LOGICA EN LENGUAJE C. MENU DEL DIA Repaso clase anterior. Estructura general de un programa. Tipos de datos. Primer programa breve

ALGUNAS ANOTACIONES SOBRE LA ESTRUCTURA if (1)

El uso del else no es obligatorio: La parte que es ejecutada cuando la condición del if es falsa no es obligatoria. Su uso o no depende de lo que pida el problema.

Ejemplo:Se tiene un parque de diversiones en el cual si se es niño se hace un descuento del 25% sobre el tiquete que vale $5000. Realice un algoritmo el cual calcule el precio a pagar para una persona cualquiera (sea niño o adulto).

Page 13: ESTRUCTURA DE DECISION LOGICA EN LENGUAJE C. MENU DEL DIA Repaso clase anterior. Estructura general de un programa. Tipos de datos. Primer programa breve

ALGUNAS ANOTACIONES SOBRE LA ESTRUCTURA if (2)

Casos anidados: Es posible que puedan anidarse condicionales, esto, debido a que la condición puede tomar más de dos valores.

Ejemplo 3:Se tiene la siguiente tabla en la cual se muestra el equivalente entre números y letras para la calificación de notas en una guardería. Realizar un algoritmo en C que tomando como base dicha tabla y como entrada las notas, imprima la nota en letras correspondiente.

Page 14: ESTRUCTURA DE DECISION LOGICA EN LENGUAJE C. MENU DEL DIA Repaso clase anterior. Estructura general de un programa. Tipos de datos. Primer programa breve

ALGUNAS ANOTACIONES SOBRE LA ESTRUCTURA if (2)

Page 15: ESTRUCTURA DE DECISION LOGICA EN LENGUAJE C. MENU DEL DIA Repaso clase anterior. Estructura general de un programa. Tipos de datos. Primer programa breve

ESTRUCTURAS DE DECISION LOGICA MULTIPLE EN C – ESTRUCTURA if/else if/else

• Problemas de decisión con alternativas: Son aquellos problemas que contienen expresiones de decisión con mas de dos alternativas, el ejemplo anterior constituye uno de estos casos.• ¿Cómo se tratan los problemas de este tipo? Los problemas de este tipo pueden ser tratados usando estructuras if anidadas (Tal y como se llevo a cabo en el ejemplo anterior). Sin embargo a mas alternativas mas anidamiento y por lo tanto la codificación se hace mas difícil.

Oh!!! Y ahora quien podrá ayudarme???

Page 16: ESTRUCTURA DE DECISION LOGICA EN LENGUAJE C. MENU DEL DIA Repaso clase anterior. Estructura general de un programa. Tipos de datos. Primer programa breve

ESTRUCTURAS DE DECISION LOGICA MULTIPLE EN C – ESTRUCTURA if/else if/else

if(condicion1) { instrucciones_condicion_1_verdadero}else if(condicion2){ instrucciones_condicion_2_verdadero} . . .else if(condicion_N) { instrucciones_condicion_N_verdadero}else { instrucciones_caso_falso}

Afortunadamente los creadores de C tuvieron el problema anterior en cuenta y añadieron dentro de la estructura if un elemento adicional, el else if.

Básicamente, el else if es un abreviado para la implementación de if anidados. Esto da lugar a una sintaxis mas general para condicionales en C, gracias al cual es posible la implementación de condiciones con más de dos alternativas.

Page 17: ESTRUCTURA DE DECISION LOGICA EN LENGUAJE C. MENU DEL DIA Repaso clase anterior. Estructura general de un programa. Tipos de datos. Primer programa breve

ESTRUCTURAS DE DECISION LOGICA MULTIPLE EN C – ESTRUCTURA if/else if/else

Ejemplo 4:Se tiene la siguiente tabla en la cual se muestra el equivalente entre números y letras para la calificación de notas en una guardería. Realizar un algoritmo en C que tomando como base dicha tabla y como entrada las notas, imprima la nota en letras correspondiente. Resuelva el problema utilizando if- else if- else.

Page 18: ESTRUCTURA DE DECISION LOGICA EN LENGUAJE C. MENU DEL DIA Repaso clase anterior. Estructura general de un programa. Tipos de datos. Primer programa breve

ESTRUCTURAS DE DECISION LOGICA MULTIPLE EN C – ESTRUCTURA if/else if/else

Page 19: ESTRUCTURA DE DECISION LOGICA EN LENGUAJE C. MENU DEL DIA Repaso clase anterior. Estructura general de un programa. Tipos de datos. Primer programa breve

ESTRUCTURA switchExisten problemas los cuales contienen una serie de decisiones en las que se necesita probar por separado una variable o expresión por cada uno de los valores enteros contantes que pueda tomar, efectuando diferentes acciones según el caso. C ofrece la estructura switch de selección múltiple, encargada de manejar tal toma de decisiones.

switch(selector) { case valor_1: instrucciones_1; break; case valor_2: instrucciones_2; break; . . . case valor_N: instrucciones_N; break; default: instrucciones_default; break;}

• La variable usada como variable selector debe ser un tipo ordinal (expresión entera: short, char, int,…).• Cada etiqueta (valor_1, valor_2,…, valor_N) es un valor único, constante, y cada etiqueta debe tener un valor diferente de los otros.• La palabra clave break permite salir de inmediato de la estructura switch, provocando que el control del programa pase a la primera instrucción después de la estructura switch.

Page 20: ESTRUCTURA DE DECISION LOGICA EN LENGUAJE C. MENU DEL DIA Repaso clase anterior. Estructura general de un programa. Tipos de datos. Primer programa breve

EJEMPLO ESTRUCTURA switchSe tiene un restaurante en el cual se manejan una lista de platos tal y como lo muestra la siguiente tabla:

Implementar un algoritmo que tome como entrada la opción y de devuelva como resultado a la salida el menú elegido.

Page 21: ESTRUCTURA DE DECISION LOGICA EN LENGUAJE C. MENU DEL DIA Repaso clase anterior. Estructura general de un programa. Tipos de datos. Primer programa breve

ESTRUCTURA switch

Page 22: ESTRUCTURA DE DECISION LOGICA EN LENGUAJE C. MENU DEL DIA Repaso clase anterior. Estructura general de un programa. Tipos de datos. Primer programa breve

COMENTARIOS SOBRE LA ESTRUCTURA switch

• La sentencia break se utiliza porque, de otra manera, los case de una instrucción switch se ejecutarían juntos, de tal manera que, si no se indica break en ninguna parte de la estructura switch, cada vez que suceda una coincidencia en la estructura, se ejecutaran las instrucciones de los case restantes. • Etiqueta no usada: La omisión del espacio entre la palabra case y el valor entero que se esta probando (Por ejemplo poner case3 en vez de case 3) en una estructura switch puede provocar un error de lógica.• Agregar el caso default (aunque hay situaciones en las que a veces este no es necesario) en las instrucciones switch es buena practica de programación. Ya que al incluir el caso default se enfoca al programador en la necesidad de procesar condiciones excepcionales.

Page 23: ESTRUCTURA DE DECISION LOGICA EN LENGUAJE C. MENU DEL DIA Repaso clase anterior. Estructura general de un programa. Tipos de datos. Primer programa breve