|
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 - Nagisa
1
« en: Miércoles 9 de Septiembre de 2009, 21:23 »
En la linea 63 te falta un ';'
2
« en: Viernes 4 de Septiembre de 2009, 19:14 »
Buenas: Varios fallos en el método quicksor. Te pongo tu código y al lado el comentario. public void quicksor (int vec[],int izq, int der) { i=izq; // No declaras tipo de i j=der; // No declaras tipo de j int medio=vec[(izq+der)/2]; do{ while(vec[i]>medio); // Sobra el ';' { i=i+1; } while(vec[j]<medio); // Sobra el ';' { j=j-1; } if(i<=j) { aux=vec[i]; // No declaras tipo de aux vec[i]=vec[j]; vec[j]=aux; } } while(i<j); // OJO: Esta esta bien, aqui no sobra el ';' if(izq<j) { quicksort(vec,izq,j); // Realmente esta intentando crear un objeto de la clase quicksort. El metodo es quicksor (sin la t al final). } if(i<der) { quicksort(vec,i,der); // Realmente esta intentando crear un objeto de la clase quicksort. El metodo es quicksor (sin la t al final). } }
Además, la llamada inicial desde el main() a quicksor la haces sin parámetros. O bien los pones, o bien te creas una versión del método que se encarge de calcularlos. Sería algo así: public void quicksor () { quicksor (this.vec, 0, this.tam - 1); }
Además, en la declaración de vec lo defines como array de floats, pero en el método quicksor lo usas como array de int. Cambia uno de los dos. Todas estas correcciones (salvo los ; de los while) te las detecta automáticamente un IDE tipo eclipse. Prueba a cambiar de IDE Otro detalle. Los indices en java van de 0 a n-1, por lo que al acceder a las posiciones del array tienes que tenerlo en cuenta. Esto te afecta a cuando lo llenas y lo pintas. Estos métodos quedarían asi: for (int i = 0; i <= tam-1; i++) { do{ System. out. print( "ingrese un numero: "); texto = lee.readLine(); } while (texto.length()==0); } } public void imprimir() { for (int i = 0; i <= tam-1; i++) { System. out. print (vec [i ] + " "); } }
Además, hay algún error en el código por que se me queda enbuclado. Voy a echarle un vistazo, a ver si lo veo. EDITADO: Ya he visto el fallo en el método de ordenación. Al intercambiar los elementos no actualizas las índices. El método quicksor quedaría así: // ... if(i<=j) { int aux = vec[i]; // No declaras tipo de aux vec[i] = vec[j]; vec[j] = aux; i++; j--; } //...
Saludos!!
3
« en: Viernes 4 de Septiembre de 2009, 18:20 »
Buenas: Haz que después de las opciones ponga algo así como "Pulse cualquier tecla para continuar..." y cuando el usuario la haya pulsado se borre la pantalla y se vuelva al principio. Te pongo un esqueleto de como sería: void main() { char opc; do { // pintamos el menu.... // leemos la opción escogida // Seleccionamos en función de la opción switch(opc) { case '1': // Lo que hace la opción 1 break; case '2': // Lo que hace la opción 2 break; case '3': // Lo que hace la opción 3 break; case '4': // Lo que hace la opción 4 printf("Salimos del programa. Adios."); exit(0); // Importante, ya que es la unica forma de abandonar el programa... break; default: printf("Opcion errónea. Introduce una nueva."); break; } printf("Pulse cualquier tecla para continuar ... "); // Borramos las pantalla y volvemos al principio. clrscr(); } while (true); }
Saludos.
4
« en: Viernes 4 de Septiembre de 2009, 17:53 »
Buenas!! Como ya te han dicho, tiene dos main(). Quita uno de los dos. Si quieres que te den mejores indicaciones, moléstate un poco y organiza algo el código (por ejemplo, posteándolo entre etiquetas CODE que queda más fácil de leer). Prueba también a identarlo, ya que ayuda a ver bloques que no has cerrado bien. En este caso, además, probaría a separar en diferentes funciones las diferentes opciones del menú. Hace que todo sea más legible y fácil de mantener. Saludos. PD: Qué tienen que ver las cuentas con el sonido que hacen las ovejas (balido)??
5
« en: Domingo 30 de Agosto de 2009, 10:09 »
Buenas: Solo comentarte un detalle que me dio muchos problemas. Cuando uses getElementById("xxxx"), asegurate que defines el atributo id del elemento (no solo el name). No se muy bien por que con Internet Explorer funciona bien (creo que te coge el name si no encuentra el id), pero a mi me dio problemas con Firefox (por lo menos la versión 2), y me costo mucho encontrar el motivo. solucion = solucion + "<TD width='20%'><i><input type='button' style='font-size:small' id='sms" + i + "' value='SMS' onclick ='abrir(" + dato + ");'/></i></TD>";
Un saludo!!
6
« en: Sábado 29 de Agosto de 2009, 16:17 »
Buenas:
Se puede hacer usando javascript. Para ello, accede a la propiedad referrer de document.
Espero que te sea útil.
Salu2!!
7
« en: Domingo 13 de Enero de 2008, 18:34 »
Uhm.... Supongo que sobra decir algo asi como "no se hacen tareas, y menos proyectos de grupo". Ya que pides ayuda, por lo menos podrias haber traducido el enunciado a castellano... Para empezar, prueba a definir los TADS que te indican, y luego plantear las operaciones pedidas en función de esos TADs. Un saludo, y suerte!!
8
« en: Domingo 13 de Enero de 2008, 07:55 »
Hola: Por lo que se de eclipse, cuando creas un proyecto, solo te pide nombre de proyecto. Luego, cuando le añades clases, para cada clase te pide un nombre y un paquete. Por lo que un mismo proyecto puede (y suele) tener más de una clase y más de un paquete. En Java no existe el concepto de "ejercicio", así que supongo que te refieres a fichero .java. En principio, si que se puede, con las siguientes limitaciones: - La sentencia package, en caso de existir, debe ser la primera del fichero. Por lo que todas las clases de ese fichero pertenecerán al mismo paquete. - Las sentencias import, en caso de existir, deben ser las siguientes en el fichero. Aquí agruparás los imports para todas las clases que definas en el mismo fichero. - Solo se puede definir una única clase pública por fichero, cuyo nombre debe coincidir con el nombre del fichero. Es decir, si el fichero se llama XXXX.java, la clase se debe llamar XXXX. Si no existe ninguna clase pública, no hay restricción en cuanto al nombre del fichero. - Puede existir cualquier número de clases no públicas. De todos modos, lo más nomal es una clase por fichero, sobre todo cuando trabajas con IDEs tipo eclipse. Cambia la definición de todas las clases públicas, salvo una (la que tenga el main). Para ello, simplemente elimina el identificador de "public". Ahora pasaran a tener acceso por defecto (llamado en algunos sitios "friendly"). Después si tienes más dudas, pregunta; aunque hay unos cuantos errores a parte de eso. Sobre todo paréntisis y llaves mal cerrados. Salu2!!
9
« en: Domingo 13 de Enero de 2008, 07:33 »
Hola: A partir de la vesión 1.4 se introdujo lo que se llama Full-Screen Exclusive Mode (Modo exclusivo a pantalla completa). Si sabes inglés, este link te lo explica bien (es el tutorial de Sun): linkEn español no conozco nigún enlace, aunque supongo que solo es cuestión de buscar un poco por Google. Espero que te haya servido de ayuda. Un saludo!!
10
« en: Viernes 28 de Diciembre de 2007, 10:53 »
Buenas!!! El fallo te lo da la sentencia unCaballo=new Caballo(Integer.parseInt(args[0]),Integer.parseInt(args[1]));
que está fuera del bloque try/cacth. Posiblemente estés intentando pasar algo que no sea numérico. Como soluciones, puedes validar primero los argumentos, o bien incluir esta llamada dentro del bloque. Salu2!!
11
« en: Domingo 23 de Septiembre de 2007, 17:09 »
Me reitero en mi respuesta: BufferedWriter bw = new BufferedWriter(new FileWriter("archivo.txt", true));
Otra opción alternativa con algunas mejoras: package Hola; import java.io.*; import javax.swing.JOptionPane; public class Jade { public static void main(String args[]) throws IOException { // new RandomAccessFile("archivo.txt", "rw"); // No se usa? String telefono; String opc; int respuesta; String nombre; String direccion; // String resul; // No se usa?? BufferedWriter bw = new BufferedWriter(new FileWriter("archivo.txt")); PrintWriter salida = new PrintWriter(bw); try { opc = JOptionPane.showInputDialog(null, "Desea ingresar un nuevo contacto SI=1 NO=2"); respuesta = Integer.parseInt(opc); while (respuesta == 1) { nombre = JOptionPane.showInputDialog(null, "ingrese el nombre"); direccion = JOptionPane.showInputDialog(null, "ingrese la direccion"); telefono = JOptionPane.showInputDialog(null, "ingrese el numero de telefono"); salida.println(" " + nombre + telefono + direccion); opc = JOptionPane.showInputDialog(null, "Desea ingresar un nuevo contacto SI=1 NO=2"); respuesta = Integer.parseInt(opc); } JOptionPane.showMessageDialog(null, "Hasta luego"); } catch (Exception e) { JOptionPane.showMessageDialog(null, "Ha habido un error. El programa se cerrara."); System.err.println(e); } finally { salida.close(); bw.close(); } } }
Saludos!!
12
« en: Sábado 22 de Septiembre de 2007, 09:42 »
Buenas: Sin ver el código fuente probablemente el fallo que estás teniendo es que cada vez que escribes un registro abres y cierras el fichero. Al hacer esto, normalmente el cursor de escritura se posiciona al principio del fichero, no al final, y acabas sobreescribiendo los registros anteriores. Para solucionarlo, en la llamada al FileOutputStream que usas, pon el flag append a true. Para más ayuda sobre esta clase, mira su APISi ves que aun así no funciona, postea tu código para que le echemos un vistazo Espero que te sea de ayuda. Un saludo.
13
« en: Viernes 14 de Septiembre de 2007, 10:45 »
Buenas!!! Dos fallos. Y los dos, de concepto: a ) Invocas a un método para un tipo!!! Es Java existen dos cosas diferenciadas, que son unos pocos tipos primitivos (char, int, float, boolean, ...) y la infinidad de clases Java (String, Image, Stack, Integer, Float, JOptionPane, ...). Los métodos solo son aplicables a las clases, con los tipos básicos lo único que puedes hacer son operaciones... En los dos primeros casos lo que haces realmente es invocar a un método estático de la clase Float, que representa a un dato de tipo float. Es lo que se conoce como un envoltorio de datos (o wrapper) y todos los tipos básicos tienen uno. Para el caso de char sería Character. Por lo que, por ahora, sería: Character.parseChar(....) b ) Suponiendo lo anterior, tampoco funcionaria por que no existe ningún método llamado parseChar en la clase Character!!! Tiene algo de sentido ya que... ¿como conviertes una cadena en un solo caracter...? Para cada clase que vayas a usar, es más que recomendable que te conozcas su API (conjunto de métodos y variables, junto a una descripción del funcionamiento). Puedes encontrar las APIs de todos las clases Java aquí. Conclusión: no inventes!!! PD: Para solucionar tu problema, sustituye la línea que te falla por: op=(JOptionPane.showInputDialog ("Operador aritmetico")).charAt(0); Saludos!!!
14
« en: Domingo 26 de Agosto de 2007, 10:13 »
Hola!!! Si vas a tratar con numeros en binario, a lo mejor te interesa echarle un vistazo al API de la clase Integer, por que te ofrece métodos para trabajar con bases distintas de la decimal. En concreto, te podrían ser de interés parseInt(), valueOf() y toString(), en la version que te permite especificar el radix (base). También te puede interesar el método toBinaryString(). Espero que te sea de ayuda Un saludo!!
15
« en: Miércoles 11 de Julio de 2007, 08:19 »
Hola: Creo que no estan implementadas de la forma: set("propiedad", "valor"), si es a lo que te refieres... En cualquier caso, la implementacion es super sencilla, haciendo que tu objeto contenga una hashtable donde almacenas estos valores... Asi que tampoco veo como una gran carencia el que no se disponga se esta funcionalidad de forma nativa.... Un saludo!!
16
« en: Martes 10 de Julio de 2007, 08:54 »
Hola: Aunque no sea del todo exacto, ayuda mucho pensar que una referencia es como un puntero... Lo único que en Java no existe aritmética de punteros como en C, y su uso y gestión es transparente para el programador (no mas malloc() ni free()!! ) Pero básicamente se comportan igual. Un saludo.
17
« en: Domingo 8 de Julio de 2007, 17:44 »
Con esto te debería de funcionar:
BufferedImage im = ImageIO.read(getClass().getResource("recursos/imagenes/splash.png"));
Un saludo!!
18
« en: Lunes 25 de Junio de 2007, 00:10 »
Hola!! No te diré que es JMF, pero si que te diré que Google es una gran fuente de información... Quizás el tiempo que gastas replicando tus posts lo podrías haber aprovechado mejor en buscar... Aunque para que veas que en el fondo soy bueno, te dejo un link. Saludos!!
19
« en: Lunes 25 de Junio de 2007, 00:01 »
Hola : Para ordenar un array hay muchos métodos. Uno de los más sencillos es el método de la burbuja o bubble sort. También necesitaras una relación de orden, que determine dados dos objetos de tu clase cuál es "mayor". En este caso es sencillo: comparas las partes enteras, y son son iguales, comparas las decimales. Por último, échale un vistazo a la interfaz Comparator y al método estático Arrays.sort() (no pongo link por que sale mal...). Espero que te sea útil. Un saludo.
20
« en: Sábado 9 de Junio de 2007, 18:01 »
Hola: La verdad es que le he echado un ojo y tiene bastante buena pinta... Te dejo una traducción (hecha por mi) del artículo de Sun en el que se resume un poco de que va todo esto... Si alguien ve algo raro o que está mal, que me envíe un PM y lo cambio. Según lo televidentes se van volviendo más sofisticados, la demanda de más tecnología interactiva va en aumento. Para satisfacer esta demanda, Sun está lanzando el API de Java TV. Las aplicaciones de Java TV mejoran la difusión y la experiencia de visión proporcionando servicios como información de programación y anuncios, aplicaciones seleccionables como la habilidad de jugar junto con un concurso, información de distribución como un banner de cotización de Bolsa a lo largo de la pantalla, o control de medios como una encuesta interactiva relacionada con la programación.
Los televidentes con un receptor de televisión digital habilitado con Java serán capaces de recibir e interactuar con aplicaciones Java TV mientras ven la programación de la red. La herramienta con la que el televidente interactuará con las aplicaciones de Java TV es el mando a distancia de su televisión.
La implementación recién lanzada de la referencia de Java TV implementa la especificación Java TV que incluye las APIs de Java TV y Java Media Framework (JMF). Para ejecutarse, requiere un máquina virtual PersonalJava y las librerías de las clases. Los fuentes básicos están actualmente disponibles para los fabricantes de receptores digitales con licencia Java TV, por lo que los receptores digitales habilitados con Java estarán pronto disponibles para los consumidores. Los desarrolladores que trabajan para compañías con licencias que se especializan en la creación de contenido de televisión diital usarán el API de Java TV para escribir aplicaciones que o bien residirán, o bien se descargarán, en los receptores de TV digital habilitados con Java.
El API Java TV estará disponible en una fecha posterior según el Programa de Licencias de Código de la Comunidad de Sun. En ese momento, los desarrolladores que trabajen para las cadenas de televisión pueden usar el API Java TV para escribir sus aplicaciones de televisión digital que la red distribuirá. Como habrá una gran variedad de receptores de televisión con características diferentes, el API de Java TV permitirá a los desarrolladores acceder a las características comunes y escalas para diferentes implementaciones de receptores.
-- Xlets
Otro nombre para las aplicaciones Java TV es Xlets. Al igual que los applets, los Xlets están controlados por un software que los ejecuta. En el caso de un applets, el software subyacente es un navegador o la herramienta aplletviewer. En el caso de un Xlet, el software subyacente es el receptor de televisión o decodificador que contiene la plataforma Java TV.
No existe un método principal y los Xlets siempre implementan la interfaz "Xlet". Al igual que los applets, los Xlets tienen un ciclo de vida, y las cabeceras de los métodos del ciclo de vida están definidas por la interfaz Xlet.
-- Ciclo de vida
La interfaz Xlet proporciona métodos del ciclo de vida para marcar los siguientes cambios de estado del Xlet: * Creación * Inicialización * Comienzo * Pausado * Destrucción
Todas las implementaciones de Java TV tienen a un gestor de aplicaciones que llama a los métodos del ciclo de vida para mover a uno o varios Xlets a través de sus estados de aplicación.
La interfaz Xlet no proporciona ninguna implementación para los métodos del ciclo de vida. Los desarrolladores proporcionaran implementaciones dependientes de la aplicación para esos métodos, definiendo lo que ocurre en cada punto del ciclo de vida de un Xlet. Por ejemplo, el método initXlet de un juego Xlet debería de crear los componentes de la interfaz de usuario.
Un Xlet puede forzar algunos cambios de estado por sí mismo e informar al gestor de aplicaciones de éstos invocando a los métodos de la interfaz XletContext. Cuando se inicializa un Xlet, se le pasa un objeto XletContext para darle una forma de solicitar propiedades y notificar cambios de estados internos.
Espero que te sirva Un saludo!!!
21
« en: Jueves 24 de Mayo de 2007, 12:25 »
Prueba aqui. Es la segunda entrada que encuentras buscando en Google. La primera a lo mejor también te sirve... Un saludo.
22
« en: Domingo 15 de Abril de 2007, 21:23 »
Un método más rápido: int i; // .... String s = Integer.parseInt(i);
Un saludo.
23
« en: Jueves 12 de Abril de 2007, 11:59 »
Hola:
Si sabes calcular un determinantes 4x4, creo que este ejercicio no te dara ningun problema, ya que solo es una formula matematica.
Si no sabes hacerlo, quizas google te resulte mas util que este foro.
No hacemos la tarea de nadie. Si tienes alguna idea de como hacerlo, pero no termina de cuajar, postea tu codigo y te echaremos gustosamente una mano.
Un saludo.
24
« en: Jueves 12 de Abril de 2007, 11:38 »
Hola: Si quieres mas información sobre la conexion con una BB.DD, puedes mirar el tutorial de JDBC de la pagina de Sun. Espero que te sirva de ayuda. Un saludo!
25
« en: Domingo 29 de Octubre de 2006, 11:51 »
Demasiado sencillo. Creando 5 de esos objetos y dibujandolos igual que cuando solo tienes uno. Supongo que tu tendras algo asi: Circulo circ = new Circulo(r, x, y); circ.dibujar(); Ahora lo que tienes que hacer es meterlo en un bucle, y los argumentos en arrays para poder acceder a ellos: for (int i = 0; i < max; i++){ Circulo circ = new Circulo(r , x, y); circ.dibujar(); }
No se muy bien si es esto lo que preguntas...
Saludos
|
|
|