FoxPro/Visual FoxPro - FoxPro-Ingresar un verbo infinitivo y dar como resultado su conjugación en presente simple

 
Vista:
sin imagen de perfil
Val: 1
Ha aumentado su posición en 19 puestos en FoxPro/Visual FoxPro (en relación al último mes)
Gráfica de FoxPro/Visual FoxPro

FoxPro-Ingresar un verbo infinitivo y dar como resultado su conjugación en presente simple

Publicado por Moll (1 intervención) el 30/01/2020 01:44:29
Buenas tarde/días/noches.
Quisiera saber como realizar un programa que permita ingresar un verbo infinitivo y que de como resultado su conjugación en presente simple. En el programa de Visual FoxPro

Muchas gracias por adelantado.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Mauricio Antonio
Val: 471
Plata
Ha mantenido su posición en FoxPro/Visual FoxPro (en relación al último mes)
Gráfica de FoxPro/Visual FoxPro

FoxPro-Ingresar un verbo infinitivo y dar como resultado su conjugación en presente simple

Publicado por Mauricio Antonio (1541 intervenciones) el 31/01/2020 14:11:39
El foro es para ayudar, no para hacer tareas escolares.......
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 1.011
Oro
Ha mantenido su posición en FoxPro/Visual FoxPro (en relación al último mes)
Gráfica de FoxPro/Visual FoxPro

FoxPro-Ingresar un verbo infinitivo y dar como resultado su conjugación en presente simple

Publicado por Fidel José (657 intervenciones) el 01/02/2020 16:30:10
Te tiro una idea. Pero el problema son los verbos irregulares
El procedure Conjugar sirve acá de punto de entrada y muestra la respuesta.

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
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
PROCEDURE conjugar
TRY
 
	LOCAL LOEX AS EXCEPTION
	lcString = ALLTRIM(INPUTBOX("Escriba un verbo","Conjugador de verbos regulares","",0,"",""))
	IF !EMPTY(m.lcString)
		MESSAGEBOX(get_conjugacion(m.lcString),0,"Conjuagación de "+m.lcString)
	ENDIF
 
CATCH TO LOEX
	LOEX.USERVALUE = PROGRAM()
	Show_Error(LOEX)
 
FINALLY
 
ENDTRY
ENDPROC
 
 
PROCEDURE Get_conjugacion
LPARAMETERS tcVerbo
TRY
 
	LOCAL LOEX AS EXCEPTION,;
		LCMESSAGE,;
		lcLista,;
		lcConju,;
		lcRaiz,;
		lcDecine,;
		lcPronombre
 
	lcPronombre = "yo,,él,nosotros,vosotros,ellos"
	lcLista = ""
 
 
 
	DO WHILE .t.
		IF VARTYPE(m.tcVerbo)#"C" OR EMPTY(m.tcVerbo)
			EXIT
		ENDIF
 
		tcVerbo = ALLTRIM(LOWER(m.tcVerbo))
		* Acá hay que ver si el verbo es irregular
		IF Is_Irregular(m.tcVerbo)
			EXIT
		ENDIF
 
 
		lcDecine = RIGHT(m.tcVerbo,2)
		lcRaiz = LEFT(m.tcVerbo,LEN(m.tcVerbo)-2)
 
		DO CASE
			CASE m.lcDecine = "ar"
				lcConju = "o,as,a,amos,áis,am"
 
			CASE m.lcDecine = "er"
				lcConju = "o,es,e,emos,éis,en"
 
			CASE m.lcDecine = "ir"
				lcConju = "o,es,e,imos,ís,en"
 
		ENDCASE
		FOR i = 1 TO GETWORDCOUNT(m.lcPronombre,CHR(44))
			lcLista = m.lcLista ;
				+ GETWORDNUM(m.lcPronombre,i,CHR(44))+" ";
				+ m.lcRaiz ;
				+ GETWORDNUM(m.lcConju,i,CHR(44));
				+ CHR(13)+CHR(10)
		NEXT
		EXIT
	ENDDO
 
CATCH TO LOEX
	LOEX.USERVALUE = PROGRAM()
	Show_Error(LOEX)
 
FINALLY
 
ENDTRY
RETURN m.lcLista
ENDPROC
 
PROCEDURE Is_Irregular
LPARAMETERS tcVerbo
* Debería haber una tabla,texto,etc
* con todos los verbos irregulares
 
ENDPROC
 
*----------------------------------------------------
PROCEDURE Show_Error
LPARAMETERS toExcep,tlNotShow,tcCaption
*-----------------------------------------------------
tcCaption=EVL(tcCaption,"Mensaje del Sistema")
SET HOURS TO 24
LOCAL lcMens
 
 
lcMens="Fecha "+TRANSFORM(DATETIME());
	+ Chr(13)+"Mensaje: "+toExcep.message;
	+ Chr(13)+"ErrorNo: "+TRANSFORM(toExcep.Errorno);
	+ Chr(13)+"Llamada: "+toExcep.Uservalue
IF _vfp.StartMode=0
	lcMens=lcMens+ Chr(13)+"Linea "+TRANSFORM(toExcep.lineno)
ENDIF
 
STRTOFILE(lcMens+ Chr(13)+REPLICATE("=",60)+ Chr(13),"Errors.log",1)
 
lcMens="Se ha producido un error:"+ Chr(13)+lcMens
IF !tlNotShow
	MESSAGEBOX(m.lcMens,0,m.tcCaption)
ENDIF
 
ENDPROC
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar