ejercicios resueltos unidad 2 - 2014-u (1).pdf

Upload: annibel-morillo

Post on 05-Jul-2018

226 views

Category:

Documents


0 download

TRANSCRIPT

  • 8/15/2019 Ejercicios Resueltos Unidad 2 - 2014-U (1).pdf

    1/16

    1

    Ejercicio 01.Diseñe una subrutina que permita efectuar conversiones de temperatura en las escalas deKelvin, Grados Centígrados y Fahrehneit. La subrutina debe recibir la opción de conversióndeseada (Opción 1: º C a º F, Opción 2: º F a º C, Opción 3: º C a K,…) y el valor a convertir.

    Las relaciones para la conversión son:

    ( ) ( ) ( )

    Validar Valor

    Lim_inf

    Lim_sup

    Conversión

    Temp1

    OpcionTemp2

    Algoritmo Conversión de Temperatura // Subru tina Val idar

    Procedimiento Validar (Entero &Valor, Entero Lim_inf, Entero Lim_Sup)Inicio

    Repetir Mientras (ValorLim_sup)Mostrar (“Valor fuera de rango, reintroduzca”) Leer (Valor)

    F_R_MFin

    // Subru tina Conver s iónReal Conversión (Real Temp1, Entero Opcion)Inicio

    Real Temp2

    En caso de (Opcion)Caso 1:

    Temp2 = (9/5)*Temp1 + 32 // Grados Centígrados a FahrehneitCaso 2:

    Temp2 = (5/9)*(Temp1 - 32) // Grados Fahrehneit a CentígradosCaso 3:

    Temp2 = Temp1 + 273 // Grados Centígrados a KelvinCaso 4:

    Temp2 = Temp1 - 273 // Kelvin a Grados Centígrados

    Caso 5:Temp2 = ((5/9)*(Temp1 - 32)) + 273 // Grados Fahrehneit a Kelvin

    Caso 6:Temp2 = (9/5)*(Temp1 - 273) + 32 // Kelvin a Grados Fahrehneit

    Fin_En_Caso_De

    Devolver (Temp2)Fin

  • 8/15/2019 Ejercicios Resueltos Unidad 2 - 2014-U (1).pdf

    2/16

    2

    //PROGRAMA PRINCIPALInicio

    Real Temperatura1, Temperatura2Entero Opc

    Mostrar (“Ingrese el valor de la Temperatura en la unidad deseada ”)

    Leer (Temperatura1)Mostrar (“Ingrese el tipo de conversión que desea Realizar”) Mostrar (“1) Grados Centígrados a Fahrehneit 2) Grados Fahrehneit a Centígrados”) Mostrar (“3) Grados Centígrados a Kelvin 4) Kelvin a Grados Centígrados”) Mostrar (“5) Grados Fahrehneit a Kelvin 6) Kelvin a Grados Fahrehneit ”) Leer (Opc)Llamar a: Validar (Opc, 1, 6)Temperatura2 = Conversion (Temperatura1, Opc)Mostrar (“El equivalente es ”, Temperatura2)

    Fin

    Ejercicio 02.Diseñe un algoritmo que permita ingresar los valores de dos arreglos unidimensionales yllene un tercer arreglo con la suma, resta, multiplicación o división de los dos primeros segúnuna opción que seleccionada por el usuario.

    A[X] 1 3 5 6 8 2 4

    B[X] 4 2 8 6 2 3 4

    OperacionS R M D+ - * /

    C[X] 5 5 13 12 10 4 8

    El algoritmo debe implementarse a través de tres subrutinas:1) Cargar: permite ingresar los valores de un arreglo unidimensional de N celdas.2) Calcular: debe recibir el conjunto de arreglos y su dimensión, así como el parámetro

    opción que definirá la operación (S, R, M, D) que se realizará entre los dos primerosarreglos para llenar el tercero.

    3) Muestra: permite imprimir los valores del arreglo resultante de N celdas.

    Cargar

    Arr[ ]

    n

    Muestra

    Arr[ ]

    n

    Calcular Arr1[ ]

    n

    Arr2[ ]

    Arr3[ ]

    Operacion

    Algoritmo Operaciones con Arreglos// Subrutina CargarProcedimiento Cargar (Entero Arr[ ], Entero n)Inicio

  • 8/15/2019 Ejercicios Resueltos Unidad 2 - 2014-U (1).pdf

    3/16

    3

    Entero iRepetir desde i = 1 hasta i

  • 8/15/2019 Ejercicios Resueltos Unidad 2 - 2014-U (1).pdf

    4/16

    4

    Mostrar (“El arreglo resultante es”) Llamar a: Muestra (C, 15) Fin

    Ejercicio 03.Diseñe un algoritmo que permita ingresar los valores de un arreglo unidimensional y

    posteriormente calcule el promedio de los valores de dicho arreglo. A[X] 1 3 5 6 8 2 4

    El algoritmo debe implementarse a través de dos subrutinas:1) Cargar: permite ingresar los valores de un arreglo unidimensional de N celdas.2) Promedio: debe recibir el arreglo y calcular el promedio de los elementos que este

    contenga.Cargar

    Arr[ ]

    n

    Promedio

    Arr[ ]

    n Prom

    Algoritmo Promedio// Subrutina CargarProcedimiento Cargar (Entero Arr[ ], Entero n)Inicio

    Entero iRepetir desde i = 1 hasta i

  • 8/15/2019 Ejercicios Resueltos Unidad 2 - 2014-U (1).pdf

    5/16

    5

    Ejercicio 04.Diseñe un algoritmo que permita ingresar los valores de un arreglo unidimensional y llene unsegundo arreglo con los elementos del primero pero de forma invertida.

    Arr1[N] 1 3 5 6 8 2 4

    Arr2[N] 4 2 8 6 5 3 1

    El algoritmo debe implementarse a través de tres subrutinas:

    1) Cargar: permite ingresar los valores de un arreglo unidimensional de N celdas.2) Invertir: toma los elementos de un primer arreglo y los carga en orden invertido en un

    segundo arreglo.3) Muestra: permite imprimir los valores del arreglo resultante de N celdas.

    // ---------------- Resolución --------------- //

    // Subrutina CargarProcedimiento Cargar (Entero Arr[ ], Entero n)Inicio

    Entero iRepetir desde i = 1 hasta i

  • 8/15/2019 Ejercicios Resueltos Unidad 2 - 2014-U (1).pdf

    6/16

    6

    Llamar a: Cargar (A, 15)

    Llamar a: Invertir (A, B, 15)

    Mostrar (“El arreglo original es”) Llamar a: Muestra (A, 15)

    Mostrar (“El arreglo invertido es”) Llamar a: Muestra (B, 15)

    Fin

    Ejercicio 05.

    Diseñe un programa que permita guardar los datos de una encuesta que se realizará a 300personas sobre su índice de masa corporal. A los encuestados se les pedirá su nombre,cédula, estatura y peso, para luego calcular su IMC y clasificarlo. El programa debeestructurarse utilizando programación procedimental, debe contar con las siguientessubrutinas:

    1) Ingresar de los datos de la Encuesta: Permite ingresar los datos obtenidos de unencuestado, luego preguntar si se desea ingresar los datos de otra persona o si desearegresar al menú principal.2) Mostrar Datos Ingresados: Se debe visualizar la estructura con toda la informacióncompleta.3) Calcular el Promedio de los IMC: Devolverá el cálculo del promedio de los IMC‟s de losencuestados. 4) Buscar los datos de un encuestado según su cédula.5) Salir del Programa.

    Para calcular el índice de masa corporal seutiliza la fórmula:

    IMC = Peso / Estatura 2

    Clasificación IMCInfrapeso < 18,5018,50 ≤ Normal < 25Sobrepeso ≥ 25,00

    Obeso ≥ 30,00

    Datos_IMCNombre [25] Cedula Estatura Peso IMC Eval

    Encu esta [300]Nombre [25] Cedula Estatura Peso IMC Eval

    L 12…

    300

    Algoritmo Encuesta IMC

    //Definición de la Estructura (Formato) del Registro

  • 8/15/2019 Ejercicios Resueltos Unidad 2 - 2014-U (1).pdf

    7/16

    7

    Registro Datos_IMC Entero CedulaReal Peso, Estatura, IMCCaracter Nombre[25], Eval[10]

    Fin_Registro

    Entero N=300 // En C++ #define N 300// Procedimiento ValidarProcedimiento Validar (Entero &valor, Entero lim_inf, Entero lim_sup)Inicio

    Repetir Mientras (valorlim_sup)Mostrar (“Ha seleccionado una opción incorrecta, reintrodúzcala:”) Leer (valor)

    Fin_Repetir_MientrasFin

    // Función MenuEntero Menu ()InicioEntero opcMostrar (“Menú de Opciones”)

    Mostrar (“1) Ingresar datos de Encuestado”) Mostrar (“2) Visualizar datos de la Encuesta”) Mostrar (“3) Ver Promedio de IMC‟s”) Mostrar (“4) Buscar los datos de un encuestado”) Mostrar (“5) Salir del Sistema”) Mostrar (“Seleccione una opción:”) Leer (opc)Llamar a: Validar (opc, 1, 5)Devolver (opc)

    Fin

    // Procedimiento Ingreso Fila por FilaProcedimiento Ing_FxF (Datos_IMC Reg[ ], Entero &L)InicioCaracter Resp=‟s‟ Repetir Mientras ( Resp==‟s‟ && L

  • 8/15/2019 Ejercicios Resueltos Unidad 2 - 2014-U (1).pdf

    8/16

    8

    Reg[L].IMC = Reg[L].Peso / Reg[L].Estatura^2

    Si (Reg[L].IMC < 18,5)Reg[L].Eval = “Infrapeso”

    Fin_SiSi (Reg[L].IMC >= 18,5 && Reg[L].IMC < 25)

    Reg[L].Eval = “Normal” Fin_SiSi (Reg[L].IMC >= 25 && Reg[L].IMC < 30)

    Reg[L].Eval = “Sobrepeso” Fin_SiSi (Reg[L].IMC >= 30)

    Reg[L].Eval = “Obeso” Fin_Si

    Mostrar (“Desea ingresar los datos de otro encuestado, s: si o n: regresar al menú principal”) Leer (Resp)Fin_Repetir_MientrasFin

    // Subrutina MostrarProcedimiento Mostrar (Datos_IMC Reg[ ], Entero n)InicioEntero iSi (n>0)

    Mostrar (“Encuesta Índice de Masa Corporal”) Mostrar (“Nombre Cédula Estatura Peso IMC Eval”) Repetir Desde i=1 hasta i0)

    Repetir desde i=1 hasta i

  • 8/15/2019 Ejercicios Resueltos Unidad 2 - 2014-U (1).pdf

    9/16

    9

    Devolver (0)Fin_SiFin

    // Subrutina de BúsquedaEntero Búsqueda (Datos_IMC Reg[ ], Entero n, Entero Ced_B)

    InicioEntero iRepetir desde i=1 hasta i=1 && opc 0)Mostrar (“Nombre Cédula Estatura Peso IMC Eval”) Mostrar (Encuesta[ pos ].Nombre, “ ”, Encuesta[pos ].Cedula, “ ”,Encuesta[ pos ].Estatura)Mostrar (“ ”, Encuesta[pos ].Peso, “ ”, Encuesta[pos ].IMC, “ ”)

  • 8/15/2019 Ejercicios Resueltos Unidad 2 - 2014-U (1).pdf

    10/16

    10

    Mostrar (Encuesta[ pos ].Eval, “ ”) Sino

    Mostrar(“Cédula Inexistente”) Fin_Si

    Caso 5:

    Mostrar (“Fin del Programa”) Fin_En_Caso_DeFin_Repetir_MientrasFin

    Ejercicio 06.

    El departamento de bienestar y salud de una empresa está organizando una jornada depérdida de peso para sus empleados, por lo que se necesita un algoritmo que permitaregistrar los datos de los 30 empleados participantes junto con su peso a lo largo de las 10semanas que duró la jornada y además calcular pérdida de peso total que alcanzó elempleado. Se utilizará una estructura como la que se muestra a continuación:

    Jornada[30]

    Nombre Cedula EdadPeso[10]

    Perdido1 2 3 4 5 6 7 8 9 10

    1 Luis Perez 15768883 36 95 93,5 90 91 89,5 88 86,5 86 85 84 112… 2930

    El programa contará con el siguiente menú de opciones:

    1) Ingresar los datos de los participantes.2) Mostrar los resultados obtenidos.3) Determinar el empleado con mayor pérdida en la jornada.4) Salir del Programa.

    El código se estructurará mediante programación procedimental, usted debe desarrollar eimplementar las siguientes subrutinas:

    1) Subrutina Menu: se encargará de desplegar el menú de opciones del programa y retornarla opción seleccionada por el usuario validada (usar la subrutina validación).

    2) Subrutina Ingreso : permitirá el ingreso los datos de todos los empleados participantes(nombre, cedula y edad), sus registros de peso de las 10 semanas y se calculará el pesototal perdido por la persona (perdido).

    3) Subrutina Ganador: determinará quien perdió más peso durante la jornada y retornandola fila del registro en que está registrado.

    Algoritmo Jornada de Salud

    // Definición de la estructura del registro

  • 8/15/2019 Ejercicios Resueltos Unidad 2 - 2014-U (1).pdf

    11/16

    11

    Registro Datos_JornadaCaracter Nombre[25]Entero Cedula, EdadReal Peso[10], Perdido

    Fin_Registro

    // Procedimiento ValidarProcedimiento Validar (Entero &valor, Entero lim_inf, Entero lim_sup)Inicio

    Repetir Mientras (valorlim_sup)Mostrar (“Ha seleccionado una opción incorrecta, reintrodúzcala:”) Leer (valor)

    Fin_Repetir_MientrasFin

    // Función MenuEntero Menu ()InicioEntero opcMostrar (“Menú de Opciones”)

    Mostrar (“1) Ingresar Datos de Participantes”) Mostrar (“2) Mostrar Resultados de Jornada”) Mostrar (“3) Ver Ganador de la Jornada”) Mostrar (“4) Salir del Sistema”) Mostrar (“Seleccione una opción:”) Leer (opc)Llamar a: Validar (opc, 1, 4)Devolver (opc)

    Fin

    // Procedimiento IngresoProcedimiento Ingreso (Datos_Jornada Reg[ ], Entero n)InicioEntero i, j

    Repetir desde i=1 hasta i

  • 8/15/2019 Ejercicios Resueltos Unidad 2 - 2014-U (1).pdf

    12/16

    12

    Entero i, jMostrar (“Resultados Jornada de Bienestar”) Mostrar (“Nombre Cédula Edad Peso por Semanas Total Perdido”) Repetir Desde i=1 hasta i

  • 8/15/2019 Ejercicios Resueltos Unidad 2 - 2014-U (1).pdf

    13/16

    13

    pos = Ganador (Jornada, 30)

    Mostrar (“El ganador de la jornada es: ”,Jornada[pos].Nombre )Mostrar (“con ”,Jornada[pos].Perdido , “Kilos perdidos”)

    Caso 4:

    Mostrar (“Fin del Programa”) Fin_En_Caso_DeFin_Repetir_MientrasFin

    Ejercicio 07.Su mejor amig@ se va a casar, por lo que le pide el favor de desarrollar un programa quepermita automatizar el manejo de los invitados en las distintas mesas, los datos seencuentran almacenados en una estructura como la que se muestra a continuación:

    Invitados [200]Nombre Cedula Mesa Estado

    1 Ivan Montero 21000000 1 A A: Ausente2 Fernanda Gonzalez 10000000 2 P P: Presente

    … Juan Lopez 14000000 5 P300 Luisa Castro 18000000 10 A

    El programa contará con un menú de opciones como el siguiente:

    1) Cambiar Estado de Invitado a Presente.2) Mostrar Lista de Invitados Presentes .3) Ver número de Mesa del Invitado buscándolo por su Número de Cédula.4) Salir del Programa.

    Usted debe asum ir que los datos de los invi tados ya se encu entran cargados ens is tema y debe implementar el código a través de programación procedimental utilizando lassiguientes subrutinas:

    a) Menú: Despliega el menú de opciones con la opción seleccionada por el usuariopreviamente validada.

    b) Ya_llego: esta subrutina permitirá cambiar el estado del invitado a presente (P)buscándolo por su número de cédula.

    c) Lista_Presentes: Mostrará el listado de invitados que se han hecho presentes en elevento.

    d) Buscar : Buscará un invitado por su cédula de identidad y retornará el número demesa que éste posea asignado, en caso de que la cédula no se consiga debe retornarun cero.

    Algoritmo Boda

    // Definición de la estructura del registroRegistro Datos_Boda

    Caracter Nombre[25], Estado

  • 8/15/2019 Ejercicios Resueltos Unidad 2 - 2014-U (1).pdf

    14/16

    14

    Entero Cedula, MesaFin_Registro

    // Procedimiento ValidarProcedimiento Validar (Entero &valor, Entero lim_inf, Entero lim_sup)Inicio

    Repetir Mientras (valorlim_sup)Mostrar (“Ha seleccionado una opción incorrecta, reintrodúzcala:”) Leer (valor)

    Fin_Repetir_MientrasFin// Función MenuEntero Menu ()InicioEntero opcMostrar (“Menú de Opciones”)

    Mostrar (“1) Invitado confirmado en Boda”) Mostrar (“2) Mostrar Invitados Presentes”) Mostrar (“3) Buscar la Mesa del Invitado”) Mostrar (“4) Salir del Sistema”) Mostrar (“Seleccione una opción:”) Leer (opc)Llamar a: Validar (opc, 1, 4)Devolver (opc)

    Fin

    // Subrutina Ya llegoEntero Ya_llegó (Datos_Boda Reg[ ], Entero n)InicioEntero i, Ced_Bus

    Mostrar (“Indique la cédula del invitado que ha llegado: ”) Leer (Ced_Bus)Repetir desde i=1 hasta i

  • 8/15/2019 Ejercicios Resueltos Unidad 2 - 2014-U (1).pdf

    15/16

    15

    Mostar (Reg[ i].Nombre, “ ”, Reg[i].Cedula, “ ”, Reg[i].Mesa, “ ”) Fin_Si

    Fin_Repetir_DesdeFin

    // Subrutina de Búsqueda

    Entero Búsqueda (Datos_Boda Reg[ ], Entero n, Entero Ced_B)InicioEntero i

    Repetir desde i=1 hasta i=1 && opc0)

  • 8/15/2019 Ejercicios Resueltos Unidad 2 - 2014-U (1).pdf

    16/16

    16

    Mostrar (“El invitado tiene asignada la mesa ”, Mesa) Sino

    Mostrar(“No se ha encontrado al invitado, vuelva a buscar…”) Fin_Si

    Caso 4:

    Mostrar (“Fin del Programa”) Fin_En_Caso_DeFin_Repetir_MientrasFin