[OFF] - DESAFIO
Agora com Start e Count também!
Creio que agora ficou completinha!
Creio que agora ficou completinha!
Public Function MarceloReplace(Expression As String, Find As String, Replace As String, Optional Start As Long = 1, Optional Count As Long = -1) As String
Inicio:
For i = Start To Len(Expression)
If Mid(Expression, i, Len(Find)) = Find Then
Expression = Mid(Expression, 1, i - 1) & Replace & Mid(Expression, i + Len(Find), Len(Expression))
Count = Count - 1
If Count = 0 Then
GoTo Fim
Else
GoTo Inicio
End If
End If
Next
Fim:
MarceloReplace = Expression
End Function
Minha contribuição:
Public Function Ordena(Texto as string) as string
For I = 1 To Len(Texto) - 1
For J = I + 1 To Len(Texto)
If Mid(Texto, I, 1) > Mid(Texto, J, 1) Then
T = Mid(Texto, I, 1)
Mid(Texto, I, 1) = Mid(Texto, J, 1)
Mid(Texto, J, 1) = T
End If
DoEvents
Next
Next
Ordena = Texto
End Sub
Ai vai a minha então:
Primeiro fiz, depois li o poste as funções do pessoal, acho que a do Cléston ficou melhor mesmo...abços
Private Function OrdenaLetrasPalavra(ByVal Texto As String) As String
Dim i As Integer, j As Integer, Menor As Integer
Dim Final As String
For i = 1 To Len(Texto)
Menor = 1
For j = 1 To Len(Texto)
If Mid(Texto, j, 1) < Mid(Texto, Menor, 1) Then Menor = j
Next j
Final = Final & Mid(Texto, Menor, 1)
Texto = Replace(Texto, Mid(Texto, Menor, 1), "", , 1)
Next i
OrdenaLetrasPalavra = Final
End Function
Primeiro fiz, depois li o poste as funções do pessoal, acho que a do Cléston ficou melhor mesmo...abços
Bom nem adianta eu querer colocar a minha versao aqui.
So me chamou atencao o tipo de questao.
Geralmente as pessoas procuram especialides em voce, seja conexoes, bancos de dados, manipular ole/vba, etc... mas a questao foi bem colocada realmente.
So me chamou atencao o tipo de questao.
Geralmente as pessoas procuram especialides em voce, seja conexoes, bancos de dados, manipular ole/vba, etc... mas a questao foi bem colocada realmente.
Realmente muito interessante o exercicio.
Tinha um outro, que devÃÂÂamos listar em um ListBox todos os Números de Armstrong entre 1 e 9999.
153 é um número de armstrong já que 1³ + 5³ + 3³ = 153.
o elevado ao cúbo, vem dos três caracteres que formam o 153.
Eles focavam bem mais a lógica do que o conhecimento técnico em si.
Tinha um outro, que devÃÂÂamos listar em um ListBox todos os Números de Armstrong entre 1 e 9999.
153 é um número de armstrong já que 1³ + 5³ + 3³ = 153.
o elevado ao cúbo, vem dos três caracteres que formam o 153.
Eles focavam bem mais a lógica do que o conhecimento técnico em si.
Nossa , mas ca pra nos, eles queriam que voce construisse um compilador, uma calculadora financeira, ou simplesmente acesse um banco de dados em MS Access para jogar dados no Excel ?
Pura lógica
Private Sub Command1_Click()
Dim i As Long, j As Integer, iSize As Integer, iTotal As Long
List1.Clear
For i = 1 To 99999 'total de numeros
iTotal = 0
iSize = Len(CStr(i)) 'pega o elevado a X
'Soma e potencializa cada digito do numero pelo total de digitos
For j = 1 To iSize
iTotal = iTotal + (CInt(Mid(CStr(i), j, 1)) ^ iSize)
Next
'se o total for igual ao dÃÂÂgito, adiciona na lista
If iTotal = i Then List1.AddItem i
Next
End Sub
realmente pura lógica...
Pra que eles querem tudo isto??
sei lá... mais eles queriam...
Eu até concordo em partes... é uma forma de filtrar os vários candidatos que apareciam para eles.
Pra que eles querem tudo isto??
sei lá... mais eles queriam...
Eu até concordo em partes... é uma forma de filtrar os vários candidatos que apareciam para eles.
Bom, vou deixar minha soluçao aqui também:
Private Sub Command1_Click()
If Len(Text1) = 0 Then Exit Sub
Dim cAux As String, nI As Integer, Ix As Integer
Dim sSaida As String
cAux = Text1
Text2 = ""
For nI = 97 To 122
For Ix = 1 To Len(cAux)
If LCase(Mid(cAux, Ix, 1)) = Chr(nI) Then Text2 = Text2 & Mid(cAux, Ix, 1)
Next
cAux = Replace(cAux, Chr(nI), "")
Next
End Sub
Tópico encerrado , respostas não são mais permitidas