Sie sind auf Seite 1von 7

Function Verificar_Primo() As Boolean

Dim b As Boolean = False


Dim c As Integer = 1
If n > 1 Then
Do
c = c + 1
Loop Until (n Mod c = 0) Or (c > n)
If c = n Then
b = True
End If
Else
If n = 1 Then
b = True
End If
End If
Return b
End Function

Function Verificar_Fibonaci() As Boolean


Dim T As Integer = 0
Dim a As Integer = -1
Dim b As Integer = 1
Do
T = a + b
a = b
b = T
Loop Until (T = n) Or (T > n)
Return n = T
End Function

Function Invertir() As Integer


Dim nu As Integer = 0
Dim d As Integer = 0
Dim na As Integer = n
While na > 0
d = na Mod 10
na = na \ 10
nu = nu * 10 + d
End While
Return nu
End Function
Function Verificar_Capicua() As Boolean
Dim num As Integer = Invertir()
Return n = num
End Function

Function Frecuendia(ByVal dig As Integer) As Integer


Dim na As Integer = n
Dim d As Integer = 0
Dim c As Integer = 0
While na > 0
d = na Mod 10
na = na \ 10
If d = dig Then
c = c + 1
End If
End While
Return c
End Function

Function Frecuencia_ND(ByVal dig As Integer, ByVal nd As Integer) As


Integer
Dim na As Integer = n
Dim d As Integer = 0
Dim c As Integer = 0
While na > 0
d = na Mod 10 ^ nd
na = na \ 10 ^ nd
If d = dig Then
c = c + 1
End If
End While
Return c
End Function

Function Digito_Menor(ByVal nd As Integer) As Integer


Dim na As Integer = n
Dim d As Integer = 0
Dim men As Integer = 0
men = na Mod 10 ^ nd : na = na \ 10 ^ nd
While na > 0
d = na Mod 10 ^ nd
na = na \ 10 ^ nd
If men > d Then
men = d
End If
End While
Return men
End Function

Function Digito_Menor() As Integer


Dim na As Integer = n
Dim d As Integer = 0
Dim men As Integer = 0
men = na Mod 10 : na = na \ 10
While na > 0
d = na Mod 10
na = na \ 10
If men > d Then
men = d
End If
End While
Return men
End Function

Function Digito_Mayor(ByVal nd As Integer) As Integer


Dim na As Integer = n
Dim d As Integer = 0
Dim may As Integer = 0
may = na Mod 10 ^ nd : na = na \ 10 ^ nd
While na > 0
d = na Mod 10 ^ nd
na = na \ 10 ^ nd
If may < d Then
may = d
End If
End While
Return may
End Function

Function Digito_Mayor() As Integer


Dim na As Integer = n
Dim d As Integer = 0
Dim may As Integer = 0
may = na Mod 10 : na = na \ 10
While na > 0
d = na Mod 10
na = na \ 10
If may < d Then
may = d
End If
End While
Return may
End Function

Function Contar() As Integer


Dim na As Integer = n
Dim c As Integer = 0
While na > 0
na = na \ 10
c = c + 1
End While
Return c
End Function
Function Unir2Net(ByVal n1 As NEnt) As Integer
Dim nu As Integer = 0
nu = n * 10 ^ (n1.Contar) + n1.n
Return nu
End Function

Sub Eliminar_digito(ByVal dig As Integer)


Dim nu As NEnt = New NEnt
Dim d As Integer = 0
Dim e As Integer = -1
Dim b As Boolean = True
While (n > 0) And (b = True)
d = n Mod 10
n = n \ 10
If Not d = dig Then
e = e + 1
nu.n = nu.n + d * 10 ^ e
Else
b = False
End If
End While
n = Unir2Net(nu)
End Sub

Sub Eliminar_digito(ByVal dig As Integer, ByVal nd As Integer)


Dim nu As NEnt = New NEnt
Dim d As Integer = 0
Dim e As Integer = -nd
Dim b As Boolean = True
While (n > 0) And (b = True)
d = n Mod 10 ^ nd
n = n \ 10 ^ nd
If Not d = dig Then
e = e + nd
nu.n = nu.n + d * 10 ^ e
Else
b = False
End If
End While
n = Unir2Net(nu)
End Sub

Sub Eliminar_todos_digito(ByVal dig As Integer, ByVal nd As Integer)


Dim nu As Integer = 0
Dim d As Integer = 0
Dim e As Integer = -nd
While (n > 0)
d = n Mod 10 ^ nd
n = n \ 10 ^ nd
If Not d = dig Then
e = e + nd
nu = nu + d * 10 ^ e
End If
End While
n = nu
End Sub

Sub Orden_Ascendente(ByVal nd As Integer)


Dim d As Integer = 0
Dim nu As Integer = 0
While n > 0
d = Digito_Menor(nd)
nu = nu * 10 ^ nd + d
Eliminar_digito(d, nd)
End While
n = nu
End Sub

Sub Orden_Ascendente()
Dim d As Integer = 0
Dim nu As Integer = 0
While n > 0
d = Digito_Menor()
nu = nu * 10 + d
Eliminar_digito(d)
End While
n = nu
End Sub

Sub Orden_Descendente(ByVal nd As Integer)


Dim d As Integer = 0
Dim nu As Integer = 0
While n > 0
d = Digito_Mayor(nd)
nu = nu * 10 ^ nd + d
Eliminar_digito(d, nd)
End While
n = nu
End Sub

Sub Orden_Descendente()
Dim d As Integer = 0
Dim nu As Integer = 0
While n > 0
d = Digito_Mayor()
nu = nu * 10 + d
Eliminar_digito(d)
End While
n = nu
End Sub

Sub Intercalar_mantiene_orden_nd(ByVal nd As Integer)


Dim d As NEnt = New NEnt
Dim P As NEnt = New NEnt
Dim nP As NEnt = New NEnt
Dim con As Integer = Contar()
Dim e1 As Integer = -nd
Dim e2 As Integer = -nd
Dim b As Boolean = True
Dim dig As Integer = 0
Dim nu As Integer = 0
While n > 0
d.n = n Mod 10 ^ nd
n = n \ 10 ^ nd
If d.Verificar_Primo Then
e1 = e1 + nd
P.n = P.n + d.n * 10 ^ e1
Else
e2 = e2 + nd
nP.n = nP.n + d.n * 10 ^ e2
End If
End While

While con > 0


If b = True Then
If P.n > 0 Then
dig = P.n Mod 10 ^ nd
P.n = P.n \ 10 ^ nd
nu = nu * 10 ^ nd + dig
Else
dig = nP.n Mod 10 ^ nd
nP.n = nP.n \ 10 ^ nd
nu = nu * 10 ^ nd + dig
End If
Else
If nP.n > 0 Then
dig = nP.n Mod 10 ^ nd
nP.n = nP.n \ 10 ^ nd
nu = nu * 10 ^ nd + dig
Else
dig = P.n Mod 10 ^ nd
P.n = P.n \ 10 ^ nd
nu = nu * 10 ^ nd + dig
End If
End If
b = Not b
con = con - nd
End While
n = nu
End Sub

Sub Intercalar_orden_Asce_Desce_nd(ByVal nd As Integer)


Dim d As NEnt = New NEnt
Dim P As NEnt = New NEnt
Dim nP As NEnt = New NEnt
Dim con As Integer = Contar()
Dim b As Boolean = True
Dim dig As Integer = 0
Dim nu As Integer = 0
While n > 0
d.n = n Mod 10 ^ nd
n = n \ 10 ^ nd
If d.Verificar_Primo Then
P.n = P.n * 10 ^ nd + d.n
Else
nP.n = nP.n * 10 ^ nd + d.n
End If
End While
P.Orden_Ascendente(nd)
nP.Orden_Descendente(nd)
While con > 0
If b = True Then
If P.n > 0 Then
dig = P.n Mod 10 ^ nd
P.n = P.n \ 10 ^ nd
nu = nu * 10 ^ nd + dig
Else
dig = nP.n Mod 10 ^ nd
nP.n = nP.n \ 10 ^ nd
nu = nu * 10 ^ nd + dig
End If
Else
If nP.n > 0 Then
dig = nP.n Mod 10 ^ nd
nP.n = nP.n \ 10 ^ nd
nu = nu * 10 ^ nd + dig
Else
dig = P.n Mod 10 ^ nd
P.n = P.n \ 10 ^ nd
nu = nu * 10 ^ nd + dig
End If
End If
b = Not b
con = con - nd
End While
n = nu
End Sub

Function Verificar_poker() As Boolean


Return (Frecuendia(Digito_Menor) = 4 And Frecuendia(Digito_Mayor)
= 1) Or (Frecuendia(Digito_Mayor) = 1 And Frecuendia(Digito_Menor) = 4)
End Function

Function Verificar_full() As Boolean


Return (Frecuendia(Digito_Menor) = 3 And Frecuendia(Digito_Mayor)
= 2) Or (Frecuendia(Digito_Mayor) = 3 And Frecuendia(Digito_Menor) = 2)
End Function

Function VErificar_Escalera() As Boolean


Orden_Ascendente()
Dim na As Integer = n
Dim b As Boolean = True
Dim d As Integer = 0
Dim ref As Integer = na Mod 10

While (na > 0) And (b = True)


d = na Mod 10
na = na \ 10
If d = ref Then
ref = ref - 1
Else
b = False
End If
End While
Return b
End Function

Artculo original lo copiaeste de : http://tutovisual.blogspot.com/2014/12/blog-post.html


para ayudarte en programacin I

Das könnte Ihnen auch gefallen