Práctica 4 - Composición iterativa
Esta práctica tiene como objetivo especial familiarizarse con el uso del esquema de composición iterativo de acciones. Así mismo, es objetivo adicional continuar con el uso de tipos de dato simples, operaciones básicas de entrada por teclado y salida por pantalla, y los esquemas de composición secuencial y condicional de acciones. Los algoritmos se desarrollarán en los métodos que resulten necesarios y se lanzará la ejecución mediante el método main. Se deberá cuidar especialmente la comunicación del programa con el usuario, de forma que éste no tenga ninguna duda en el manejo del mismo. Por último, al disponer de todos los esquemas de composición de acciones, se elegirá el que sea más adecuado para resolver el problema siguiendo los criterios proporcionados en las clases de teoría.
Ejercicio 1
Construye un algoritmo que lea un entero N de teclado (1≤N≤9) y muestre en pantalla las N primeras líneas del siguiente triángulo:
Introduce un número del 1 al 9:
> 8
1
121
12321
1234321
123454321
12345654321
1234567654321
123456787654321
Ejercicio 2
El número 3025 tiene la curiosa propiedad de que cuando se separa en dos números de dos dígitos (30 y 25), se suman y se eleva al cuadrado dicha suma, el resultado final es el mismo número 3025.
\[ (30 + 25)^2 = 55^2 = 3025 \]
Construye un algoritmo que permita obtener de un modo eficiente todos los números de cuatro dígitos que cumplan la misma propiedad.
Ejercicio 3
Implementar un algoritmo para calcular el valor del coseno de un ángulo mediante el siguiente desarrollo en serie:
\[ \cos(x) = \sum_{n=0}^{\infty} (-1)^n \frac{x^{2n}}{(2n)!} \]
El algoritmo deberá finalizar tras sumar un término cuyo valor sea inferior a ε = 1.0E-6.
Ejercicio 4
Averigua la media de una secuencia de enteros positivos, excepto el máximo y el mínimo. La secuencia finaliza con la introducción de un número negativo.
Ejemplo de ejecución:
Introduce una secuencia de números:
> 2
> 3
> 5
> 10
> 7
> -1
La media de la secuencia, sin incluir máximo y mínimo, es 5.
Ejercicio 5
En criptografía, el cifrado César, también conocido como cifrado por desplazamiento, es una técnica de codificación muy simple. Es un tipo de cifrado por sustitución en el que cada letra del texto original es reemplazada por la letra que se encuentra un número fijo de posiciones más adelante en el alfabeto. Por ejemplo, el cifrado César para un desplazamiento de 6 posiciones a la derecha aplicado a un texto quedará:
TEXTO ORIGINAL: ABCDEFGHIJKLMNOPQRSTUVWXYZ
TEXTO CIFRADO: GHIJKLMNOPQRSTUVWXYZABCDEF
Desarrollar un programa que pida al usuario una secuencia que acabe en un punto y muestre el resultado codificado mediante este sistema. Las letras mayúsculas se codificarán con mayúsculas y las minúsculas con minúsculas, la letra Ñ no se codificará (de la misma manera que otros caracteres no letra) y el desplazamiento deseado será solicitado también al usuario.
Ejemplo de ejecución:
Introduce una cadena de caracteres:
> Esto es un texto de prueba.
¿Cuál es el desplazamiento deseado?
> 3
El texto cifrado es "Hvwr hv xq whawr gh suxhed."
Ejercicio 6
El código genético de las proteínas está formado por una cadena muy larga de bases, representadas por las letras A (Adenosina), U (Uracilo), C (Citosina) y G (Guanina). Una terna de estas bases representa un aminoácido y varios aminoácidos representan una proteína.
Un aminoácido puede especificarse por varias ternas diferentes. Por ejemplo, el aminoácido Glutamina se puede especificar con dos ternas: CAA o CAG.
Desarrollar un programa que pida al usuario una secuencia de caracteres terminada en punto y coma que representa el código genético de una proteína y que muestre el número de veces que ha aparecido la Glutamina en dicho código genético.
Ejemplo de ejecución:
Introduce una cadena de caracteres:
> CGAAGCCAACUUCAGCAA;
El aminoácido glutamina aparece tres veces en la secuencia.