Retroceder   Foros de Emudesc > Tecnología > Informática > Programación

 
 
Herramientas
  #1  
Antiguo 10-oct-2011, 20:35
Advanced Member
 
Fecha de Ingreso: marzo-2009
Ubicación: En algún lugar cerca de Springfield
Mensajes: 454
sabelo-homerofan se está dando a conocer
Predeterminado [c]

Hola. Tengo un problema:

Quiero crear registros en un archivo (binario), y quiero que a cada palabra que ingreso se le agregue un identificador. Y que ese identificador se le pueda asignar por referencia a otra palabra.

En concreto, quiero hacer un diccionario de sinónimos, pero sin que las palabras se repitan, es decir, algo así:

1:hola:2
2:alo:1

Siendo el primer campo el id, el segundo la palabra, y el tercero la referencia a la palabra que es el sinónimo.

También que se puedan usar más de un sinónimo por palabra, quedando algo así:

1:hola:2,3
2:alo:1,3
3:quehay:1,2

¿Cómo quedaría el código?



Última edición por sabelo-homerofan fecha: 10-oct-2011 a las 21:45.
  #2  
Antiguo 18-oct-2011, 11:31
Avatar de felomeno
bald Tod
 
Fecha de Ingreso: abril-2007
Mensajes: 7,503
felomeno es un usuario distinguidofelomeno es un usuario distinguidofelomeno es un usuario distinguido
Predeterminado Re: [c]

No había visto este tema.

Todavía te interesa la ayuda o ya es demasiado tarde?

Claro que aún si te sigue interesando no sé si terminaré haciendo el programa o sólo daré ideas porque ahora mismo tengo un poco de problemas con C para compilar los programas y no podría probar el código.
  #3  
Antiguo 23-oct-2011, 15:49
Advanced Member
 
Fecha de Ingreso: marzo-2009
Ubicación: En algún lugar cerca de Springfield
Mensajes: 454
sabelo-homerofan se está dando a conocer
Predeterminado Re: [c]

Si, aún me interesa. Con respecto a lo del programa, no interesa el código, solamente quiero saber más o menos cómo sería el algoritmo para poder hacerlo.

Gracias.
  #4  
Antiguo 25-oct-2011, 02:14
Avatar de Oimetra
EMD Fan
 
Fecha de Ingreso: agosto-2011
Ubicación: Mexico
Mensajes: 431
Oimetra se está dando a conocer
Predeterminado Re: [c]

mis conocimientos son basicos, pero segun lo que entiendo que quieres lo que yo haria es despues de leer cada renglon hasta el salto de linea (obvio)

usar la linea para guardar los datos en la estructura de la palabra
struct palabra
{
int id;
char palabra[30];
int sinonimos[5]; (el tamaño depende de ti)
};
asi en el arreglo de los sinonimos guardas las id sinonimas y señalas con 0 que ya no hay mas sinonimos, (o ninguno si le das 0 al primer valor del arreglo)

hacer eso tambien es facil, tomas la linea que leiste, el primer caracter lo conviertes a entero y ya tienes la id, despues saltas la siguiente posicion (que sabes que es el simbolo ':') y comienzas a pasar cada posicion a la palabra hasta llegar al proximo ':', sabes que el primer caracter despues del ':' es el id del sinonimo asi que lo conviertes a entero (en caso de que tengas muchos ids y llegues a mas de 1 digito, solo pasas los caracteres a otra variable temporal hasta que llegues a ',' y la conviertes a entero) y te saltas la ',' y repites con el siguiente id, hasta que id==0 y listo...

segun entendi... creo que eso es lo que pides.

o mejor aun:

struct diccionario[100] (no tengo idea cuantas palabras piensas usar)
{
char palabra[30];
int sinonimos[5]; (el tamaño depende de ti)
};

y el id lo utilizas como la posicion en el arreglo de structs ^^

Oim~

Última edición por Oimetra fecha: 25-oct-2011 a las 02:17.
 




La franja horaria es GMT +2. La hora actual es: 06:08.


Alojamiento web 1&1. Powered by vBulletin®


1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93