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 - Lorenzo31

Páginas: 1 ... 6 7 8 9 10 [11] 12 13 14 15 16 ... 20
201
Muy buenas César, ante todo gracias por las molestias de echarle un vistazo al proyecto.

Sobre el funcionamiento, es correcto todo lo que explicas, yo añadiría que para verificar si el comando introducido cumple los parametros solicitados he utilizado una funcion de la clase String muy interesante, que es matches().

Código: [Seleccionar]
while (!linea.matches("[a-z][a-z][a-z] \".*\"")
En este caso con unos parametros definidos de 3 letras de la a -z, seguido de una " inicial y una final (\") y con cualquier texto en medio de estas (.*) .

Sobre tu pregunta del nombre de las clases, bueno tienes toda la razón, no son nombres apropiados, el motivo es que en el mismo proyecto tengo 3 clases servidor más y tres clientes, de ahí ese nombre.

Para el proyecto final, lo documentaré mucho mejor y pondré nombres más clarificadores. El proyecto final tiene que aceptar multiples clientes (ya lo hago en uno anterior) y además añadir más funciones como modificar archivos etc...

Te adjuto el documento del que saqué los ejercicios y una breve parte teórica (insuficiente para lo que pide hacer luego). Pero si sirve para que otros practiquen el TCP genial. Es de la universidad Carlos III de madrid, una url.

http://www.it.uc3m.es/~celeste/docencia/cr/2003/PracticaSocketsTCP/

Cuando termine este ultimo proyecto colgaré todos los anteriores además de este.

Ah, y sobre la busqueda desde C: , sí esta claro que hace que tarde más, si no encuentra rápido el archivo, se podría pasar la carpeta en la que buscarlo, pero el ejercicio pedia expresamente que fuera busqueda en cualquier lugar y de ahí la forma de busqueda.

Cualquier otro comentario, encantado de leerte, me costó bastante entender la cantidad de cosas que hay que abrir, InputStream, Outputstream, BufferedInputStream, File además de array de bytes ... otras clases que aun no he probado son FileInputStream y FileOutputStream, si puedes explicarme brevemente la diferencia con las anteriores, te lo agradecería. Puede ser que permta el envio de archivos mayores o algo mas optimizado? aunque el tamaño va en funcion de los bytes declarados no del Input o Output.
Gracias César.

*Modifico para añadir, que pueden buscarse tantos archivos al a vez como se quiera, es decir get "test.txt", luego get "aprenderaprogramar.txt" etc.. y a partir de la segunda busqueda va muchisimo mas rápido.
Y una pregunta que me lleva un poco de cabeza, he probado a buscar y guardar una JPG, bien el servidor la encuentra y "dice que envia" 800.000 bytes (correcto) pero al recibirlo en el cliente, el InputStream.read() siempre coge un máximo de 65536 bytes.

No se porque, si le marco el length total, creo que tiene que ver con el OutputStream.write() que no llega a mandar el total, podrías añadirme alguna luz sobre este asunto, busco por las redes pero no encuentro respuesta. Gracias.

202
[Nota: el código se encuentra en la respuesta de César Krall a continuación]

Buenas de nuevo, he estado realizando una práctica con TCP. Iré ampliandola pero dejaré aquí lo que llevo hasta el momento.

Basicamente es un servidor y una aplicacion cliente. Para abrirla debeis usar dos BlueJ, en uno abrir el Host, y en el otro acto seguido el cliente.

El programa buscará cualquier archivo (txt, en principio otra cosa no la he probado) y si lo encuentra lo enviará a la dirección destino, que en este caso es fija por el momento (cambiar la dirección que yo he puesto por la de vuestro escritorio o archivo destino).

Las premisas son las siguientes en este ejercicio:

Ejercicio 1:Cread un servidor que abra un fichero solicitado por un cliente y se lo envíe a través de la red. El servidor aceptará el siguiente formato de peticiones:


    Para proporcionar un fichero al cliente:

   1   get "nombre_completo_fichero"

    Para dar por finalizado el servicio:

   2   bye

Espero sirva a otras personas y bueno también acepto comentarios, sugerencias o cualquier consejo para aprender más del tema. Este es mi granito de arena en el foro, ir colgando código que vea interesante. (aviso en la primera busqueda tarda, sobre todo en copiar y madar el archivo seleccionado, por la creación del espacio imagino, luego es más fluido. Tened paciencia)

Saludos, espero comentarios y sugerencias de los expertos también.

203
Buenas Marcky

Tu codigo funciona,pero una forma más lógica de hacer ese bucle for, seria iniciarlo a 1 y poner como limite que llegue a pot (potencia)

algo así

for(x = 1, x >= pot, x++)

Sobre el tema de recursión, que no es importante que lo sepas hacer, usarlo no es sencillo, yo al menos lo veo así.

Código: [Seleccionar]
public int multiplicador(int numero, int potencia){
        if(potencia > 1) {numero = numero + multiplicador(numero, potencia -1);}
       
        return numero;
}
Se me ocurre esa por ejemplo, lo que hace es llamarse a si misma.       

204
Buenas,

el método setMatricula de la clase TaxiCond, lo que hace es llamar al método setMatricula de la clase Taxi, donde previamente has creado una instancia del mismo.

private Taxi vehiculoTaxi;

Si vas al metodo setMatricula de la clase Taxi, verás lo que hace realmente, ahi simplemente la esta llamando vehiculoTaxi.setMatricula y le pasa un paramentro, valorMatricula para que haga lo que debe hacer (lo verás al mirar el código).

Un saludo ;)

205
Aprender a programar desde cero / Re:Ejercicio CU00630B Java desde cero
« en: 02 de Septiembre 2015, 11:42 »
Buenas Marck,

Pequeñas deficiencias,

En la 1, dices que es una función, sin embargo retornas un void (vacío), si es una función que nos retorna?

El resto todo correcto :)

Un saludo.

206
Aprender a programar desde cero / Re:EJERCICIO CU00684B REALIZADO
« en: 31 de Agosto 2015, 18:41 »
Buenas tardes ronal, veo bien tu esquema. Adelante :)

207
Bueno, otros te lo explicaran mejor, pero voy a intentarlo.

Imaginate el objeto Habitacion

 
Código: [Seleccionar]
public class Habitacion {
      //Atributos de clase
      int paredes;
      int camas;
      boolean ventana;
         
    //Constructor     
     public Habitacion( int numeroParedes, int numeroCamas, boolean tieneVentana){
                 paredes = numeroParedes; camas = numeroCamas; ventana = tieneVentana; }

    //Getters y Setters  (estos los imaginas)
} //fin

Ahora imagina el objeto Casa

Código: [Seleccionar]
public class Casa{
    //atributos de clase
     Habitacion habitacion1;
     Habitacion habitacion2;
     Cocina cocina; (esta clase no la he creado pero imaginala o creala con sus atributos, nevera, horno...)
     
   //Constructor
      public Casa (Habitacion habit1, Habitacion habit2, Cocina cocina1){
          habitacion1 = habit1; habitacion 2 = habit2; cocina = cocina1; }

    //Getters y setters

   } //fin


En este ejemplo ves como un objeto (Habitacion), forma parte a su vez de otro objeto (Casa) en forma de atributo de la clase.

208
Buenas, los metodos publicos, son vistos desde cualquier clase que les llame, los metodos que no llevan ningun nombre, por defecto son vistos desde las clases del mismo paquete.

Sobe si el primer metodo tiene variables locales

String Combinacion (String valor_texto1, String valor_texto2) {

Esas dos variables que son pasadas al método, nacen y terminan con el método, son de uso local.

Creo que por ahí van tus preguntas, un saludo.

209
bueno, es opinable claro, pero solo que tengas presente que existe esa opcion.

210
Buenas tardes, mmm bueno a esto igual otros te responderán mejor que yo, pero en principio ambas opciones son válidas, variables locales o una variable global.

El uso de una opción o la otra ira en función de las necesidades, por ejemplo si usas la variable en 50 metodos o la llamas de unos a otros, sea mas interesante que sea global, si es para dos metodos y tal como se ejecuta el metodo, deja de tener sentido guardar el valor en un atributo, será mejor en local.

Pero ambas serían correctas en este ejercicio, creo estoy respondiendo a tu pregunta. La función length() en sí es muy util para saber el tamaño de las cadenas etc.. pero por ahí no iba tu pregunta al final.

Un saludo

211
hola Luis! podrías ampliar tu post porfavor, exactamente no entiendo a que te refieres , que el método length() no tiene utilidad en Combinador, porque ? en que te basas? así podremos ayudarte mejor

212
Buenas todo correcto menos la pregunta a) que es sí.
Te paso el link de mi ejercicio donde también falle esa pregunta y el link donde se explica ese tema.

https://www.aprenderaprogramar.com/foros/index.php?topic=2394.msg11393#msg11393

https://www.aprenderaprogramar.com/foros/index.php?topic=1147.0

213
Solucionado segun el siguiente post.

AÑADIDO: El problema era porque no tenía las tres clases con las que estaba trabajando en el mismo proyecto.

214
Ese error te indica que le estás pasando al constructor de Taxi, unos tipos que no corresponden con los que espera recibir, asegurate bien que pasas String y int. porque ahi esta el error.

"Constructor taxi in class Taxi cannot be applied to given types; required: java.lang.String,java.lang.String,int.
The operator that you use here cannot be used for the type of value that you are using it for. You are either using the wrong type here, or the wrong operator."

215
Buenas Ronal, en principio el ejercicio esta ok, comentarte dos cosas,

1- boolean condicion, lo inicias en false en el constructor y no lo usas más, teniendo en cuenta que es un atributo de clase, o le haces un getter por si pensaste en algo o si no lo usas lo quitaria.

2- el nombre de las variables debe ser claro para el que lo lea "condicion" es muy generico, que condicion va a cumplir ese boolean (o otra variable).
Seria mas logico boolean objetoCreado; o algo así indicando un poco que va a hacer.

El resto lo veo correcto,  bien el case, me gusta lo de usar name() de los enum, es una función deduzco que retorna el propio nombre, no la conocia hasta ahora :)

Sigue así.

216
Muy buenas Ogramar, me parece genial la solucion que le diste para tener un acceso mas rapido.

A la primera pregunta, sí Form son las nuevas clases que cree, despues de empezar (o casi terminar) me di cuenta que podria haberlo dividido en,

FormPelicula (con todo lo que se hace sobre una pelicula, crear eliminar mostrar). FormSala, etc... pero como era para practicar las interfaces graficas un poco lo deje como estaba.

Sobre tu segunda pregunta, efectivamente, separé de la forma en la que se explicaba en el curso de java avanzado. Viene siendo;

Declarar objetos
Constructor  Y dentro creación de formulario y eventos sobre objetos.

Lo que hice en el ultimo formulario el de las entradas es organizarlo un poco mejor añadiendo funciones, por ejemplo: ActualizarFormulario() InicializarObjetos() o así, para leerlo de una forma más organizada.

La ultima pregunta, revisaré la razón exacta, pero es posible que cuando cree los metodos adaptados a lo que pedía el ejercicio inicial, lo hice de esa forma, enviando Strings con parametros concretos a los metodos en lugar de objetos completos.
Lo que me obligó (si no modificando) a respetarlo en los Formularios Graficos.

Miraré de ampliar la información útil para otros usuarios sobre tus preguntas Ogramar.

217
Buenas tardes, por fin terminé la parte visual, de la aplicación del cine, comentar que , he dejado el menú inicial por pantalla porque así tiene algo del primer proyecto :)

No he hecho retoques, los dejo pendientes, los comentados por Ogramar, en la semanas proximas lo haré ya para tenerlo yo.

Pido a algun moderador, suba el zip que añado ahora al primer post, junto al PracticaDelCine original, para que haya las dos versiones a mano para su descarga ;)

Espero comentarios como siempre y doy por finalizada la práctica del cine.  Gracias a todos por el apoyo en este proyecto, aprendí mucho con él.

218
Buenos días,

Vale lo veo correcto y la solucion que propones también ;) sigue así.

219
Interesante esa idea de invocar la ordenación desde un metodo a parte y llamarlo, así encuentras rápido donde modificar al depurar, tomo nota tb.

Pronto tendré terminada la version "grafica" y dejaré ya las dos versiones puestas para que cualquiera pueda consultar el código y utilizarlo.

Gracias como siempre por tu tiempo Ogramar, que es un coñazo mirar código de otro y además que lo organiza bien.

220
Buenas, muy bien resuelto el ejercicio con esa int n  eclarada fuera del bucle for, para que sirva para el while.

Por comentarte algo, usa nombres de variables faciles de leer y entender luego por cualquiera que lea el codigo. "n" o "vof" si son variables de metodo o de clase deben ser más claras, totalLetras o algo así se me ocurriria.

Por darte una idea para completar, comparando P y p dice que son distintas, en lugar de equals puedes usar equalsIgnoreCase, ya sé que no se da en el capitulo pero para que vayas mirando metodos ;)

Buen trabajo.

Páginas: 1 ... 6 7 8 9 10 [11] 12 13 14 15 16 ... 20

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".