Curso de Japonés · avances

1 view
Skip to first unread message

ferran quer

unread,
Aug 9, 2010, 6:09:12 PM8/9/10
to learn-ex...@googlegroups.com
He terminado un primer fragmento de la lista. Tengo que repasarla porque es casi toda de cabeza, y habrá errores.
http://spreadsheets.google.com/ccc?key=tTYvbUXAwgXNjbHx9fi6AsQ&hl=ca#gid=0

Estoy pensando de añadir las dos formas de condicional al programa, aunque creo que tendría que optimizar el algoritmo, tiene algunas partes de código un poco chapuceras. Hablaré con un amigo que estudia matemáticas a ver si entre los dos sacamos un código más limpio que una lista enorme de if's. No sé si has mirado el código fuente aún, pero me refiero a todo el proceso de pasar de código de letras (hnxte) a código de enteros (1,2,3...) y viceversa.

Jaime García Marsá

unread,
Aug 10, 2010, 6:21:38 AM8/10/10
to learn-ex...@googlegroups.com
Hola Ferran, la verdad es que no había mirado el código, por que al ver que necesitaba linux, lo había dejado "aparcado", ya que ahora mismo no lo tengo disponible. Pero acabo de fijarme en que lo acompañabas de una documentación muy completa, y que me ha servido para enterarme mientras tanto.

Efectivamente el código se puede mejorar con ciertas técnicas, por ejemplo lanzando excepciones en vez de usar "return -1" se puede reducir bastante. En cualquier caso si te parece bien podemos intentar hacerlo en PHP, dándole un interfaz gráfico. En c no estoy muy puesto y te podría ayudar menos, y así de paso tendrías algo con lo que introducirte en PHP.

Además, las técnicas que utilice en PHP probablemente se puedan aplicar también en C.

Si te parece puedo hacer un interfaz en PHP para el caso básico (una sola columna con un solo patrón), aunque me tendrás que echar una mano a la hora de programarlo. Después, para hacer varias columnas con distintos patrones, creo que lo mejore es un interfaz javascript.

Una cuestión ¿que uso le vas a dar a el programa? Según esto se puede hacer mejor de una u otra forma ¿Y Para que usos se podría incluir en Learnexperiment? Por lo que he visto hay que pasarle el grupo en la tabla. ¿Podríamos por contra tener una lista de verbos y que el grupo ya fuese conocido?

Un saludo:

Jaime

Jaime García Marsá

unread,
Aug 10, 2010, 9:47:12 AM8/10/10
to learn-ex...@googlegroups.com
por cierto, una propuesta para la funcion quinaforma (separador-conjugador-funcions_de_codi.h), reduce el código haciendo las comprobaciones de error todas juntas y usando arrays para escoger el resultado a devolver, en lugar de ifs. No se si estará del todo bien. Con PHP hay otras facilidades y es a lo que estoy acostumbrado, pero al menos puede dar ideas.


// Comprobamos si el valor es incorrecto
if(is_afirm(forma)!=0 && is_afirm(forma)!=1) return -1;
int[] forma_te=[NFORMATE,FORMATE];
if(is_fte(forma)) return forma_te[is_afirm(forma)];
// Comprobamos si el valor es incorrecto
if((is_formal(forma)!=0 && is_formal(forma)>1) || (is_present(forma)!=0 && is_present(forma)!=1)) return -1;
int[][][] forma=[ // no formal (no presente/presente) // formal (no presente/presente)
[[CNPASSAT,CNPRESENT],[FNPASSAT,FNPRESENT]]] // No afirmativo
[[FPASSAT,FPRESENT],[CPASSAT,CPRESENT]]] // Afirmativo
];
return forma[is_afirm(forma)][is_formal(forma)][is_present(forma)];

La idea es que tenemos un "cubo" con tres lados, para las variables formal/informal, afirmativo/negativo y presente/pasado. En un array se definen los valores para cada casilla del cubo, y luego se usan las variables devueltas simplemente como índices. Como dije, usando excepciones podríamos incluso eliminar las líneas de comprobación de errores
Reply all
Reply to author
Forward
0 new messages