Title: Curso de promocin educativa
1Ejemplo Propuesto 1. Suroeste de Europa. Cifrado
de seis letras (2001 A)
- TIPOS DE DATOS EMPLEADOS. ARRAYS EN JAVA.
- Array que contiene las 6 constantes posibles del
código - static char CLAVES 'A','B','C','D','E','F'
- Array que contiene la clave pública (6x6)
- char ClavePub new char66
- El elemento en la posición (i,j) se accede como
ClavePub i j - Tanto la clave privada como el mensaje, son de
tipo String. - String ClavePriv
- String Mensaje
2Ejemplo Propuesto 1. Suroeste de Europa. Cifrado
de seis letras (2001 A)
- PROCESO DE CODIFICACIÓN
- Paso 1 para cada carácter del mensaje,
codificarlo como los dos caracteres que indican
su posición (fila y columna) dentro de la matriz
de la Clave pública. - for (int i0 iltMensaje.length() i)
- mensaje1 mensaje1 buscarChar(Mensaje.c
harAt(i), ClavePub) - donde el método buscarChar es un doble bucle for
anidado -
- static String buscarChar (char c, char
clavePub) - for (int i0 iltclavePub0.length i)
- for (int j0 jltclavePub.length j)
- if (clavePubijc) return
""CLAVESiCLAVESj -
-
- return new String()
-
3Ejemplo Propuesto 1. Suroeste de Europa. Cifrado
de seis letras (2001 A)
- PROCESO DE CODIFICACIÓN
- Paso 2 Colocar el nuevo mensaje distribuido en
tantas columnas como caracteres tenga la clave
privada. - int filas (int) (mensaje1.length() /
ClavePriv.length()) - int col ClavePriv.length()
- char Clave2 new char filascol
- for (int i0 iltfilas i)
- for (int j0 jltcol j)
- Clave2 ij mensaje1.charAt (
ClavePriv.length() i j) -
-
4Ejemplo Propuesto 1. Suroeste de Europa. Cifrado
de seis letras (2001 A)
- PROCESO DE CODIFICACIÓN
- Paso 3 Ordenar las columnas de la clave privada
por orden alfabético y obtener el mensaje
codificado. - String result ordenarClave (Clave2,
ClavePriv) - System.out.println("MENSAJE CODIFICADO
"result) - Donde ordenarClave es el siguiente método basado
en la búsqueda de mínimos en un String. - static String ordenarClave (char clave,
String CPr) - int pos, col_act 0
- char min
- String codigoFinal new String()
- for (int conta 0 contaltCPr.length()
conta) - pos 0 min CPr.charAt(0)
- for (int i1 iltCPr.length() i)
- if (CPr.charAt(i)ltmin)
- minCPr.charAt(i) posi
-
5Ejemplo Propuesto 2. Suroeste de Europa.
4 3 1
2 5
El tipo de dato es GRAFO La estructura de datos
para representarlo puede ser MATRIZ DE
ADYACENCIA 1 2 3 4 5 1 0 0
1 0 1 2 0 0 0 0 0 3
0 1 0 1 0 4 0 0 0 0
0 5 0 1 1 0 0
6Ejemplo Propuesto 2. Suroeste de Europa.
- Que Nlt100 nos permite reservar memoria de manera
estática -
- int matriz100100
-
- aunque podría ser de otro tipo
- int sumas100
- se puede poner un 1 en una tarea que ya se
ha incluido - Mlt100 no nos sirve para nada
7Ejemplo Propuesto 2. Suroeste de Europa.
Se suman las aristas que llegan a cada nodo
1 2 3 4 5 1 0 0 1 0
1 2 0 0 0 0 0 3 0 1
0 1 0 4 0 0 0 0 0
5 0 1 1 0 0 suma 0 2 2 1
1 El nodo al que no llega ninguna arista es el
primero que se puede poner 1 Se quitan las
aristas que salen de ese nodo 1 2
3 4 5 1 0 0 0 0 0 2
0 0 0 0 0 3 0 1 0 1 0
4 0 0 0 0 0 5 0 1
1 0 0 suma -1 2 1 1 0 El nuevo nodo
al que no llega ninguna arista se pone a
continuación 1 5
8Ejemplo Propuesto 2. Suroeste de Europa.
Se quitan las aristas que salen de ese nodo
1 2 3 4 5 1 0 0 0
0 0 2 0 0 0 0 0 3 0
1 0 1 0 4 0 0 0 0 0
5 0 0 0 0 0 suma -1 1 0 1
-1 El nuevo nodo al que no llega ninguna arista
se pone a continuación 1 5 3 Se quitan las
aristas que salen de ese nodo 1 2
3 4 5 1 0 0 0 0 0 2
0 0 0 0 0 3 0 0 0 0 0
4 0 0 0 0 0 5 0 0
0 0 0 suma -1 0 -1 0 -1 Los nodos que
quedan sin aristas se ponen de menor a mayor 1 5
3 2 4