Ver Mensaje Individual
  #8 (permalink)  
Antiguo 23/02/2006, 09:39
Avatar de JuanRAPerez
JuanRAPerez
Colaborador
 
Fecha de Ingreso: octubre-2003
Mensajes: 2.393
Antigüedad: 21 años, 6 meses
Puntos: 27
detalle de la resolucion

pero fue en visual basic

lo dejo por si a alguien le interesa mas adelante

sludos.

Suerte


Cita:
Attribute VB_Name = "frm_derivadas"
Attribute VB_GlobalNameSpace = False
Attribute VB_Creatable = False
Attribute VB_PredeclaredId = True
Attribute VB_Exposed = False
Private Sub Command1_Click()
Dim rvalor, rExp, rvar1, rvar2, roper, rmay9
rvalor = 0
roper = ""
If Len(Text6) > 0 Then
rvez = 1
For i = 1 To Len(Text6)
' verificar el grado
If Mid(Text6, i, 2) = "X^" Then
If rvalor < Mid(Text6, i + 2, 1) Then
rvalor = Mid(Text6, i + 2, 1)
End If
Else
If Mid(Text6, i, 1) = "X" Then
If Val(rvalor) < Val(Mid(Text6, i + 1, 1)) Then
rvalor = Mid(Text6, i + 1, 1)
Else
' rvalor = 1
End If
End If
End If
' calcular derivada
If Mid(Text6, i, 1) = "+" Or Mid(Text6, i, 1) = "-" Then
If rvez = 1 Then
Dim pos(10) As Integer
Dim posV(10) As String
Dim posY As Integer
rconta = 0
For p = 1 To Len(Text6)
If Mid(Text6, p, 1) = "+" Or Mid(Text6, p, 1) = "-" Then
pos(rconta) = p
posV(rconta) = Mid(Text6, p, 1)
rconta = rconta + 1
End If
Next p
For p = 1 To Len(Text6)
If Mid(Text6, p, 1) = "=" Then
posY = p
End If
Next p

K = 0

Dim rlimI, rlimS
Do While rconta + 1 > 0
If rconta > 0 Then
If K = 0 Then
rlimI = 1
rlimS = pos(K)
rlong = rlimS - rlimI
Else
rlimI = pos(K - 1) + 1
rlimS = pos(K)
rlong = rlimS - rlimI
End If
Else
If rconta = 0 Then
rlimI = pos(K - 1) + 1
rlimS = posY
rlong = rlimS - rlimI
Else
rlimI = pos(K - 1) + 1
rlimS = pos(K)
rlong = rlimS - rlimI
End If
End If
rvar1 = Mid(Text6, rlimI, rlong)

For l = 1 To Len(rvar1)
If Mid(rvar1, l, 2) = "X^" Then
rExp = Mid(rvar1, l + 2, 1)
rmay9 = Val(Left(rvar1, 2))
If rmay9 > 9 Then
rvar2 = Mid(rvar1, l - 2, 2)
Else
If rmay9 = 0 Then
rvar2 = 1
Else
rvar2 = Mid(rvar1, l - 1, 1)
End If
End If
If Val(rExp) = 2 Then
roper = roper + " " + Trim(posV(K - 1)) + " " + Str(Val(rExp) * Val(rvar2)) + "X"
Else
If Val(rExp) = 1 Then
Else
If Len(roper) > 0 Then
roper = roper + " " + Trim(posV(K - 1)) + " " + Str(Val(rExp) * Val(rvar2)) + "X^" + Str(rExp - 1)
Else
roper = Str(Val(rExp) * Val(rvar2)) + "X^" + Str(rExp - 1)
End If
End If
End If
Else
If Mid(rvar1, l, 1) = "X" Then
rExp = Mid(rvar1, l + 2, 1)
rmay9 = Val(Left(rvar1, 2))
If rmay9 > 9 Then
rvar2 = Mid(rvar1, l - 2, 2)
Else
If rmay9 = 0 Then
rvar2 = 1
Else
rvar2 = Mid(rvar1, l - 1, 1)
End If
End If
If Val(rExp) = 2 Then
roper = roper + " " + Trim(posV(K - 1)) + " " + Str(Val(rExp) * Val(rvar2)) + "X"
Else
If Val(rExp) = 0 Then
roper = roper + " " + Trim(posV(K - 1)) + " " + rvar2
Else
roper = roper + " " + Trim(posV(K - 1)) + " " + Str(Val(rExp) * Val(rvar2)) + "X^" + Str(rExp - 1)
End If
End If
End If
End If
Next l
rconta = rconta - 1
K = K + 1
rvez = 3
Loop
End If
End If
Next i
End If



MsgBox "la derivada es de grado." + Str(rvalor)
MsgBox "la derivada es " + roper
End Sub

powered raul, cros y jr
__________________
JuanRa Pérez
San Salvador, El Salvador