Download Grupo B
Transcript
Practica Calificada Nº1 – Jueves 25 de abril - Programación en C++ Pág. 1 ÍNDICE ÍNDICE ........................................................................................................................................1 1.1 Ejercicio 1: Números Perfectos (0.6 ptos.).............................................................1 1.2 Ejercicio 2: Calcular PI por la regla de James Gregory (0.4 ptos) .............................1 1.1 Ejercicio 1: Números Perfectos (0.6 ptos.) El siguiente ejercicio consiste en obtener todos los números perfectos de una o más cifras entre dos números A y B dados por el usuario. Recuerda que un número es perfecto cuando es igual a la mitad de la suma de todos sus divisores enteros, incluido él mismo y la unidad. Por ejemplo: 1 + 2 + 4 + 7 + 14 + 28 28 = 2 Tienes que hacer 4 funciones, aparte de main(): 1. Función tipo PideDatos(...): Se encargará de pedir los datos de A y B por teclado (debe verificar que A es menor que B y que es de 2 o más cifras). 2. Función int Perfecto( int nun): En esta función estará el algoritmo para verificar si el número num (pasado como argumento) es un número perfecto o no, por lo tanto debe devolver un valor 1 o cero para decir si el número es perfecto o no. 3. Función tipo BuscaPerfectos( int A, int B ...): Esta función se encargará de llamar a la función Perfecto desde A hasta B para encontrar todos los enteros perfectos que existan en ese rango. Queda a criterio del programador pasarle más argumentos a la función y el definir el tipo de retorno de la función. 4. Función void Print( ..): esta función se encargará de imprimir en la consola todos los #s perfectos encontrados entre A y B. El esqueleto del programa podría ser el siguiente: #include <iostream.h> void main() { PideDatos(...); //A y B .. BuscaPerfectos(A,B,..); ... Print(); //liberar memoria } tipo BuscaPerfecto(A,B,...) { int ret = Perfecto( n ); ... } Nota: recuerda que puedes usar el operador % para calcular el resto de una división. Debes crear el proyecto Perfecto y el fichero Perfecto.cpp para escribir el código; en tu directorio G:\ que se ha habilitado para recoger los ejercicios. 1.2 Ejercicio 2: Calcular PI por la regla de James Gregory (0.4 ptos) En prácticas pasadas muchos de vosotros os preguntabais “cómo se puede calcular el número π con bastantes decimales”. Pues aquí tenéis la oportunidad de hacedlo. Informática II – Fundamentos de Programación - Tecnun Practica Calificada Nº1 – Jueves 25 de abril - Programación en C++ Pág. 2 El número π es una constante muy importante en muchas de las leyes físicas y matemáticas que rigen nuestro mundo Y como es de todos conocido, es un número irracional, es decir que no se puede escribir como cociente de dos números enteros. No obstante es muy importante conocerlo con precisión. ¿Existe alguna forma de calcularlo con la precisión que se desee?. De hecho existen varias posibilidades. Hacia 1671, James Gregory propuso una regla que permite calcular el número π con la precisión que se desee, esta fórmula dice que: Pi = 4*( 1 – 1/3 + 1/5 –1/7 + 1/9 - ...) En este ejercicio se pide crear un programa que calcule π, de la siguiente forma: 1. El programa deberá pedir al potencial usuario el Error entre una iteración y otra y cada cuantos se imprime el valor de PI. Esto debe hacerlo a través de la función tipo PedirDatos(..); 2. Crear la función double CalcularPI( double Error, long *num, int cada_cuantos) que será la encargada del algoritmo. En esta función se irá imprimiendo en la consola el valor de PI según la variable cada_cuantos. 3. Finalmente, CalcularPI debe devolver a main() el valor de PI calculado según el error que se le ha dado y en la variable num debe devolver el número de iteraciones empleadas en ello. Imprimir en la consola esos resultados. Puedes usar el manipulador setprecision(int num) dentro de cout para que puedas visualizar más números decimales en la consola. Para usarlo debes incluir iomanip.h en el cout << setprecision(10) << .... . programa: La salida del programa será algo así: Las dos primeras líneas son entrada de datos y la última es el resultado. Las intermedias son los cálculos que va haciendo el programa. Para resolver este ejercicio debes crear otro proyecto CalculaPI2 y el fichero CalculaPI2.cpp para escribir el código necesario. Informática II – Fundamentos de Programación - Tecnun