UNIVERSIDAD ANDINA DEL CUSCO FACULTAD DE INGENIERÍA Y ARQUITECTURA ESCUELA PROFESIONAL DE INGENIERÍA CIVIL
GUIA DE APLICACIÓN Nº 7 Estructura de control selectiva múltiple
I. DATOS INFORMATIVOS 1.1. Nombre de la asignatura 1.2. Semestre Académico 1.3. Ciclo de estudios 1.4. Área curricular 1.5. Nombre del docente
: Taller de Algorítmica y Programación : 2017-I : III : EBE : Ing. Yessenia Bernales Guzmán
II. COMPETENCIAS A CONSEGUIR
Conoce y analiza el diseño de algoritmos e implementa programas utilizando un lenguaje de programación.
III.CAPACIDADES
Analiza y resuelve problemas de mediana complejidad utilizando la estructura de control selectiva.
IV.FUNDAMENTO TEÓRICO Estructura Selectiva Múltiple
La estructura de selección múltiple ofrece una solución más simple y compacta. Para esta estructura se evalúa una expresión que puede tomar n valores distintos (1, 2, 3, ..., n) A cada valor de la expresión corresponde una instrucción (o serie de instrucciones) diferente, lo que significa que el flujo seguirá un camino distinto entre los n posibles caminos en dependencia del valor de la expresión de control. La representación gráfica de este tipo de estructura de selección sería:
UNIVERSIDAD ANDINA DEL CUSCO FACULTAD DE INGENIERÍA Y ARQUITECTURA ESCUELA PROFESIONAL DE INGENIERÍA CIVIL
Se trata de una sentencia condicional multi-salida en la que las decisiones se toman en función de un valor numérico entero o un carácter de entre una serie de opciones posibles. Puede existir una cláusula por defecto o bien no adoptarse ninguna acción. Sintaxis general: Según sea (expresión) hacer caso1: instrucción1 instrucción2 ........ caso2: instrucción1 instrucción2 ........ caso3: instrucción1 . instrucción2 . ........ . caso n: instrucción1 instrucción2 ........ caso contrario: instrucción1 instrucción2 ........ fin_segun sea
Sintaxis en C#
switch ( ) { case 1: ; break; case 2 : ; break; . . . case n : ; break; default : ; }
V. APLICACIÓN DE LA GUÍA
Ejercicio 1: Elaborar un algoritmo para determinar el número de días que tiene un mes de un año. 1. Análisis 1.1 Entender el problema
mes
año
nrodias
2 1 9
2004 2007 2008
29 31 30
UNIVERSIDAD ANDINA DEL CUSCO FACULTAD DE INGENIERÍA Y ARQUITECTURA ESCUELA PROFESIONAL DE INGENIERÍA CIVIL
1.2 Especificación del algoritmo (determinación de variables) Variables de entrada: mes, anio : entero Variables de salida: nrodias : entero 2. Diseño 2.1 Descripción del algoritmo en pseudocódigo
Inicio {determinar el nro de dias que tienes un mes} Declarar mes, anio, nrodias {leer mes y año} leer mes, anio
{calcular nro de dias del mes} segun sea mes hacer inicio caso1,3,5,7,8,10,12 : nrodias 31 caso 4,6,9,11 : nrodias 30 caso 2 : si (anio mod 4 = 0) entonces nrodias 29 caso contrario nrodias 28 caso contrario: Escribir “El mes es incorrecto” fin
{escribir nrodias} Escribir nrodias
Fin 3.
Codificación en C#
static void Main(string[] args) { //declaracion de variables int mes, anio,nrodias; //lectura de variables Console.Write("Ingrese el mes: "); mes = int.Parse(Console.ReadLine()); Console.Write("Ingrese el anio: " ); anio = int.Parse(Console.ReadLine()); //determinar el numero de dias del mes switch (mes) { case 1: case 3: case 5: case 7: case 8: case 10: case 12: nrodias=31; Console.WriteLine("El numero de dias es: {0}", nrodias); break; case 4: case 6: case 9:
UNIVERSIDAD ANDINA DEL CUSCO FACULTAD DE INGENIERÍA Y ARQUITECTURA ESCUELA PROFESIONAL DE INGENIERÍA CIVIL
case 11: nrodias=30; Console.WriteLine("El numero de dias es: {0}" , nrodias); break; case 2 : if (anio % 4==0) { nrodias=29; Console.WriteLine("El numero de dias es: {0}" , nrodias); } else { nrodias=28; Console.WriteLine("El numero de dias es: {0}" , nrodias); } break; default: Console.WriteLine("El mes es incorrecto" ); break; } Console.ReadKey(); } Ejercicio N° 2 Elaborar algoritmo que lea un
número y dé como resultado su equivalente en romanos.
UNIVERSIDAD ANDINA DEL CUSCO FACULTAD DE INGENIERÍA ESCUELA PROFESIONAL DE INGENIERÍA CIVIL
ALGORÍTMICA Y PROGRAMACIÓN
1. ANÁLISIS 1.1. Entender el Problema.
Datos Número 1 13 89
Condición
Resultado Romano
Si (Numero= 1) Si (Numero= 13) Si (Numero= 89)
I XIII LXXXIX
1.2. Especificación del algoritmo. 1.3.1. Diccionario de variables - Variables de entrada Numero: entero - Variables de salida mensaje: cadena mensaje1: cadena - Variables de proceso Unidad, Decena: entero 1.3.2. Pre Condición {|numero ≥0 y numero <=99|} 1.3.3 Acción que realiza el algoritmo: {|Convierte un número de dos cifras a su equivalente en romanos|}
2. DISEÑO 2.1. Descripción del Algoritmo.
Inicio {determinar el día en letras según su equivalente en número} {declarar e inicializar variables} Declarar Numero, Unidad, Decena, mensaje, mensaje1 Leer datos } Leer Numero Unidad = Numero MOD 10; Decena = Numero DIV 10; {determinar el equivalente en romanos} segun sea (Unidad) hacer inicio caso 1: mensaje=”I” caso 2: mensaje =”II” caso 3: mensaje =”III” caso 4: mensaje =”IV” caso 5: mensaje =”V” caso 6: mensaje =”VI” caso 7: mensaje =”VII” caso 8: mensaje = “VIII” caso 9: mensaje = “IX” fin segun sea (Decena) hacer inicio caso 1: mensaje1 =”X” caso 2: mensaje1 =”XX” caso 3: mensaje1 =”XXX” caso 4: mensaje1 =”XL” 5/8
UNIVERSIDAD ANDINA DEL CUSCO FACULTAD DE INGENIERÍA ESCUELA PROFESIONAL DE INGENIERÍA CIVIL
ALGORÍTMICA Y PROGRAMACIÓN
caso 5: mensaje1 =”L” caso 6: mensaje1 =”LX” caso 7: mensaje1=”LXX” caso 8: mensaje1= “LXXX” caso 9: mensaje1 = “XC” fin {Escribir la solución} Escribir mensaje1, mensaje Fin 3.
Codificación en C#
static void Main(string[] args) { //Escribir el equivalente en romanos de un número de dos cifras string mensaje="",mensaje1=""; int Numero,Unidad,Decena; // leer datos de teclado System.Console.Write("ingrese un número del 1-99: "); Numero = int.Parse(Console.ReadLine()); // convertir de cadena a entero Unidad = Numero % 10; Decena = Numero / 10; //utilizando estructura selectiva multiple switch (Unidad) { case 1: mensaje = "I"; break; case 2: mensaje = "II"; break; case 3: mensaje = "III"; break; case 4: mensaje = "IV"; break; case 5: mensaje = "V"; break; case 6: mensaje = "VI"; break; case 7: mensaje = "VII"; break; case 8: mensaje = "VIII"; break; case 9: mensaje = "IX"; break; } switch (Decena) { case 1: mensaje1 = "X"; break; case 2: mensaje1 = "XX"; break; case 3: mensaje1 = "XXX"; break; 6/8
UNIVERSIDAD ANDINA DEL CUSCO FACULTAD DE INGENIERÍA ESCUELA PROFESIONAL DE INGENIERÍA CIVIL
ALGORÍTMICA Y PROGRAMACIÓN
case 4: break; case 5: break; case 6: break; case 7: break; case 8: break; case 9: break;
mensaje1 = "XL"; mensaje1 = "L"; mensaje1 = "LX"; mensaje1 = "LXX"; mensaje1 = "LXXX"; mensaje1 = "XC";
} Console.WriteLine("El numero romano es:{0} {1} " , mensaje1, System.Console.ReadLine(); }
mensaje);
VI. ACTIVIDADES DE LABORATORIO Desarrollar las actividades en hojas a mano, solo el código puede ser impreso. Actividad 1 Elaborar un algoritmo que lea dos números enteros y realice una de las operaciones básicas (suma, resta, multiplicación y división). Utilizando la estructura segun sea (switch).
Actividad 2 Se tiene el colegio y el nivel socioeconómico de un estudiante. Elaborar un algoritmo que determine el importe a pagar para el examen de admisión de la universidad, cuyo valor depende del colegio de procedencia y nivel socioeconómico según la siguiente tabla:
Colegio Nacional Particular
Nivel Socioeconómico A B C 300 200 100 400 300 200
Actividad 3 Elaborar un algoritmo que calcule el importe a pagar por un vehículo al circular por una autopista. El vehículo pude ser una bicicleta, una moto, un carro o un camión. Para definir el conjunto de vehículos deben utilizar una estructura switch. El importe se calculara según los siguientes datos: a. Un importe de 0.5 soles por km para la bicicleta. b. Las motos y los carros pagaran 2 soles por Km. c. Los camiones pagaran 5 soles por Km. más 3 soles por tonelada. Se debe ingresar el tipo de vehículo, los kilómetros a recorridos y si es camión las toneladas llevadas.
VIII.
REFERENCIAS BIBLIOGRÁFICAS
GRUPO LIEBRE. (2 000). Algorítmica y Programación. UNSAAC Cusco. 7/8
UNIVERSIDAD ANDINA DEL CUSCO FACULTAD DE INGENIERÍA ESCUELA PROFESIONAL DE INGENIERÍA CIVIL
ALGORÍTMICA Y PROGRAMACIÓN
IX.
JOYANES AGUILAR, Luis. (2008). Fundamentos de Programación. Madrid: McGraw Hill.
FICHA DE CALIFICACIÓN GUÍA DE APLICACIÓN Nº 7 Estructura de control selectiva múltiple
Nombre ……………………………………………………………Código………………………………….
Actividad 1
Elabora correctamente el algoritmo 3
Elabora el algoritmo parcialmente 1
Elabora correctamente el código 2
Elabora el código parcialmente 1
Actividad 2
3
1
2
1
1
Actividad 3
5
2
2
1
1
Criterio de calificación
Presenta en fecha
Puntaje obtenido
1
Firma de la docente ………………………………………………
8/8