221
Aprender a programar desde cero / Re:Ejercicio! entrega CU00644B
« en: 30 de Junio 2014, 22:25 »
Excelente! Creo que estoy comenzando a amar las api
Gracias César. Salu2!
Gracias César. Salu2!
Aprende Java con el libro "Aprender a programar en Java desde cero. Curso paso a paso." Editorial aprenderaprogramar. com. 200 pgs. Disponible en papel y ebook.
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.
import java.lang.Math;
public class MiniCalculadoraEjemplo{
public MiniCalculadoraEjemplo(){
}
public double valorAbsoluto(double inAbsoluto){return Math.abs(inAbsoluto);}
public double raisCuadrada(double raisCuadradaDe){return Math.sqrt(raisCuadradaDe);}
}
base * resultado
para obtener este resultado. mi pregunta es, porque no esta devolviendo 255 y en su lugar esta devolviendo 254.99999999999997. public class multiplicadorDieces{
public multiplicadorDieces(){
}
//metodo que devuelve el resultado de elevar 10 al valor de la variable exponente.
public int diezElevadoAlValorDeExponente(int exponente){
int resultado = 1;
for(int i=1; i<=exponente; i++){resultado = resultado * 10;}
return resultado;
}
//metodo que devuelve el resultado de multiplicar el valor de la variable base por el resultado de elevar 10 al valor de la variable exponente
public double multiplicadorPorDieces(double base, int exponente){
int resultado = 1;
for(int i=1; i<=exponente; i++){resultado = resultado * 10;}
return base * resultado ;
}
}
public class SalonCasa{
int numeroDeTelevisores;
String tipoSalon;
//Constructor general
public SalonCasa(){
numeroDeTelevisores = 0;
tipoSalon = "Desconocido";
}
//setters
public void setNumeroDeTelevisores(int valorNumeroDeTelevisores){numeroDeTelevisores = valorNumeroDeTelevisores;}
public void setTipoSalon(String valorTipoSalon){tipoSalon = valorTipoSalon;}
//getters
public int getNumeroDeTelevisores(){return numeroDeTelevisores;}
public String getTipoSalon(){return tipoSalon;}
}
public class CocinaCasa{
private boolean esIndependiente;
private int numeroDeFuegos;
//Constructor general
public CocinaCasa(){
esIndependiente = false;
numeroDeFuegos = 0;
}
//setters
public void setEsIndependiente(boolean valorEsIndependiente){esIndependiente = valorEsIndependiente;}
public void setNumeroDeFuegos(int valorNumeroDeFuegos){numeroDeFuegos = valorNumeroDeFuegos;}
//getters
public boolean getEsIndependiente(){return esIndependiente;}
public int getNumeroDeFuegos(){return numeroDeFuegos;}
}
public class Casa{
private double superficie;
private String direccion;
private SalonCasa nuevoSalonCasa;
private CocinaCasa nuevaCocinaCasa;
//Constructor 1 (general)
public Casa(){
superficie = 0.0;
direccion = "Desconocida";
nuevoSalonCasa = new SalonCasa();
nuevaCocinaCasa = new CocinaCasa();
}
//Constructor 2 (inicializado)
public Casa(double valorSuperficie , String valorDireccion, SalonCasa objetoSalonCasa, CocinaCasa objetoCocinaCasa,
int valorNumeroDeTelevisores, String valorTipoSalon){
superficie = valorSuperficie;
direccion = valorDireccion;
nuevoSalonCasa = new SalonCasa();
nuevaCocinaCasa = new CocinaCasa();
nuevoSalonCasa.numeroDeTelevisores = valorNumeroDeTelevisores;
nuevoSalonCasa.tipoSalon = valorTipoSalon;
}
//setters para atributos simples de la clase Casa
public void setSuperficie(double valorSuperficie){superficie = valorSuperficie;}
public void setDireccion(String valorDireccion){direccion = valorDireccion;}
//setters para los atributos simples de los objetos tipo SalonCasa dentro de la clase Casa
public void setNumeroDeTelevisores(int valorNumeroDeTelevisores){nuevoSalonCasa.setNumeroDeTelevisores(valorNumeroDeTelevisores);}
public void setTipoSalon(String valorTipoSalon){nuevoSalonCasa.setTipoSalon(valorTipoSalon);}
//setters para los atributos simples de los objetos tipo CocinaCasa dentro de la clase Casa
public void setNumeroDeFuegos(int valorNumeroDeFuegos){nuevaCocinaCasa.setNumeroDeFuegos (valorNumeroDeFuegos);}
public void setEsIndependiente(boolean valorEsIndependiente){nuevaCocinaCasa.setEsIndependiente(valorEsIndependiente);}
}
Hola Sniper. Gracias por tu comentario.
Permíteme una pregunta.
Yo he probado el código y me funciona, supongo que tu has hecho lo mismo, o compruebas que las instrucciones están bien escritas.
En cuanto a la evaluación de las expresiones ¿Tienes una plantilla de respuestas o algo asi?
Dime algo Sniper. Saludos.
numeroDNI = "DesConocido";
en ves de numeroDNI el cual interpretado logicamente se podria interpretar como numeroDocumentoNumeroIdentidad deverias de usar numeroDI que aria referencia a numeroDocumentoIdentidad o abreviado en ingles IDN identificationDocumentNumber o cualquier otro nombre dentro de lo que cabe, que se relacione mas con lo que se quiere plantear, en numeroDNI haces reseña dos veces a la palabra numero. public void setNombre (String valorNombre) {
System.out.println ("El médico conocido por < " + nombre +
" > se ha cambiado el nombre por el de < " + valorNombre + " >.");
nombre = valorNombre;
}
el cotejo de el mensaje que devuelve el método al recibir una cambio sobre su valor por defecto, pareciera como si un usuario esta usando el programa para consultar información sobre el medico, cuando lo correcto es que el medico esta usando el programa para actualizar sus datos y el programa le indica en un mensaje de tiempo real acerca de cada cambio en especifico una ves realizado dicho cambio, podría ser una secretaria quien use el programa para actualizar los datos del doctor, el caso es que dicho mensaje debe estar orientado a quien se supone que este realizando los cambios y no a alguien que este solicitando el valor de los cambios ya pre establecidos. esto se nota mas en este fragmento de tu código: public void setEdad (int valorEdad) {
edad = valorEdad;
System.out.println ("Se hace saber que el médico < " + nombre + " " + apellidos +
" > tiene una edad de < " + edad + " > años.");
calculoParaMultiploEdad();// este metodo dentro de este setter es imnecesario!!!
}
donde seria mas logico System.out.println Los atributos de todas las clases deben ser private, excepto casos excepcionales. Es decir, en las clases CocinaCasa y SalonCasa debes poner los atributos como private.En otras clases no e indicado la condición public o private para ningún atributo, quisiera saber si al no indicar ninguna de estas condiciones los atributos quedan por defecto private
Salud
public class Rueda() {
String tipo;
double grosor;
double diametro;
String marca;
}
public rueda(){
tipo = "";
marca= "";
grosor = 0.0;
diametro = 0.0;
}
public void setMarca(String valorMarca){
Marca = valorMarca;
}
public void setGrosor(double valorGrosor)
grosor = valorGrosor;
}
public void comprobarDimensiones (){
if ((diametro > 1.4 && grosor < 0.4)||(diametro <= 1.4 && diametro > 0.8 && grosor < 0.25)){
System.out.println ("El grosor para esta rueda es inferior al recomendado");
}
else if (diametro <= 1.4){
System.out.println ("La rueda es para un vehículo grande");
}
else if (diametro <= 1.4 && diametro > 0.8){
System.out.println ("La rueda es para un vehículo mediano");
}
else {
System.out.println ("La rueda es para un vehículo pequeño");
}
public class CocinaCasa{
int numeroDeFuegos;
boolean esIndependiente;
//Constructor general
public CocinaCasa(){
numeroDeFuegos = 0;
esIndependiente = false;
}
//setters
public void setNumeroDeFuegos(int valorNumeroDeFuegos){numeroDeFuegos = valorNumeroDeFuegos;}
public void setEsIndependiente(boolean valorEsIndependiente){esIndependiente = valorEsIndependiente;}
}
public class SalonCasa{
int numeroDeTelevisores;
String tipoSalon;
//Constructor general
public SalonCasa(){
numeroDeTelevisores = 0;
tipoSalon = "Desconocido";
}
//setters
public void setNumeroDeTelevisores(int valorNumeroDeTelevisores){numeroDeTelevisores = valorNumeroDeTelevisores;}
public void setTipoSalon(String valorTipoSalon){tipoSalon = valorTipoSalon;}
}
public class Casa{
private double superficie;
private String direccion;
private SalonCasa miSalonCasa;
private CocinaCasa laCocinaCasa;
//Constructor general
public Casa(){
superficie = 0.0;
direccion = "Desconocida";
miSalonCasa = new SalonCasa();
laCocinaCasa = new CocinaCasa();
}
public Casa(double valorSuperficie , String valorDireccion, SalonCasa objetoSalonCasa, CocinaCasa objetoCocinaCasa){
superficie = valorSuperficie;
direccion = valorDireccion;
miSalonCasa = new SalonCasa();
laCocinaCasa = new CocinaCasa();
}
//setters para atributos simples de la clase
public void setSuperficie(double valorSuperficie){superficie = valorSuperficie;}
public void setDireccion(String valorDireccion){direccion = valorDireccion;}
//setters para atributos simples dentro de atributos objetos que a su ves son campos de un objeto tipo Casa
public void setNumeroDeFuegos(int valorNumeroDeFuegos){laCocinaCasa.setNumeroDeFuegos (valorNumeroDeFuegos);}
public void setEsIndependiente(boolean valorEsIndependiente){laCocinaCasa.setEsIndependiente(valorEsIndependiente);}
public void setNumeroDeTelevisores(int valorNumeroDeTelevisores){miSalonCasa.setNumeroDeTelevisores(valorNumeroDeTelevisores);}
public void setTipoSalon(String valorTipoSalon){miSalonCasa.setTipoSalon(valorTipoSalon);}
}
public class Profesor{
String nombre, apellidos;
boolean casado, especialista;
int edad;
public Profesor(String suNombre, String susApellidos, boolean estaCasado, boolean esUnEspecialista, int suEdad){//Constructor 1
nombre = suNombre;
apellidos = susApellidos;
casado = estaCasado;
especialista = esUnEspecialista;
edad = suEdad;
}
public Profesor(){//Constructor 2
nombre = "";
apellidos = "";
casado = false;
especialista = false;
edad = 0;
}
//setters
public void setNombre(String valorNombre){nombre = valorNombre;}
public void setApellidos(String valorApellidos){apellidos = valorApellidos;}
public void setCasado(boolean valorCasado){casado = valorCasado;}
public void setEspecialista(boolean valorEspecialista){especialista = valorEspecialista;}
public void setEdad(int valorEdad){edad = valorEdad;}
//getters
public String getNombre(){return nombre;}
public String getApellidos(){return apellidos;}
public boolean getCasado(){return casado;}
public boolean getEspecialista(){return especialista;}
public int getEdad(){return edad;}
}
public class Bombero{
String nombre, apellidos;
boolean casado, especialista;
int edad;
public Bombero(String valorNombre, String valorApellidos, boolean valorCasado, boolean valorEspecialista, int valorEdad){
nombre = valorNombre;
apellidos = valorApellidos;
casado = valorCasado;
especialista = valorEspecialista;
edad = valorEdad;
}
//setters
public void setNombre(String valorNombre){nombre = valorNombre;}
public void setApellidos(String valorApellidos){apellidos = valorApellidos;}
public void setCasado(boolean valorCasado){casado = valorCasado;}
public void setEspecialista(boolean valorEspecialista){especialista = valorEspecialista;}
public void setEdad(int valorEdad){edad = valorEdad;}
//getters
public String getNombre(){return nombre;}
public String getApellidos(){return apellidos;}
public boolean getCasado(){return casado;}
public boolean getEspecialista(){return especialista;}
public int getEdad(){return edad;}
}
public class Medico{
String nombre;
String apellidos;
int edad;
boolean casado;
String numeroDocumentoIdentidad;
String especialidad;
int multiploEdad;
Aquí primero: hay un error ortográfico, segundo: concatenaste en el System.out.println la variable mutiploEdad en ves de multipoEdad(error ortográfico) y tercero: en el texto de la cadena has confundido una comilla recta doble (") con una comilla inglesa (”) "años” esto da lugar a error de compilacion, o mas bien no has incluido la comilla recta doble de cierre para que el texto salga resaltado entre comillas inglesas ya que al principio de la cadena también usas una comilla inglesa, lo correcto seria:public void calculoParaMultiploEdad (){
int modEdad;
modEdad = edad % 5;
mutiploEdad = 5 - modEdad; // <---Aqui hay otro error ortografico, trata de idetificarlo por ti mismo.
System.out.println("“El médico de nombre " + nombre +" con especialidad " + especialidad + " tendrá una edad múltiplo de 5 dentro de " + mutiploEdad + " años”);
}
public void setCasado(boolean valorCasado){
casado = valorCasado;
if (casado == true) {
System.out.println("El estado civil del médico ha cambiado a: casado");}
else {System.out.println("El estado civil del médico ha cambiado a soltero");}
}
public class Motor{
int tipoBomba;
String tipoFluido, combustible;
//constructor
public Motor(){
tipoBomba = 0;
tipoFluido = "";
combustible = "";
}
public void setTipoBomba(int valorTipoBomba){tipoBomba = valorTipoBomba;}
public void setTipoFluido(String valorTipoFluido){tipoFluido = valorTipoFluido;}
public void setCombustible(String valorCombustible){combustible = valorCombustible;}
public int getTipoBomba(){return tipoBomba;}
public String getTipoFluido(){return tipoFluido;}
public String getCombustible(){return combustible;}
public boolean dimeSiMotorEsParaAgua(){boolean motorEsParaAgua = false; if(tipoBomba == 1){motorEsParaAgua = true;}else{} return motorEsParaAgua;}
}
public class Motor{
int tipoBomba;
String tipoFluido, combustible;
//constructor
public Motor(){
tipoBomba = 0;
tipoFluido = "";
combustible = "";
}
public void setTipoBomba(int valorTipoBomba){tipoBomba = valorTipoBomba;}
public void setTipoFluido(String valorTipoFluido){tipoFluido = valorTipoFluido;}
public void setCombustible(String valorCombustible){combustible = valorCombustible;}
public int getTipoBomba(){return tipoBomba;}
public String getTipoFluido(){return tipoFluido;}
public String getCombustible(){return combustible;}
public void dimeTipoMotor(){
switch (tipoBomba){
case 0: System.out.println("aun no ha establecido un valor definido para el tipo de bomba, por favor indique el numero relacionado al tipo de bomba.");break;
case 1: System.out.println("La bomba es una bomba de agua.");break;
case 2: System.out.println("La bomba es una bomba de gasolina.");break;
case 3: System.out.println("La bomba es una bomba de hormigón.");break;
case 4: System.out.println("La bomba es una bomba de pasta alimenticia.");break;
default: System.out.println("Ha indicado un valor no válido para tipo de bomba, los valores validos son del 1 al 4, por favor indique un valor valido.");break;
}
}
}
//**tienes declaradas variables cuyo nombre empiezan con letras mayúsculas y otras con letras minúsculas, mi consejo es que las declares todas empezando de la
misma forma, ya sea empezando en mayúscula o en minúscula, aunque esto no afecta, siempre y cuando tengas pendiente la forma en como declaraste la variable para el resto del
desarrollo del código, es mas practico si las declaras todas de igual forma.*/
public class Persona {
String Nombre;
String Apellidos;
String Ciudad;
String numeroDocumentoIdentidad;
int Edad;
//Constructor: cuando se cree un objeto taxi se ejecutará el código que incluyamos en el constructor
/**Tu comentario en el constructor debería decir: cuando se cree un objeto (Persona)se ejecutará el código que incluyamos en el constructor
* ya que estas desarrollando una clase tipo Persona y no tipo Taxi, en el desarrollo de este
as empleado una variable que se correspondería mas a una clase tipo Taxi y no tipo Persona, como es: distrito.*/
public Persona () {
[color=red]ciudad[/color] = "Madrid"; /**Aquí el error es que as escrito: ciudad, cuando as declarado: Ciudad, debes tener presente
exactamente como as declarado una variable. También el código que empleas para intentar cambiar el color del valor de ciudad, dará lugar a error de compilación,
hasta el momento no tengo un aporte para como cambiar el color a una cadena String*/
aficiones = ""; // aficiones es una variable que no as declarado en la clase, ni en un método por tanto generara error.
distrito = "Desconocido";
} //Cierre del constructor … el código continúa …
//Método para establecer la matrícula de un taxi. Aquí el comentario debería ser: Método para establecer el numeroDocumentoIdentidad de la persona.
public void setnumeroDocumentoIdentidad (String valornumeroDocumentoIdentidad) {// luego de valor, la variable debe empezar con letra mayuscula: (String valorNumeroDocumento...)
numeroDocumentoIdentidad = valornumeroDocumentoIdentidad; // luego de valor, la variable debe empezar con letra mayúscula: (... = valorNumeroDocumentoIdentidad)
} //Cierre del método
//Método para establecer el distrito de un taxi
public void setDistrito (String valorDistrito) {
distrito = "Distrito " + valorDistrito;
} //Cierre del método
public void setEdad (int valorEdad) {
tipoEdad = valorEdad; // tipoEdad no es una variable que ayas declarado, la sintaxis debería ser: Edad = valorEdad;
} //Cierre del método
/**Aquí el único de los 4 getters que se compilara sin error sera el getter getEdad, porque para los demás getters estas indicando un return con variables no declaradas
en java no es lo mismo nombre que Nombre, el simple cambio de una letra mayúscula o minúscula dará lugar a errores de compilación*/
public String getNombre () { return nombre; } //Cierre del método
public String getApellidos () { return apellidos; } //Cierre del método
public String getCiudad () {return ciudad;}//Ciere del método
public int getEdad () { return Edad; } //Cierre del método
} //Cierre de la clase
public class Persona {
String nombre;
String apellido;
String ciudad;
String numeroDocumentoIdentidad;
int edad;
//Constructor: cuando se cree un objeto Persona se ejecutará el código que incluyamos en el constructor
public Persona () {
nombre = "";
apellido = "";
ciudad = "Madrid";
numeroDocumentoIdentidad = "";
edad = 0;
} //Cierre del constructor … el código continúa …
//Método para establecer el nombre
public void setNombre (String valorNombre) {
nombre = valorNombre;
} //Cierre del método
//Método para establecer el apellido
public void setApellido (String valorApellido) {
apellido = "Apellido " + valorApellido;
} //Cierre del método
//Método para establecer la ciudad
public void setCiudad(String valorCiudad){
ciudad = valorCiudad;
}//Cierre del metodo
//Método para establecer el numeroDocumentoIdentidad
public void setNumeroDocumentoIdentidad(String valorNumeroDocumentoIdentidad){
numeroDocumentoIdentidad = valorNumeroDocumentoIdentidad;
}//Cierre del metodo
//Método para establecer la edad
public void setEdad (int valorEdad) {
edad = valorEdad;
} //Cierre del método
//Metodo getters
public String getNombre () { return nombre; } //Cierre del método
public String getApellido () { return apellido; } //Cierre del método
public String getCiudad () {return ciudad;}//Ciere del método
public String getNumeroDocumentoIdentidad(){return numeroDocumentoIdentidad;}//Cierre del metodo
public int getEdad () { return edad; } //Cierre del método
} //Cierre de la clase
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