UNIVERSIDAD CATOLICA DE SANTA MARIA FACULTAD DE CIENCIAS E INGENIERÍAS FISICAS Y FORMALES PROGRAMA PROFESIONAL INGENIERIA MECÁNICA, MECÁNICA-ELECTRÍCA Y MECATRÓNICA Laboratorio de Mecánica Computacional I Tema: Estructuras Secuenciales y Selectivas Apellidos y Nombres: Machacca Tunquipa Miguel Gerardo
I.
Página:1/18
Jefes de Prácticas: Ing. Juan Carlos Cuadros Ing. Christiam Collado Oporto Ing. Henry Zegarra Gago Código: Semestre: Grupo: Lab. Nº:
4E03017 III FECHA: 03
23 al 28 MAR/2015
OBJETIVOS 1.
Comprender la necesidad del diseño de algoritmos en el estudio y resolución de programas.
2.
Analizar los problemas para identificar los datos que se requieren, así como dar las instrucciones adecuadas para resolver problemas de ingeniería a un nivel básico.
II.
3.
Conocer la sintaxis de las instrucciones condicionales.
4.
Analizar y diseñar la solución utilizando algoritmos de programación.
MARCO TEORICO Una de las construcciones importantes que pueden especificarse en un programa es el hecho de realizar diferentes tareas en función de ciertas condiciones. Esto es, ejecutar una parte del código u otra, condicionalmente. Para ello será necesario especificar dichas condiciones y disponer de un mecanismo para indicar que acciones tomar dependiendo de cómo se evalué una determinada condición en un momento dado de la ejecución del programa. Así pues, en este laboratorio veremos las distintas maneras que C ofrece ofrece para controlar el flujo de ejecución de un programa de forma condicional, que son:
-
Sentencia de construcción if.
-
Sentencia de construcción switch o estructura de selección múltiple.
1.
Sentencia de construcción IF Las estructuras lógicas selectivas se encuentran en la solución algorítmica de casi todo tipo de problemas. La utilizamos cuando en el desarrollo de un problema debemos de TOMAR UNA DECISIÓN, para establecer un proceso o señalar un camino alternativo a seguir. Esta toma de decisiones se basa en evaluaciones de una o más condiciones que nos señalaran como alternativa o consecuencia la rama a seguir. Hay situaciones en las que la toma de decisiones se realiza en cascada, es decir se toma una decisión, se mar ca la rama correspondiente a seguir y se vuelve a tomar otra decisión y así sucesivamente. Por lo que para alcanzar la solución de este problema o sub problema debemos de aplicar prácticamente un árbol de decisión. Las estructuras algorítmicas selectivas que se utilizan para la t oma de decisiones lógicas las podemos clasificar de la siguiente forma: a.
Estructura selectiva simple (SI ……, ENTONCES)
b.
Estructura selectiva doble (SI……., ENTONCES…… SINO)
Cabe señalar que la combinación de esta estructura simple y doble da como resultado una estructura selectiva en cascada.
Laboratorio de Mecánica Computacional I
Tema: Estructuras Secuenciales y Selectivas
Página: 2/18
LAB N° 3
JCC CCO HZG
Estructura de selección simple Esta estructura permite que el flujo del diagrama siga por un camino específico si se cumple la condición o conjunto de condiciones. La construcción if puede escribirse también de forma más general para controlar la ejecución de una sentencia o grupo de sentencias, como podemos ver en la sintaxis 2 del cuadro 2.
Sintaxis 1:
Diagrama de flujo
if () ;
Sintaxis 2: if () { ; ; ... }
Pseudocódigo Si condición es verdadera, Entonces Hacer operación o sentencias Fin si
Cuadro 1. Sintaxis de la sentencia if simple y diagrama de flujo.
Nótese que después de la condición no se escribe ‘;’. Escribir ‘;’ detrás de la condición equivaldría a que la construcción if ejecutase un conjunto vacío de sentencias, lo cual no tiene ningún sentido. Ejemplo 01. Realice el diagrama de flujo para que dada la
calificación de un alumno, escriba aprobado en caso la nota sea mayor o igual que 10.5.
Laboratorio de Mecánica Computacional I
Tema: Estructuras Secuenciales y Selectivas
Página: 3/18
LAB N° 3
JCC CCO HZG
Estructura de selección doble La selección simple es muy limitada, por otro lado existe la alternativa de selección doble la cual nos permite tomar decisiones en ambos sentidos, es decir cuando la condición de comparación sea verdadera se podrán ejecutar una o más acciones o cuando la condición de comparación sea falsa también se podrán ejecutar una o más acciones.
Sintaxis:
Diagrama de flujo
if () ; else ;
Pseudocódigo Si condición es verdadera, Entonces Acciones_1 Sino Acciones_2 Fin si
Cuadro 2. Sintaxis de la sentencia if - else y diagrama de flujo.
Las Acciones_1 se ejecutaran cuando la condición de comparación sea verdadera y las Acciones_2 se ejecutaran cuando la condición de comparación sea falsa Ejemplo 02. Realice el diagrama de flujo para que
dada la calificación de un alumno, escriba aprobado si la nota sea mayor o igual que 10.5, en caso contrario escriba desaprobado.
Laboratorio de Mecánica Computacional I
Tema: Estructuras Secuenciales y Selectivas
Página: 4/18
LAB N° 3
JCC CCO HZG
Anidamiento de estructuras condicionales A menudo se tendrá la necesidad de anidar una o más estructuras condicionales ya sean simples o dobles o la combinación de ambas. Se dice que las estructuras están anidadas cuando hay una o unas dentro de ellas. Su construcción, donde las condiciones se plantean de forma escalonada, se muestra a continuación en el cuadro 3.
Sintaxis: if () ; else if () ; ... else if () ; else ;
Pseudocódigo:
Diagrama de Flujo
Si condición1 es verdadera, Entonces Acciones_1 o Grupo de sentencias 1 Sino Si condición2 es verdadera, Entonces Acciones_2 o Grupo de sentencias 2 Sino Si condición3 es verdadera, Entonces Acciones_3 o Grupo de sentencias 3 Sino Acciones_4 o Grupo de sentencias 4 Fin si Fin si Fin si
Cuadro 3. Sintaxis de la sentencia else if y diagrama de flujo.
Las condiciones se evalúan secuencialmente de arriba hacia abajo hasta encontrar una que dé como resultado cierto. En ese punto, se ejecuta el grupo de sentencias o acciones correspondiente a dicha condición. El resto de condiciones y sentencias asociadas se ignoran. En caso de que ninguna de las condiciones se evalúe cierta, se ejecutaría el grupo de sentencias por defecto.
Laboratorio de Mecánica Computacional I
Tema: Estructuras Secuenciales y Selectivas
Página: 5/18
LAB N° 3
JCC CCO HZG
Ejemplo 03. Realice el diagrama de flujo para validar la calificación de un alumno, esta es válida si se encuentra entre los rangos de 0 a 20, caso contraria la nota sería “No válida”. En caso la nota sea válida escriba aprobado si
la nota es mayor o igual que 10.5, en caso contrario escriba desaprobado.
III.
MATERIAL Y EQUIPO
IV.
Una PC con SO Windows XP, Internet Software DFD y/o Diagram Designer para Diagramas de Flujo
PROCEDIMIENTO Ejercicio 01 Elabore el algoritmo, pseudocódigo y diagrama de flujo de un programa que: Intercambie el valor de dos variables numéricas.
1. Inicio del Programa 2. Declarar Variables: N1 (Numero 1), N2 (Numero 2), N3 (Numero 3) 3. Imprimir “Ingrese El Numero 1 y el Numero 2” 4. Leer N1, N2 5. Hacer: N3 = N1 N1=N2 6. Imprimir "El Numero 1 es ",N1," El Numero 2 es ",N3 7. Finalizar el Programa
Laboratorio de Mecánica Computacional I
Tema: Estructuras Secuenciales y Selectivas
Página: 6/18
LAB N° 3
JCC CCO HZG
Ejercicio 02: Elabore el algoritmo, pseudocódigo y diagrama de flujo de un programa en el que dada una cantidad (válida) de días, determine su equivalente en años y meses. Asuma que todos l os años tienen 365 días y los meses 30 días.
1. Inicio del Programa 2. Declarar Variables: D (Número de Días), A, B (Número de Años), M, N, O (Numero de Meses), S, T (Número de Días). 3. Imprimir “Ingrese El Numero de Días” 4. Leer D 5. Hacer: A = D/360 B = trunc(A) M = A-B N = M*12 O = trunc(N) S = N-O T = S*30 6. Imprimir "El Número de Años es ",B," El Numero de meses es ",O," El Numero de Días es ",T 7. Finalizar el Programa
Laboratorio de Mecánica Computacional I
Tema: Estructuras Secuenciales y Selectivas
Página: 7/18
LAB N° 3
JCC CCO HZG
Ejercicio 03: Elabore el algoritmo, pseudocódigo y diagrama de flujo de un programa en el que dadas las pendientes M1 y M2 y los cortes con el eje Y B1 y B2 de dos rectas L1 y L2 (L1: Y = M1 *X +B1; L2: Y = M2 *X +B2); determine en punto de intersección entre las dos rectas. Asuma que M1 es diferente de M2
1. Inicio del Programa 2. Declarar Variables: M1 (Pendiente 1), M2 (Pendiente 2), B1 (Intersección con eje Y 1), B2 (Intersección con Y 2), X (Intersección entre rectas en eje X), Y (Intersección entre rectas en eje Y) 3. Imprimir “Ingrese la pendiente e intersección con el eje Y de la primera recta” 4. Leer M1, B1 5. Imprimir “Ingrese la pendiente e intersección con el eje Y de la segunda recta ” 6. Leer M2, B2 5. Hacer: X = (B2-B1)/(M1-M2) Y = (M1*X)+B1 6. Imprimir "La intersección entre las dos recta s es en = ”,X,”,”,Y 7. Finalizar el Programa
Laboratorio de Mecánica Computacional I
Tema: Estructuras Secuenciales y Selectivas
Página: 8/18
LAB N° 3
JCC CCO HZG
Ejercicio 04: Se pide elaborar el algoritmo narrado, pseudocódigo y diagrama de flujo de un programa que permita ingresar dos números por teclado e indique cuál de los dos es el mayor y cual es menor.
1. Inicio del Programa 2. Declarar Variables: N1 (Numero 1), N2 (Numero 2) 3. Imprimir “Ingrese El Numero 1 y el Numero 2” 4. Leer N1, N2 5. Si N1>N2 Imprimir "El Numero Mayor es ",N1," El Numero Menor es ",N2 Si no Imprimir "El Numero Mayor es ",N2,"El Numero Menor es ",N1 6. Finalizar el Programa
Ejercicio 05: Se pide elaborar el algoritmo, pseudocódigo y diagrama de flujo de un programa que ingrese un número por teclado e indique si es positivo, negativo o igual a cero.
1. Inicio del Programa 2. Declarar Variables: N (Numero) 3. Imprimir “Ingrese El Numero” 4. Leer N 5. Si N = 0 Imprimir “El número es igual a 0” Si no Si N>0 Imprimir “El número es Positivo” Si no Imprimir “El número es Negativo” 6. Finalizar el Programa
Laboratorio de Mecánica Computacional I
Tema: Estructuras Secuenciales y Selectivas
Página: 9/18
LAB N° 3
JCC CCO HZG
Ejercicio 06: Elaborar el algoritmo, diagrama de flujo y pseudocódigo de un programa que permita visualizar caracteres al traducir números ingresados de 1 a 5. Por ejemplo si el número ingresado es 2, se visualice un mensaje que diga, “El número en caracteres es dos”.
1. Inicio del Programa 2. Declarar Variables: N (Numero) 3. Imprimir “Ingrese El Numero” 4. Leer N 5. Si N = 1 Imprimir “El número es uno” Si no Si N=2 Imprimir “El número es dos” Si no Si N=3 Imprimir “El número es tres” Si no Si N=4 Imprimir “El número es cuatro” Si no Imprimir “El número es cinco” 6. Finalizar el Programa
Laboratorio de Mecánica Computacional I
Tema: Estructuras Secuenciales y Selectivas
Página: 10/18
LAB N° 3
JCC CCO HZG
Ejercicio 07: Elaborar el algoritmo, diagrama de flujo y pseudocódigo que permita visualizar un menú como el que se muestra a continuación 1.
Opción 1 (Eligio la opción 1)
2.
Opción 2 (Eligio la opción 2)
3.
Opción 3 (Eligio la opción 3)
4.
Opción 4 (Eligio Salir)
PSEUDOCODIGO 1. Inicio del Programa 2. Declarar Variables: N (Numero) 3. Imprimir "Digite: 1 - Para elegir la opción 1 2 - Para elegir la opción 2 3 - Para elegir la opción 3 4 - Para elegir la opción 4" 4. Leer N 5. Si N = 1 Imprimir “Eligio la opción 1” Si no Si N=2 Imprimir “Eligio la opción 2” Si no Si N=3 Imprimir “Eligio la opción 3” Si no Imprimir “Eligio salir” 6. Finalizar el Programa
Laboratorio de Mecánica Computacional I
Tema: Estructuras Secuenciales y Selectivas
Página: 11/18
LAB N° 3
JCC CCO HZG
Ejercicio 08: Elaborar el algoritmo, diagrama de flujo y pseudocódigo para ingresar una dato como temperatura, y evaluar el dato, si oscila entre 0- 15°, debe imprimir “clima frio”, si oscila entre 15,1 -20° “clima templado”, si oscila entre 20,1- 28° “buen clima” y si es mayor a 28.1° enviar el mensaje “uff qué calor!!!”.
1. Inicio del Programa 2. Declarar Variables: T (Temperatura) 3. Imprimir “Ingrese la Temperatura” 4. Leer T 5. Si T>=0 Si T<=15 Imprimir “Clima Frio” Si no Si T<=20 Imprimir “Clima Templado” Si no Si T<=28 Imprimir “Buen Clima” Si no Imprimir “Uff que calor!!!” Si no 6. Finalizar el Programa
Laboratorio de Mecánica Computacional I
Tema: Estructuras Secuenciales y Selectivas
Página: 12/18
LAB N° 3
JCC CCO HZG
Ejercicio 09: Elaborar el algoritmo, diagrama de flujo y pseudocódigo de un programa que permita visualizar un menú como el que se muestra a continuación a. b. c. d.
Ingresar tres números y ordenarlos ascendentemente Ingresar tres números y ordenarlos descendentemente Salir del programa Cualquier otra opción envíe el siguiente mensaje “Error, caso no implementado”.
1. Inicio del Programa 2. Declarar Variables: N (Numero) 3. Imprimir "Escriba 1 para ordenar ascendentemente 3 números Escriba 2 para ordenar descendentemente 3 números Escriba 3 para salir del programa" 4. Leer N 5. Si N = 1 Imprimir "Programa para ordenar 3 números ascendentemente" Si no Si N=2 Imprimir "Programa para ordenar 3 números descendentemente" Si no Si N=3 Si no Imprimir "Error, caso no implementado " 6. Finalizar el Programa
Laboratorio de Mecánica Computacional I
Tema: Estructuras Secuenciales y Selectivas
V.
Página: 13/18
LAB N° 3
JCC CCO HZG
CUESTIONARIO FINAL 1.
Diseñar un algoritmo y representarlo en forma gráfica y pseudocódigo de un programa que permita ingresar 3 números por teclado y ordenarlos ascendentemente.
1. Inicio del Programa 2. Declarar Variables: N1 (Numero 1), N2 (Numero 2), N3 (Numero 3) 3. Imprimir “Ingrese los números a ordenar ” 4. Leer N1, N2, N3 5. Si N1>N2 Si N2>N3 Imprimir "Los números ordenados son: ", N3, N2, N1 Si no Si N1>N3 Imprimir "Los números ordenados son: ", N2, N3 , N1 Si no Imprimir "Los números ordenados son: ", N2, N1, N3 Si no Si N1>N3 Imprimir "Los números ordenados son: ", N3, N1, N2 Si no Si N2>N3 Imprimir "Los números ordenados son: ", N1, N3 , N2 Si no Imprimir "Los números ordenados son: ", N1, N2, N3 6. Finalizar el Programa
Laboratorio de Mecánica Computacional I
Tema: Estructuras Secuenciales y Selectivas
2.
Página: 14/18
LAB N° 3
JCC CCO HZG
Modifique el algoritmo del programa anterior para ordenar los números descendentemente, realice el diagrama de flujo y pseudocódigo correspondiente.
1. Inicio del Programa 2. Declarar Variables: N1 (Numero 1), N2 (Numero 2), N3 (Numero 3) 3. Imprimir “Ingrese los números a ordenar ” 4. Leer N1, N2, N3 5. Si N1>N2 Si N2>N3 Imprimir "Los números ordenados son: ", N1, N2, N3 Si no Si N1>N3 Imprimir "Los números ordenados son: ", N1, N3, N2 Si no Imprimir "Los números ordenados son: ", N3, N1, N2 Si no Si N1>N3 Imprimir "Los números ordenados son: ", N2, N1, N3 Si no Si N2>N3 Imprimir "Los números ordenados son: ", N2, N3 , N1 Si no Imprimir "Los números ordenados son: ", N3, N2, N1 6. Finalizar el Programa
Laboratorio de Mecánica Computacional I
Tema: Estructuras Secuenciales y Selectivas
3.
Página: 15/18
LAB N° 3
Diseñe un programa de selección múltiple de tal manera que: a. Si la opción ingresada es 1, ordene tres números ingresados por teclado en forma ascendente. b. Si la opción ingresada es 2, ordene tres números ingresados por teclado en forma descendente. c. Si la opción ingresa es 3, salga del programa. d. Cualquier otra opción envíen el siguiente mensaje “Error, caso no implementado”.
1. Inicio del Programa 2. Declarar Variables: A (Numero de opción), N1 (Numero 1), N2 (Numero 2), N3 (Numero 3) 3. Imprimir "Escriba 1 para ordenar ascendentemente 3 números Escriba 2 para ordenar descendentemente 3 números Escriba 3 para salir del programa" 4. Leer A 5. Si N = 1 Imprimir “Ingrese los números a ordenar” Leer N1, N2, N3 Si N1>N2 Si N2>N3 Imprimir "Los números ordenados son: ", N3, N2, N1 Si no Si N1>N3 Imprimir "Los números ordenados son: ", N2, N3, N1 Si no Imprimir "Los números ordenados son: ", N2, N1, N3 Si no Si N1>N3 Imprimir "Los números ordenados son: ", N3, N1, N2 Si no Si N2>N3
JCC CCO HZG
Laboratorio de Mecánica Computacional I
Tema: Estructuras Secuenciales y Selectivas Imprimir "Los números ordenados son: ", N1, N3, N2 Si no Imprimir "Los números ordenados son: ", N1, N2, N3 Si no Si N=2 Imprimir “Ingrese los números a ordenar” Leer N1, N2, N3 Si N1>N2 Si N2>N3 Imprimir "Los números ordenados son: ", N1, N2, N3 Si no Si N1>N3 Imprimir "Los números ordenados son: ", N1, N3, N2 Si no Imprimir "Los números ordenados son: ", N3, N1, N2 Si no Si N1>N3 Imprimir "Los números ordenados son: ", N2, N1, N3 Si no Si N2>N3 Imprimir "Los números ordenados son: ", N2, N3, N1 Si no Imprimir "Los números ordenados son: ", N3, N2, N1 Si no Si N=3 Si no Imprimir "Error, caso no implementado” 6. Finalizar el P rograma
Página: 16/18
LAB N° 3
JCC CCO HZG
Laboratorio de Mecánica Computacional I
Tema: Estructuras Secuenciales y Selectivas
Página: 17/18
LAB N° 3
JCC CCO HZG
Laboratorio de Mecánica Computacional I
Tema: Estructuras Secuenciales y Selectivas VI.
Página: 18/18
LAB N° 3
JCC CCO HZG
OBSERVACIONES Y CONCLUSIONES Emita al menos tres conclusiones en torno al trabajo realizado
1. 2. 3.
Los algoritmos nos permiten realizar operaci ones muy complejas, como operaciones matemáticas o tomas de decisión. EL comando if de toma de decisiones nos permite r ealizar múltiples operaciones en un mismo progra ma Mientras más operaciones realice un programa, su construcción se vuelve mas compleja.
Haga sus observaciones en torno al trabajo realizado (si es que las tuviera).
____________________________________________________________________________________________
____________________________________________________________________________________________
____________________________________________________________________________________________