Download Grupo B

Document related concepts
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