Download ISC-201-P Primera Tarea Fecha de entrega: 10/02/2010 5

Document related concepts
no text concepts found
Transcript
ISC-201-P Primera Tarea
Fecha de entrega: 10/02/2010 5:00PM
Ejercicio 1 (4 puntos)
El código Morse es un tipo de codificación de caracteres para la transmisión de
información telegráfica inventado en el siglo XIX, que a su vez fue utilizado
masivamente para la comunicación por radio en la década de los 1890 y aún en
estos tiempos continúa su uso, aunque considerablemente reducido.
El código de Morse se basa en ritmos, donde cada elemento tiene una duración
distinta.
Estos elementos son:
•
•
•
•
•
El punto (.), con una duración de una unidad.
El guión (-), con una duración de tres unidades.
Espacios intra-caracteres, de duración de una unidad
Espacios entre caracteres, con una duración de tres unidades
Espacios entre palabras, con una duración de siete unidades
La frase “HOLA MUNDO” en código de Morse sería:
Escriba un programa que permita codificar cadenas de español a código Morse y
decodificarlas de vuelta al español. El programa debe ser decompuesto
modularmente, y el módulo de codificación de código Morse tiene que tener las
siguientes funciones:
•
•
Codificar: Tiene que recibir una cadena en español e imprimir en consola
la cadena equivalente en código Morse
Decodificar: Recibe una cadena con un código Morse e imprime en
consola la cadena equivalente en español
Asuma que el código Morse deja un espacio entre letras y tres espacios entre
palabras.
La tarea ha de ser entregada para las fecha y hora pautadas. Se conceden 5 (cinco) minutos de gracia luego de haber excedido la hora.
Esta práctica ha se ser resuelta individualmente, utilizando Java como lenguaje de programación.
Ejercicio 2 (4 puntos)
Un método de computación común es el de generar-y-comprobar:
sistemáticamente se generan soluciones potenciales a un problema, y luego se
aplican una serie de una o más pruebas para determinar si la solución potencial
es válida. Aunque en principio se pudiera generar aleatoriamente las soluciones
potenciales, comúnmente es más eficiente elaborar un método sistemático para
generar todas las soluciones potenciales.
Escriba un programa que compute los primeros 1,000 números primos. Un
bosquejo del proceso de escritura del código pudiera ser:
1. Inicializar las variables (de estado)
2. Generar enteros impares > 1 para tomarlos como soluciones potenciales
3. Para cada entero, determinar si es primo
a. Una forma de lograr esto es determinar si cualquier otro entero > 1
lo divide equitativamente (residuo 0). El operador binario %
determina el residuo de una división (a % b).
b. Determinar cuáles divisores se pueden utilizar. Obviamente no se
puede exceder al número potencial, pero ¿hasta cuándo se podría
llegar?
4. Si es primo, imprimir en consola para informar al usuario y actualizar las
variables de estado
5. Parar cuando se haya llegado a una condición apropiada.
La tarea ha de ser entregada para las fecha y hora pautadas. Se conceden 5 (cinco) minutos de gracia luego de haber excedido la hora.
Esta práctica ha se ser resuelta individualmente, utilizando Java como lenguaje de programación.
Ejercicio 3 (4 puntos)
¿Qué tienen en común un oso, una arepera, unas salas y un rotor? No mucho
aparte de que cada una de esas palabras es un palíndromo. Los palíndromos son
palabras que, ya sean leídas de izquierda a derecha o de derecha a izquierda, se
leen igual.
Escriba un programa que lea una cadena de longitud máxima 1000 de la entrada
y determine si la palabra es un palíndromo.
Una solución a este problema sigue un esquema como el siguiente:
1. Determinar si las letras en cada extremo son iguales
2. Determinar si la letra a la derecha de la primera y la letra a la izquierda de
la última son iguales.
3. Seguir este patrón hasta terminar. Si en algún momento las dos letras no
son iguales, descartar la palabra como palíndromo.
La tarea ha de ser entregada para las fecha y hora pautadas. Se conceden 5 (cinco) minutos de gracia luego de haber excedido la hora.
Esta práctica ha se ser resuelta individualmente, utilizando Java como lenguaje de programación.