|
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 - dheak
1
« en: Lunes 4 de Noviembre de 2002, 19:12 »
Gracias. Bueno, no es exactamente la respuesta que esperaba (esperaba que microsoft trabajase mas por nosotros) pero veo que no me queda mas remedio que hacerlo a lo clasico.
Gracias de todos modos. Un saludo.
2
« en: Sábado 2 de Noviembre de 2002, 18:24 »
Hola a todos.
Mi problema es el siguiente:
Tengo una PictureBox contenedora de otros controles. Lo que quiero hacer es ir creando nuevas instancias de esta PictureBox y almacenarlas en un array, pero que al crearla se me cree con los controles de dentro incluidos.
Alguien sabe alguna forma de hacer esto?
Es para un programa que usa varias paginas, es decir (mas o menos como el Word) cuando llegas al final de la pagina se crea una pagina en blanco (esta vez con controles dentro) para poder continuar. Pero te mantiene visibles y activas las que tenias antes.
Gracias.
3
« en: Lunes 1 de Julio de 2002, 21:22 »
hla! que va, no hay nada. Llevo tiempo buscando por todo internet y no hay nada. Lo unico que he encontrado es un proyecto de traduccion del manual oficial de SDL. Ta en http://sdl.euskal-linux.org. Todo lo mas que he podido encontrar. Si encuentras algo te agradeceria que me avisaras, que a mi tambien me interesa. Gracias, saludos.
5
« en: Jueves 13 de Junio de 2002, 01:26 »
Lo siento, se me habia olvidado.
Si alguien dispone de la ayuda que proporciona vb sobre dicho control, me podria poner la informacion que da esta sobre como trabajar con ella y el ejemplo que da. Esto ya me seria util.
Gracias de nuevo. Saludo.
6
« en: Jueves 13 de Junio de 2002, 01:00 »
Hola, alguien sabe como se utiliza el control listview de vb? Es decir, como se añade un nuevo elemento suponiendo, por ejemplo, que el control tiene 3 columnas. Como se elimina, como accede a el. Es decir, todas esas cosas basicas pa manejar con el.
No me gusta tener que decir esto, pero la verdad es que me es bastante urgente, asi que si alguien sabe algo, por poco que sea, se lo agradecere.
Saludos
7
« en: Martes 11 de Junio de 2002, 19:41 »
En el foro de C/C++ puse un codigo para hacer la inversa, traspuesta y adjunta. El codigo, obviamente esta en C pero no te sera nada dificil pasarlo a vb. Si no lo sabes pasar, dimelo. Okis?
Saludos.
8
« en: Martes 11 de Junio de 2002, 19:31 »
hola maestro. No veo muy bien donde esta el fallo, lo que si que veo es que la variable pos la tienes declarada como char, cuando debe ser un int.
Otra cosa, has probado con un gets(), quiza te es mas facil.
Saludos.
9
« en: Martes 11 de Junio de 2002, 00:30 »
hola. Oye, te hecho el codigo que sigue, no lo he repasado mucho, asi que seria bueno que lo revisaras un poquito, aunque creo que esta bien, pero no estaria de mas.
Te hecho todas las funciones excepto la del determinante. Lo he hecho siguiendo la formula de A^(-1) = ((adj(A))^t) / det(A). Es lo siguiente:
#define n 3 /* vamos a hacer matriz 3x3 cambiando n a otro valor tendremos nxn*/
int* traspuesta(int matriz[][]); int det(int matriz[][]); int* adj(int matriz[][]); int* inversa(int matriz[][]);
void main() { int matriz[n][n]; int inv[n][n]; /* ... aqui vendria el codigo pa rellenar la matriz ... */ inv = inversa(matriz); /* ... ale, ya tienes la inversa en inv[][] a usarla agusto ... */ }
int* inversa(int matriz[][]) { int mat1[n][n]; int mat2[n][n]; int i,j,k; mat1 = adj(matriz); mat2 = traspuesta(mat1); k = det(matriz); for (i=0 ; i<n ; i++) for (j=0 ; j<n ; j++) mat2[j] = mat2[j] / k; return mat2; }
int* traspuesta(int matriz[][]) { /* calcula la traspuesta de matriz[][] */ int i,j; int mat[n][n]; for (i = 0 ; i<n ; i++) for (j=0 ; j<n ; j++) mat[j] = matriz[j]; return mat; }
int* adj(int matriz[][]) { /* calcula la matriz de los adjuntos de matriz[][] */ int mat[n][n]; int temp[n-1][n-1]; int i,j,a,b,k,m; k = m = 0; for (i=0 ; i<n ; i++) { for (j=0 ; j<n ; j++) { for (a=0 ; a<n ; a++) { for (b=0 ; b<n ; b++) { if (a>=i) k = 1; else k = 0; if (b>=j) m = 1; else m = 0; if ((a != i) || (b !=i)) temp[a-k][b-m] = matriz[j]; } } } } } return mat; }
int det(matriz[][]) { /* calcula el determinante de la matriz. Esta funcion te la dejo pa ti;) */ return 0; }
Espero que te sirva de algo. Saludos.
10
« en: Sábado 8 de Junio de 2002, 20:53 »
Hla a todos! Alguien sabe donde puedo encontrar algun manual sobre SDL? Si no es pedir mucho que este en castellano (o catalan). Gracias.
11
« en: Sábado 8 de Junio de 2002, 20:36 »
hla! oye, porque no pruebas de hacerlo con un getche() o un getch() en vez de un scanf o gets.
Ambos estan incluidos en conio.h. No se cual de los dos es, aunque me parece que es getch. Esto lo que hace es recogerte solo un caracter, es decir, que tendras que hacer un bucle hasta que se pulse enter. Ademas no te imprime la letra pulsada.
Espero que te sirva. Saludos.
12
« en: Jueves 6 de Junio de 2002, 00:19 »
oops, lo siento, problemas con el copiar pegar. je je. Este es el codigo:
void intercambio(tipodatos *arg1, tipodatos *arg2) { tipodatos temp; temp.tllegada = arg1->tllegada; temp.tdemandado = arg1->tdemandado; temp.sgte = arg1->sgte; temp.ant = arg1->ant; arg1->tllegada = arg2->tllegada; arg1->tdemandado = arg2->tdemandado; arg1->sgte = arg2->sgte; arg1->ant = arg2->ant; arg2->tllegada = temp.tllegada; arg2->tdemandado = temp.tdemandado; arg2->sgte = temp.sgte; arg2->ant = temp.ant; }
Ahora si. Ta luego.
13
« en: Jueves 6 de Junio de 2002, 00:19 »
oops, lo siento, problemas con el copiar pegar. je je. Este es el codigo:
void intercambio(tipodatos *arg1, tipodatos *arg2) { tipodatos temp; temp.tllegada = arg1->tllegada; temp.tdemandado = arg1->tdemandado; temp.sgte = arg1->sgte; temp.ant = arg1->ant; arg1->tllegada = arg2->tllegada; arg1->tdemandado = arg2->tdemandado; arg1->sgte = arg2->sgte; arg1->ant = arg2->ant; arg2->tllegada = temp.tllegada; arg2->tdemandado = temp.tdemandado; arg2->sgte = temp.sgte; arg2->ant = temp.ant; }
Ahora si. Ta luego.
14
« en: Jueves 6 de Junio de 2002, 00:09 »
A ver si es esto: void intercambio(tipodatos *arg1, tipodatos *arg2) { tipodatos temp; temp.tllegada = arg1->tllegada; temp.tdemandado = arg1->tdemandado; temp.sgte = arg1->sgte; temp.ant = arg1->ant; arg1->tllegada = arg2->tllegada; arg1->tdemandado = arg2->tdemandado; arg1->sgte = arg2->sgte; arg1->ant = arg2->ant; arg2->tllegada = arg1->tllegada; arg2->tdemandado = arg1->tdemandado; arg2->sgte = arg1->sgte; arg2->ant = arg1->ant; } Es un poco burraco el algoritmillo pero supongo que funciona. . No se si existira alguna funcion que te copie estructuras enteras, pero bueno, al fin y al cabo acabara por ser lo mismo. Espero haberte ayudado. Saludos.
15
« en: Miércoles 5 de Junio de 2002, 00:41 »
¡¡¡¿¿¿chinos que comen leones???!!! (ya me imagino al chino, je je) ¿Y que pinta el barbero en todo esto? o peor aun: ¿que coño tiene que ver con los procesos? Alguien me podria explicar en que coño consiste ese programacertijobromaproblema? Espero sus respuestas. xDD.
Saludos.
16
« en: Lunes 3 de Junio de 2002, 23:15 »
hla zure. Una forma burra de hacerlo ir recorriendo el vector buscando todos y cada uno de los numeros, otra es ordenar el vector y comprobar que (vector == vector[i+1] + 1). Te implementare la primera y la segunda puedes usar el quiksort el cual esta puesto dentro de algun tema del foro de ada (me parece).
Suponiendo que el vector ese que dices se llama vector y tiene 25 posiciones, rellenados del 1 al 25 de forma pseudoaleatoria, seria algo asi:
int comprobar(int vector[]) { int i, k; for (i = 1 ; i<=25 ; i++) { k = 0; while ((vector[k] != i) && (k<25)) k++; if (k == 25) return 1; // no tan to los numeros } return 0; // correcto, tan to los numeros }
Creo que no m'equivocao, por si acaso, no taria de mas que lo repasases..
Saludos.
17
« en: Domingo 2 de Junio de 2002, 22:57 »
hla! tengo otra duda mas señor solocodigo. Es, otra vez, sobre los mensajes u2u esos. Como puedo ver mensajes u2u viejos que man mandao? es decir, ver un mensaje que no te haya salido el aviso ese negro que sale arriba. M'explicao bien? Es que le doy a eso de mensajes u2u y no sale na.
Espero su respuesta jefe.
18
« en: Viernes 31 de Mayo de 2002, 23:17 »
je je, bueno, una forma de hacerlo es simplemente si sabes el dia 1 que dia es, poz ya ta.
Suponiendo que es junio...
sub IntroducirDia(dia as integer) eseldia = dia mod 7 select case dia case 0: cadena = "sabado " & dia case 1: cadena = "domingo " & dia case 2: cadena = "lunes " & dia case 3: cadena = "martes " & dia ... case 6: cadena = "viernes " & dia end select form1.combo1.additem cadena end sub
El metodo es burrisimo pero pa sacarnos de algun apurillo. Ale, saludos chata.
19
« en: Viernes 31 de Mayo de 2002, 23:06 »
hola kafar! Creo que la unica manera de poder hacer esto es hacerlo a lo burro, es decir, me explico. Te entran la formula o la expresion en un textbox, asi, introducir el text1.text en una variable de tipo string e ir recorriendo la cadena con la funcion mid, y evaluando poco a poco la expresion. Primero, buscar parentesi, productos y divisiones, y asi sucesivamente e ir guardando cada subexpresion y evaluarla por separado.
Lo siento, pero no se me ocurre otro metodo mejor. Saludos.
20
« en: Viernes 31 de Mayo de 2002, 21:59 »
guenas noshe maestro!
oye, a ver si te sirve esto:
#include <stdio.h> #include <conio.h> #include <ctype.h> #include <stdlib.h>
int ShowMenu();
void main() { int salir = 0; do { switch (ShowMenu()) { case 1: opcion1(); break; case 2: opcion2(); break; case 3: opcion3(); break; case 4: opcion4(); break; case 5: opcion5(); break; case 6: salir = 1; break; } } while (salir == 0); clrscr(); }
int ShowMenu() { char tecla; int pos; int salir; salir = 0; pos = 1; textbackground(0); clrscr(); textbackground(1); textcolor(15); gotoxy(20,7); cprintf(" M E N U P R I N C I P A L "); textbackground(0); gotoxy(34,9); cprintf("opcion1"); gotoxy(34,10); cprintf("opcion2"); gotoxy(34,11); cprintf("opcion3"); gotoxy(34,12); cprintf("opcion4"); gotoxy(34,13); cprintf("opcion5"); gotoxy(34,14); cprintf("Salir"); do { textbackground(1); switch (pos) { case 1: { gotoxy(34,9); cprintf("opcion1"); pos = 1; fflush(stdin); tecla = getch(); textbackground(0); gotoxy(34,9); cprintf("opcion1"); break; } case 2: { gotoxy(34,10); cprintf("opcion2"); pos = 2; fflush(stdin); tecla = getch(); textbackground(0); gotoxy(34,10); cprintf("opcion2"); break; } case 3: { gotoxy(34,11); cprintf("opcion3"); pos = 3; fflush(stdin); tecla = getch(); textbackground(0); gotoxy(34,11); cprintf("opcion3"); break; } case 4: { gotoxy(34,12); cprintf("opcion4"); pos = 4; fflush(stdin); tecla = getch(); textbackground(0); gotoxy(34,12); cprintf("opcion4"); break; } case 5: { gotoxy(34,13); cprintf("opcion5"); pos = 5; fflush(stdin); tecla = getch(); textbackground(0); gotoxy(34,13); cprintf("opcion5"); break; } case 6: { gotoxy(34,14); cprintf("Salir"); pos = 6; fflush(stdin); tecla = getch(); textbackground(0); gotoxy(34,14); cprintf("Salir"); break; } } switch (tecla) { case 0x48: /* Abajo */ { if (pos != 1) pos = pos - 1; break; } case 0x50: /* Arriba */ { if (pos != 6) pos = pos + 1; break; } case 0x0d: /* Enter */ { salir = 1; break; } } } while (salir == 0); return pos; }
Piensa que en el main() se llaman a unas funciones que se llaman opcion1(), opcion2(), etc. Estas funciones son de ejemplo! Luego tienes que poner tu tus funciones o tu codigo que tu quieras. Okis?
Espero haberte podido ayudar. Saludos
21
« en: Viernes 31 de Mayo de 2002, 21:44 »
Hla felipe! Creo que lo que preguntas seria algo asi.
#include <stdio.h> #define n mucho /* donde mucho es un numero mu gordo xDD */
void main() { char texto[n]; char caracter; int i; FILE *p;
/* abrir el fichero */ p = fopen("ARCHIVO.TXT", "r");
/* leer caracteres hasta fin de fichero */ while ((caracter = getc(p)) != EOF) { texto = caracter; i++; }
/* cerrar el fichero */ fclose(p); }
Si te has fijado esto no vale pa nada o mas bien pa poco, ya que el vector texto es definido estaticamente y tu no sabes (al menos a priori) cuantos caracteres va a tener el fichero. Una solucion es hacerlo mediante listas enlazadas. Es decir, crear un struct asi:
typedef struct lista { char dato; struct lista *next; } car;
E ir creando en cada pasada del bucle while un caracter con un malloc. Mas o menos asi:
p->next = (struct lista *) malloc(sizeof(struct lista)); p->dato = caracter; p = p->next;
Aunque piensa que p debe estar inicializado y debes guardarte el primer malloc que hagas en algun lao aparte porque sino no sabras donde empieza tu lista.
Espero que esto te haya servido.
Respecto a tu segunda cuestion no se muy bien que quieres hacer.
Saludos.
22
« en: Lunes 27 de Mayo de 2002, 20:46 »
hola drascula!
eh, una forma un poco chapucera (supongo que habra otra mas elegante de hacerlo) es mediante una bandera.
Esto es, ejecutar procedimiento1, y desde el procedimiento2 ir haciendo lo que tengas que hacer, cuando quieras que procedimiento1 se interrumpa manda alguna señal de algun tipo (pon a true una variable global, escribe algo en algun fichero, modifica el caption de un label, etc.) y procedimiento1 que vaya revisando periodicamente dichos cambios, tal que: if (cambio) then end sub. Donde cambio puede ser cualquier cosa comentada antes.
Espero haberte ayudao. Saludos.
23
« en: Sábado 25 de Mayo de 2002, 17:20 »
hla!
Tengo un par de dudas. Se trata sobre el modo grafico 13h (320x200x256). Para utilizar tal modo en el sistema MSDOS se debia tratar de la siguiente manera:
Se tenia que declarar un puntero al principio de la memoria de video, la cual era un vector de 64k (320 bytes x 200 bytes) y asi podias escribir graficamente modificando el valor del byte al cual querias acceder.
Pues bien, sobre esto tengo un par de dudas. La primera es que si en sistemas UNIX (linux en particular) existe tal modo grafico? y si es asi, este es tratado de la misma forma que en DOS?
La segunda pregunta va un poco mas alla. Esto es, todos los modos graficos funcionan de igual manera? En modo 13h la longitud del array viene determinada porque tiene 256 colores, es decir, 2^8, siendo 1 byte la info de color de cada pixel, y tiene 320 pixel de ancho y 200 pixels de alto, asi pues el tamaño del array es 320 pixels multiplicado por 200 pixels y multiplicado por 1 byte.
Asi, pienso que un modo grafico de resolucion 640 x 480 con 256 colores sera un array de 307,2 k de longitud. Esto es asi o funciona de otra manera?
Me he explicado como el culo, pero si alguien sabe de esto le agradeceria que me lo explicara. Gracias.
Saludos
24
« en: Sábado 25 de Mayo de 2002, 16:35 »
Bueno beika, aqui te paso un codigo q quiza te puede servir. Era un codigo pa otra cosa pero lo he modificado un poco y ahora se asemeja a lo que tu quieres. Ta hecho pa turbo c/c++ para DOS. Si usas otro compilador piensa q solo (en principio) te funcionaran las librerias string.h y stdio.h (ANSI C).
Espero q te sea de utilizad. Saludos.
25
« en: Sábado 25 de Mayo de 2002, 16:32 »
Bueno beika, aqui te paso un codigo q quiza te puede servir. Era un codigo pa otra cosa pero lo he modificado un poco y ahora se asemeja a lo que tu quieres. Ta hecho pa turbo c/c++ para DOS. Si usas otro compilador piensa q solo (en principio) te funcionaran las librerias string.h y stdio.h (ANSI C).
Espero q te sea de utilizad. Saludos.
|
|
|