Está en la página 1de 5

FACULTAD DE INGENIERÍA Y ARQUITECTURA

ESCUELA PROFESIONAL DE INGENIERÍA CIVIL

TALLER DE ALGORÍTMICA Y PROGRAMACIÓN

“TRABAJO FINAL III UNIDAD”

DOCENTE: Ing. William Chávez Espinoza

ALUMNA: Clara Rosario Ochoa Quispe

CÓDIGO: 019101869C

UNIDAD: III

SEMESTRE: 2020-I

CUSCO – PERÚ

2020
UNIVERSIDAD ANDINA DEL CUSCO
FACULTAD DE INGENIERÍA Y ARQUITECTURA – ESCUELA PROFESIONAL DE INGENIERÍA
CIVIL
1. ANÁLISIS

 Variable de Entrada: día, mes, año,(que deseamos


saber a qué día corresponde), diasemana (que
deseamos sabe : ).
 Variable de Proceso: Se comenzará realizando una
depuración en cuanto a la introducción de datos.
Una vez aceptada una fecha como correcta, se
inicializará a 0 la variable totalDia y se acumulan
en ella los días correspondientes a cada uno de los
meses transcurridos, desde enero hasta el mes
anterior al que indica la fecha, ambos inclusive.
Por último le añadiremos los días del mes actual. Si
hacemos grupos de 7 con totalDia, se obtendrá un
cierto número de semanas y un resto. Para
averiguar el día de la semana en que cae la fecha
especificada, bastará con avanzar, a partir del día
de la semana que fue el primero de enero de dicho
año, el número de días que indica el resto. Se ha de
tener en cuenta que, considerando que la semana
comienza en lunes, avanzar desde el domingo
consiste en volver a situarse en el lunes.
 Variable de Salida: Día de la semana de la fecha
que hemos dado: “Lunes”, “Martes”, “Miércoles”,
“Jueves”, “Viernes”, “Sábado”, “Domingo”.

2
UNIVERSIDAD ANDINA DEL CUSCO
FACULTAD DE INGENIERÍA Y ARQUITECTURA – ESCUELA PROFESIONAL DE INGENIERÍA
CIVIL
2. PSEUDOCÓDIGO

Diseño del algoritmoalgoritmo diaFechaActual INICIO


var lógico bisiesto, correcto.
entero dd, mm, aaaa, totalDia, contadorDia.
carácter diaSemana.

// Obtener del usuario la fecha correcta.


hacer Inicio bisiesto = falso. correcto = verdadero.

escribir(“Dame la fecha (dd, mm, aaaa): ”).

leer(dd, mm, aaaa).


Si ((aaaa mod 4 == 0) y (aaaa % 100 =! 0) o (aaaa % 400 == 0))
entonces bisiesto = verdadero.
según sea mm hacer Inicio

//Mes de febrero 2:
si bisiesto entonces si dd > 29 entonces correcto = falso

sino si dd > 28 entonces correcto = falso


//Meses con 30 días 4, 7, 9, 11:

si dd > 30 entonces Correcto = falso.


//Meses con 31 días 1, 3, 5, 6, 8, 10, 12:
si dd > 31 entonces correcto = falso.

sino correcto = falso.

3
UNIVERSIDAD ANDINA DEL CUSCO
FACULTAD DE INGENIERÍA Y ARQUITECTURA – ESCUELA PROFESIONAL DE INGENIERÍA
CIVIL

Fin. mientras !correcta


//Acumular el número de días que hay hasta al mes anterior a la fecha
propuesta.

totalDia = 0.
para contadorDia =1 hasta mm – 1hacer

Inicio según sea contadorDia hacer Inicio


//Mes de febrero 2:

si bisiesto entonces totalDia = totalDia + 29.

sino totalDia = totalDia + 28.


//Meses con 30 dias 4, 7, 9, 11: totalDia = totalDia + 30.

//Meses con 31 días 1, 3, 5, 6, 8, 10, 12: totalDia = totalDia + 31. Fin.


Fin.
totalDia = totalDia + dd.
//Obtener y validar el dia de la semana correspondiente al primero de
enero.

hacer Inicio

Escribir(“Dame el día de la semana que fue el 1 de Enero (l/m/x/j/v/s/d):


leer(diaSemana). según sea diaSemana


hacer Inicio ‘l’, ‘L’: d1 = 0. ‘m’, ‘M’: d1 = 1. ‘x’, ‘X’: d1 = 2. ‘j’, ‘J’: d1 = 3. ‘v’,
‘V’: d1 = 4. ‘s’, ‘S’: d1 = 5. ‘d’, ‘D’: d1 = 6.
sino d1 = -10 Fin. Fin. mientras (d1 <= 0) o (d1 >= 6)

totalDia = totalDia + d1.


//Determinar el dia de la semana de la fecha propuesta

según sea totalDia % 7


hacer Inicio 1: escribir(“Lunes”). 2: escribir(“Martes”). 3: escribir(“Miércoles”). 4:
escribir(“Jueves”). 5: escribir(“Viernes”). 6: escribir(“Sábado”). 0:
escribir(“Domingo”). Fin.

4
UNIVERSIDAD ANDINA DEL CUSCO
FACULTAD DE INGENIERÍA Y ARQUITECTURA – ESCUELA PROFESIONAL DE INGENIERÍA
CIVIL
3. CÓDIGO
using System;
public class Program
{
public static void Main()
{
int año, mes, dia, dias, dl, totaldia;
String ndia;
Console.WriteLine("ingrese fecha (año/mes/dia): ");
año = int.Parse(Console.ReadLine());
mes = int.Parse(Console.ReadLine());
do {
if (año % 4==0 && (año % 100 != 0 || año % 400 ==0)){
if (mes == 02){
for ( dia=0;dia<=29;dia++){
}
}if (mes == 04 && mes == 06 && mes == 09 && mes == 11){
for ( dia=0;dia<=30;dia++){
}
}if (mes == 01 && mes == 03 && mes == 05 && mes == 07 && mes == 08 &&
mes == 10 && mes == 12){
for ( dia=0;dia<=31;dia++){
}}else
if (mes == 02){
for ( dia=0;dia<=28;dia++){
}}
//contamos los dias
switch (dias){
case 01 : dias = dias + 31; break;
case 02 : dias = dias + 28; break;
case 03 : dias = dias + 31; break;
case 04 : dias = dias + 30; break;
case 05 : dias = dias + 31; break;
case 06 : dias = dias + 30; break;
case 07 : dias = dias + 31; break;
case 08 : dias = dias + 31; break;
case 09 : dias = dias + 30; break;
case 10 : dias = dias + 31; break;
case 11 : dias = dias + 30; break;
case 12 : dias = dias + 31; break;
default : Console.WriteLine(" no identificado ") ;break;
}
//dias de la semana
Console.WriteLine("dia de la semana que fue el 1ro de enero (l,m,x,j,v,s,d)" );
ndia = String.Parse(Console.ReadLine());
dl= int.Parse(Console.ReadLine());
switch (dl){
case 0 : dl = "l" ;break;

También podría gustarte