Programa de cifrado y descifrado de textos de tareas de secundaria de VB ¡Ayuda!
Principio:
Construya una tabla de caracteres cifrados en el orden alfabético correspondiente en mayúsculas y minúsculas,
(Parece caracteres árabes, no tengo ninguna investigación al respecto , No lo entiendo del todo. Si está interesado, puede imprimir la tabla de caracteres cifrados aryencode (0-52) y echar un vistazo).
Determine si la letra ingresada es una letra y busque. su ubicación en el alfabeto (número de serie),
De acuerdo con el número de serie correspondiente, los caracteres de la tabla de caracteres cifrados se extraen y se muestran.
Entonces, el el proceso de descifrado es el mismo.
Cópielo. El segmento del programa que determina los caracteres determina los caracteres cifrados y obtiene la posición (número de serie).
Las letras del número de serie se generan y muestran. , es decir, está completo.
El segmento de descifrado es el siguiente, los demás Sin cambios.
(De hecho, es el mismo que el programa de cifrado, excepto que el nombre de la matriz se cambia Al mostrar, el nombre de la matriz cifrada se cambia al nombre de la matriz descifrada. Simplemente cambie el control de salida a text3, jaja)
Private Sub Command2_Click()
Dim i As. Entero
Dim strchar como cadena
Dim intlow como entero, inthigh como entero, intmid como entero
Text3.Text = ""
Para i = 1 Para Len(Text2.Text)
intlow = 0
inthigh = charnum
strchar = Mid(Text1.Text, i, 1 )
' Saca carácter por carácter, desde 1 hasta el final
Hacer hasta intlow gt
intmid = (intlow inthigh) / 2 p>
'Inicial intmid=26
Si arycode (intmid) = strchar Entonces
Salir Do
De lo contrario
Si arycode(intmid) lt; strchar Entonces
intlow = intmid 1
Else
inthigh = intmid - 1
Fin si p>
Finalizar si
Bucle
Si intlow lt; = inthigh Then
Text3.Text = Text3.Text arycode(intmid) ' Es una letra, descifre la salida
'Esto es, necesita ser cambiado Eso es todo, simplemente cambie el código aryencode(intmid) original a la matriz alfabética original
'arycode (intmid) es suficiente, no es difícil, jaja
Else
Text3.Text = Text3.Text strchar 'Sin letras, no cifrado, salida directa
Fin I
f
Siguiente
End Sub
Todos los programas con comentarios:
Const charnum = 52
Dim arycode (charnum) como cadena
Dim aryencode(charnum) como cadena
Subcomando privado1_Click() 'Segmento cifrado
Dim i como entero
Dim strchar como cadena
Dim intlow como entero, inthigh como entero, intmid como entero
Text2.Text = ""
Para i = 1 a Len(Text1.Text)
intlow = 0
inthigh = charnum
strchar = Mid(Text1.Text, i, 1)
'Saque la cadena carácter por carácter, desde el principio hasta el final, y juzgue uno por uno
Hacer hasta intlow gt;
intmid = (intlow inthigh) / 2
'Inicial intmid=26
Si arycode(intmid) = strchar Entonces
Salir Do
De lo contrario
Si arycode(intmid) lt; strchar Entonces
intlow = intmid 1
Else
inthigh = intmid - 1
Fin If
End If
Loop
'Encuentra la posición de la letra en el alfabeto.
If intlow lt = inthigh Then;
Text2.Text = Text2.Text amp; aryencode(intmid) ' es una letra, según la posición de la letra correspondiente, busque la salida del carácter cifrado correspondiente
De lo contrario
Text2.Text = Text2.Text amp; strchar 'Sin letra, no cifrado, salida directa
Finalizar si
Imprimir
Siguiente p>
End Sub
Private Sub Form_Load() 'Cuando se inicializa el programa, se construyen dos matrices de caracteres para su uso posterior.
Dim i As Integer
arycode( 0) = Chr(32)
'arycode(0) es un espacio
Para i = 1 a 26
arycode(i ) = Chr(64 i )
'arycode(1-26) es el alfabeto en mayúsculas A-Z
<p>Siguiente
Para i = 27 Para charnum
arycode(i) = Chr(97 (i - 27))
'arycode(27-52 ) es el alfabeto minúscula a-z
Siguiente
Para i = 0 Para charnum
aryencode(i) = Chr(-22879 i) 'corresponde a arycode( 0 -52) tabla de caracteres cifrados
Siguiente
End Sub
Private Sub Command2_Click() 'Descifrar segmento
Dim i Como entero
Dim strchar Como cadena
Dim intlow Como entero, inthigh Como entero, intmid Como entero
Text3.Text = ""
For i = 1 To Len(Text2.Text)
intlow = 0
inthigh = charnum
strchar = Mid(Text1.Text, i, 1)
'Sal carácter por carácter, desde 1 hasta el final
Hacer hasta intlow gt;
intmid = (intlow inthigh) / 2
'Inicial intmid=26
Si arycode(intmid) = strchar Entonces
Salir Do
De lo contrario
Si arycode( intmid) lt; strchar Entonces
intlow = intmid 1
Else
inthigh = intmid - 1
Fin
Finalizar si
Bucle
Si intlow lt; = inthigh Then
Text3.Text = Text3.Text arycode(intmid; ) 'es cifrado Caracteres, según sus posiciones, saque las letras correspondientes, genere y complete el descifrado
Else
Text3.Text = Text3.Text strchar 'Non- letras, no cifradas, salida directa
Finalizar si
Siguiente
Fin Sub