Conjugador de Verbos Japoneses

15 views
Skip to first unread message

ferran quer

unread,
Aug 3, 2010, 8:03:23 PM8/3/10
to learn-ex...@googlegroups.com
Ya tengo el programa completado. En ubuntu funciona, pruébalo sólo en linux, que dudo que me haya salido multiplataforma así de fácil.

El rar contiene
- un ejecutable "mainx", se ejecuta por consola, no vale doble click jeje
- el código en c, con unas cuantas cabeceras.
- un fichero de prueba llamado "lista" (sin extensión)

Añado también un manual del funcionamiento del programa, no entra en detalles de errores, casos especiales, qué pasa si... el programa por ahora no es a prueba de tontos.

Por cierto, tiene agujeros de seguridad por todas partes, cúidamelo que es muy fácil hacerlo petar :)

Saludos,
Ferran
CVJ-2010-08.rar
manual.odt

ferran quer

unread,
Sep 30, 2010, 2:49:44 AM9/30/10
to learn-ex...@googlegroups.com
Añado tu último correo respecto al programa para seguir en esta conversación.

Ahora estoy interesado en mejorar el programa, empezando por donde tú me dijiste. Enseñé el código a un amigo y me recomendó separar con dos librerías estrictas las dos funciones del programa: manejar columnas y conjugar verbos. La utilidad es evidente, si a alguien le interesa solamente manejar columnas, no tiene por qué tener un conjugador de japonés incrustado. Pero esto será más adelante.

Respecto a la función quina_forma me comentó que no hacía falta convertir siempre la forma de cadena a entero, pero creo que se equivoca. Ha de ser mejor transformar a enteros, operar con enteros, y antitransformar si hace falta.

Mi plan para el programa a medio plazo es:
- reprogramar la función quina_forma
- añadir un conversor hiragana -> romaji al conjugador
- usando el programa, colgar nuevas lecciones de verbos.
- separar el programa en dos librerías distintas.

Creo que ya he entendido lo del cubo, en el momento de recibir el correo no era mi prioridad mejorar el código, pero tenía en mente la necesidad. Voy a intentar construir otra vez la función y volvemos a hablar.

Por cierto, anoche estuve mirando algunas funciones del código fuente de LearnExperiment en javascript, y me resultó bastante interesante. Más adelante me pondré en ello...

Saludos!


2010/8/10 Jaime García Marsá <ja...@legendarya.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
 
2010/8/4 ferran quer <rank...@gmail.com>

Jaime García Marsá

unread,
Oct 4, 2010, 7:05:14 AM10/4/10
to learn-ex...@googlegroups.com
Hola ferran, en cuanto a tu programa, mas no te puedo decir (por ser en C). Puede tener razón tu amigo en cuanto a que operar con enteros no es necesario, aunque no lo tengo claro. Si te animas a pasarlo a un formato web (PHP o javascript), además de usarlo online podría ayudarte a programarlo y optimizarlo.

En cuanto a las funciones de Learnexperiment en javascript, es muy interesante por que es donde reside el núcleo del sistema. El PHP da el soporte de gestión, pero el proceso de elección de preguntas y demás está todo en javascript. Ahora mismo estoy perfeccionándolo, así que cuando lo tenga tengo que comentarlo y documentarlo para que cualquiera pueda meterle mano.

Un saludo:

Jaime
Reply all
Reply to author
Forward
0 new messages