Documentos de Académico
Documentos de Profesional
Documentos de Cultura
1erparcial 2016 06 13
1erparcial 2016 06 13
Normas Generales
Lea detenidamente cada enunciado y consulte las dudas de interpretación que pudiesen surgir.
Parte Práctica
1) Realizar una función que arme una trama de datos para enviar por un puerto de comunicaciones.
Para ello, deberá armar un vector de 20 elementos del tipo unsigned short int a partir de un vector
de 18 enteros y un entero con el identificador del dispositivo.
Prototipo de la función:
int armar_trama (int dev_id, int * datos, unsigned short int * trama);
Ejemplo
Elemento inicial. Id del dispositivo: 23 (en binario: 0000 0000 0000 0000 0000 0000 0001 0111)
1 0 0 0 0 1 1 1 1 0 0 1 0 1 1 1
Elemento de datos. Dato: 754 (en binario: 0000 0000 0000 0000 0000 0010 1111 0010)
1 0 1 1 0 1 1 1 1 0 0 1 0 1 0 1
Elemento final. Id del dispositivo: 23 (en binario: 0000 0000 0000 0000 0000 0000 0001 0111)
1 1 0 1 1 0 0 0 0 1 1 1 0 1 1 1
Página 1 de 3
Universidad Tecnológica Nacional Informática I - R1041
Facultad Regional Buenos Aires 11 de Julio de 2022
Departamento de Ingeniería Electrónica 1º Parcial
2) Realizar un programa que reciba tres argumentos de main. El primero deberá ser el argumento -D
o -I (tanto en mayúscula como en minúscula). El segundo y el tercero serán dos números enteros.
El segundo valor deberá ser mayor al primero.
Luego deberá calcular 8 valores equidistantes entre ambos extremos.
Si el parámetro recibido es ‘D’ deberá completar un vector con los 10 valores.
Si el parámetro recibido es ‘I’ deberá completar un vector con la inversa de los 10 valores.
Luego de completado el vector, deberá mostrarlo por pantalla.
Se sugiere la implementación de funciones para el cálculo de los valores intermedios.
Realice todas las verificaciones correspondientes al ingreso de los argumentos de main.
3) Realizar una función para desencriptar un mensaje cifrado. La función recibirá un string del cual
realizará una resta de los primeros 5 caracteres con la palabra “-KEY-”. Luego se hará el promedio
de los 5 valores obtenidos y se extraerá su parte entera. Ese valor se utilizará como clave para
restar al resto del string. El string obtenido será almacenado en el segundo vector que recibió la
función. Considerar que el vector tiene el tamaño suficiente para almacenar el resultado.
Prototipo de la función:
void desencriptar (const char * origen, char * destino);
Considerar que si el valor obtenido es mayor a 127 deberá corregirlo sumandolé el exceso al
código ASCII del espacio (32).
Ejemplo
string recibido:
C l a v 3 r 2 7 / 8 h 2 h [ y x | y r
Obtención de la clave:
Patrón - K E Y -
Ascii Patrón 45 75 69 89 45
Recibido C l a v 3
Diferencias 22 33 28 29 6
Promedio 23,6
Entero 23
Página 2 de 3
Universidad Tecnológica Nacional Informática I - R1041
Facultad Regional Buenos Aires 11 de Julio de 2022
Departamento de Ingeniería Electrónica 1º Parcial
Desencriptación:
Mensaje r 2 7 / 8 h 2 h [ y x | y r
Ascii mensaje 114 50 55 47 56 104 50 104 91 121 120 124 121 114
Ascii + Clave 137 73 78 70 79 127 73 127 114 144 143 147 144 137
Mensaje final * I N F O I r 1 0 4 1 *
Página 3 de 3