Mostrar Mensajes

Esta sección te permite ver todos los posts escritos por este usuario. Ten en cuenta que sólo puedes ver los posts escritos en zonas a las que tienes acceso en este momento.


Mensajes - ZID

Páginas: [1]
1
Aprender a programar desde cero / Ejercicio (CU00669B) Arrays
« en: 25 de Diciembre 2014, 14:51 »
Declara una variable de tipo array de Strings que contenga los doce meses del año, en minúsculas y declarados en una sola línea. A continuación declara una variable mesSecreto de tipo String, y hazla igual a un elemento del array (por ejemplo mesSecreto = mes[9]. El programa debe pedir al usuario que adivine el mes secreto y si acierta mostrar un mensaje y si no pedir que vuelva a intentar adivinar el mes secreto.

Código: [Seleccionar]
String[] meses={"enero", "febrero", "marzo", "abril", "mayo", "junio", "julio", "agosto", "septiembre", "octubre", "noviembre", "diciembre"};

//Declaro una variable String con el valor [3] del array.
String mesSecreto = meses[3]; //el mes secreto es abril, pues va de 0 a 11

boolean acierto = true; //Para que se produzca el bucle y siga preguntando hasta acertar
int contador=1; //Para contar los intentos realizados

do {

System.out.print("\nAdivina el mes secreto ");
String mesSecreto2 = teclado.nextLine();
if (mesSecreto.equalsIgnoreCase(mesSecreto2)){ //Comparo cadenas
System.out.print("\nAcertaste ");
System.out.print("\nHas necesitado "+contador+" intentos\n");
acierto = false;
}
else
{
System.out.print("\nNo Acertaste ");
contador++;
}

} while (acierto); //} while (acierto = true);

2
Gracias por las correcciones, me son de gran ayuda.

La única cosa que me confunde es lo último que dices de que en los métodos set, declaras como parámetro exactamente la misma palabra que utilizas como atributo. Hasta ahora siempre me han dicho que lo haga así, es la primera vez que me dicen lo contrario.

Saludos

3
Código: [Seleccionar]
/**
 * Ejercicio DiscoMusical_24 CU00624B (25)
 * @author ZID
 */
public class DiscoMusical_24 {

String titulo;
String texto;
int añoEdicion;
String formato;
boolean digital;

public static void main(String[] args) {

DiscoMusical_24 disco = new DiscoMusical_24 ("Mecano", "Aidalai", 1991, "CD", true);

System.out.println("Titulo: " + disco.titulo);
System.out.println("Texto: " + disco.texto);
System.out.println("Año: " + disco.añoEdicion);
System.out.println("formato: " + disco.formato);
System.out.println("Digital: " + disco.digital);
}
 




    public String getTitulo() {
        return titulo;
    }

    public void setTitulo(String titulo) {
        this.titulo = titulo;
    }

    public String getTexto() {
        return texto;
    }

    public void setTexto(String texto) {
        this.texto = texto;
    }

    public int getAñoEdicion() {
        return añoEdicion;
    }

    public void setAñoEdicion(int añoEdicion) {
        this.añoEdicion = añoEdicion;
    }

    public String getFormato() {
        return formato;
    }

    public void setFormato(String formato) {
        this.formato = formato;
    }

    public boolean isDigital() {
        return digital;
    }

    public void setDigital(boolean digital) {
        this.digital = digital;
    }



//Constructor
public DiscoMusical_24(String titulo, String texto, int añoEdicion, String formato, boolean digital) {
        this.titulo = titulo;
        this.texto = texto;
        this.añoEdicion = añoEdicion;
        this.formato = formato;
        this.digital = digital;
    }



       
   
}

4
Código: [Seleccionar]
/**
 * Ejercicio Persona CU00623B
 * @author ZID
 */
public class Persona {

    /**
     * @param args the command line arguments
     */
   
    String nombre;
    String apellidos;
    int edad;
    boolean casado;
    String DNI;
 
   
//Constructor para cuando se cree un objeto Persona
public Persona (){
nombre = "Pepe";
apellidos = "Potamo";
edad = 18;
casado = true;
DNI = "";
}

    public String getNombre() {
        return nombre;
    }
   
     public void setNombre(boolean casado) {
        this.nombre = nombre;
    }

    public String getApellidos() {
        return apellidos;
    }

    public void setApellidos(String apellidos) {
        this.apellidos = apellidos;
    }

    public int getEdad() {
        return edad;
    }

    public void setEdad(int edad) {
        this.edad = edad;
    }

    public boolean isCasado() {
        return casado;
    }

    public void setCasado(boolean casado) {
        this.casado = casado;
    }

    public String getDNI() {
        return DNI;
    }

    public void setDNI(String DNI) {
        this.DNI = "DNI " + DNI;
    }




}

5
Pues si, veo que el curso tiene muy buena pinta y creo que los ejercicios me van a venir muy bien para afianzar contenido. ¡Gracias!

6
Muchísimas gracias, ahora lo analizo y estudio con detenimiento y cuando lo comprenda bien me pasaré de nuevo por aquí para confirmarlo.

Es cierto que los nombres aún no los domino bien, acabo de empezar y creo que ando algo confuso en cosas básicas, lo cual es un problema que tengo que solucionar antes de entrar en temas más complejos.


7
Gracias por el aviso!!

Ya he actualizado el codigo!

8
Hola, soy nuevo aqui y estoy estudiando Java, aunque por ahora la verdad es que me esta costando. Estoy tratando de lograr crear un programa que controla que solo introduces valores ya fijados en un enumerado, pero no lo consigo. Os cuento lo que quiero decir mostrando el codigo.

Casa.java
Código: [Seleccionar]

public class Casa {

    String color;

    public String getColor() {
        return this.color;
    }

    public void setColor(String color) {
        this.color = color;
    }

    public Casa() {
        color = "Rojo";
    }

    public Casa(String color) {
        this.color = color;
}
 
 public String toString(){
       return "La casa está pintada de color "+ this.color;
    }   
   
}


CambiarColorCasa.java
Código: [Seleccionar]
/**
 * En esta clase principal, quiero declarar un enumerado con los valores BLANCO,
 * AZUL y VERDE, que son los valores que puede admitir el atributo del color de la casa.
 * De forma que tras recoger el color por el usuario, el programa debe valerse de ese
 * enumerado para comprobar si es un color válido.
 *
 */

public class CambiarColorCasa {

    public enum Colores {BLANCO, AZUL, VERDE};
 
     
    public static void main(String[] args) {
     Casa casaPintada = null;
     Casa casaSinPintar = null;
 
    String color2;
    int eleccion;
    String respuesta;
   
   do {

            Mensajes.msgln("\t\t1.- Crear una casa sin pintar.");
            Mensajes.msgln("\t\t2.- Crear una casa pintada.");
            Mensajes.msgln("\t\t3.- Pinta la casa");
            Mensajes.msgln("\t\t4.- Muestra el color de la casa\n");

            Mensajes.msgln("\t\t0.- Salir de la aplicación.");
            Mensajes.msgln("\t=========================================================\n");

           
            eleccion = Mensajes.leeEntero("\tIntroduzca la opción elegida:", 0, 4);
           
            switch (eleccion) {
                case 0:
                    Mensajes.msgln("\tCerrando...");
                    break;
               
                case 1:
                    casaSinPintar = new Casa();
                    Mensajes.msgln("\tSe creó una casa sin pintar. \n"
                            + "\tDeberás pintarla. \n");
                    break;
                   
                case 2:
                    color2 = Mensajes.leeCadena("\tIntroduce el color: ");
                    casaPintada = new Casa(color2);
                    Mensajes.msgln("\t Se creó una casa pintada.\n");
                    break;
   
               
                case 3:       
                   
                    if (casaSinPintar != null) {
                        color2 = Mensajes.leeCadena("\tIntroduzca un nuevo color: ");
                        if (casaSinPintar.getColor().equals("Rojo")) {
                            casaSinPintar.setColor(color2);
                            Mensajes.msgln("\n\tLa casa esta pintada de nuevo ");
                        } else {
                            respuesta = Mensajes.leeCadena("\n\tEl color actual es: " + casaSinPintar.getColor()
                                    + ". ¿Desea cambiarlo? (S/N): ");
                            if (respuesta.equalsIgnoreCase("s")) {
                                casaSinPintar.setColor(color2);
                                Mensajes.msgln("\n\tEl color ahora es " + casaSinPintar.getColor() + ".\n ");
                            } else {
                                Mensajes.msgln("\n\tCambio de color cancelado.");
                            }
                        }
                    } else {
                        Mensajes.msgln("No existe la casa.");
                    }

                    break;   
                   
                case 4:           
                       
                    Mensajes.msgln("Casa sin pintar");
                    if (casaSinPintar == null)
                    Mensajes.msgln("No hay datos aún");
                    else
                    System.out.println(casaSinPintar.toString());
                   
                    Mensajes.msgln("Casa pintada");
                    if (casaPintada == null)
                    Mensajes.msgln("No hay datos aún");
                    else
                    System.out.println(casaPintada.toString());
           
                    break;
                   
                   
                default:
                break;
               
            } // Switch
        } while (eleccion
                != 0);
    }//Fin del main

   
}//Fin de la clase

Mensajes.java
Código: [Seleccionar]
import java.util.Scanner;


public class Mensajes {

     public static int leeEntero(String mensaje, int minimo, int maximo) throws IllegalArgumentException  {
        int numero = 0;
        boolean leido = false;
        Scanner teclado = null;

     
        if (minimo <= maximo) {
            do {
                Mensajes.msgln(mensaje);
                try {
                    teclado = new Scanner(System.in);
                    numero = teclado.nextInt();
                    if (numero >= minimo && numero <= maximo) {
                        leido = true;
                    } else {
                        Mensajes.msgln("Error: Debe ser un número entero mayor o igual que " + minimo + " y menor o igual que " + maximo + ". ");
                    }
                } catch (Exception e) {
                    Mensajes.msgln("Error: No es un número entero válido. ");
                }
            } while (!leido);
        } else {
            throw new IllegalArgumentException("Error");
        }
        return numero;
    }
   
    public static String leeCadena() {
        Scanner teclado = new Scanner(System.in);
        String cadena = "";
        try {
            cadena = teclado.nextLine();
        } catch (Exception e) {
            Mensajes.msgln("Error.");
        }
        return cadena;
    }


    public static String leeCadena(String mensaje) {
        Scanner teclado = new Scanner(System.in);
        String cadena = "";
        try {
            Mensajes.msgln(mensaje);
            cadena = teclado.nextLine();
        } catch (Exception e) {
            Mensajes.msgln("Error.");
        }
        return cadena;
    }


    public static void msg(String cadenaAImprimir) {
        System.out.print(cadenaAImprimir);
    }


    public static void msgln() {
        System.out.println();
    }

   
    public static void msgln(String cadenaAImprimir) {
        System.out.println(cadenaAImprimir);
    }

 
}

El problema lo tengo en CASE 3. El programa funciona pero no controlo que los valores introducidos sean los declarados en el enumerado, que es justo lo que trato de hacer pero no se como. Me he leído la parte del curso dedicada a los enumerados y no he encontrado que se usen para controlar que escribes uno de los valores declarados.
Cualquier ayuda es bienvenida, gracias!

Páginas: [1]

Sobre la educación, sólo puedo decir que es el tema más importante en el que nosotros, como pueblo, debemos involucrarnos.

Abraham Lincoln (1808-1865) Presidente estadounidense.

aprenderaprogramar.com: Desde 2006 comprometidos con la didáctica y divulgación de la programación

Preguntas y respuestas

¿Cómo establecer o cambiar la imagen asociada (avatar) de usuario?
  1. Inicia sesión con tu nombre de usuario y contraseña.
  2. Pulsa en perfil --> perfil del foro
  3. Elige la imagen personalizada que quieras usar. Puedes escogerla de una galería de imágenes o subirla desde tu ordenador.
  4. En la parte final de la página pulsa el botón "cambiar perfil".