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.