Olá,

alguns alunos me escreveram reforçando o pedido de eu incluir algum (ou alguns) exercício(s) complementar(es) para ajudar nos estudos de vocês.

Eu resolvi o exercício de criptografia que sugeri no final da aula, o qual sugeri de improviso durante a aula, e notei que ele na verdade é um exercício bastante bom para estudar e entender a manipulação de Strings. Ele seria um pouco complicado demais para uma prova, mas para estudo ficou bom.

Minha sugestão é a seguinte: tentem resolver esse exercício, como ferramenta para estudo. Depois de conseguirem (ou tentarem bastante), vejam a solução abaixo e verifiquem se entenderam cada passo. Estudem até entender.

Depois de entenderem a solução, estudem o programa que decodifica um texto criptografado. Novamente, estudem até entender.

Os programas só funcionam para chaves maiores que 2 e no máximo iguais ao comprimento do texto. Tentem entender o motivo.

Bons estudos e até sexta!


Flávio


Sub cripto()
Dim a As String
Dim a1 As String
Dim a2 As String
Dim a3 As String
Dim a4 As String
Dim a5 As String
Dim chave As Integer
Dim i As Integer

a = Cells(1, 1)
chave = Cells(1, 2)
i = 1
Do While ((i + (chave - 1)) <= Len(a))
    a1 = ""
    If (i > 1) Then
        a1 = Mid(a, 1, i - 1)
    End If
    a2 = Mid(a, i + (chave - 1), 1)
    a3 = Mid(a, i + 1, chave - 2)
    a4 = Mid(a, i, 1)
    a5 = ""
    If (i + (chave - 1) < Len(a)) Then
        a5 = Mid(a, i + chave, Len(a) - (i + chave - 1))
    End If
    i = i + 1
    a = a1 + a2 + a3 + a4 + a5
Loop
    Cells(2, 1) = a

End Sub

Sub decripto()
Dim a As String
Dim a1 As String
Dim a2 As String
Dim a3 As String
Dim a4 As String
Dim a5 As String
Dim chave As Integer
Dim i As Integer

a = Cells(2, 1)
chave = Cells(1, 2)
i = Len(a) - (chave - 1)
Do While (i >= 1)
    a1 = ""
    If (i > 1) Then
        a1 = Mid(a, 1, i - 1)
    End If
    a2 = Mid(a, i + (chave - 1), 1)
    a3 = Mid(a, i + 1, chave - 2)
    a4 = Mid(a, i, 1)
    a5 = ""
    If (i + (chave - 1) < Len(a)) Then
        a5 = Mid(a, i + chave, Len(a) - (i + chave - 1))
    End If
    i = i - 1
    a = a1 + a2 + a3 + a4 + a5
Loop
    Cells(3, 1) = a

End Sub
Última atualização: quarta-feira, 29 dez. 2010, 21:00