Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Disee una subrutina que permita efectuar conversiones de temperatura en las escalas de
Kelvin, Grados Centgrados y Fahrehneit. La subrutina debe recibir la opcin de conversin
deseada (Opcin 1: C a F, Opcin 2: F a C, Opcin 3: C a K,) y el valor a convertir.
Las relaciones para la conversin son:
(
) (
Valor
)
Conversin
Validar
Temp1
Temp2
Lim_inf
Opcion
Lim_sup
//PROGRAMA PRINCIPAL
Inicio
Real Temperatura1, Temperatura2
Entero Opc
Mostrar (Ingrese el valor de la Temperatura en la unidad deseada)
Leer (Temperatura1)
Mostrar (Ingrese el tipo de conversin que desea Realizar)
Mostrar (1) Grados Centgrados a Fahrehneit 2) Grados Fahrehneit a Centgrados)
Mostrar (3) Grados Centgrados a Kelvin 4) Kelvin a Grados Centgrados)
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.
Disee un algoritmo que permita ingresar los valores de dos arreglos unidimensionales y
llene un tercer arreglo con la suma, resta, multiplicacin o divisin de los dos primeros segn
una opcin que seleccionada por el usuario.
A[X]
B[X]
Operacion
S
+
R
-
M
*
D
/
13
12
10
C[X]
Cargar
Arr[ ]
Arr[ ]
Calcular
Arr1[ ]
Arr2[ ]
Arr3[ ]
n
Operacion
Entero i
Repetir desde i = 1 hasta i<=n
Mostrar (Ingrese el valor del elemento , i)
Leer (Arr[i])
Fin_Repetir_Desde
Fin
// Subrutina Muestra
Procedimiento Muestra (Entero Arr[ ], Entero n)
Inicio
Entero i
Repetir desde i = 1 hasta i<=n
Mostrar (Elemento, i, =, Arr[i])
Fin_Repetir_Desde
Fin
// Subrutina Calcular
Procedimiento Calcular (Entero Arr1[ ], Entero Arr2[ ], Entero Arr3[ ], Entero n,
Caracter Operacion)
Inicio
Entero i
Repetir desde i=1 hasta i<=n
En caso de (Operacin)
Caso S:
Arr3[i] = Arr1[i] + Arr2[i]
Caso R:
Arr3[i] = Arr1[i] - Arr2[i]
Caso M:
Arr3[i] = Arr1[i] * Arr2[i]
Caso D:
Si (Arr2[i] != 0)
Arr3[i] = Arr1[i] + Arr2[i]
Sino
Arr3[i] = 0
Fin_si
Fin_en_Caso_De
Fin_Repetir_Desde
Fin
//------------------ Programa Principal --------------------//
Inicio
Entero A[20], B[20], C[20]
Caracter Opcion
Llamar a: Cargar (A, 20)
Llamar a: Cargar (B, 20)
Mostrar (Seleccione que operacin desea hacer con los arreglos: )
Mostrar (S) Suma R) Resta M) Multiplicacin D) Divisin)
Leer (Opcion)
Llamar a: Calcular(A, B, C, 20, Opcion)
3
Promedio
Arr[ ]
Arr[ ]
Prom
Algoritmo Promedio
// Subrutina Cargar
Procedimiento Cargar (Entero Arr[ ], Entero n)
Inicio
Entero i
Repetir desde i = 1 hasta i<=n
Mostrar (Ingrese el valor del elemento , i)
Leer (Arr[i])
Fin_Repetir_Desde
Fin
// Funcin Promedio
Real Promedio (Entero Arr[ ], Entero n)
Inicio
Entero i
Real Prom = 0
Repetir desde i = 1 hasta i<=n
Prom += Arr[i]
Fin_Repetir_Desde
Devolver (Prom/n)
Fin
//------------------ Programa Principal --------------------//
Inicio
Real A[15], Prom
Llamar a: Cargar (A, 15)
Mostrar (El Promedio es , Promedio (A,15))
Fin
4
Ejercicio 04.
Disee un algoritmo que permita ingresar los valores de un arreglo unidimensional y llene un
segundo arreglo con los elementos del primero pero de forma invertida.
Arr1[N]
Arr2[N]
Nombre [25]
Cedula
Nombre [25]
L
Datos_IMC
Estatura
Peso
Cedula
Encuesta [300]
Estatura
Peso
IMC
IMC
Eval
Eval
1
2
300
Registro Datos_IMC
Entero
Cedula
Real
Peso, Estatura, IMC
Caracter
Nombre[25], Eval[10]
Fin_Registro
Entero N=300 // En C++ #define N 300
// Procedimiento Validar
Procedimiento Validar (Entero &valor, Entero lim_inf, Entero lim_sup)
Inicio
Repetir Mientras (valor<lim_inf || valor>lim_sup)
Mostrar (Ha seleccionado una opcin incorrecta, reintrodzcala:)
Leer (valor)
Fin_Repetir_Mientras
Fin
// Funcin Menu
Entero Menu ()
Inicio
Entero opc
Mostrar (Men de Opciones)
Mostrar (1) Ingresar datos de Encuestado)
Mostrar (2) Visualizar datos de la Encuesta)
Mostrar (3) Ver Promedio de IMCs)
Mostrar (4) Buscar los datos de un encuestado)
Mostrar (5) Salir del Sistema)
Mostrar (Seleccione una opcin:)
Leer (opc)
Llamar a: Validar (opc, 1, 5)
Devolver (opc)
Fin
// Procedimiento Ingreso Fila por Fila
Procedimiento Ing_FxF (Datos_IMC Reg[ ], Entero &L)
Inicio
Caracter Resp=s
Repetir Mientras (Resp==s && L<N)
L=L+1
Mostar (Ingrese los datos del Encuestado: )
Mostar (Nombre: )
Leer (Reg[L].Nombre)
Mostrar (Cdula: )
Leer (Reg[L].Cedula)
Mostrar (Estatura: )
Leer (Reg[L].Estatura)
Mostrar (Masa Corporal: )
Leer (Reg[L].Peso)
7
IMC
Eval)
, Reg[i].Estatura)
)
Devolver (0)
Fin_Si
Fin
// Subrutina de Bsqueda
Entero Bsqueda (Datos_IMC Reg[ ], Entero n, Entero Ced_B)
Inicio
Entero i
Repetir desde i=1 hasta i<=n
Si (Reg[i].Cedula == Ced_B)
Devolver (i)
Fin_si
Fin_Repetir_Desde
Devolver (0)
Fin
// Programa Principal
Inicio
//Declaracin del Arreglo de Registro
Datos_IMC Encuesta[N]
//Declaracin de las otras Variables
Entero opc=1, Cedula_B, pos, L=0
// Ciclo para repetir el Programa
Repetir Mientras (opc>=1 && opc<5)
opc=menu() // Llamada a la funcin men
En Caso de (opc)
Caso 1:
Llamar a: Ing_FxF (Encuesta, L)
Caso 2:
Llamar a: Mostrar (Encuesta, L)
Caso 3:
Mostrar (El promedio del IMC de los encuestados es, Promedio (Encuesta,L))
Caso 4:
Mostrar (Indique el nmero de cdula a buscar: )
Leer (Cedula_B)
pos = Busqueda (Encuesta, L, Cedula_B)
Si (pos > 0)
Mostrar (Nombre
Cdula
Estatura
Peso
IMC
Eval)
Mostrar (Encuesta[pos].Nombre,
, Encuesta[pos].Cedula,
,
Encuesta[pos].Estatura)
Mostrar ( , Encuesta[pos].Peso, , Encuesta[pos].IMC,
)
9
Mostrar (Encuesta[pos].Eval, )
Sino
Mostrar(Cdula Inexistente)
Fin_Si
Caso 5:
Mostrar (Fin del Programa)
Fin_En_Caso_De
Fin_Repetir_Mientras
Fin
Ejercicio 06.
El departamento de bienestar y salud de una empresa est organizando una jornada de
prdida de peso para sus empleados, por lo que se necesita un algoritmo que permita
registrar los datos de los 30 empleados participantes junto con su peso a lo largo de las 10
semanas que dur la jornada y adems calcular prdida de peso total que alcanz el
empleado. Se utilizar una estructura como la que se muestra a continuacin:
Jornada[30]
1
2
29
30
Nombre
Cedula
Edad
Luis Perez
15768883
36
Peso[10]
4
5
6
7
95
93,5
90
91
89,5
88
86,5
10
86
85
84
Perdido
11
Registro Datos_Jornada
Caracter Nombre[25]
Entero Cedula, Edad
Real Peso[10], Perdido
Fin_Registro
// Procedimiento Validar
Procedimiento Validar (Entero &valor, Entero lim_inf, Entero lim_sup)
Inicio
Repetir Mientras (valor<lim_inf || valor>lim_sup)
Mostrar (Ha seleccionado una opcin incorrecta, reintrodzcala:)
Leer (valor)
Fin_Repetir_Mientras
Fin
// Funcin Menu
Entero Menu ()
Inicio
Entero opc
Mostrar (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 opcin:)
Leer (opc)
Llamar a: Validar (opc, 1, 4)
Devolver (opc)
Fin
// Procedimiento Ingreso
Procedimiento Ingreso (Datos_Jornada Reg[ ], Entero n)
Inicio
Entero i, j
Repetir desde i=1 hasta i<=n
Mostar (Ingrese los datos del Encuestado: )
Mostar (Nombre, Cedula y Edad: )
Leer (Reg[i].Nombre, Reg[i].Cedula, Reg[i].Edad)
Repetir desde j=1 hasta j<=10
Mostrar (Peso semana , j)
Leer (Reg[i].Peso[j])
Fin_Repetir_Desde
Reg[i].Perdido = Reg[i].Peso[1] - Reg[i].Peso[10]
Fin_Repetir_Desde
Fin
// Subrutina Mostrar
Procedimiento Mostrar (Datos_Jornada Reg[ ], Entero n)
Inicio
11
Entero i, j
Mostrar (Resultados Jornada de Bienestar)
Mostrar (Nombre
Cdula
Edad
Peso por Semanas
Total Perdido)
Repetir Desde i=1 hasta i<=n
Mostar (Reg[i].Nombre,
, Reg[i].Cedula,
, Reg[i].Edad, )
Repetir Desde j=1 hasta j<=10
Mostrar (Reg[i].Peso[j], )
Fin_Repetir_Desde
Mostrar (Reg[i].Perdido, )
Fin_Repetir_Desde
Fin
// Subrutina Ganador
Entero Ganador (Datos_Jornada Reg[ ], Entero n)
Inicio
Entero i, pos = 1
Real Mayor = Reg[1].Perdido // Aplicando algoritmo Mayor asumimos que el primero
// es el mayor
Repetir desde i=2 hasta i<=n
Si (Reg[i].Perdido > Mayor)
Mayor = Reg[i].Perdido
pos = i
Fin_Si
Fin_Repetir_Desde
Devolver (pos)
Fin
//---------------- Programa Principal -----------------------//
Inicio
//Declaracin del Arreglo de Registro
Datos_Jornada
Jornada[30]
//Declaracin de las otras Variables
Entero opc=1, pos
// Ciclo para repetir el Programa
Repetir Mientras (opc>=1 && opc<4)
opc=menu() // Llamada a la funcin men
En Caso de (opc)
Caso 1:
Llamar a: Ingreso (Jornada, 30)
Caso 2:
Llamar a: Mostrar (Jornada, 30)
Caso 3:
12
Juan Lopez
14000000
5
P
300
Luisa Castro
18000000
10
A
A: Ausente
P: Presente
Usted debe asumir que los datos de los invitados ya se encuentran cargados en
sistema y debe implementar el cdigo a travs de programacin procedimental utilizando las
siguientes subrutinas:
a) Men: Despliega el men de opciones con la opcin seleccionada por el usuario
previamente validada.
b) Ya_llego: esta subrutina permitir cambiar el estado del invitado a presente (P)
buscndolo por su nmero de cdula.
c) Lista_Presentes: Mostrar el listado de invitados que se han hecho presentes en el
evento.
d) Buscar: Buscar un invitado por su cdula de identidad y retornar el nmero de
mesa que ste posea asignado, en caso de que la cdula no se consiga debe retornar
un cero.
Algoritmo Boda
// Definicin de la estructura del registro
Registro Datos_Boda
Caracter Nombre[25], Estado
13
Mostar (Reg[i].Nombre,
Fin_Si
Fin_Repetir_Desde
, Reg[i].Cedula,
, Reg[i].Mesa,
Fin
// Subrutina de Bsqueda
Entero Bsqueda (Datos_Boda Reg[ ], Entero n, Entero Ced_B)
Inicio
Entero i
Repetir desde i=1 hasta i<=n
Si (Reg[i].Cedula == Ced_B)
Devolver (Reg[i].Mesa)
Fin_si
Fin_Repetir_Desde
Devolver (0)
Fin
//---------------- Programa Principal -----------------------//
Inicio
//Declaracin del Arreglo de Registro
Datos_Boda
Invitados[200]
//Declaracin de las otras Variables
Entero opc=1, Mesa, CedulaB
// Ciclo para repetir el Programa
Repetir Mientras (opc>=1 && opc<4)
opc=menu() // Llamada a la funcin men
En Caso de (opc)
Caso 1:
Si( Ya_llego (Invitados, 200) == 1 ) // Uso de valor retornado como condicin
Mostrar (Estado Cambiado Correctamente)
Sino
Mostrar (No se pudo actualizar estado, intente nuevamente)
Fin_Si
Caso 2:
Llamar a: Mostrar_Presentes (Invitados, 200)
Caso 3:
Mostrar( Indique la cdula del invitado a buscar: )
Leer (CedulaB)
Mesa = Busqueda (Invitados, 200, CedulaB)
Si (Mesa>0)
15
16