0% encontró este documento útil (0 votos)
10 vistas3 páginas

Python 4

El documento presenta una tarea para estudiantes de Ingeniería de Sistemas que consiste en desarrollar programas en Python para resolver tres problemas: cifrado de mensajes, modificación de escalas numéricas y evaluación de expresiones aritméticas. Cada problema requiere la implementación de al menos dos funciones: una para realizar el proceso y otra para manejar la entrada y salida de datos. Se incluyen ejemplos y especificaciones para cada caso, así como restricciones sobre el uso de ciertas funciones de Python.
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
10 vistas3 páginas

Python 4

El documento presenta una tarea para estudiantes de Ingeniería de Sistemas que consiste en desarrollar programas en Python para resolver tres problemas: cifrado de mensajes, modificación de escalas numéricas y evaluación de expresiones aritméticas. Cada problema requiere la implementación de al menos dos funciones: una para realizar el proceso y otra para manejar la entrada y salida de datos. Se incluyen ejemplos y especificaciones para cada caso, así como restricciones sobre el uso de ciertas funciones de Python.
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
Está en la página 1/ 3

ESCUELA COLOMBIANA DE INGENIERÍA

Programa de Ingeniería de Sistemas


Algoritmos y Programación
Elaborado por: Profesora CLAUDIA PATRICIA CASTAÑEDA BERMUDEZ

Tarea 14. Problemas

Para cada punto entregue el programa solución completo, esto quiere decir que cada programa
debe contener por lo menos dos funciones:

a. Una función que realiza el proceso pedido.


b. La función principal, main(), que hace la lectura de datos, el llamado a la(s) función(es) e
imprime el resultado.

1. El mensaje secreto
Imagine que quiere enviar un mensaje privado a un amigo. Una forma sería escribirlo en un papel y
discretamente entregárselo. Pero, ¿qué pasa si alguien descubre el papel? ¿Qué podrían hacer usted
y su amigo para asegurarse de que son las únicas personas que pueden entender el mensaje?

Por ejemplo:
Si quisiera enviar el mensaje: “Nos vemos a las cinco”

Podríamos mapear las letras del alfabeto y usar los números correspondientes.

10 11 12 13 14 15 16 17 18 1 2 2 2 2 24 2 2 2
1 2 3 4 5 6 7 8 9 9 0 1 2 3 5 6 7
s
a b c d e f g h i j k l m n ñ o p q r t u v w x y z
8
2 2 2 2 2 2 2 2 1 1 1 1 1 1 1 1 1 1 9 7 6 5 4 3 2 1
7 6 5 4 3 2 1 0 9 8 7 6 5 4 3 2 1 0

El mensaje resultado sería:

“14_16_20 23_5_13_16_20 1 12_1_20 3_9_14_3_16”

De pronto, este método es muy sencillo y fácil de descifrar. Basados en la idea del mapeo del
alfabeto, formule un nuevo método de cifrado.

Nombre de variable o Un valor de ejemplo Tipo Entrada /


identificador Salida
mensaje “nos vemos a las cinco” string Entrada
cifrado 17_6_20 23_4_16_6_20 1 15_1_20 string Salida
9_12_17_9_6 *
*En este caso de ejemplo se usó otro método de cifrado
Reto:
Intente detectar el método de cifrado usado en el ejemplo de la tabla de datos anterior.
Usando el lenguaje de computador Python escriba el código del programa solución.

Casos de prueba
Caso no Datos de entrada Salida

1 “nos vemos a las cinco” 17_6_20 23_4_16_6_20 1 15_1_20 9_12_17_9_6

2 “jueves tres pm” 13_22_4_23_4_20 21_19_4_20 7_16

2. Escala numérica

Se quiere modificar la escala numérica de un conjunto de valores positivos tipo flotante de tal
manera que queden comprendidos en un rango entre 0.0 y 1.0. El método para hacer esto es
restando de cada elemento el valor mínimo del conjunto y luego dividiendo cada elemento por la
diferencia entre el mayor valor y el menor valor del conjunto.

Nota: No puede hacer uso de las funciones min() y max() de Python.

Ejemplo

Entrada Salida

3.5,8.1,4.3,6.7,2.0,7.1 0.25,1.0,0.38,0.77,0.0,0.84

Función rescala()

Esta función recibe un vector de flotantes y devuelve el vector con los valores modificados.

La especificación es: ( list 1D ) -> list 1D


3. Expresiones aritméticas

Dado un conjunto de expresiones aritméticas se quiere obtener su valor resultado. Por ejemplo,
dada la expresión ( 3.00 + 4.50 ) su valor resultado será 7.50.

Las expresiones aritméticas tienen la siguiente forma:

expresión ::= real | (expresión op expresión )

real ::= valor real con dos dígitos decimales

op ::= + | - | * | /

Nota: No puede hacer uso de las funciones eval() de Python.

Entrada

La primera línea contiene el valor n, la cantidad de expresiones a evaluar.


Las siguientes n líneas, las expresiones aritméticas a evaluar. Puede asumir que las expresiones están
bien escritas y que los paréntesis, operadores y números están separados por un espacio. Tampoco
hay divisiones por cero.

Salida

Los valores resultados de cada expresión, uno por línea.

Ejemplo

Entrada Salida

4
( 3.00 + 4.50 ) 7.50
( 5.00 – ( 2.50 * 3.00 ) ) -2.50
( ( 7.00 / 3.00 ) + ( 4.00 – ( 3.00 * 7.00 ) ) ) -14.67
( -5.25 * ( 3.04 – 8.00 ) ) 26.04

Función evaluar().
Recibe un vector de tipo string y devuelve un valor flotante. La especificación es: ( list 1D ) -> float

También podría gustarte