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

Páginas: 1 ... 72 73 74 75 76 [77] 78 79 80 81 82 ... 100
1521
Hola papichanchi, tu código tiene partes buenas pero no es correcto por los siguientes razones:

- No cumples lo que pide el enunciado, que es crear un método tipo procedimiento denominado dimeTipoMotor()

- Un método set debe usarse solo para establecer el valor de un atributo, no debe usarse para otras cosas (cada método debe tener sus responsabilidades, no hay que mezclarlas). Piensa que es como si ves un cartel en la calle y pone "Pescadería", no tendría lógica que entres en la tienda y luego vendan carne. Por eso un método set (que significa establecer) no debe usarse para otras cosas.

Aunque tu código te funcione eso no significa que si te lo revisara un supervisor lo considerara bueno.

Salu2

1522
Hola, no parece lógico tener una única clase. En programación orientada a objetos se trabaja normalmente con varias clases y además con una clase con el método main. Léete esto: http://aprenderaprogramar.com/index.php?option=com_content&view=article&id=621:clase-con-el-metodo-main-clase-principal-iniciadora-o-programa-principal-en-java-concepto-cu00655b&catid=68:curso-aprender-programacion-java-desde-cero&Itemid=188

De acuerdo con el enunciado del problema podríamos identificar las siguientes clases:

- Terreno (representa el terreno, también podrías llamarla TableroDeJuego o TableroDeSimulacion si quieres)

- Mina (representa una mina)

- Robot (representa al robot)

- Reloj (representa el reloj para el juego o simulación)

Además serán necesarias posiblemente las siguientes clases:

- ControladorDelJuego (o ControladorDeSimulacion): se encarga de supervisar el estado de la partida y finalizarla si se cumplen las condiciones para ello.

- ColocadorDeMinas: se encargará de colocar las minas sobre el tablero de juego.

- ControladorDeRobot: se encargará de controlar el movimento del robot. No tengo muy claro si el movimiento del robot lo debe controlar el usuario como si fuera un juego o si lo debe controlar el programa. Este es un aspecto importante, ya que haría variar bastante el código que hay que crear según sea una cosa u otra.

Y además de estas posiblemente sean necesarias algunas clases auxiliares más. Crear este programa con su entorno gráfico requiere bastante tiempo y conocimientos para poder codificarlo. No es sencillo (tampoco es una super complicación).

Saludos

1523
Hola, ¿velneo es un lenguaje de programación o una aplicación? Y si es una aplicación, ¿en qué lenguaje está desarrollada? Salu2

1524
Aprender a programar desde cero / Re:Donde aprender html5 y css3
« en: 29 de Noviembre 2014, 17:08 »
 ;D ;D ;D El problema tal y como dices es que todo es demasiado amplio. Te recomiendo la información y tutoriales de mozilla developer, por ejemplo https://developer.mozilla.org/es/docs/HTML/HTML5, el problema es que también son demasiado amplios  :-[

1525
Hola, sobre la cuestión del return ten en cuenta lo siguiente:

se devuelve lo que indique el primer return que se encuentre.

No pueden existir dos return, excepto si un return está dentro de un condicional. En ese caso sí tiene sentido que existan dos return, porque el método siempre ha de devolver algo y hay que tener previsto que pueda ocurrir que no se cumpla el condicional.



Sobre la otra cuestión, lo que devuelva return entradaTeclado.substring(0, i+1); depende del valor de i, y el valor de i va cambiando cada vez que se repite el bucle (empezará valiendo 0, luego 1, luego 2, ... así hasta el último índice de la palabra).



for (int i=0;i< entradaTeclado.length()-1;i++) {

El propósito es ir desde la primera letra (posición cero de la palabra) hasta la última letra de la palabra (posición igual al valor de longitud menos uno).

Crea un código de prueba y si obtienes un resultado que no entiendas pega el código y a partir de ahí intentaría aclarar las dudas ;)

1526
¿Pero no tienes el código ya creado? Es decir, ¿no tienes el método getCursoAcademico() ya definido?

Si sólo lo estás definiendo a nivel conceptual podrías hacerlo así:

 
Código: [Seleccionar]
public String toString() {
String res = getAsignatura() + "," + getCursoAcademicoAnyoInicio() + "-"
+ getCursoAcademicoAnyoFin() + "," + getConvocatoria() + ","
+ getValor() + "," + getCalificacion();
return res;

Este método te devolvería el año de inicio del curso académico: getCursoAcademicoAnyoInicio() y el otro lo mismo para el año de terminación.

Salu2

1527
Hola, ¿qué es lo que te devuelve el método getCursoAcademico? Pega el código donde podamos ver ese método para hacernos una idea...  ;D

Supongo que no te sirve:

Código: [Seleccionar]

public String toString() {
String res = getAsignatura() + ", 2014-2015" + "," + getConvocatoria() + ","
+ getValor() + "," + getCalificacion();
return res;

1528
Hola, puedes hacerlo con php usando la función file_get_contents y funciones para tratamiento de cadenas. No es sencillo, pero tampoco es superdifícil. Puedes ver la información sobre la función file_get_contents y funciones de cadenas aquí: http://aprenderaprogramar.com/index.php?option=com_content&view=category&id=70&Itemid=193

Cuando vayas a pegar código hazlo como explica aquí!!: https://www.aprenderaprogramar.com/foros/index.php?topic=1460.0

Salu2

1529
Hola, puedes hacerlo de la siguiente manera. Supón que tienes una palabra como "ambulancia" en la celda A4 y otra como "nieve" en la celda A5, "ambulatorio" en la celda A6 y "reambiguación" en la celda A7.


Lo primero sería probar la sintaxis que nos permite encontrar una cadena de texto y nos indica en qué posición se encuentra dentro de una palabra.

Para ello escribimos =ENCONTRAR("amb";A4;1) y esto nos devuelve en qué posición se encuentra amb. Si usas la versión en inglés será =FIND("amb";A4;1)

El resultado será:

ambulancia   1
nieve   #¡VALOR!
ambulatorio   1
reambiaguación   3


Aquí lo que comprobamos es que si la palabra comienza por "amb" esta función nos devuelve 1 (es decir, que amb empieza en la primera letra de la cadena).

Ahora simplemente tenemos que introducir el condicional indicando que si la cadena empieza por amb nos muestre "verdadero" y si no comienza por amb nos muestre falso

=SI(A4="ambulancia"; "verdadero"; "falso") nos diría si la palabra es ambulancia (en inglés sería IF en lugar de SI)

Para saber si una palabra empieza por "amb" escribiremos:

=SI((ENCONTRAR("amb";A4;1)=1); "verdadero"; "falso")


Aplicando la fórmula a las distintas palabras obtenemos:

ambulancia   verdadero
nieve   #¡VALOR!
ambulatorio   verdadero
reambiaguación   falso


Pruébalo y ya nos comentas si te da resultado.

Salu2

1530
Hola, en este curso tienes explicada la ordenación de números, bucles, etc.: http://aprenderaprogramar.com/index.php?option=com_content&view=category&id=28&Itemid=59

Para este caso en concreto tenemos:

Comienza el bucle externo con j=1 y el bucle interno con k=0 hasta 7

A(0)=100, A(1)=20, se cumple a(k) > a(k+1) por lo que a(0)=20, A(1)=100


Ahora k=1

A(1)=100, a(2)=4, se cumple a(k) > a(k+1) por lo que a(1) = 4, a(2)=100


Ahora k=2

a(2)=100, a(3)= 8, se cumple a(k) > a(k+1) por lo que a(2)=8, a(3)=100

Ahora k=3 ... a(3)=7, a(4)=100

Ahora k=4 ... a(4)=23, a(5)=100

Ahora k=5 ... a(5)=85, a(6)=100

Ahora k=7 ... a(6)=37, a(7)=100

Fin del bucle interno. Ahora j = 2 y k=0 hasta 6

Ahora k=0, a(0)=20, a(1)=4 por lo que a(0)=4, a(1)=20

Ahora k=1, a(1)=20, a(2)=8 por lo que a(1)=8, a(2)=20

Ahora k=2, a(2)=20, a(3)=7 por lo que a(2)=7, a(3)=20

Ahora k=3, a(3)=20, a(4)=23 NO CUMPLE

Ahora k=4, a(4)=23, a(5)=85 NO CUMPLE

Ahora k=5, a(5)=85, a(6)= 37 por lo que a(5)=37, a(6) = 85

...

Si seguimos ejecutando el algoritmo vemos que:

los números más grandes llegan a la parte derecha de la lista y los más pequeños se quedan en la parte izquierda.

En cada iteración del bucle externo se coloca el elemento más grande a la derecha de la lista

... finalmente obtenemos la lista ordenada de menor a mayor:

El resultado será: 4, 7, 8, 20, 23, 37, 85, 100

Salu2

1531
La sintaxis depende de la base de datos que estés usando (¿qué base de datos es?). Una forma de comprobar la sintaxis es acceder al gestor de base de datos y ejecutar directamente la consulta comprobando los resultados. Una vez tengas la sintaxis chequeada en el gestor, trasládalo al código y comprueba que obtienes los mismos resultados  :D

1532
Hola, tienes que hacer consultas que pueden ser:

SELECT *
FROM   cliente
WHERE  cli_nombre LIKE 'a%' OR
       cli_nombre LIKE 'b%' OR
       cli_nombre LIKE 'c%' OR
       cli_nombre LIKE 'd%' OR
       cli_nombre LIKE 'e%' OR
   cli_nombre LIKE 'f%' OR
   cli_nombre LIKE 'g%' OR
   cli_nombre LIKE 'h%' OR
   cli_nombre LIKE 'i%' OR
   cli_nombre LIKE 'j%'


O usando expresiones regulares:

SELECT *
FROM   cliente
WHERE  cli_nombre REGEXP '^[a-j]';

Podrías intentarlo con between pero aquí seguramente fallaría si tuviera que entremezclar eñes por ejemplo:

SELECT *
FROM   cliente
WHERE  cli_nombre BETWEEN 'a%' AND 'j%'



Te recomiendo que hagas pruebas primero por si acaso.

Salu2

1533
Ahora lo del case mucho mejor. Lo que yo quiero decir en relación a cuestiones básicas sobre diseño en programación orientada a objetos lo tienes en: http://aprenderaprogramar.com/index.php?option=com_content&view=category&id=68&Itemid=188

Posiblemente también en alguno de esos libros que citas, pero no lo sé.

El diseño se debe ir aprendiendo poco a poco, a medida que vayas progresando. Ir aprendiendo desde ya no es un desperdicio, es hacer las cosas bien. No se trata de que te dediques únicamente al diseño ni de que en unos días pienses que vas a interiorizar todos los conceptos que hay en torno a la programación orientada a objetos. ¿Y cómo hacerlo? Como dice el refrán: si tienes prisa, vete despacio.

Salu2

1534
Hola, no quiero ser crítico "porque sí", en el código se ven cosas muy bien hechas, manejo de instrucciones y sentencias que utilizas bien, y otras cosas que no están bien hechas (al menos desde mi punto de vista). En concreto:

Sigues sin tener un diseño orientado a objetos. Tienes una única clase que lo hace todo, incluido el mostrar mensajes por consola. Por contra, la clase con el método main no hace nada. Esto denota que no estás haciendo un buen diseño orientado a objetos posiblemente porque te falta estudiar e interiorizar cómo se trabaja la orientación a objetos.

La otra cosa que llama la atención a cualquier programador experimentado y que podemos decir que está mal concebida es el uso de switch con una ristra de sentencias case detrás:

case 65:
letras[m] = "A";
break;
case 66:
letras[m] = "B";
break;
...
...
...

Cuando tienes case 65, case 66, case 67 ... y así sucesivamente esto sugiere un mal diseño del código: se ve que sería más adecuado usar un bucle que usar una ristra de cases. Para usar un bucle tienes que pensar cómo hacerlo, posiblemente debas usar instrucciones auxiliares que permiten obtener el valor numérico asociado a una letra y al revés (como Encoding.ASCII.GetBytes(cadena); ó (int)c donde c es un carácter)

Al ver esa ristra de cases, lo que induce a pensar es que las 50 líneas que has empleado se podrían reducir a 10 si usas un bucle y las instrucciones adecuadas. No te hablo que siempre sea así, habrá casos en que no sea posible, pero en general ver algo así indica un fallo en la concepción del código.

Salu2!

1535
Hola, te doy una referencia:

Modificadores de acceso: http://aprenderaprogramar.com/index.php?option=com_content&view=article&id=665:public-private-y-protected-javatipos-de-modificadores-de-acceso-visibilidad-en-clases-subclases-cu00693b&catid=68:curso-aprender-programacion-java-desde-cero&Itemid=188 (tendrías que buscar los modificadores que existen en el lenguaje que estés usando)

Método toString(): http://aprenderaprogramar.com/index.php?option=com_content&view=article&id=666:sobreescribir-metodos-tostring-y-equals-en-java-ejemplos-y-ejercicios-resueltos-comparar-objetos-cu00694b&catid=68:curso-aprender-programacion-java-desde-cero&Itemid=188 (tendrías que ver los detalles en el lenguaje que estás usando)

Este método sera invocado cuando se construya el objeto. -- > Significa que debes incluirlo en el constructor. El código del constructor es el código que se ejecuta cuando se crea un objeto.

Métodos set: http://aprenderaprogramar.com/index.php?option=com_content&view=article&id=440:tipos-de-metodos-en-java-metodos-consultores-o-de-acceso-getters-y-modificadores-setters-cu00626b&catid=68:curso-aprender-programacion-java-desde-cero&Itemid=188

mostrar la información de cada objeto: para ello tienes que usar el método toString, que lo que hace es precisamente mostrar la información de un objeto.

Salu2

1536
Posiblemente porque hay aspectos de configuración que no hayas introducido. Por ejemplo cuando creas un datagrid puedes establecer a través de menús de configuración con qué base de datos va a estar ligado el datagrid, si no lo has especificado, no te reconocerá la base de datos con la que enlaza y te dará errores. Igual que esto hay otros aspectos de configuración que se pueden establecer a través de menús gráficos y eso no figura en el código. Salu2

1537
Hola, pega el código completo, tanto html como css, para poder reproducirlo y ver dónde está el problema. También sube como archivos adjuntos las imágenes que estés utilizando, o indica sus urls si están disponibles en photobucket, picassa, o alguna web. De esa forma podremos hacer exactamente lo que estés haciendo tú para comprobar qué es lo que ocurre. Salu2

1538
Me alegro que te haya funcionado, ten en cuenta que esto es una cuestión básica y ahí no deberías tener problemas. Te recomiendo que sigas este curso para repasar las cuestiones básicas: http://aprenderaprogramar.com/index.php?option=com_content&view=category&id=37&Itemid=61

Salu2

1539
Hola, lo que yo quise decir está aquí: http://aprenderaprogramar.com/index.php?option=com_content&view=category&id=68&Itemid=188

En ese curso se aprenden las cuestiones básicas de diseño. Una vez se conozcan las cuestiones básicas, podrías pasar a estudiar patrones de diseño, que podríamos ver como temas avanzados de diseño. Pero primero hay que empezar por lo básico, y estos dos libros creo que van más allá de lo básico. Salu2

Páginas: 1 ... 72 73 74 75 76 [77] 78 79 80 81 82 ... 100

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