Practicas FI 1819 - P05 Enu v01
Practicas FI 1819 - P05 Enu v01
Practicas FI 1819 - P05 Enu v01
número se puede obtener con la expresión acos(-1), donde la función acos() está definida en la librería
matemática (debes añadir la línea #include <cmath> al comienzo de tu código).
2
P5-5: Calcular numéricamente la integral definida de la función f(x)=x entre dos límites dados por el
usuario ()
La idea es aproximar la integral mediante la suma de rectángulos de base pequeña. En la figura se muestra un
ejemplo con límites de integración [2.0,5.0] y 10 rectángulos. El programa debe pedir al usuario los límites inferior
inf y superior sup y el número de rectángulos num de igual base que desean utilizarse para realizar la
aproximación numérica a la integral.
Si inf≥sup el programa debe advertirlo y volver a pedir ambos límites (tantas veces como sea necesario). Por
otro lado, si el número de rectángulos introducido es inferior a 20, el programa seleccionará automáticamente
num=20.
Al finalizar los cálculos, el programa debe mostrar el resultado obtenido, el valor real de la integral 𝑥 3 /3 entre
esos límites y el error de aproximación cometido. Luego preguntará al usuario si desea repetir el cálculo para
otros límites y número de rectángulos. En caso afirmativo repetirá todo el proceso, y así indefinidamente mientras
el usuario lo desee.
Pág. 1 de 3
www.eii.uva.es - www.uva.es/eii
Departamento de
Ingeniería de Sistemas y Automática
P5-7: Transformación de un número entero en base b (1<b<=10) de N dígitos a base decimal ()
El programa deberá:
1. Solicitar la base b del número a introducir
Si la base b elegida es mayor que 10 o menor que 2, lanzad un mensaje de error, volviendo a solicitar b.
2. Solicitar el número de dígitos N del número en base b.
Si el número de dígitos N es mayor que 10 o menor que 1, avisar con un mensaje de error, volviendo a
solicitar el número de dígitos.
3. Solicitar una a una las N cifras (valores 0,1,2,…,b-1) del número en base b, comenzando por la más
significativa, de tal forma que según se introduce cada cifra:
Si la cifra 𝑐𝑖𝑓𝑟𝑎𝑖 , (𝑖 ∈ {𝑁 − 1, 𝑁 − 2, … ,2,1,0} introducida no está en el rango [0,b-1] se avisará al usuario
con un mensaje de error, volviendo a solicitar la cifra.
En caso contrario, se añadirá el término 𝑐𝑖𝑓𝑟𝑎𝑖 ∗pow(b,i)a un acumulador.
4. Mostrar por pantalla el equivalente decimal, que será el valor obtenido en el acumulador.
P5-8: Dado un número entero, mostrarlo por pantalla “al revés” y calcular cuantos dígitos mayores que 5
tiene ()
Tras solicitar al usuario un número entero, lo mostrará al revés y calculará cuantos dígitos mayores que 5 tiene.
Por ejemplo, si introducimos -136549 las respuestas serán -945631 y 2. Si introducimos 4234, las respuestas
serán 4324 y 0.
Se sugiere ir obteniendo iteradamente los dígitos desde el menos significativo al más significativo usando el
operador división entera %. Realízalo en un papel con un ejemplo para identificar los pasos que se deben dar
tanto para extraer los dígitos como para ir construyendo el número “al revés”. Véase qué pasos se deben repetir
y qué variables se deben actualizar y cómo para obtener el resultado esperado.
Recordad que si el entero introducido sobrepasa los límites de representación (4 bytes) C++ lo truncará.
El programa se repetirá hasta que el usuario introduzca un 0.
Pág. 2 de 3
www.eii.uva.es - www.uva.es/eii
Departamento de
Ingeniería de Sistemas y Automática
P5-9: Obtener los números primos y cuantos no primos están comprendidos entre dos números dados
()
Se pide realizar un programa que calcule cuantos números no primos existen comprendidos entre dos números
dados, ambos incluidos. Se mostrarán también los números primos obtenidos. El programa comprobará que el
primer número introducido es mayor que 1 y que el segundo número introducido es mayor que el primero,
solicitando indefinidamente la introducción de dos nuevos números en caso contrario.
Pág. 3 de 3
www.eii.uva.es - www.uva.es/eii