SENTENCIAS DE CONTROL

Documentos relacionados
UNIDAD III: Estructura Según o de selección Múltiple

SENTENCIAS DE CONTROL (SENTENCIA switch)

Sentencia de control switch

ESTRUCTURA CONDICIONAL: SEGÚN

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

Sentencia de control for

ESTRUCTURA DECISIÓN LÓGICA

ESTRUCTURA DECISIÓN LÓGICA

Sentencia de control for

TEMA 4. ESTRUCTURAS DE CONTROL

Tipos de datos y Operadores Básicos

UNAN- LEON SENTENCIA DE CONTROL DO WHILE. M.Sc. Ana María Salgado G.

Expresiones Aritméticas

OPERADORES Y EXPRESIONES

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

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

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

PROGRAMACION ESTRUCTURADA: Tema 1. El lenguaje de programación C

Capítulo 3. Sentencias condicionales

UNIVERSIDAD DON BOSCO FACULTAD DE ESTUDIOS TECNOLÓGICOS COORDINACION DE COMPUTACION

UNIDAD ACADÉMICA PROFESIONAL TIANGUISTENCO

Programación. Test Autoevaluación Tema 3

OBJETIVO III. APLICAR A LOS PROGRAMAS EN C LAS ESTRUCTURAS DE SELECCIÓN IF Y SWITCH ACTIVIDAD TEÓRICA.

Informática I (2014-2) Taller Lenguaje C Prof. Sebastián Isaza Departamento de Ingeniería Electrónica Facultad de Ingeniería Universidad de Antioquia

SENTENCIAS DE CONTROL (SENTENCIAS if Y switch)

GUIÓN DE PRÁCTICAS 3: ESTRUCTURAS CONDICIONALES

for(i = 0; i <= 45; i+=5) { x = (i*3.1416)/180; printf( seno(%d) = %f\n,i,seno(x));

Fundamentos de programación

1. Escriba el siguiente código, compílelo y ejecútelo. Obtiene el resultado esperado? Modifíquelo para que se comporte como debe:

PROGRAMACION ESTRUCTURADA: Tema 3. Funciones

Descripción de un Programa

Asignatura: Estructuras de Datos. Grado y Sección: 6to INF A-B. Docente: Ing. Yesika Medina

Estructuras de Decisión Múltiple

UNIVERSIDAD AUTÓNOMA DEL ESTADO DE HIDALGO

Programación Estructurada

Programación Estructurada

ESTRUCTURAS CONDICIONALES SIMPLES: ESTRUCTURAS CONDICIONALES DOBLES: ESTRUCTURAS CONDICIONALES ANIDADAS:

Capitulo 3. Programación Estructurada

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

Programación Estructurada

Lenguaje de programación C. Introducción

Introducción al lenguaje C

Operadores aritméticos

Lenguaje de Programación: C++ Estructuras de control:switch

Programación I Instrucciones de control - condicionales

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

Examen de Fundamentos de la Programación (Modelo 1)

Unidad 3. Estructuras de control en diagrama de Flujo y pseudocódigo Tema Iteración o Repetitivas (repite - mientras) Juan Pablo Cobá Juárez Pegueros

Estructuras de Repetición (Repita para)

Elementos de un programa en C

Lenguaje C. República Bolivariana de Venezuela Fundación Misión Sucre Aldea Fray Pedro de Agreda Introducción a la Programación III

Estructuras de Decisión Simples y Dobles

Control de Flujo. Estructuras de Control! Experiencia Educativa de Algorítmica CONTROL DE FLUJO

Codificación en C. Como pasar de Pseudocódigo a C (con pequeños trucos de C++)

Cuestiones: Ejercicios 2: 1) Qué imprimen los siguientes bucles?

BUCLES ANIDADOS EN LENGUAJE C

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

EXAMEN DE METODOLOGÍA Y TECNOLOGÍA DE LA PROGRAMACIÓN EUI-FI-UPV Septiembre DE 1999

Repetición. Ejercicio 3

5. Sentencias selectivas o condicionales

Autoestudio 2: Variables y Operadores

Guía práctica de estudio 08: Estructuras de selección

Modularización en lenguaje C. Funciones

Tema 07: Programación estructurada en C

Laboratorio de Arquitectura de Redes. Introducción al lenguaje C

Introducción a los Computadores Estructuras de control selectivas en C

Fundamentos de Programación 2017-I

Introducción a la Programación

INTRODUCCIÓN AL LENGUAJE DE PROGRAMACIÓN C

UNIDAD II: Estructuras Decisión Lógica

INTRODUCCIÓN AL LENGUAJE C

Programación en C. Algoritmo y Estructura de Datos. Ing. M. Laura López. Programación en C

Formato para Prácticas de Laboratorio

Tema 05: Elementos de un programa en C

2^10 2^9 2^8 2^7 2^6 2^5 2^4 2^3 2^2 2^1 2^0 SUMA

PRÁCTICA INSTRUCCIONES DE SELECCIÓN. Objetivos

Estructuras de Repetición (Hacer-Mientras)

Métodos CON valor de retorno

CENTRO UNIVERSITARIO DE CIENCIAS EXACTAS E INGENIERÍAS DIVISIÓN DE ELECTRÓNICA Y COMPUTACIÓN

Tema 3. Estructuras de Datos

Lenguaje de programación

CLAVE DE UNIDAD DE APRENDIZAJE TRONCO COMÚN PROGRAMACIÓN CIENCIAS BÁSICAS (PROGRAMACIÓN)

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

PRACTICA: PROCESOS BASICOS DE PROGRAMACION. ALGORITMOS

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

Algoritmos y Estructuras de Datos Ingeniería en Informática, Curso 2º SEMINARIO DE C Sesión 1

FUNCIONES. Identificador valido. Tipo-Funcion Identificador_de_la_funcion (Tipo par1,tipo par2 )

Profesor(a): Ing. Miriam Cerón Brito

UNIDAD 1. Algoritmo se define como un conjunto de instrucciones que la computadora debe seguir para resolver un problema.

Introducción al Lenguaje de Programación C

Ejercicios Tema 6. Funciones

Ejercicios aplicando estructuras de asignación.

Control de Flujo. Estructuras de Control! Experiencia Educativa de Algorítmica CONTROL DE FLUJO

GUIA DE LABORATORIO # 13 Arreglos unidimensionales y bidimensionales

SESIÓN DE EJERCICIOS E1

Uso Pseudocódigo Diagrama de flujo Codificación

UNIVERSIDAD DON BOSCO FACULTAD DE ESTUDIOS TECNOLÓGICOS ESCUELA DE COMPUTACION

Estructura Selectiva Múltiple

Hoja de problemas Estructuras de Control

1. Medidas de longitud 2. Medidas de superficie 3. Medidas de volumen 4. Medidas de peso 5. Medidas de tiempo 6. Tabla de equivalencias

Transcripción:

UNANLEON SENTENCIAS DE CONTROL CONDICIONALES(SWITCH) M.Sc. Ana María Salgado G.

Unidad IV: Estructuras de control Sentencia switch Selecciona entre varias alternativas dependiendo del valor de una variable. La estructura switch comienza con la palabra reservada switch seguida de una expresión entre paréntesis. Luego de esto vienen las etiquetas de selección a través de la palabra reservada case, ésta palabra debe tener como argumento obligatoriamente constantes enteras, por ejemplo, int, char, enum, pero no float, o string. En varios de los casos puede hacerse referencia a una misma acción, para ello se disponen en secuencia y la última cláusula case es la que hará referencia a la secuencia de instrucciones asociada. switch(c) case 'a': printf("op A\n"); case 'b': printf("op B\n"); case 'c': case 'd': printf("op C o D\n"); default: printf("op?\n"); Por lo común la última instrucción antes de la siguiente etiqueta es la instrucción break, ésta palabra reservada provoca el abandono de la estructura switch. Si no existe una proposición break la ejecución continúa con las instrucciones de la siguiente etiqueta. La ausencia de instrucciones break es una causa de error frecuente en un switch. Por último puede haber una instrucción etiquetada como default y representa el caso en el que el valor de la expresión no coincida con ningún valor de las etiquetas utilizadas. No es necesario incluir la sentencia default. 2 M.Sc. Ana María Salgado G.

La forma general de esta sentencia es: switch (expresión) case exp1: sentencia 1; sentencia 2; case exp2: sentencia1; sentencia2; case expn: sentencia N; default: sentencia D; Ejemplo 1: Construya un pseudocódigo y el correspondiente programa en C, que al recibir como datos dos variables de tipo entero, obtenga el resultado de la siguiente función: T/5 Si OP = 1 f(t) = T T Si OP = 2 6 * T/2 Si OP = 3,4 1 Para cualquier otro caso. 3 M.Sc. Ana María Salgado G.

Pseudocódigo en PSEINT Proceso funcion Definir OP, T como entero; Definir RES como real; Escribir "Ingrese la opcion del calculo y el valor entero:"; Leer OP,T; Segun (OP) Hacer 1: RES <- T/5; 2: RES <- T ^ T; 3,4: RES <- 6 * T/2; de Otro Modo: RES <- 1; FinSegun Escribir "Resultado:",RES; FinProceso Código en C: //funcion.c #include <stdio.h> #include <math.h> void main(void) int OP, T; float RES; printf("ingrese la opcion del calculo y el valor entero:"); scanf("%d %d",&op,&t); switch(op) case 1: RES = T/5; 4 M.Sc. Ana María Salgado G.

case 2: RES = pow(t,t); case 3: case 4: RES = 6 * T/2; default: RES = 1; printf("\nresultado: %.2f\n",RES); Ejemplo 2: Realice un programa que simule una calculadora, de tal forma que: Si el usuario introduce +, sume dos números. Si el usuario introduce -, reste dos números. Si el usuario introduce *, multiplique dos números. Si el usuario introduce /, divida dos números. Asegúrese que el segundo operando no sea cero, ya que la división por cero no está permitida. Código en C: //calculadora.c #include <stdio.h> #include <stdlib.h> double num1, num2, resp; char operacion; void main(void) printf("esta es una calculadora...\n\n"); printf("ingrese dos numeros: "); scanf("%lf %lf",&num1,&num2); printf("operacion?"); fflush(stdin); operacion = getchar(); switch(operacion) 5 M.Sc. Ana María Salgado G.

case '+': resp = num1 + num2; case '-': resp = num1 - num2; case '*': resp = num1 * num2; case '/': if(num2!= 0) resp = num1 / num2; else printf("division por cero no valida\n"); exit(0); default: puts("operacion invalida"); printf("%g %c%g = %g\n\n",num1,operacion,num2,resp); Ejemplo 3: Construya un pseudocódigo y su correspondiente programa en C, que al recibir como datos el nivel académico de un profesor de una universidad así como su salario, incremente éste último siguiendo las especificaciones de la tabla e imprima tanto el nivel del profesor como su nuevo salario. Use enumerados. Nivel Incremento Profesor adjunto 3.5% Profesor auxiliar 4.1% Profesor asistente 4.8% Profesor titular 5.3% Pseudocódigo en PSEINT: Proceso profesor Definir adjunto, auxiliar, asistente, titular, nivel como entero; Definir sal como real; adjunto <- 1; auxiliar <- 2; asistente <- 3; 6 M.Sc. Ana María Salgado G.

titular <-4; Escribir "Categorias de profesor universitario:"; Escribir "---------------------------------------"; Escribir "1. Profesor adjunto"; Escribir "2. Profesor auxiliar"; Escribir "3. Profesor asistente"; Escribir "4. Profesor titular"; Escribir "Ingrese el nivel academico del profesor: "; Leer nivel; Escribir "Ingrese el salario: "; Leer sal; Segun (nivel) Hacer adjunto: sal <- sal * 1.0035; auxiliar: sal <- sal * 1.0041; asistente: sal <- sal * 1.0048; titular: sal <- sal * 1.0053; De Otro Modo: Escribir "Categoria incorrecta"; FinSegun Escribir "Nivel: ",nivel; Escribir "Nuevo salario: ",sal; FinProceso Código en lenguaje C: //profesor.c #include <stdio.h> #include <stdlib.h> void main(void) enum profesor adjunto = 1, auxiliar, asistente, titular 7 M.Sc. Ana María Salgado G.

; enum profesor nivel; float sal; printf("categorias de profesor universitario:\n"); printf("---------------------------------------\n"); printf("1. Profesor adjunto\n"); printf("2. Profesor auxiliar\n"); printf("3. Profesor asistente\n"); printf("4. Profesor titular\n"); printf("ingrese el nivel academico del profesor: "); scanf("%d",&nivel); printf("ingrese el salario: "); scanf("%f",&sal); switch(nivel) case adjunto: sal = sal * 1.0035; case auxiliar: sal = sal * 1.0041; case asistente: sal = sal * 1.0048; case titular: sal = sal * 1.0053; default: printf("categoria incorrecta\n"); exit(0); printf("\n\nnivel: %d \tnuevo salario: %.2f\n",nivel,sal); 8 M.Sc. Ana María Salgado G.

Ejemplo #4: Realice un algoritmo que permita la conversión entre euros y pesetas. Pseudocódigo en PSEINT: Proceso conversionmoneda Definir euro, n, x como real; Definir opcion como entero; euro <-166.386; Escribir "1-Pesetas a Euros"; Escribir "2-Euros a pesetas"; Escribir "Ingrese la opcion:"; Leer opcion; Escribir "Introduzca la cantidad: "; Leer n; Código en C: Segun opcion Hacer 1: x <- n/euro; Escribir n," Pesetas son ",x, " Euros"; 2: x <- n*euro; Escribir n," Euros son ",x," Pesetas"; De Otro Modo: Escribir "Opcion Incorrecta"; FinSegun FinProceso /* Conversión entre euros y pesetas */ #include <stdio.h> #define euro 166.386 void main(void) float n,x; int opcion; printf("introduzca la cantidad: "); scanf("%f",&n); printf(" 1-Ptas a Euros\n 2-Euros a ptas\n"); printf("ingrese la opcion:"); scanf("%d",&opcion); 9 M.Sc. Ana María Salgado G.

switch(opcion) case 1: case 2: default: Sentencia switch x=n/euro; printf("\n%g Pesetas son %.2f Euros\n",n,x); x=n*euro; printf("\n%.2f Euros son %g Pesetas\n",n,x); printf("\nopcion Incorrecta"); Ejemplo #5: Realice un programa que convierta de grados centígrados a Fahrenheit y viceversa. Utilice enumerados. //conversionfahrent.c #include <stdio.h> #include <stdlib.h> enum conversion centfahr = 1, fahrcent ; enum conversion opcion; float f, c; void main(void) printf("1 - Convertir de centigrados a fahrenheit\n"); printf("2 - Convertir de fahrenheit a centigrados\n"); printf("\ningrese la opcion deseada: "); scanf("%d", &opcion); switch (opcion) case centfahr: printf("\ngrados centigrados?:"); scanf("%f",&c); f = 9.0/5.0 * c + 32; printf("%.2f centigrados equivalen a %.2f grados fahrenheit\n\n",c,f); 10 M.Sc. Ana María Salgado G.

case fahrcent: printf("\ngrados fahrenheit?: "); scanf("%f", &f); c = 5.0/9.0 * (f - 32); printf("%.2f fahrenheit equivalen a %.2f grados centigrados\n\n",f,c); default: printf("\nopcion incorrecta\n"); exit(0); /* error; salir de main */ Ejemplo #6: En el siguiente programa una persona ingresa el mes y el día de su cumpleaños. La salida es la estación en que ocurre el nacimiento de la persona: otoño, invierno, primavera o verano. Se usan los 4 puntos notables en Septiembre 21, Diciembre 21, Marzo 21 y Junio 21 como las fronteras o límite de las estaciones. //estanaci.c #include <stdio.h> /*IMPRIME LA ESTACION DE NACIMIENTO A PARTIR DEL MES Y DEL DIA*/ int mes,dia; char estacion[20]; void main(void) printf("escriba con numeros el mes y el dia de su cumplea os:\n"); scanf("%d %d",&mes,&dia); switch(mes) case 1: case 2: strcpy(estacion,"invierno"); case 4: case 5: strcpy(estacion,"primavera"); case 7: case 8: strcpy(estacion,"verano"); case 10: case 11: strcpy(estacion,"oto o"); case 3: if(dia < 21) strcpy(estacion,"invierno"); 11 M.Sc. Ana María Salgado G.

else strcpy(estacion,"primavera"); case 6: if(dia < 21) strcpy(estacion,"primavera"); else strcpy(estacion,"verano"); case 9: if(dia < 21) strcpy(estacion,"verano"); else strcpy(estacion,"oto o"); case 12: if(dia < 21) strcpy(estacion,"oto o"); else strcpy(estacion,"invierno"); default: printf("mes invalido"); exit(-1); printf("usted nacio en %s\n",estacion); Sentencia switch Ejercicios propuestos sobre switch 1. Realice un programa tal que, al ingresar un carácter, determine si éste es una vocal en mayúscula o minúscula, o es una consonante. 2. Construya un pseudocódigo y el correspondiente programa en C, que permita calcular el valor de f(x) según la siguiente expresión: Y 3 Si (Y mod 4) = 0 f(x) = (Y 2 14) / Y 3 Si (Y mod 4) = 1 Y 3 + 5 Si (Y mod 4) = 2 Si (Y mod 4) = 3 12 M.Sc. Ana María Salgado G.

3. Una empresa de telecomunicaciones canadiense ofrece servicio de callback a un precio atractivo. El costo de las llamadas telefónicas depende tanto del lugar de origen de la llamada como de la zona geográfica en la que se encuentre el país destino. En la siguiente tabla se presenta el costo por 60 segundos para las llamadas originadas en México. Clave Zona Precio 1 Estados Unidos 0.13 2 Canadá 0.11 5 América del Sur 0.22 6 América Central 0.19 7 México 0.17 9 Europa 0.17 10 Asia 0.20 15 Africa 0.39 20 Oceanía 0.28 Realice un programa que le permita calcular e imprimir el costo total de una llamada telefónica, considerando tanto la zona como la duración de la llamada. Escriba la primera versión usando la clave como selector del switch. Diseñe una segunda versión, utilizando un enumerado para la zona, siendo ésta el selector del switch. 4. En un spa de Ixtapan de la Sal, realizaron un análisis de los clientes registrados en los últimos 5 años, con el objeto de conocer de los gastos de internación de cada cliente. Construya un programa en C que calcule el costo de internación de un cliente, según los datos de la siguiente tabla. Se sabe que los clientes mayores de 60 años tienen un descuento del 25% y los clientes menores de 25 años, de 15%. Tipo de tratamiento Costo/Cliente/Día 1 2800 2 1950 3 2500 4 1150 5. Construya un programa que al recibir como datos la matrícula, la carrera, el semestre que cursa y el promedio de un alumno de una universidad privada de Lima, Perú, determine si el alumno puede ser asistente de alguna de las carreras que se ofrecen en la universidad. Si el alumno reúne los requisitos planteados en la tabla, se debe escribir su matrícula, la carrera y el promedio correspondiente. Carrera Semestre Promedio Industrial: 1 >=6 >=8.5 Telemática: 2 >=5 >=9.0 Computación: 3 >=6 >=8.8 Mecánica: 4 >=7 >=9.0 13 M.Sc. Ana María Salgado G.

6. En una empresa textil ubicada en La Paz, Bolivia, necesitan un empleado para una sucursal. Construya un programa en C, que compruebe e imprima si un empleado determinado reúne las condiciones necesarias para tal puesto. Las condiciones que estableció la empresa son las siguientes: categoría 3 ó 4 y antigüedad mayor a 5 años, o bien categoría 2 y antigüedad mayor a 7 años. 7. Construya un programa en C que permita convertir de pulgadas a milímetros, de yardas a metros y de millas a kilómetros. Use enumerado. Consideraciones: 1 pulgada equivale a 25.40 milímetros. 1 yarda equivale a 0.9144 metros. 1 milla equivale a 1.6093 kilómetros. 8. Escriba un programa en C que permita realizar la conversión de medidas de pesos, longitud y volumen, de acuerdo con la tabla presentada. Se debe escribir el valor a convertir, la medida en que está expresado el valor, el nuevo valor y la nueva medida correspondiente. Medidas de longitud Medidas de volumen Medidas de peso 1 pulgada = 25.40 milímetros 1 pie 3 = 0.02832 metros 3 1 onza = 28.35 gramos 1 yarda = 0.9144 metros 1 yarda 3 = 0.7646 metros 3 1 libra = 0.45359 kilogramos 1 milla = 1.6093 kilómetros 1 pinta = 0.56826 litros 1 ton. Inglesa = 1.0160 toneladas 1 pulgada 2 = 6.452 centímetros 2 1 galón = 4.54609 litros 1 pie 2 =0.09290 metros 2 1 yarda 2 =0.8361 metros 2 1 acre = 0.4047 hectáreas 1 milla 2 =2.59 kilómetros 2 Bibliografía Ceballos Francisco Javier. Curso de Programación C/C++. Segunda Edición. Editorial RAMA, Madrid, 2002. Joyanes Aguilar Luis, Zahonero Martínez Ignacio. Programación en C. Metodología, estructura de datos y objetos. Mc Graw Hill. Byron S. Gottfried. Programación en C. Mc Graw Hill. H.M. Dietel P. J. Dietel. Como Programar en C/C++. Segunda Edición. Prentice Hall. 14 M.Sc. Ana María Salgado G.

Hernández María Lourdes. Diseño estructurado de algoritmos. Diagramas de flujos y pseudocódigos. Universidad de Teuxtepe, México. 15 M.Sc. Ana María Salgado G.