SlideShare a Scribd company logo
1 of 7
Download to read offline
Programa 8


   a) Planteamiento del problema

Escribe un programa que lea tres números dia, mes y anno que representan
una fecha (día, mes y año) y calcule el día de la semana correspondiente
usando la congruencia de Zeller:
diasem= (700 + (26mes - 2) DIV 10 + dia + a + a DIV 4 + b DIV 4 – 2b) MOD
7
Donde los valores son:
Si mes<=2 Si mes>=3
mes mes+10
anno-1
mes-2
a anno mod 100 anno mod 100
b anno div 100 anno div 100
El valor de la variable diaseman estará entre 0 y 6 (0 =domingo,1= lunes,
3=martes, 4=miércoles, 5=jueves, 6= viernes), imprima la fecha de entrada
de datos y sustituya el valor ordinal obtenido por el dia en letras.
Verifique el siguiente código y complemente su ejercicio, realice pruebas
para asegurarse que su solución es correcta.

public static void main(String[] args) {
int dia=Integer.parseInt(JOptionPane.showInputDialog(null, "dia en
numero"));
int mes=Integer.parseInt(JOptionPane.showInputDialog(null, "mes en
numero"));
int anno=Integer.parseInt(JOptionPane.showInputDialog(null, "año en
numero"));
if (mes <= 2)
{
mes = mes + 10;
anno = anno - 1;
}
else
{
mes = mes - 2;
}
int a= anno % 100;
int b= anno / 100;
int diaordinal =(700 +((26 * mes -2) / 10) + dia + a+ a/ 4 + b/ 4 - 2 * b) % 7;
JOptionPane.showMessageDialog(null,"dia ordinal obtenido"+diaordinal);
}
Recordatorio: mod en java es %, y el div en java es cociente entero.
Verifique que sucede cuando el año no fue bisiesto, como soluciona este
caso.
Nota los datos de entrada no pueden ser negativos ni tampoco sobrepasar
el
      limite establecido de su representación.

b) Análisis de datos (datos de: entrada / salida, condiciones y diccionario de
Datos).

Datos:
Día
Mes
Año(Anio)
A
B
Día Ordinal

Condiciones:
Si mes<=2 = mes = mes+10
Si mes<=2 = año = año-1
No mes<=2 = mes - mes-2

A = (año) mod 100
B = (año-A)/100
Día ordinal = (700+((26*mes-2)/10)+dia+A+A/4+B/4-2*B) mod 7

Diccionario de Datos:
Día=Valor numérico introducido del día que se quiere conocer.
Mes=Valor numérico introducido del mes que se quiere conocer.
Año= Valor numérico Introducido del año que se quiere conocer.
A=Residuo del Año introducido entre 100 necesario para poder calcular usando la
congruencia de Zeller
B=La división entre el Año introducido entre 100 necesario para poder calcular
usando la congruencia de Zeller
Día Ordinal= El Día de la semana que se quiere conocer.
c) Diseño de solución (Diagrama de flujo usando el programa DFD)
d) Prueba de escritorio.
   Día Introducido = 18
   Mes Introducido = 4
   Año Introducido = 2012

   SI (mes <= 2)
    mes = mes + 10;
    año = añoo - 1;
    else
    mes = mes – 2
   diaordinal =(700 +((26 * mes -2) / 10) + dia + a+ a/ 4 + b/ 4 - 2 * b) % 7 = 3

   switch (diaordinal)

   case 1: “Lunes”
    break;


   case 2: “Martes”
   break

   case 3: “Miercoles”
    break;

    case 4: "jueves"
   break

    case 5: "viernes"
   break

   case 6: "sabado"

   break


    case 7: “domingo"
    break
   diaordinal = 3: “Miercoles”
e) Programa fuente (codificación en java)
package días;
import javax.swing.*;

public class Días {


  public static void main(String[] args) {
      int dia, mes, anio, a, b, diaordinal ;
    dia = Integer.parseInt(JOptionPane.showInputDialog(null, "dia en numero"));
    mes = Integer.parseInt(JOptionPane.showInputDialog(null, "mes en numero"));
    anio = Integer.parseInt(JOptionPane.showInputDialog(null, "año en numero"));
    if (mes <= 2) {
         mes = mes + 10;
         anio = anio - 1;
          } else {
            mes = mes - 2;
         }
   a= anio % 100;
   b= anio / 100;
   diaordinal =(700 +((26 * mes -2) / 10) + dia + a+ a/ 4 + b/ 4 - 2 * b) % 7;
    JOptionPane.showMessageDialog(null,diaordinal);
    switch (diaordinal){
        case 1: {
           JOptionPane.showMessageDialog(null,"Lunes");
           break;
           }
        case 2: {
           JOptionPane.showMessageDialog(null,"Martes");
           break;
           }
        case 3: {
           JOptionPane.showMessageDialog(null,"Miercoles");
           break;
           }
        case 4: {
           JOptionPane.showMessageDialog(null,"jueves");
           break;
           }
        case 5: {
           JOptionPane.showMessageDialog(null,"viernes");
           break;
           }
        case 6: {
           JOptionPane.showMessageDialog(null,"sabado");
           break;
           }
        case 7: {
           JOptionPane.showMessageDialog(null,"domingo");
           break;
           }
}
    }
}

f) Depuración.- La forma de comprobar que su programa es funcional será
imprimiendo sus pantallas de salida, las cuales deberán estar previamente
diseñadas con presentación en su JOptionPane ver material de clases.
f) Conclusión de su práctica.
   Algoritmo de Feller para calcular un día de la semana
   Usar SWITCH y CASE
   Hacer un diagrama en el DFD
   Crear un Programa en Java Netbeans

More Related Content

Similar to Programa 8

Programa 8
Programa 8Programa 8
Programa 8Ansd
 
PRACTICAS DE MODELOS APLICABLE EN MATEMATICAS.ppt
PRACTICAS DE MODELOS APLICABLE EN MATEMATICAS.pptPRACTICAS DE MODELOS APLICABLE EN MATEMATICAS.ppt
PRACTICAS DE MODELOS APLICABLE EN MATEMATICAS.pptAPIRELAGONZALEZ
 
Matemáticas preparatoria tec m
Matemáticas preparatoria tec mMatemáticas preparatoria tec m
Matemáticas preparatoria tec mMaestros Online
 
3. Utilización de los objetos predefinidos del lenguaje
3. Utilización de los objetos predefinidos del lenguaje3. Utilización de los objetos predefinidos del lenguaje
3. Utilización de los objetos predefinidos del lenguajeLaura Folgado Galache
 
Prueba regresion lineal
Prueba regresion linealPrueba regresion lineal
Prueba regresion linealThe Killer
 
Ejercicios de programacion usando comando Fix, MOd y IF-ELSE
Ejercicios de programacion usando comando Fix, MOd y IF-ELSEEjercicios de programacion usando comando Fix, MOd y IF-ELSE
Ejercicios de programacion usando comando Fix, MOd y IF-ELSEPatricio Cruz
 
Act 6 unidad_5_parte_"B"
Act 6 unidad_5_parte_"B"Act 6 unidad_5_parte_"B"
Act 6 unidad_5_parte_"B"matias526
 
2.3. Funciones De Fecha Y Hora
2.3. Funciones De Fecha Y Hora2.3. Funciones De Fecha Y Hora
2.3. Funciones De Fecha Y HoraFelipe Buendia
 
Introduccion a las matematicas modernas ccesa007
Introduccion a las matematicas modernas ccesa007Introduccion a las matematicas modernas ccesa007
Introduccion a las matematicas modernas ccesa007Demetrio Ccesa Rayme
 
Programas básico en Lenguaje C
Programas básico en Lenguaje CProgramas básico en Lenguaje C
Programas básico en Lenguaje Caart07
 

Similar to Programa 8 (20)

Programa 8
Programa 8Programa 8
Programa 8
 
Algoritmos 222
Algoritmos 222Algoritmos 222
Algoritmos 222
 
Codigo ejercicios
Codigo ejerciciosCodigo ejercicios
Codigo ejercicios
 
Proyecto
ProyectoProyecto
Proyecto
 
PRACTICAS DE MODELOS APLICABLE EN MATEMATICAS.ppt
PRACTICAS DE MODELOS APLICABLE EN MATEMATICAS.pptPRACTICAS DE MODELOS APLICABLE EN MATEMATICAS.ppt
PRACTICAS DE MODELOS APLICABLE EN MATEMATICAS.ppt
 
Programa 7
Programa 7Programa 7
Programa 7
 
Curso de induccion
Curso de induccionCurso de induccion
Curso de induccion
 
Semana2
Semana2Semana2
Semana2
 
Clase 7 objetos globales de javaScript
Clase 7 objetos globales de javaScriptClase 7 objetos globales de javaScript
Clase 7 objetos globales de javaScript
 
Matemáticas preparatoria tec m
Matemáticas preparatoria tec mMatemáticas preparatoria tec m
Matemáticas preparatoria tec m
 
3. Utilización de los objetos predefinidos del lenguaje
3. Utilización de los objetos predefinidos del lenguaje3. Utilización de los objetos predefinidos del lenguaje
3. Utilización de los objetos predefinidos del lenguaje
 
Prueba regresion lineal
Prueba regresion linealPrueba regresion lineal
Prueba regresion lineal
 
Ejercicios de programacion usando comando Fix, MOd y IF-ELSE
Ejercicios de programacion usando comando Fix, MOd y IF-ELSEEjercicios de programacion usando comando Fix, MOd y IF-ELSE
Ejercicios de programacion usando comando Fix, MOd y IF-ELSE
 
Act 6 unidad_5_parte_"B"
Act 6 unidad_5_parte_"B"Act 6 unidad_5_parte_"B"
Act 6 unidad_5_parte_"B"
 
Matematicas CLEI III 1PARTE
Matematicas CLEI III 1PARTEMatematicas CLEI III 1PARTE
Matematicas CLEI III 1PARTE
 
01. cuaderno matemática 7mo stre
01.  cuaderno matemática 7mo stre01.  cuaderno matemática 7mo stre
01. cuaderno matemática 7mo stre
 
2.3. Funciones De Fecha Y Hora
2.3. Funciones De Fecha Y Hora2.3. Funciones De Fecha Y Hora
2.3. Funciones De Fecha Y Hora
 
Introduccion a las matematicas modernas ccesa007
Introduccion a las matematicas modernas ccesa007Introduccion a las matematicas modernas ccesa007
Introduccion a las matematicas modernas ccesa007
 
Programas básico en Lenguaje C
Programas básico en Lenguaje CProgramas básico en Lenguaje C
Programas básico en Lenguaje C
 
Ejercicio 4
Ejercicio 4Ejercicio 4
Ejercicio 4
 

More from josue salaltiel avila cauich (16)

Socket
SocketSocket
Socket
 
APIS MULTIMEDIA
APIS MULTIMEDIAAPIS MULTIMEDIA
APIS MULTIMEDIA
 
Uso de las api puertos
Uso de las api puertosUso de las api puertos
Uso de las api puertos
 
Programa 4
Programa 4Programa 4
Programa 4
 
La lógica aplicada a la programacion
La lógica aplicada a la programacionLa lógica aplicada a la programacion
La lógica aplicada a la programacion
 
Programa 6
Programa 6Programa 6
Programa 6
 
Programa 2
Programa 2Programa 2
Programa 2
 
Programa 10
Programa 10Programa 10
Programa 10
 
Programa 9
Programa 9Programa 9
Programa 9
 
Programa 5
Programa 5Programa 5
Programa 5
 
Reporte del funfionamiento del dfd
Reporte del funfionamiento del dfdReporte del funfionamiento del dfd
Reporte del funfionamiento del dfd
 
Programa 3
Programa 3Programa 3
Programa 3
 
Programa 1
Programa 1Programa 1
Programa 1
 
Sociedad De La InformacióN mapa Conceptual
Sociedad De La InformacióN mapa ConceptualSociedad De La InformacióN mapa Conceptual
Sociedad De La InformacióN mapa Conceptual
 
Sociedad De InformacióN Y Conocimiento
Sociedad De InformacióN Y ConocimientoSociedad De InformacióN Y Conocimiento
Sociedad De InformacióN Y Conocimiento
 
Sociedad De InformacióN Y Conocimiento
Sociedad De InformacióN Y ConocimientoSociedad De InformacióN Y Conocimiento
Sociedad De InformacióN Y Conocimiento
 

Programa 8

  • 1. Programa 8 a) Planteamiento del problema Escribe un programa que lea tres números dia, mes y anno que representan una fecha (día, mes y año) y calcule el día de la semana correspondiente usando la congruencia de Zeller: diasem= (700 + (26mes - 2) DIV 10 + dia + a + a DIV 4 + b DIV 4 – 2b) MOD 7 Donde los valores son: Si mes<=2 Si mes>=3 mes mes+10 anno-1 mes-2 a anno mod 100 anno mod 100 b anno div 100 anno div 100 El valor de la variable diaseman estará entre 0 y 6 (0 =domingo,1= lunes, 3=martes, 4=miércoles, 5=jueves, 6= viernes), imprima la fecha de entrada de datos y sustituya el valor ordinal obtenido por el dia en letras. Verifique el siguiente código y complemente su ejercicio, realice pruebas para asegurarse que su solución es correcta. public static void main(String[] args) { int dia=Integer.parseInt(JOptionPane.showInputDialog(null, "dia en numero")); int mes=Integer.parseInt(JOptionPane.showInputDialog(null, "mes en numero")); int anno=Integer.parseInt(JOptionPane.showInputDialog(null, "año en numero")); if (mes <= 2) { mes = mes + 10; anno = anno - 1; } else { mes = mes - 2; } int a= anno % 100; int b= anno / 100; int diaordinal =(700 +((26 * mes -2) / 10) + dia + a+ a/ 4 + b/ 4 - 2 * b) % 7; JOptionPane.showMessageDialog(null,"dia ordinal obtenido"+diaordinal); } Recordatorio: mod en java es %, y el div en java es cociente entero. Verifique que sucede cuando el año no fue bisiesto, como soluciona este caso.
  • 2. Nota los datos de entrada no pueden ser negativos ni tampoco sobrepasar el limite establecido de su representación. b) Análisis de datos (datos de: entrada / salida, condiciones y diccionario de Datos). Datos: Día Mes Año(Anio) A B Día Ordinal Condiciones: Si mes<=2 = mes = mes+10 Si mes<=2 = año = año-1 No mes<=2 = mes - mes-2 A = (año) mod 100 B = (año-A)/100 Día ordinal = (700+((26*mes-2)/10)+dia+A+A/4+B/4-2*B) mod 7 Diccionario de Datos: Día=Valor numérico introducido del día que se quiere conocer. Mes=Valor numérico introducido del mes que se quiere conocer. Año= Valor numérico Introducido del año que se quiere conocer. A=Residuo del Año introducido entre 100 necesario para poder calcular usando la congruencia de Zeller B=La división entre el Año introducido entre 100 necesario para poder calcular usando la congruencia de Zeller Día Ordinal= El Día de la semana que se quiere conocer.
  • 3. c) Diseño de solución (Diagrama de flujo usando el programa DFD)
  • 4. d) Prueba de escritorio. Día Introducido = 18 Mes Introducido = 4 Año Introducido = 2012 SI (mes <= 2) mes = mes + 10; año = añoo - 1; else mes = mes – 2 diaordinal =(700 +((26 * mes -2) / 10) + dia + a+ a/ 4 + b/ 4 - 2 * b) % 7 = 3 switch (diaordinal) case 1: “Lunes” break; case 2: “Martes” break case 3: “Miercoles” break; case 4: "jueves" break case 5: "viernes" break case 6: "sabado" break case 7: “domingo" break diaordinal = 3: “Miercoles”
  • 5. e) Programa fuente (codificación en java) package días; import javax.swing.*; public class Días { public static void main(String[] args) { int dia, mes, anio, a, b, diaordinal ; dia = Integer.parseInt(JOptionPane.showInputDialog(null, "dia en numero")); mes = Integer.parseInt(JOptionPane.showInputDialog(null, "mes en numero")); anio = Integer.parseInt(JOptionPane.showInputDialog(null, "año en numero")); if (mes <= 2) { mes = mes + 10; anio = anio - 1; } else { mes = mes - 2; } a= anio % 100; b= anio / 100; diaordinal =(700 +((26 * mes -2) / 10) + dia + a+ a/ 4 + b/ 4 - 2 * b) % 7; JOptionPane.showMessageDialog(null,diaordinal); switch (diaordinal){ case 1: { JOptionPane.showMessageDialog(null,"Lunes"); break; } case 2: { JOptionPane.showMessageDialog(null,"Martes"); break; } case 3: { JOptionPane.showMessageDialog(null,"Miercoles"); break; } case 4: { JOptionPane.showMessageDialog(null,"jueves"); break; } case 5: { JOptionPane.showMessageDialog(null,"viernes"); break; } case 6: { JOptionPane.showMessageDialog(null,"sabado"); break; } case 7: { JOptionPane.showMessageDialog(null,"domingo"); break; }
  • 6. } } } f) Depuración.- La forma de comprobar que su programa es funcional será imprimiendo sus pantallas de salida, las cuales deberán estar previamente diseñadas con presentación en su JOptionPane ver material de clases.
  • 7. f) Conclusión de su práctica. Algoritmo de Feller para calcular un día de la semana Usar SWITCH y CASE Hacer un diagrama en el DFD Crear un Programa en Java Netbeans