Resumen: Entrega nº 46 del curso Bases de la programación Nivel I.
Codificación aprenderaprogramar.com: CU00147A

 

 

 

EJERCICIO

Crear el pseudocódigo y diagrama de flujo para un programa que pida al usuario un número de día y un número de mes, evalúe si la entrada es correcta y en caso de que así sea calcule el día del año que es, considerando un año no bisiesto.

 
SOLUCIÓN

 

1. Objetivos.

Determinar qué día del año es un día definido por el número de día y número de mes.

 

2. Condicionantes.

Año bisiesto o no bisiesto. Conteo a partir del cero (¿Existe día cero?) o del uno. Viabilidad del dato de partida (p. ej. un número de mes igual a 15 no es viable).

 

3. Datos de partida.

Número del día y número del mes.

 

4. Método o estrategia de resolución.

Un problema puede tener distintas vías para ser resuelto. Vamos a enfocarlo hacia una resolución usando la instrucción Según (Caso) Hacer.

En primer lugar y como variantes globales contemplaremos dos posibilidades: datos correctos o datos incorrectos. Se considerarán datos correctos aquellos en los que el número de día esté comprendido entre 1 y 31 y el número de mes entre 1 y 12. Se podría afinar más restringiendo mes a mes las posibilidades (p. ej. en el mes de febrero no admitir un número de día que fuera 30, ya que ese valor es inviable), cosa que no haremos para simplificar el ejercicio.

Por otro lado, para el cálculo del día del año se considerarán 12 casos posibles, que son los doce meses del año. Para cada mes, se calculará el día del año como el día del mes correspondiente más el total de días acumulados correspondientes a los meses anteriores. Por ejemplo: el día del año que es el día 15 del mes 2 (15 de febrero) se calcula como 15 + 31 siendo 31 el acumulado de días de los meses anteriores.

 

5. Resultados a obtener.

Día del año expresado como un valor comprendido entre 1 y 365.

 

 

Pseudocódigo:

1. Inicio [Cálculo del día del año ejemplo aprenderaprogramar.com]

2. Mostrar “Introduzca el número del día y número del mes”

3. Pedir NDia, Nmes

4. Si Ndia>= 1 y Ndia <= 31 y Nmes >= 1 y Nmes <= 12 Entonces

Según Nmes Hacer

Caso, = 1

DDA = NDia [DDA es día del año]

Caso, = 2

DDA = NDia + 31

Caso, = 3

DDA = NDia + 59

Caso, = 4

DDA = NDia + 90

Caso, = 5

DDA = NDia + 120

Caso, = 6

DDA = NDia + 151

Caso, = 7

DDA = NDia + 181

Caso, = 8

DDA = NDia + 212

Caso, = 9

DDA = NDia + 243

Caso, = 10

DDA = NDia + 273

Caso, = 11

DDA = NDia + 304

Caso, = 12

DDA = NDia + 334

FinSegún

Mostrar “El”, NDia, “del”, Nmes, “es el día”, DDA, “del año”

SiNo

Mostrar “Datos proporcionados no válidos”

FinSi

5. Fin

 

 

 

 

diagrama de flujo

 

 

 

  

 

 

Para acceder a la información general sobre este curso y al listado completo de entregas pulsa en este link:  Ver curso completo.

Para  hacer un comentario o consulta utiliza los foros aprenderaprogramar.com, abiertos a cualquier persona independientemente de su nivel de conocimiento.

 

Descargar archivo: