[OFF] - DESAFIO

USUARIO.EXCLUIDOS 09/08/2007 17:14:52
#230285
Agora com Start e Count também!
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

HARRY.POTTER 09/08/2007 17:22:58
#230289
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

USUARIO.EXCLUIDOS 09/08/2007 17:46:18
#230300
Ai vai a minha então:

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
WEBMASTER 09/08/2007 21:28:08
#230320
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.
USUARIO.EXCLUIDOS 09/08/2007 21:45:52
#230324
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.
WEBMASTER 09/08/2007 23:26:50
#230329
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 ?
LIONHEART 10/08/2007 09:04:03
#230340
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

USUARIO.EXCLUIDOS 10/08/2007 09:31:17
#230344
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.
FGSANTOS 10/08/2007 13:31:53
#230368
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

Página 4 de 4 [39 registro(s)]
Tópico encerrado , respostas não são mais permitidas