• Viernes 8 de Noviembre de 2024, 10:31

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

Páginas: [1]
1
Java / Una Preguntilla Para Gurús De Applets
« en: Viernes 18 de Mayo de 2007, 21:28 »
:comp:  :comp:

Buenas, dejo aquí una duda concreta por si algún buen programador se ha enfrentado a ella anteriormente:

Los ingredientes:   :lol:

- Una clase Divisa
- Una clase Main para aplicación consola
- Un Applet conversorApplet
- Una clase conversorWin

La receta:   :lol:

Trato de programar con conversor de divisas en java que conste de: aplicación en modo consola, un applet para la web y una aplicación windows. De estos tres objetivos he logrado los dos primeros. Me queda hacer la aplicación windows.

El problema:   :alien:

Brevemente el código de mi aplicación windows:

public class conversorWin extends Frame implements WindowListener {

   public static void main(String[] args) {
      new conversorWin();
   }

   public conversorWin() {
      addWindowListener(this);
      conversorApplet a = new conversorApplet();
      a.init();

      ...
                ...
   }

en el constructor llamo al método init() del applet y los parámetros los recibo con getParameter(nombre_parametro) y funciona muy bien, peeeeeroooo  :blink:

¿si desde un applet no puedo leer un fichero del disco duro y sin embargo en mi aplicación windows necesito leer un fichero cambios.txt que tiene el valor de cambio actual... ¿Cómo leches hago?  :lightsabre:

Si habeis llegado a leer hasta aquí enhorabuena.. y si sabeis solucionarlo... sois dios.

2
C/C++ / Re: Cast En Parametro De Funcion Antes De Su Llamada
« en: Miércoles 6 de Diciembre de 2006, 03:12 »
Diodo puedes replantear el enunciado de tu problema? es que intento entenderlo para ayudarte en lo que pueda pero no pillo por dónde vas.

Lo que he entendido:

- Tienes una clase abstracta.
- Tienes derivadas de la clase abstracta ( B deriva de A? )

Es que parece que con herencia simple se soluciona el tema pero prefiero esperar a que te expliques mejor. Tienes código que podamos ver lo que intentas hacer?

Salu2

3
C/C++ / Re: Diferenciaa
« en: Miércoles 6 de Diciembre de 2006, 03:06 »
Bueno la que he liado con el comentario sobre NULL  :o

y todo a raíz de un hilo con poco sentido..

Dar una opinión a estas alturas es poco menos que un suicidio visto como está el patio, pero aún así voy a decir mi opinión fundada en los libros que he leído, ya que no tengo el documento del ANSI estándar a mano: NULL sólo tiene sentido usarlo en el contexto de los punteros y es equivalente a 0 y en ninguno más aunque se pueda rizar el rizo con definiciones absurdas. Mi comentario viene a raíz de que muchos programadores prefieren inicializar un puntero a 0 en vez de a NULL por mayor legibilidad y compatibilidad con los compiladores. Y doy por zanjado el tema.

Pena que este hilo en vez de tener contenido didáctico esté lleno de descalificaciones, no sé vosotros pero prefiero leer sobre el tema que discutir en vano, estos concursos de a ver quién sabe más y quién es más cabezota me parecen tristes.

Salu2   :hola:

4
C/C++ / Re: Diferenciaa
« en: Martes 5 de Diciembre de 2006, 19:13 »
RadicalEd a un puntero le puedes dar un valor NULL, de hecho es una forma de inicializarlo (siempre se recomienda inicializarlos), aunque más estándar por lo que he leído en bastantes libros es inicializarlo a 0.

Un poco de offtopic para darle sentido a este hilo.

Salu2

5
C/C++ / Re: Diferenciaa
« en: Martes 5 de Diciembre de 2006, 17:45 »
La pregunta sería: ¿Hay algún parecido? Xq yo no le encuentro ninguno. Salu2

6
C/C++ / Re: Dos Problemas Que Me Tienen Sin Poder Avanzar
« en: Lunes 4 de Diciembre de 2006, 12:52 »
Hola de nuevo Mararía

Creo que el problema está de nuevo en la sobrecarga:

istream &operator>>(istream &is, Polinomio &f){
 f.insertar(is);
 return is;
}

esta vez parece estar bien definida la función de sobrecarga y por eso te compila bien, pero creo que el problema está en cómo la manipulas. Piensa que istream &is es una referencia, concretamente un alias del flujo de entrada (normalmente cin), por lo tanto yo plantearía usarlo tal como si fuera cin, esto es:


istream &operator>>(istream &is, Polinomio &f){
 // La idea es: is >> f.atributoAmodificar
 // o bien f.metodoestablecevalor(parametros)
 is >> f.coeficiente;
 is >> f.variable;
 is >> f.grado;
 return is;
}

este ejemplo que puse es totalmente genérico, cómo leer un dato de tipo Polinomio suponiendo que éste tuviese 3 datos miembros (coeficiente,variable,grado) por teclado. Por lo poco que he leído tú lo que quieres es obtener estos datos ya de un fichero no? Entonces tendrías que adaptarlo a tus necesidades, yo sólo te doy una idea muy básica, aparte que no entiendo muy bien la función insertar.

A ver si te sirve de algo, salu2

7
C/C++ / Re: Dos Problemas Que Me Tienen Sin Poder Avanzar
« en: Domingo 3 de Diciembre de 2006, 21:15 »
Hola Mararía veo que eres reciente en el foro como yo, bienvenida.

A simple vista creo, y digo creo, que hay un error aquí:

istringstream &operator >>(istringstream &is, Polinomio f)

en esta declaración de la función pasas f variable de tipo Polinomio por valor, y yo creo
que debería de ser por referencia porque entonces no recoges las modificaciones que introduces con el flujo cin. Aparte ten en cuenta que al pasar un objeto por valor tienes que tener un constructor de copia definido, sino te acarreará problemas con la reserva de memoria dinámica.

Yo lo replantearía así, habitualmente hago la sobrecarga del operador >> :

istream &operator>> ( istream &flujoE, Clase &objClase )
{
 operaciones..
 return flujoE;
}

El resto del código no he tenido mucho tiempo a verlo.
Espero haberte ayudado en algo, un saludo.

PD: otra cosilla que se me olvidó comentarte es.. no metes ningún return? la sobrecarga tal como la definiste espera devolver un istringtream..

8
C/C++ / Re: Matriz Dinamica
« en: Domingo 3 de Diciembre de 2006, 12:44 »
Buenas, es mi primer post en este foro que considero interesante, a ver si te puedo ayudar:

para trabajar con memoria dinámica deberías usar los operadores new y delete junto con punteros.

un sencillo ejemplo:

const int TAM = 10; // tamaño del array.
int *ptrArray = 0;    // inicializamos un puntero.

    if ( ( ptrArray = new int [TAM] ) == NULL ) // o también if ( !ptrArray )
     cout << "error de asignación de memoria";
    else
     cout << "empezamos a trabajar con el array";

    delete [] ptrArray;


Si alguien le encuentra algún error no duda en corregir, estamos aquí para aprender.

Salu2

Páginas: [1]