ClubEnsayos.com - Ensayos de Calidad, Tareas y Monografias
Buscar

Programación del Método del trapecio.

Russell GarciaTarea29 de Marzo de 2016

3.626 Palabras (15 Páginas)326 Visitas

Página 1 de 15

[pic 1]


Plantilla principal del Programa-Método del trapecio.

                     [pic 2][pic 3]

Botón principal Resolver

//Evalúa todos los paréntesis en caso de faltar uno aparecerá el siguiente mensaje

ON ERROR w=0

w=1

x=1

ecua=ALLTRIM(thisform.text1.value)

z=&ecua

ON ERROR

IF w=0

        =MESSAGEBOX("Revisa tu ecuación",16,"Error")

        RETURN

ENDIF

        

//Buca todas la “X”        

IF "X"$THISFORM.TEXT1.VALUE  

//Formaliza la tabla

        DIMENSION array_resultados(thisform.n.Value+1,3)

//Realiza la operación, para saber el valor de h=b-a/n

        h=(thisform.b.Value-thisform.a.Value)/thisform.n.Value

//Realiza un FOR de 0 hasta lo que mida n (Numero de intervalos), //guardando los valores en la tabla

        FOR count_gusa=0 TO thisform.n.Value

                array_resultados(count_gusa+1,1)=count_gusa

                array_resultados(count_gusa+1,2)=thisform.a.Value + (count_gusa*h)

//Evalúa los resultados obtenidos en (1,2) y los mete en la //ecuación, dejando los resultados en (1,3)                

                x=array_resultados(count_gusa+1,2)

                ecua=ALLTRIM(thisform.text1.value)

                array_resultados(count_gusa+1,3)=&ecua

                

        NEXT

//Obtenidos los resultados en (1,3), el programa busca el primer y //el ultimo valor de la tabla, guardándolos en fa y fb //respectivamente.

        fa=array_resultados(1,3)

        fb=array_resultados(thisform.n.Value+1,3)

//Busca los otros resultados sumándolos entre sí, guardándolo en //fs.

        fs=0

        FOR count_gusa=2 TO thisform.n.Value

                fs=fs+array_resultados(count_gusa,3)

        

//Después fs será multiplicado por 2, enseguida será sumado con fa //y fb, guardando el valor en fs, a continuación tomando el valor //de h y dividiéndolo entre dos será multiplicando por el valor de //fs, el valor obtenido será guardado en fs

NEXT

        fs=fs*2

        fs=fa+fb+fs

        fs=(h/2)*fs

//El resultado obtenido será redondeado a 10 decimales

        thisform.text4.Value=ROUND(fs,10)

//El siguiente codigo sera para copear los valores de a, b, la //ecuación ingresada en el cuadro de texto y el resultado obtenido //en fs        

        thisform.label7.Caption=ALLTRIM(STR(thisform.b.Value))

        thisform.label8.Caption=ALLTRIM(STR(thisform.a.Value))

        thisform.label9.Caption=ALLTRIM(thisform.text2.Value)+")dx="+ALLTRIM(STR(thisform.text4.Value,20,10))+"  U^2"

*****

//A continuación se presenta el código de la gráfica, tabulando //todos los resultados obtenidos de la tabla (1, 2) y (1, 3)

        CLOSE DATABASES

        SELECT 0

        USE vfpgraph

        thisform.oleboundcontrol1.controlsource="olegraph"

        SELECT vfpgraph

        #DEFINE CRLF CHR(13)+CHR(10)

        #DEFINE TAB CHR(9)

        lcData= " " + TAB + "F(x)" + CRLF

        FOR t=1 TO ALEN(array_RESULTADOS,1)

          lcData = lcData + alltrim(STR(array_RESULTADOS(t,2),20,16))

          lcData = lcData + TAB

          lcData = lcData + ALLTRIM(STR(array_RESULTADOS(t,3),20,16)) + CRLF

        next

        go 1

        APPEND GENERAL olegraph DATA lcData

        go 1

        thisform.oleboundcontrol1.Refresh

        thisform.oleboundcontrol1.visible=.t.

        thisform.oleboundcontrol1.Refresh

**************        

        

//Por último el programa está basado en el método del trapecio, el //método no funcionaría sino hay ninguna “X” por evaluar, por tal //motivo, si al evaluar la función no encuentra ninguna “X” //aparecerá el siguiente mensaje

thisform.command27.click

        

ELSE

        =MESSAGEBOX("Nada que resolver en tu ecuación"+CHR(13)+"Ingresa almenos una X",16,"Error")

ENDIF

        

thisform.list1.requery

Cuadro de texto Text2

//La ecuación tendrá que ser guardada y para ello habrá problemas //como ¿Que debe hacer el programa si encuentra palabras como SIN, //COS, TAN, LOG,) y X?

Ejemplo: si tenemos en el cuadro de texto “COS (“el programa buscara que cosa tiene detrás de él, si fuse que detrás de él estuviese un número, el programa tendría que multiplicar el Número por la Función, pero si tuviéramos los signos +,-,*, /, ( o incluso nada, el programa tendría que someter a la Función a la operación

thisform.command26.Click

thisform.text1.Value=""

FOR contador=1 TO LEN(thisform.text2.value)

        DO CASE

                CASE SUBSTR(thisform.text2.value,contador,1)=="X"

                *OR SUBSTR(thisform.text2.value,contador,1)=="("

                        IF ISDIGIT(SUBSTR(thisform.text2.value,contador-1,1))

                                thisform.text1.Value=thisform.text1.Value+"*"+SUBSTR(thisform.text2.value,contador,1)

                        ELSE

                                thisform.text1.Value=thisform.text1.Value+SUBSTR(thisform.text2.value,contador,1)        

                        ENDIF

                CASE SUBSTR(thisform.text2.value,contador,4)=="COS("

                        DO CASE

                                CASE SUBSTR(thisform.text2.value,contador-1,1)=="+" OR;

...

Descargar como (para miembros actualizados) txt (12 Kb) pdf (427 Kb) docx (419 Kb)
Leer 14 páginas más »
Disponible sólo en Clubensayos.com