|
|
|
|
6
|
![main2.png](images/main2.png)
|
6
|
![main2.png](images/main2.png)
|
7
|
![main3.png](images/main3.png)
|
7
|
![main3.png](images/main3.png)
|
8
|
|
8
|
|
|
|
9
|
+[version 2016.04.11]
|
9
|
|
10
|
|
10
|
Una de las ventajas de utilizar programas de computadoras es que podemos realizar tareas repetitivas fácilmente. Los ciclos como `for`, `while`, y `do-while` son estructuras de control que nos permiten repetir un conjunto de instrucciones. A estas estructuras también se les llama *estructuras de repetición*. En la experiencia de laboratorio de hoy utilizarás ciclos `for` para completar una aplicación de cifrado.
|
11
|
Una de las ventajas de utilizar programas de computadoras es que podemos realizar tareas repetitivas fácilmente. Los ciclos como `for`, `while`, y `do-while` son estructuras de control que nos permiten repetir un conjunto de instrucciones. A estas estructuras también se les llama *estructuras de repetición*. En la experiencia de laboratorio de hoy utilizarás ciclos `for` para completar una aplicación de cifrado.
|
11
|
|
12
|
|
|
|
|
|
28
|
|
29
|
|
29
|
5. Haber estudiado los conceptos e instrucciones para la sesión de laboratorio.
|
30
|
5. Haber estudiado los conceptos e instrucciones para la sesión de laboratorio.
|
30
|
|
31
|
|
31
|
-6. Haber tomado el quiz Pre-Lab que se encuentra en Moodle.
|
|
|
32
|
|
32
|
|
33
|
---
|
33
|
---
|
34
|
|
34
|
|
|
|
|
|
167
|
|
167
|
|
168
|
####Instrucciones
|
168
|
####Instrucciones
|
169
|
|
169
|
|
170
|
-1. Carga a Qt el proyecto `VigenereCypher` haciendo doble "click" en el archivo `VigenereCypher.pro` en el directorio `Documents/eip/Repetitions-VigenereCypher` de tu computadora. También puedes ir a `http://bitbucket.org/eip-uprrp/repetitions-vigenerecypher` para descargar la carpeta `Repetitions-VigenereCypher` a tu computadora.
|
|
|
171
|
-
|
|
|
172
|
-2. Estarás añadiendo código en el archivo `cypher.cpp`. En este archivo, la función `cypher` recibe un mensaje y una clave del mismo largo y consistentes solo de letras, y devuelve el mensaje cifrado por el cifrador Vigenere. Tu tarea es completar la función de cifrado.
|
|
|
|
|
170
|
+1. Descarga la carpeta Repetitions-VigenereCypher de Bitbucket usando un terminal, moviéndote al directorio Documents/eip, y escribiendo el comando git clone http://bitbucket.org/eip-uprrp/repetitions-vigenerecypher.
|
|
|
171
|
+
|
|
|
172
|
+2. Carga a Qt Creator el proyecto VigenereCypher haciendo doble "click" en el archivo VigenereCypher.pro que se encuentra en la carpeta Documents/eip/Repetitions-VigenereCypher de tu computadora.
|
|
|
173
|
+
|
|
|
174
|
+3. Configura el proyecto y ejecuta el programa marcando la flecha verde en el menú de la izquierda de la interface de Qt Creator.
|
|
|
175
|
+
|
|
|
176
|
+4. Estarás añadiendo código en el archivo `cypher.cpp`. En este archivo, la función `cypher` recibe un mensaje y una clave del mismo largo y consistentes solo de letras, y devuelve el mensaje cifrado por el cifrador Vigenere. Tu tarea es completar la función de cifrado.
|
173
|
|
177
|
|
174
|
El código debe verificar si el mensaje y la clave consisten solo de letras y tienen el mismo largo; si esto no ocurre, el mensaje cifrado será (literalmente) `"MENSAJE O CLAVE INVALIDO"`. El programa debe implementar el cifrador Vigenere para ir cifrando cada letra del mensaje utilizando la clave. Solo debes utilizar las funciones mencionadas en la sección anterior. Para simplificar el código tu programa debe cambiar todas las letras del mensaje y la clave a mayúsculas.
|
178
|
El código debe verificar si el mensaje y la clave consisten solo de letras y tienen el mismo largo; si esto no ocurre, el mensaje cifrado será (literalmente) `"MENSAJE O CLAVE INVALIDO"`. El programa debe implementar el cifrador Vigenere para ir cifrando cada letra del mensaje utilizando la clave. Solo debes utilizar las funciones mencionadas en la sección anterior. Para simplificar el código tu programa debe cambiar todas las letras del mensaje y la clave a mayúsculas.
|
175
|
|
179
|
|
176
|
-3. Al terminar tu código, ve a la función `main` y descomenta la invocación a la función de prueba unitaria `test_cypher1`. Esa función realiza varias invocaciones a la función `cypher` para validar si sus resultados son correctos. Tu función `cypher` debe pasar todas las pruebas antes de continuar con la próxima parte de este laboratorio.
|
|
|
|
|
180
|
+5. Al terminar tu código, ve a la función `main` y descomenta la invocación a la función de prueba unitaria `test_cypher1`. Esa función realiza varias invocaciones a la función `cypher` para validar si sus resultados son correctos. Tu función `cypher` debe pasar todas las pruebas antes de continuar con la próxima parte de este laboratorio.
|
177
|
|
181
|
|
178
|
|
182
|
|
179
|
###Ejercicio 2: Cifrador con clave y mensaje de largos arbitrarios
|
183
|
###Ejercicio 2: Cifrador con clave y mensaje de largos arbitrarios
|
|
|
|
|
254
|
|
258
|
|
255
|
5. Studied the concepts and instructions for the laboratory session.
|
259
|
5. Studied the concepts and instructions for the laboratory session.
|
256
|
|
260
|
|
257
|
-6. Taken the Pre-Lab quiz available through the course’s Moodle portal.
|
|
|
|
|
261
|
+
|
258
|
|
262
|
|
259
|
---
|
263
|
---
|
260
|
|
264
|
|