|
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 - m0skit0
Páginas: 1 2 3 [4] 5 6 ... 100
76
« en: Martes 29 de Marzo de 2011, 19:01 »
El error que te da es porque no tienes constructor por defecto. Es decir, declaras pero esto no lo puedes hacer porque tu constructor pide un argumento. Saludos.
77
« en: Martes 29 de Marzo de 2011, 17:27 »
Pero si no le pongo el & tampoco compila :S Yo no he dicho que no le pongas el & querido amigo. Y si no dices qué errores te da, pues difícilmente podremos ayudarte.
78
« en: Martes 29 de Marzo de 2011, 16:59 »
Fíjate que el constructor de copia no recibe matrix A, sino matrix& A.
79
« en: Martes 29 de Marzo de 2011, 16:54 »
En tu hilo dices que ya lo has corregido
80
« en: Martes 29 de Marzo de 2011, 16:46 »
Hombre su profesora de programación algo tiene que saber de programación, digo yo (aunque nunca se sabe...).
81
« en: Martes 29 de Marzo de 2011, 16:45 »
¿Recepción de qué datos? ¿Te refieres a ficheros o transferencias de ficheros? ¿Acceso desde el iPad al sistema de ficheros Windows? Da más detalles. Java dudo mucho que sea puesto que en el iPad no va con Java nada. Tienes que mirarte las librerías de Apple para el iPad, aprender Objective-C y aprender a usar X-Code. Obviamente todo esto sólo se hace en Mac, así que si no tienes uno, ve corriendo a ver cómo puedes conseguir uno o mírate el Hackintosh. Y no, no se puede hacer desde Windows a menos que sea desde una máquina virtual. Sinceramente, sin ánimos de ofender o deprimir, viendo las preguntas que haces, no creo que pases la entrevista a menos que sea dentro de bastante tiempo.
82
« en: Martes 29 de Marzo de 2011, 16:19 »
Yo no te digo que lo estés haciendo mal en cuanto a la funcionalidad, sino a la legibilidad y coherencia: que pongas la implementación del constructor fuera de la clase también class matrix { public: int size; double s[MAX_SIZE]; matrix (int n); ~matrix(); int test_matrix (int a); matrix scan_matrix (void); matrix operator + (matrix A); void print_matrix (void); }; matrix::matrix(int n) { size=test_matrix(n); }
En cuanto a lo del private, también deben ser privados los métodos que no vayan a ser usados por clases externas.
83
« en: Martes 29 de Marzo de 2011, 13:24 »
No sé si no me explico bien o qué... Sigues mezclando implementaciones dentro y fuera de la clase. Dentro de la clase: matrix (int n){ size=test_matrix(n); }
Fuera de la clase: int matrix :: test_matrix (int a){ if(a>MAX_SIZE){ cerr<<"Demasiados elementosn"; a=MAX_SIZE; } return a; }
Además como te he comentado anteriormente, las llaves de cierre van a la misma altura que la sentencia que las abre, y lo que vaha dentro sólo va una tabulación más dentro, no hasta la llave (sobre todo si está al final de línea), es decir, este método anterior tiene que quedar como: int matrix :: test_matrix (int a){ if(a>MAX_SIZE){ cerr<<"Demasiados elementosn"; a=MAX_SIZE; } return a; }
es que si pongo algo en private luego no puedo acceder a ello desde otras partes del programa y entonces tendría que crear otra función para poder acceder a ella ?? es que no entiendo muy bien Sí, así es. Eso en POO se llaman "getters" y "setters", que modifican los atributos privados mediante lo que se puede denominar una "interfaz", así puedes controlar asuntos como validaciones, rangos, etc...
84
« en: Martes 29 de Marzo de 2011, 11:46 »
¡Bienvenido! Espero que disfrutes aprendiendo y enseñando lo que sabes, y a gossssar de la programación
85
« en: Martes 29 de Marzo de 2011, 10:00 »
lo de private en lugar de public ya lo hare que de momento estoy probando un poco como va el tema este de las clases Ok, pero que no se te olvide Lo segundo que dices (establecer unas funciones dentro de la clase y otros fuera) no lo entiendo muy bien, te refieres a que no cree la función suma fuera de la definición de clase? yo pensaba que eso era muy común y además así lo tienes más organizado. Puedes hacerlo como quieras, pero si te fijas tienes el código del contructor dentro de la clase y el del método (que no función) suma_de_vectores fuera. Me refiero a que te decidas por fuera o dentro y te atengas a ello, no mezcles. Personalmente lo hago todo fuera y en otro fichero. La definicion de la clase en un .h, la implementación en un .cpp. Si no recuerdo mal así es como se recomienda por convención. no entiendo muy bien eso de sobrecargar el operador, me puedes explicar? http://www.google.es/search?q=sobrecarg ... =firefox-aSaludos
86
« en: Martes 29 de Marzo de 2011, 09:53 »
aparte de que cuando abran el .exe pida un usuario y contraseña, que sea alojado en un servidor La contraseña jamás se debe mandar/guardar en claro (no cifrada). hay una forma de crear un instalador para colocar tu programa en el sistema operativo? Ejem, obvio... Supongo que dado que hablas de EXEs con SO te refieres a Windows (qué paradoja), así que mira aquí. o que al hacer clic derecho en el .exe o ctrl + C no se pueda copiar o te pdia algún codigo? Eso va a ser que no. El usuario es dueño de sus ficheros y puede copiarlos/pegarlos como le dé la gana. No tendrías derecho a hacerlo y rozaría la ilegalidad y el malware.
87
« en: Martes 29 de Marzo de 2011, 09:48 »
Es problema del compilador, coméntaselo a tu profesora, que eso de compiladores corriendo en MS-DOS emulado pues como que ya no se lleva. Y por cierto no es void main() sino int main(), también se lo puedes comentar a tu profesora, y que por favor se ciña a C estándar, que es lo que debe enseñar (díselo de mi parte). Que se compre este libro por favor: http://cm.bell-labs.com/cm/cs/cbook/Saludos
88
« en: Lunes 28 de Marzo de 2011, 16:03 »
Difícil que se me ocurra algo si no nos dices si tu duda es C++ o VB...
89
« en: Lunes 28 de Marzo de 2011, 16:01 »
Primero, los atributos deben ser private y no public, sino estás violando el principio de encapsulación de la POO. Segundo, no entiendo por qué implementas algunas funciones dentro de la clase y otras fuera. Elige uno de los métodos y síguelo, no mezcles ambos, no tiene ningún sentido. Tercero, no hay necesidad de amontonar el cçodigo. Dejando espacios y poniendo las cosas ordenadas se obtiene un código mucho más limpio y fácil de leer. Por ejemplo: void matrix::suma_de_vectores(matrix A) { if(A.size != size) { cerr << "Los vectores han de ser del mismo orden"; } else { for(int i=0;i<A.size;i++) { cout << "suma " << i << " = " << A.s[i] + s[i]; } } }
Yendo a tu problema: cout<<"suma "<<i<<" = "<<A.s[i]+s[i];}
Aquí s no hace obligatoriamente referencia al atributo de A, sino más bien al de la clase con la que estés llamando a este método. Pero como la llamas tal que
entonces sí es A y por tanto te sumaría A.s con B.s. De todas formas para una suma te conviene mejor sobrecargar el operador + que crear un método al completo.
Saludos.
90
« en: Lunes 28 de Marzo de 2011, 15:51 »
¿Visual Basic o C++, en qué quedamos querido amigo?
91
« en: Lunes 28 de Marzo de 2011, 14:24 »
Tienes que capturar más códigos. Por ejemplo #include <stdio.h> int main() { int input; do { printf("You pressed key ID: %02d 0x%02xn", input , input ); }while(input != 'q'); }
Probándolo pulsando las teclas de flecha arriba, abajo, derecha e izquierda: $ ./prueba ^[[A^[[B^[[C^[[D You pressed key ID: 27 1b You pressed key ID: 91 5b You pressed key ID: 65 41 You pressed key ID: 27 1b You pressed key ID: 91 5b You pressed key ID: 66 42 You pressed key ID: 27 1b You pressed key ID: 91 5b You pressed key ID: 67 43 You pressed key ID: 27 1b You pressed key ID: 91 5b You pressed key ID: 68 44 You pressed key ID: 10 0a
Vemos que por cada una genera 3 códigos y no 2. Saludos.
92
« en: Lunes 28 de Marzo de 2011, 14:00 »
Las teclas extendidas no pueden ser recuperadas con getchar() que como su nombre indica recupera caracteres y no teclas. Y el código de tecla extendida que yo sepa es igual e independiente del lenguaje.
Mi consejo es que uses una librería para ello (Allegro por ejemplo).
93
« en: Lunes 28 de Marzo de 2011, 12:35 »
No logro entender el funcionamiento de los apuntadores, se que apuntan a la direccion de memoria, pero ¿con que fin? ¿Fin? No hay ningún fin, así funcionan los ordenadores por dentro. Si a lo que te refieres es cuál puede ser la utilidad, hay infinitas, por ejemplo el paso de variables por referencia. Te pongo un ejemplo: #include <stdio.h> void f1(int a) { a = 15; } void f2(int* a) { *a = 15; } int main() { int a = 10; f1(a); printf("f1 ha dejado a tal que %dn", a ); f2(&a); printf("f2 ha dejado a tal que %dn", a ); return 0; }
Prueba esto a ver si entiendes qué ocurre y ya me comentas lo que no entiendas. Saludos.
94
« en: Lunes 28 de Marzo de 2011, 12:05 »
Ok gracias gran jefe indio
95
« en: Lunes 28 de Marzo de 2011, 09:22 »
A mí me funciona correctamente bajo Linux. #include <stdio.h> int main() { float semana; //clrscr(); semana = (24*7*3600); //getch(); return 0; }
$ gcc -o prueba prueba.c $ ./prueba Son 604800.000000 $
Así que el problema no es tu código, sino muy probablemente el compilador. No sé para qué sigues usando un compilador tan obsoleto como Turbo C 3.5.
96
« en: Domingo 27 de Marzo de 2011, 16:51 »
Sí, eso es. Igualmente la segunda opción es más correcta si prevés que la pantalla va a ser siempre la misma.
97
« en: Viernes 25 de Marzo de 2011, 22:42 »
Si pretendes programar en C++, tienes que manejar los punteros como tu propia mano. Si has decidio la segunda opción Otra opción es poner un atributo pantalla* pant en la clase bloques y así definir en qué pantalla se debe dibujar dicho bloque. entonces no es lo que dices. Lo que yo digo sería algo como class bloques { private: pantalla* pant; public: [...] bloque(pantalla* pant); [...] void ponPantalla(pantalla* pant); pantalla* damePantalla(void); }
Si sólo vas a usar un objeto pantalla podrías incluso definirlo como estático dentro de bloques.
98
« en: Viernes 25 de Marzo de 2011, 20:38 »
Es obvio que la clase bloques no sabe qué es pant porque lo tienes declarado en otro lugar fuera de la clase. Si lo que quieres es que esta clase tenga visibilidad de este objeto que está declarado en otro lugar tienes varias opciones. La más sencilla es pasarle a la clase bloques un puntero al objeto pant cuando hagas llamadas que necesiten. Otra opción es poner un atributo pantalla* pant en la clase bloques y así definir en qué pantalla se debe dibujar dicho bloque.
Espero haberme explicado. Un saludo.
99
« en: Viernes 25 de Marzo de 2011, 18:00 »
Igual sigue siendo una tarea, aunque sea impuesta por ti mismo. La razón fundamental es que aprendamos, no que nos den el problema ya resuelto de cortar y pegar y a correr. "Dale un pescado y comerá una vez, enséñale a pescar y comerá toda la vida" Buenos os dejo con C que es más interesante que mis tonterías.
100
« en: Viernes 25 de Marzo de 2011, 08:10 »
Páginas: 1 2 3 [4] 5 6 ... 100
|
|
|