Ejercicio ejemplo resuelto con Según - Hacer. Switch o Select Case en pseudocódigo. (CU00147A)

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.

Bajar archivo...
ArchivoInformación adicional:Tamaño de archivoDescargas
Descargar este archivo (CU00147A Ejercicio ejemplo instruccion Segun Caso Hacer switch pseudocodigo.pdf)CU00147A Ejercicio ejemplo instruccion Segun Caso Hacer switch pseudocodigo.pdfFormato pdf144 Kb3419

¿Puedo yo aprender?

Seas o no del área informática, si quieres aprender a programar te ofrecemos una solución guiada y personalizada: realizar un curso tutorizado on-line. Con este tipo de curso, podrás aprender a programar de forma ágil y amena.

Acceder a detalles y precios de los cursos tutorizados on-line

RANKING APR2+

Ranking de lenguajes y entornos de programación aprenderaprogramar.com
 

JULIO - AGOSTO 2014

1. Java / J2EE
2. Entornos Oracle
3. Entornos SQL Server
4. NET, C#
5. JavaScript, jQuery
6. CSS, HTML
7. Php, MySql
8. C++, C


Acceder a detalles sobre el ranking de programación aprenderaprogramar.com

Donación

Si crees que merece la pena apoyar económicamente este sitio web puedes realizar una donación pulsando aquí.

 

MASTERCARD MASTERCARD SEGURO VISA VISA SEGURO

BANCA CÍVICA

Encuesta lenguajes

¿Sobre qué lenguaje te gustaría que trataran los próximos cursos de aprenderaprogramar.com?

FOROS APR2+

Pregunta, responde, consulta, lee, intercambia...

Participa!!! Entra en los foros aprenderaprogramar.com.

Información (c)

aprenderaprogramar.com no está afiliado ni avalado por Open Source Matters o el proyecto Joomla!. El nombre Joomla (R) se usa bajo una licencia limitada de Open Source Matters, titular de la marca en todo el mundo.

aprenderaprogramar.com is not affiliated with or endorsed to Open Source Matters or the Joomla! Project.The Joomla (R) name is used under a limited license from Open Source Matters the worldwide trademark holder.