Vista previa del material en texto
Informática Aplicada a la Ingeniería Grado en Arquitectura Naval e Ingeniería Marítima Ejercicios (Estructura de Control Selectiva) Nº Enunciado 1 Implementar un programa que genere un número al azar entre 0 y n (donde n será un parámetro introducido por teclado). El usuario deberá intentar averiguarlo y, si tiene éxito, se deberá mostrar el mensaje: “Acertáste!!!”. 2 Mejorar el programa que calcula el área y el perímetro de un círculo de modo que sólo realice estos cálculos cuando el valor del radio sea mayor que cero. 3 Mostrar el mayor de dos valores dados como entrada. 4 Solicitar como entrada un carácter. Si este es ‘f’ o ‘F’, escribir Femenino. Si es ‘m’ o ‘M’, devolver Masculino. En caso contrario, no se genera ninguna salida. 5 Determinar si un año es o no bisiesto. Un año es bisiesto si es divisible por 4, pero no por 100. Como excepción a esta regla, los años divisibles por 400 sí son bisiestos. Así, 1900 no fue bisiesto, pero el año 2000 sí. 6 Indicar si un número entero positivo es par o impar. 7 Mejorar el programa que calcula el área y el perímetro de un círculo de modo que muestre el siguiente mensaje cuando el valor del radio es incorrecto: “Error: Valor de radio negativo o nulo.”. 8 Solicitar al usuario la hora actual y comprobar si el formato dado como HH:MM:SS es correcto. Para ello, las horas (HH) deben estar en el intervalo [0,24), los minutos (MM) en el intervalo [0,60) y los segundos (SS) en el intervalo [0,60). 9 Modificar el programa que detectaba que la hora había sido introducida en el formato correcto (HH:MM:SS) para que, en caso de error, indique dónde se producido dicho error. 10 Mejorar el programa para adivinar un número al azar de modo que, en caso de no acertar, indique al usuario si el valor introducido se encontraba por encima o por debajo del valor a acertar. 11 Mostrar el mayor de tres valores dados como entrada. 12 Ordenar de menor a mayor tres números introducidos por teclado. 13 Mejorar el programa para resolver un sistema de dos ecuaciones con dos incógnitas: ax + by = c dx + ey = f Debe resolverse usando el método de Cramer: Nº Enunciado dbea fbec ed ba ef bc x .. .. − −== dbea dcfa ed ba fd ca y .. .. − −== Teniendo en cuenta que el sistema puede ser: o Compatible determinado (una única solución) cuando a*e – b*d ≠ 0. Resolvemos el sistema mediante el método de Cramer. o Compatible indeterminado (infinitas soluciones) cuando a*e – b*d = 0 y a/d = b/e = c/f o Incompatible (sin solución) cuando a*e – b*d = 0 y a/d = b/e ≠ c/f 14 Mejorar el programa que calcula las raíces de una ecuación de segundo grado a.x2+b.x+c. Dados los coeficientes de la misma por el teclado. o si a = 0, tenemos una ecuación de primer grado: o si b ≠ 0, entonces la solución es x = -c / b. o si b = 0, entonces tenemos dos posibles subcasos: � si c ≠ 0, entonces no hay solución. � si c = 0, entonces estamos en el caso trivial (0 = 0) y la solución es indeterminada. o si a ≠ 0: o calculamos el discriminante (b2 -4*a*c) o si el discriminante > 0, tenemos dos raíces reales que se calculan así: a ntediscriminab x *2 ±−= o si el discriminante = 0, tenemos una raíz doble que calculamos como: a b x *2 −= o si el discriminante < 0, tenemos dos soluciones complejas, cuya partes reales son a b x *2 −= y las partes imaginarias a ntediscrimina *2 ± 15 Mejorar el programa que realizaba la conversión entre escalas de temperatura para que realice la conversión entre grados Celsius (C), Fahrenheit (F) y Kelvin (K). Se preguntará en qué unidades damos la temperatura de entrada y a qué escala la queremos convertir. En la escala centígrada o Celsius, la temperatura de congelación del agua es 0ºC y la de ebullición 100 ºC. La escala absoluta o Kelvin comienza en el cero absoluto (0º K) que equivale a -273.15 ºC. Y, finalmente, en la escala Farenheit, la temperatura de Nº Enunciado congelación del agua es de 32 ºF y la de ebullición es de 212 ºF. o Celsius-Kelvin: Los grados de ambas escalas son iguales. La única diferencia se encuentra en que la escala Kelvin comienza en 0 ºK que equivalen a - 273.15 ºC, por tanto: o Celsius = Kelvin - 273.15 o Kelvin = Celsius + 273.15 o Farenheit-Celsius: Los grados de ambas escalas no son iguales (1 ºF = 9/5 ºC): o Farenheit = 9/5 * Celsius + 32 o Celsius = 5/9 (Farenheit - 32) o Farenheit-Kelvin: o Farenheit = 9/5 * Celsius + 32 = 9/5 * (Kelvin - 273.15) + 32 o Kelvin = Celsius + 273.15 = 5/9 * (Farenheit - 32) + 273.15 16 El problema consiste en que dados los extremos de dos segmentos de la recta real (estos datos se dan necesariamente en orden ascendente), determinar si los dos segmentos solapan, y si lo hacen, cual es el segmento intersección. Considerar todos los casos posibles. Por ejemplo, si los datos de entrada son 1 4 3 6, la salida será que los segmentos solapan desde el punto 3 al 4. -1 0 1 2 3 4 5 6 7 8 Segmento A Segmento B Segmento Solución