Sie sind auf Seite 1von 4

Planteamiento de la Problemática:

Se desea determinar cuántos meses, semanas, días y horas ha vivido una persona. Para lo cual se debe
realizar lo siguiente:

 Pedir los datos personales del usuario.


o Nombre
o Edad
o Año de nacimiento
o Mes de nacimiento
o Día de nacimiento
 Calcular los meses, semanas, días y horas que ha vivido la persona
 Presentar los datos personales
 Presentar los resultados obtenidos de los cálculos realizados. Por ejemplo:

“Juan Castro ha vivido 400 meses, 28 días y 5 horas.”

En base al planteamiento de la problemática, el estudiante debe realizar las siguientes tareas:

1. Análisis del problema, encontrar las: entradas, procesos y salidas (falta completar las demás
variables usted debe hacer completo)

Entrada Proceso Salida

     

2. Listado de variables que se usarán en el algoritmo. En este punto se debe realizar la siguiente tabla
con las variables definidas:

Nombre de la variable Descripción Tipo de dato y dominio


Anio_nac Almacena el valor de año de
nacimiento Entero
Mes_nac Almacena el mes de nacimiento i[3] [1..100]
Dia_nac Almacena el día de nacimiento

….

3. Listado de expresiones que usaría para realizar los cálculos requeridos en el algoritmo.

(falta completar usted debe hacer completo)

Cálculo Expresión
Cálculo de día act y hora act S (hora_act < hora_nac) Entonces
dia_act = dia_act - 1
hora_act = hora_act + 24
4. Desarrollar un algoritmo

Algoritmo /  

…..
Proc: Cálculo edad en meses, semanas, dÃas y horas
// Declaración de variables
(nombre,x(100)[{A-Z},{a-z},{BS}])
(anio_nac,i[1900-N])
(mes_nac,b[1-12])
(dia_nac,b[1-31])
(hora_nac,d[0-24])
(anio_act,i[1900-N])
(mes_act,b[1-12])
(dia_act,b[1-31])
(hora_act,d[0-24])
(edad_anios,b[0-N])
(edad_meses,b[0-N])
(edad_dias,b[0-31])
(edad_semanas,b[0-5])
(edad_horas,d[0-24])

//Entrada de datos
Escriba "Ingrese su nombre: "
Lea nombre
Escriba "Ingrese Año de Nacimiento: "
Lea anio_nac
Escriba "Ingrese Mes de Nacimiento: "
Lea mes_nac
Escriba "Ingrese Dia de Nacimiento: "
Lea dia_nac
Escriba "Ingrese Hora de Nacimiento: "
Lea hora_nac
Escriba "Ingrese Año Actual: "
Lea anio_act
Escriba "Ingrese Mes Actual: "
Lea mes_act
Escriba "Ingrese Dia Actual: "
Lea dia_act
Escriba "Ingrese Hora Actual: "
Lea hora_act

// VALIDAR QUE LOS COMPONENTES DE LA FECHA ACTUAL SEAN MAYORES


// A LOS DE LA FECHA DE NACIMIENTO PARA EVITAR DIFERENCIAS
NEGATIVAS
// Validación de la hora
Si hora_act < hora_nac Entonces
dia_act ← dia_act - 1
hora_act ← hora_act + 24
F.Si
//Validación del dÃa
Si dia_act < dia_nac Entonces
mes_act ← mes_act - 1
dia_act ← dia_act + 30 // En este caso se asumen
meses de 30 dÃas
F.Si
//Validación del mes
Si mes_act < mes_nac Entonces
anio_act ← anio_act - 1
mes_act ← mes_act + 12
F.Si
//Validación del año y cálculo de la edad
Si anio_act < anio_nac Entonces
Escriba "Error, la fecha de nacimiento NO puede ser mayor a la
fecha actual"
Sino
//Cálculo de la edad en años, meses, dÃas y horas
edad_anios ← anio_act - anio_nac
edad_meses ← mes_act - mes_nac
edad_dias ← dia_act - dia_nac
edad_horas ← hora_act - hora_nac

//Conversión de edad a meses, semanas, dÃas y horas


edad_meses ← edad_meses + edad_anios * 12
edad_semanas ← edad_dias DIV 7 // Operador DIV
calcula la división entera
edad_dias ← edad_dias MOD 7 // Operador MOD calcula
el residuo de la división entera

//Presentación del resultado en pantalla


Escriba nombre , " ha vivido " , edad_meses , " meses, " ,
edad_semanas , " semanas, " , edad_dias , " dÃas y " , edad_horas , "
horas."
F.Si
Fin_proc

4.1. Miniespecificación

1 Inicio
2 Anio_nac, mes_nac.dia_nac, (i[0-100])
3 Anio_act, mes_act.dia_act, (i[0-100])
4 …
5 …
6 …
7 …
… ..

1.1. Diagrama de flujo para resolver el problema.

Adjuntar el archivo de algoritmo realizado en Raptor, Pseint o UML. Aquí la gráfica y el archivo
en una carpeta
2. Prueba de escritorio que verifique la solución al problema dado.

La prueba de escritorio la genera Raptor, Pseint o UML o si desean hacer manualmente la salida de
escritorio

Das könnte Ihnen auch gefallen