• Viernes 9 de Mayo de 2025, 16:13

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

Páginas: 1 ... 27 28 [29] 30
701
C/C++ / Re: Random
« en: Domingo 10 de Octubre de 2004, 23:53 »
Anda  :blink:  ni habia visto lo de sin repeticion, esto me suele pasar a menudo con las preguntas de los examenes, menos mal que aqui no ponen nota  :D  :whistling:

Un saludo

702
C/C++ / Re: Random
« en: Viernes 8 de Octubre de 2004, 08:51 »
Hola  :hola:  puedes usar este codigo que funciona perfectamente


Código: Text
  1.  
  2.  
  3. //Debes incluir estas dos librerias
  4.  
  5. #include <cstdlib>  
  6. #include <ctime>
  7.  
  8. void main()
  9. {
  10. int valor;
  11. srand(time(NULL)); // generacion de una semilla a partir de los segundos del reloj
  12. valor= 1 + (rand() % 10);  // en valor se almacena el numero aleatorio
  13. }
  14.  
  15.  
  16.  

Espero q te sriva , un saludo  :kicking:

703
C/C++ / Re: Damas Inglesas
« en: Jueves 7 de Octubre de 2004, 08:31 »
Hola  :hola:

Creo que no es visual C++, visual C++ se entiende mejor y esta separado en bastantes mas clases, esto creo que es .NET y C#, aunque no estoy seguro, que nos saque de dudas Arwen   :whistling:

Ht luego  :hola:

704
C/C++ / Re: Damas Inglesas
« en: Martes 5 de Octubre de 2004, 23:23 »
Hola de nuevo  :hola:

He estado mirando el codigo y para pasarlo a orientado a objetos te va a costar un poco, quizas puedas aprovechar algun metodo, pero lo mejor es empezar desde cero
El libro que te dije esta bien si tienes una base minima de POO , este libro a lo que ayuda es a planear mejor las clases, sus metodos atributos etc, por eso si no has visto nada antes de POO sera mejor que empieces por ahi y luego vayas al libro que te dije
La version que esta en internet es "Applying UML and Patterns- An Introduction to Object-Oriented Analysis and Design and the Unified Proc" en Ingles, lo puedes encontrar en el emule

Un saludo  :kicking:

705
C/C++ / Re: Damas Inglesas
« en: Martes 5 de Octubre de 2004, 09:59 »
Hola  :hola:

Si realmente quieres hacer una aplicacion con codigo de POO te aconsejo que sigas el UP o Proceso Unificado, son una serie de reglas y patrones que ayudan bastante, ademas puedes usar UML para hacer diagramas de clases, diagramas de interaccion interaccion,etc, con cualquiera de los programas que existen para ello.(pej: Rational Rose), lo que te ayudara a ver las clases, objetos y interacciones entre ellos que debes crear
Lo malo es que lleva bastante tiempo y aprenderlo cuesta bastante, yo lo vi en la universidad en 4 meses y aun hay cosas que no llevo muy bien aprendidas.
Si estas interesada hay un libro muy bueno: "UML y Patrones, una introduccion al analisis y diseño orientado a objetos y al proceso unificado" de Craig Larman, si sabes ingles hay un ebook escaneado que rula por ahi por internet.

Bueno espero q te sirva de ayuda, un saludo  :kicking:

706
C/C++ / Re: Problemas Con Inicializacion En Una Clase
« en: Lunes 27 de Septiembre de 2004, 21:03 »
Hola

El fallo es evidente, no puedes acceder a la parte privada de una clase desde fuera de ella.Esta es la linea que da el problema:

cin >>reg.uv[j];  

Para arreglar esto tienes muchas opcciones, la mas de andar por casa seria poner el atributo en public, una mejor seria sobrecargar el operador >>, aqui te pongo un ejemplo de sobrecarga a ver si te sirve:

Código: Text
  1.  
  2. class vector
  3. {
  4.  
  5. friend istream &operator >>(istream &ci,const vector &v); // esto es la declaracion del operador sobrecargado
  6.  
  7. }  
  8.  
  9. // esto es la definicion
  10.  
  11. istream &operator >>(istream &ci,const vector &v)
  12. {
  13. for (inti=0;i<v.num;i++)ci>>v.valores[i]; //recorre el vector e introduce los valores en la variable
  14. return ci // siempre hay que devolver ci que es la variable de entrada
  15. }
  16.  
  17.  
  18.  
  19.  

Espero q te sirva , chao  :hola:

707
C/C++ / Re: Separacion De Numeros Enteros De Caracteres
« en: Lunes 27 de Septiembre de 2004, 08:15 »
Hola

Yo lo que haria seria cargar el archivo de tecto en un *char, y luego recorrerlo con un for. Para saber que caracter es numero puedes utilizar la funcion isdigit de la biblioteca ctype.h. El uso de esta funcion es muy sencillo, aqui te dejo un miniejemplo:

Código: Text
  1.  
  2.  
  3. #include <stdio.h>
  4. #include <ctype.h> // libreria para comparar caracteres
  5.  
  6. main()
  7. {
  8. int j=0;
  9. char cadena="m4t2";
  10. char *almacen;  // aqui guardas los numeros
  11. for(int i=0;i<5;i++)  // recorres la cadena
  12. {
  13. if(isdigit(cadena[i])==1)  // si el caracter de la cadena es un digito devolvera 1
  14. {
  15. almacen[j]=cadena[i];  // guardo en almacen ese numero
  16. j++
  17. }
  18. }
  19. almacen[j]='\0'  // cierro almacen
  20. }
  21.  
  22.  
  23.  


No he probado si funciona el codigo asi que es posible q tenga algun error de sintaxis aunque la idea es esa basicamente. Espero q te sirva


Un saludo :hola:

708
C/C++ / Re: Busco Manual De Sockets Para C++
« en: Viernes 24 de Septiembre de 2004, 19:44 »
ahora si gracias :)

709
C/C++ / Re: Como Funcionan Las Funciones Friend????
« en: Viernes 24 de Septiembre de 2004, 19:23 »
Wenas  :hola:

Funciones amigas de una clase
El siguiente ejemplo ilustra el concepto de amistad, aunque en este programa no es funcionalmente útil. Para que una función sea amiga de una clase, y por tanto tenga acceso a la parte privada de los objetos de dicha clase, sabe ser definida como amiga (anteponiendo la palabra friend al prototipo) en la declaración de la clase. Lógicamente, es la clase la que define quién es amiga suya. Se observa que la función Ver no tiene que indicar en ningún momento quien la considera amiga, de tal forma que podríamos tener millares de clases amigas de dicha
función sin que por ello esta vea afectada su definición. Cada una de las clases sin embargo deberá incluir dentro de su declaración la copia del prototipo de la función precedida de la palabra friend.

Código: Text
  1.  
  2.  
  3. #include <iostream>
  4. class A
  5. {
  6. public:
  7. A(int i) {a=I;};
  8. void Ver() { cout << a << endl; }
  9. private:
  10. int a;
  11. friend void Visualiza(A); // "Ver" es amiga de la clase A
  12. };
  13. // La función Visualiza puede acceder a miembros privados
  14. // de la clase A, ya que ha sido declarada "amiga" de A
  15. void Visualiza(A Xa)
  16. {
  17. cout << Xa.a << endl;
  18. }
  19. void main()
  20. {
  21. A Na(10);
  22. Visualiza(Na); // imprime el valor de Na.a
  23. Na.Ver(); // Equivalente a la anterior
  24. }
  25.  
  26.  
  27.  

Se observa como la función visualiza es capaz de acceder directamente al miembro privado a, del objeto Na gracias a su condición de función amiga de la clase. Si en este mismo ejemplo eliminásemos la línea de la declaración de la clase A en la que se define Visualiza como función amiga, el compilador daría un error por intentar acceder a un miembro privado del objeto pasado en Xa.

Un saludo

710
C/C++ / Re: Busco Manual De Sockets Para C++
« en: Viernes 24 de Septiembre de 2004, 09:47 »
Los de recursosprog creo que han cerrado el chiringuito  :scream:

que mala suerte ¡¡¡  :angry:

711
C/C++ / Re: Busco Manual De Sockets Para C++
« en: Viernes 24 de Septiembre de 2004, 09:44 »
Hola

Gracias por tu contestacion, inet= internet  :whistling: , es que soy un poco vago y pulsar 4 teclas cansa mucho  :D

Un saludo  :hola:

712
C/C++ / Busco Manual De Sockets Para C++
« en: Jueves 23 de Septiembre de 2004, 20:50 »
Hola a todos

Me gustaria hacer un juego multijugador, sabeis de algun manual basico de sockets en inet?

Gracias  :hola:  Un saludo

713
C/C++ / Re: Clases Mutuamente Incluidas.. Como???
« en: Miércoles 22 de Septiembre de 2004, 09:56 »
Hola

Lo que debes hacer es decir que ambas clases son amiguitas
Para ello se usa el comando friend

Seria algo tal que asi:

Código: Text
  1.  
  2. class A
  3. {
  4. public:
  5. friend class B; // A es amiga de B, puede acceder a sus metodos o atributos privados
  6. private:
  7. B* b;
  8. }
  9.  
  10. class B
  11. {
  12. public:
  13. friend class A; // B es amiga de A, puede acceder a sus metodos o atributos privados
  14. private:
  15. A* a;
  16. }
  17.  
  18.  


Ademas no te olvides de incluir los ficheros de cabecera de A.h en la clase B y viceversa


un saludo  :hola:

714
C/C++ / Re: Como Especificar Una Ruta
« en: Sábado 14 de Agosto de 2004, 19:34 »
Hola

Si carpeta 1.1 esta dentro de carpeta 1 y el ejecutable esta en el directorio raiz, deberia funcioanr esto:

"carpeta1\\carpeta1.1\\fichero.txt"

un saludo :hola:

715
C/C++ / Sobrecarca Operador ++
« en: Jueves 5 de Agosto de 2004, 11:29 »
Hola a todos

estoy haciendo una clase para ir cambiando los turnos en una partida de trivial

la clase que utilizo es esta:


// fichero .h

Código: Text
  1.  
  2.  
  3. class CTurno  
  4. {
  5.   //metodos
  6. public:
  7.   CTurno();
  8.   virtual ~CTurno();
  9.   CTurno(int tA,int nT);
  10.  
  11.   CTurno operator++();
  12.  
  13.   // atributos
  14. public:
  15.   int turnoActual;
  16.   int numTurnos;
  17.  
  18. };
  19.  
  20.  
  21.  


// fichero .cpp

Código: Text
  1.  
  2.  
  3. CTurno::CTurno()
  4. {
  5.  
  6. }
  7.  
  8. CTurno::~CTurno()
  9. {
  10.  
  11. }
  12.  
  13. CTurno::CTurno(int tA,int nT)
  14. {
  15.   turnoActual=tA;
  16.   numTurnos=nT;
  17. }
  18.  
  19. CTurno CTurno::operator ++()
  20. {
  21.   turnoActual++;
  22.   if(turnoActual>numTurnos)turnoActual=0;
  23.   return *this;
  24. }
  25.  
  26.  
  27.  

el codigo compila bien

hago una instancia de CTurno

CTurno *turno;
turno=newCTurno(0,2);

y utilizo botones de la toolbox para ver si cambia bien de turnos

// en el primero pongo

turno++;
if (turno->turnoActual==1)MessageBox("hola");  // el hola es apra ver si llega a 1

// en el otro pongo el siguiente codigo para ver el valor actual del turno

int ver;
CString ca;
ver=turno->turnoActual;
ca.Format("%i",ver);
MessageBox(ca);

pues bien, obtengo los siguientes valores  en sucesivas llamadas al primer comando que incrementa el turnoActual

0  :)  // antes de pulsar, va bien

-572662307  :o   // primer incremento

81  <_<  // segundo incremento

4335844  :blink:  // tercer  incremento

1 ¡¡¡¡¡  :kicking:  // y salta el MessageBox xD xD xD


bueno , despues de este rollo, a ver si alguien me puede echar una manita que esto me ha dejado noqueado  :(  gracias :hola:

716
OpenGL / Re: Transladar En Coordenadas Absolutas
« en: Miércoles 4 de Agosto de 2004, 20:51 »
Gracias Ruben, Tu idea me sera de gran ayuda, :yes: me parece la mejor opccion

solo son 4 quesitos asi q mas facil toda via

 :lol: Hasta Luego  :hola:

717
Visual C++ / Re: Cuadro De Dialogo De Espera
« en: Miércoles 4 de Agosto de 2004, 20:30 »
Hola KYO

Si lo que quieres es que el dialogo este siempre en contacto con la ventana principal , es decir que reciba los mensajes que le lleguen de esta aunque este el dialogo abierto, debes crear un "no modal" de la siguiente manera

// en el constructor de la clase de tu dialogo pones esto:

Create(IDD_DIALOGO); // IDD_DIALODO es el ID de la plantilla de tu dialogo

// haces un puntero a tu clase dialogo por ejemplo en OnCreate() de CMainFrame

CTuDialogo *dialogo;
dialogo=new CTuDialogo();    // y lo inicializas

//finalmente llamas a showwindow en el menu o comando que quieras

dialogo->ShowWindow(SW_SHOW);

El problema de estos dialogos es que si pulsas sobre la ventana principal pasan a un segundo plano.Tengo yo un post en el foro para  ver si alguin sabe como hacer q permanezcan por encima de su ventana principal

Espero que te sirva  :)  si encuentras un metodo mejor para hacer esto avisame que necesito algo parecido

ht luego  :hola:

718
Visual C++ / Re: Mantener Un Dialogo Siempre Visible
« en: Miércoles 4 de Agosto de 2004, 19:59 »
Hola Sergio

Gracias por tu contestacion, pero me exprese mal, lo que yo queria es un dialogo no modal, que me deje acceder al Mainframe pero que este siempre superpuesto a este.Algo parecido a las toolbox

un saludo

719
Visual C++ / Re: Hacer Que Un Dialogo No Sea Arrastrable
« en: Miércoles 4 de Agosto de 2004, 19:56 »
Hola neac, gracias por tu respuesta

Intentare hacer loque dices  a ver si consigo algo, tambien encontre un ejemplo e una web pero estaba hecho con el winAPI , en este ejemplo lo que hacia era destruir cuando se crea la ventana el RESIZE ( que creo q es un modificador de ShowView o algo asi

un saludo

720
Visual C++ / Re: Recoger La Informacion De Un Dialogo
« en: Miércoles 4 de Agosto de 2004, 19:52 »
Gracias KYO al final ya lo consegui hace unos dias, lo hago mas o menos como explicas tu solo que accedo a las variables y no a la clase

721
OpenGL / Re: Transladar En Coordenadas Absolutas
« en: Martes 3 de Agosto de 2004, 16:01 »
Hola Ruben, gracias por tu respuesta

He probado con pop y push Matrix y va fenomenal

Aprovecho para preguntarte si sabes alguna manera de crear subdibujos, o submatrices (no se muy bien como definirlo) dentro de otro.
Es que lo necesito para hacer unas fichas tipo trivial donde cada vez que acierte una pregunta se le coloque un quesito
Si no consigo un metodo mejor habia pensado en incluir ya esos subdibujos con el mismo color que la ficha y simplemente cambiar el color del quesito, dando el efecto de aparicion

Gracias por tu tiempo  :hola:

722
OpenGL / Transladar En Coordenadas Absolutas
« en: Lunes 2 de Agosto de 2004, 19:27 »
Hola a todos  :alien:

Existe alguna funcion parecida a glTranslatef pero que situe el puntero de pintado en coordenadas absolutas ???

Si no existe, existe alguna que devuelva donde esta situado el puntero, para asi poder llevarlo al origen y hacer un nuevo glTranslate???

Gracias de antemano, ht luego  :hola:

723
Visual C++ / Mantener Un Dialogo Siempre Visible
« en: Lunes 2 de Agosto de 2004, 14:51 »
Hola

Me gustaria mantener un dialogo siempre visible por encima de la ventana que lo llamo, alguien sabe como hacerlo??

Gracias :hola:

724
Visual C++ / Problemas Con Dialogos
« en: Sábado 31 de Julio de 2004, 18:12 »
Hola  :hola:

Estoy haciendo una aplicacion SDI en la que necesito que se abran 2 dialogos al pulsar sobre las opcciones del menu superior
Creo los dialogos como no modales haciendo

//dialogo 1

//Esto en CMainFrame en OnCreate

CDialogo1 *d1;
d1=new CDialogo1();

// y en el constructor del dialogo pongo:

Create(IDD_DIALOGO1);

Con el segundo dialogo hago lo mismo, y creo 2 variables de los dialogos para acceder a ellos desde los menus de CMainFrame y asi inicianizarlos

CDialogo1 uno;
CDialogo2 dos;

// los muestro en pantalla con

uno.ShowWindow(SW_SHOW);
dos.ShowWindow(SW_SHOW);

me compila todo perfectamente pero al ejecutar el programa me da un error, primero me sale una advertencia de error y luego otra con una señal de stop y el siguiente texto

La instruccion 0x77f41d24 hace referencia a la memoria 0x028e28ae La memoria no se puede "written"

 :blink:  la verdad es q es bastante frustrante

si podeis echarme una mano muchas gracias

725
Visual C++ / Recoger La Informacion De Un Dialogo
« en: Lunes 26 de Julio de 2004, 10:18 »
Hola a todos

Vereis tengo un problema:

Tengo un dialogo con unos cuadros de texto a los que he asignado unas variables con el class wizard, cuando pulso el boton de aceptar me gustaria que el contenido de las cajas de texto fuera capturado por otra clase, es decir pasar la informacion a otra clase.
He probado ahacer un include del dialogo en la clase que quiero que coja los datos y crear una variable del tipo dialogo para poder acceder a las variables de los cuadros de texto pero me da un error : missing storage o no se que leches...

Si teneis alguna idea de como hacer esto .......muxas gracias

Que paseis un wen verano ht luego

Páginas: 1 ... 27 28 [29] 30