Autor
|
Tema: [RETO] CompWordsAlphabetically (Leído 10,083 veces)
|
Psyke1
Wiki
Desconectado
Mensajes: 1.089
|
¿Qué pasa? ¿Donde están los retos que caracterizan a esta sección? A ver que os parece este: Parte 1:Crear una función que compare dos palabras (sin importar mayúsculas) y devuelva: 0 : Error 1 : La 1ª palabra va antes en el abecedario 2 : La 2ª palabra va antes en el abecedario 3 : Ambas palabras son iguales Ejemplos: "rana" - "" -> 0 "hola" - "holas" -> 1 "bienvenido" - "bienvenida" -> 2 "Ejemplo" - "eJempLIficar" -> 2 "igual" - "igual" -> 3 "PALABRA" - "palabra" -> 3
Espero haber sido claro... Si hay alguna duda preguntad. Por supuesto vale todo y el más rápido gana PD: La Parte 2 la propondré cuando esté la parte 1 finalizada... DoEvents!
|
|
« Última modificación: 11 Marzo 2011, 14:01 pm por Mr.Frog™ »
|
En línea
|
|
|
|
79137913
Desconectado
Mensajes: 1.169
4 Esquinas
|
HOLA!!! Listo!!! Private Function FirstWord7913(W1 As String, W2 As String) As Long If LenB(W1) = 0 Then FirstWord7913 = 0 Exit Function End If If LenB(W2) = 0 Then FirstWord7913 = 0 Exit Function End If Dim ST1 As Byte Dim ST2 As Byte ST1 = LCase$(W1) ST2 = LCase$(W2) If LenB(ST1) = LenB(ST2) Then If InStrB(1, ST1, ST2, vbBinaryCompare) Then FirstWord7913 = 3 Exit Function End If End If Dim B1() As Byte Dim B2() As Byte B1 = ST1 B2 = ST2 Dim X As Long If UBound(B1) > UBound(B2) Then For X = 1 To UBound(B2) Step 2 If B1(X) < B2(X) Then FirstWord7913 = 1 Exit Function ElseIf B1(X) > B2(X) Then FirstWord7913 = 2 Exit Function End If Next FirstWord7913 = 2 Exit Function Else For X = 1 To UBound(B1) Step 2 If B1(X) < B2(X) Then FirstWord7913 = 1 Exit Function ElseIf B1(X) > B2(X) Then FirstWord7913 = 2 Exit Function End If Next FirstWord7913 = 1 Exit Function End If End Function
GRACIAS POR LEER!!!
|
|
« Última modificación: 4 Mayo 2012, 18:58 pm por 79137913 »
|
En línea
|
"Como no se puede igualar a Dios, ya he decidido que hacer, ¡SUPERARLO!" "La peor de las ignorancias es no saber corregirlas"
79137913 *Shadow Scouts Team*
|
|
|
Karcrack
Desconectado
Mensajes: 2.416
Se siente observado ¬¬'
|
@79137913: No creo que esa versión sea demasiado rápida Por que divides entre 2?
Option Explicit Sub Main() Debug.Print kCompare("rana", "") Debug.Print kCompare("hola", "holas") Debug.Print kCompare("bienvenido", "bienvenida") Debug.Print kCompare("Ejemplo", "eJempLIficar") Debug.Print kCompare("igual", "igual") Debug.Print kCompare("PALABRA", "palabra") End Sub Public Static Function kCompare(ByRef s1 As String, ByRef s2 As String) As Long Dim b() As Long If (LenB(s1) <> 0) And (LenB(s2) <> 0) Then If (Not Not b) = False Then ReDim b(-1 To 1) b(-1) = 1 b(1) = 2 b(0) = 3 End If kCompare = b(StrComp(s1, s2, vbTextCompare)) End If End Function
Si no hubieses elegido esos numeros todo seria mas fácil
|
|
« Última modificación: 11 Marzo 2011, 19:39 pm por Karcrack »
|
En línea
|
|
|
|
79137913
Desconectado
Mensajes: 1.169
4 Esquinas
|
HOLA!!! XD se me paso Karcrack, lo vi despues De a poco la voy a ir optimizando Funcion actualizada: Cambiado Asc por AscW Funcion convertida a Long Agregada comparacion por InstrB GRACIAS POR LEER!!!
|
|
« Última modificación: 11 Marzo 2011, 15:52 pm por 79137913 »
|
En línea
|
"Como no se puede igualar a Dios, ya he decidido que hacer, ¡SUPERARLO!" "La peor de las ignorancias es no saber corregirlas"
79137913 *Shadow Scouts Team*
|
|
|
Edu
Desconectado
Mensajes: 1.082
Ex XXX-ZERO-XXX
|
Cuando aprendere a programar como ustedes no se rien q todavia q lo hago jaja: Option Explicit Private Sub Form_Load() Debug.Print CheckWord("elfo", "elefante") Debug.Print CheckWord("ave", "zorro") Debug.Print CheckWord("hola", "") Debug.Print CheckWord("zero", "zerocool") Debug.Print CheckWord("feo", " ") Debug.Print CheckWord("frog", "frog") Debug.Print CheckWord("faso", "fasa") Debug.Print CheckWord("JOJO", "jojo") End Sub Function CheckWord(sFirst As String, sSecond As String) As Long Dim i As Integer Dim max As Integer sFirst = LCase$(Trim$(sFirst)) sSecond = LCase$(Trim$(sSecond)) ' Verificar error If sFirst = "" Or sSecond = "" Then CheckWord = 0: Exit Function End If ' Establecer valor maximo del bucle If Len(sFirst) < Len(sSecond) Then max = Len(sFirst) Else max = Len(sSecond) End If 'Bucle For i = 1 To max If (Left(sFirst, i) < Left(sSecond, i)) Then CheckWord = 1 Exit Function ElseIf (Left(sFirst, i) > Left(sSecond, i)) Then CheckWord = 2 Exit Function ' Si por ahora es igual.. ElseIf (Left(sFirst, i) = Left(sSecond, i)) Then If i = max Then ' Si ya termina el bucle comprobamos.. If Len(sFirst) > Len(sSecond) Then CheckWord = 2 Exit Function End If If Len(sFirst) < Len(sSecond) Then CheckWord = 1 Exit Function End If ' Por descarte.. CheckWord = 3 Exit Function End If End If Next i End Function
Salida: Edit: Ahora veo q me falto lo de comparar con las mayusculas fuck, conrazon se mataban ustedes jaja, no creo q me den las bolas para hacer
|
|
« Última modificación: 11 Marzo 2011, 16:40 pm por XXX-ZERO-XXX »
|
En línea
|
|
|
|
79137913
Desconectado
Mensajes: 1.169
4 Esquinas
|
HOLA!!! Jajaja, no me habia percatado del strcomp XD ya fue voy a seguir viendo, GRANDE Karcrack GRACIAS POR LEER!!!
|
|
|
En línea
|
"Como no se puede igualar a Dios, ya he decidido que hacer, ¡SUPERARLO!" "La peor de las ignorancias es no saber corregirlas"
79137913 *Shadow Scouts Team*
|
|
|
Edu
Desconectado
Mensajes: 1.082
Ex XXX-ZERO-XXX
|
Ma q asco q das Karcrack xD !!
|
|
|
En línea
|
|
|
|
Karcrack
Desconectado
Mensajes: 2.416
Se siente observado ¬¬'
|
|
|
« Última modificación: 11 Marzo 2011, 16:20 pm por Karcrack »
|
En línea
|
|
|
|
|
79137913
Desconectado
Mensajes: 1.169
4 Esquinas
|
HOLA!!! Con razon el "Por supuesto vale todo" GRACIAS POR LEER!!!
|
|
|
En línea
|
"Como no se puede igualar a Dios, ya he decidido que hacer, ¡SUPERARLO!" "La peor de las ignorancias es no saber corregirlas"
79137913 *Shadow Scouts Team*
|
|
|
|
Mensajes similares |
|
Asunto |
Iniciado por |
Respuestas |
Vistas |
Último mensaje |
|
|
Reto ;)
Ingeniería Inversa
|
NeoKiller
|
3
|
3,232
|
15 Agosto 2004, 23:12 pm
por NeoKiller
|
|
|
Reto!!
Ingeniería Inversa
|
HaCkZaTaN
|
2
|
3,248
|
10 Septiembre 2004, 09:30 am
por Ðevastador
|
|
|
Reto vB
Ingeniería Inversa
|
nhouse
|
2
|
3,736
|
16 Marzo 2005, 09:41 am
por 4rS3NI(
|
|
|
reto en VB6
Ingeniería Inversa
|
ellolo
|
1
|
2,843
|
15 Abril 2005, 10:03 am
por UnpaCker!
|
|
|
Un reto !!!
« 1 2 3 »
Programación Visual Basic
|
VirucKingX
|
24
|
9,311
|
8 Mayo 2006, 23:36 pm
por Kizar
|
|