SlideShare ist ein Scribd-Unternehmen logo
1 von 7
Downloaden Sie, um offline zu lesen
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

Weitere ähnliche Inhalte

Was ist angesagt?

producto notable
producto notableproducto notable
producto notable
Cesar-91
 
Factoring quadratic-trinomials-of-the-form-ax2-
Factoring quadratic-trinomials-of-the-form-ax2-Factoring quadratic-trinomials-of-the-form-ax2-
Factoring quadratic-trinomials-of-the-form-ax2-
AnnalizaTenioso
 
C3 operadores matemáticos gráficos - 2º
C3   operadores matemáticos gráficos - 2ºC3   operadores matemáticos gráficos - 2º
C3 operadores matemáticos gráficos - 2º
brisagaela29
 
Ecuación de segundo grado completa general
Ecuación de segundo grado completa generalEcuación de segundo grado completa general
Ecuación de segundo grado completa general
María Pizarro
 
3.2 factoring polynomials
3.2   factoring polynomials3.2   factoring polynomials
3.2 factoring polynomials
Nuch Pawida
 

Was ist angesagt? (20)

producto notable
producto notableproducto notable
producto notable
 
Square of trinomial
Square of trinomialSquare of trinomial
Square of trinomial
 
Sanalliset
SanallisetSanalliset
Sanalliset
 
Factoring Techniques: Difference of Two Squares
Factoring Techniques: Difference of Two SquaresFactoring Techniques: Difference of Two Squares
Factoring Techniques: Difference of Two Squares
 
Factoring quadratic-trinomials-of-the-form-ax2-
Factoring quadratic-trinomials-of-the-form-ax2-Factoring quadratic-trinomials-of-the-form-ax2-
Factoring quadratic-trinomials-of-the-form-ax2-
 
Presentación en powerpoint de ecuaciones cuadráticas
Presentación en powerpoint de ecuaciones cuadráticasPresentación en powerpoint de ecuaciones cuadráticas
Presentación en powerpoint de ecuaciones cuadráticas
 
T.P.Factorizacion de polinomios
T.P.Factorizacion de polinomiosT.P.Factorizacion de polinomios
T.P.Factorizacion de polinomios
 
Solving multi step inequalities
Solving multi step inequalitiesSolving multi step inequalities
Solving multi step inequalities
 
Change of base hm3 (2019)
Change of base hm3 (2019)Change of base hm3 (2019)
Change of base hm3 (2019)
 
Swartz Factoring
Swartz FactoringSwartz Factoring
Swartz Factoring
 
C3 operadores matemáticos gráficos - 2º
C3   operadores matemáticos gráficos - 2ºC3   operadores matemáticos gráficos - 2º
C3 operadores matemáticos gráficos - 2º
 
Resolución de problemas mediante el método de gauss
Resolución de problemas mediante el método de gaussResolución de problemas mediante el método de gauss
Resolución de problemas mediante el método de gauss
 
Verranto
VerrantoVerranto
Verranto
 
Ecuación de segundo grado completa general
Ecuación de segundo grado completa generalEcuación de segundo grado completa general
Ecuación de segundo grado completa general
 
introduction-to-functions-grade-11general-math.ppt
introduction-to-functions-grade-11general-math.pptintroduction-to-functions-grade-11general-math.ppt
introduction-to-functions-grade-11general-math.ppt
 
24 exponential functions and periodic compound interests pina x
24 exponential functions and periodic compound interests pina x24 exponential functions and periodic compound interests pina x
24 exponential functions and periodic compound interests pina x
 
3.2 factoring polynomials
3.2   factoring polynomials3.2   factoring polynomials
3.2 factoring polynomials
 
Tema 1 ejercicios
Tema 1 ejerciciosTema 1 ejercicios
Tema 1 ejercicios
 
Factorización
FactorizaciónFactorización
Factorización
 
Capitulo 2 ejercicios
Capitulo 2 ejerciciosCapitulo 2 ejercicios
Capitulo 2 ejercicios
 

Andere mochten auch

Los numeros ordinales en ingles segundo parcial angel saturio
Los numeros ordinales en ingles  segundo parcial angel saturioLos numeros ordinales en ingles  segundo parcial angel saturio
Los numeros ordinales en ingles segundo parcial angel saturio
Anderson Murillo Palacios
 
Hoja de trabajo santillana observaciòn
Hoja de trabajo santillana observaciònHoja de trabajo santillana observaciòn
Hoja de trabajo santillana observaciòn
keeeila__
 

Andere mochten auch (12)

Ejercicio 8
Ejercicio 8Ejercicio 8
Ejercicio 8
 
Los numeros ordinales en ingles segundo parcial angel saturio
Los numeros ordinales en ingles  segundo parcial angel saturioLos numeros ordinales en ingles  segundo parcial angel saturio
Los numeros ordinales en ingles segundo parcial angel saturio
 
Aprendizajes esperados matematicas
Aprendizajes esperados matematicasAprendizajes esperados matematicas
Aprendizajes esperados matematicas
 
201213 palem antologia regional 1
201213 palem antologia regional 1201213 palem antologia regional 1
201213 palem antologia regional 1
 
0.10 los números en ingles cardinales y ordinales
0.10   los números en ingles cardinales y ordinales0.10   los números en ingles cardinales y ordinales
0.10 los números en ingles cardinales y ordinales
 
Learn Spanish with Fresh Spanish: Números cardinales del 0 al 99
Learn Spanish with Fresh Spanish: Números cardinales del 0 al 99Learn Spanish with Fresh Spanish: Números cardinales del 0 al 99
Learn Spanish with Fresh Spanish: Números cardinales del 0 al 99
 
Hoja de trabajo santillana observaciòn
Hoja de trabajo santillana observaciònHoja de trabajo santillana observaciòn
Hoja de trabajo santillana observaciòn
 
Los numeros de ingles de 1 a 500
Los numeros de ingles de 1 a 500Los numeros de ingles de 1 a 500
Los numeros de ingles de 1 a 500
 
Números en ingles del 1 al 100
Números en ingles del 1 al 100Números en ingles del 1 al 100
Números en ingles del 1 al 100
 
1 en 1 a 200 en ingles
1 en 1 a 200 en ingles1 en 1 a 200 en ingles
1 en 1 a 200 en ingles
 
Numeros ingles-del-1-al-1000
Numeros ingles-del-1-al-1000Numeros ingles-del-1-al-1000
Numeros ingles-del-1-al-1000
 
Numeros romanos del 1 al 1000
Numeros romanos del 1 al 1000Numeros romanos del 1 al 1000
Numeros romanos del 1 al 1000
 

Ähnlich wie Programa 8

Programa 8
Programa 8Programa 8
Programa 8
Ansd
 
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
APIRELAGONZALEZ
 
Prueba regresion lineal
Prueba regresion linealPrueba regresion lineal
Prueba regresion lineal
The 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-ELSE
Patricio Cruz
 

Ähnlich wie 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
 

Mehr von 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