Prácticas de C++ Practica Nº 4

Anuncio
Prácticas de C++
Practica Nº 4
Fundamentos de Programación
Informática II
Prof. Dr. Paul Bustamante
Practica Nº 4 Programación en C++
Pág. 1
ÍNDICE
ÍNDICE ........................................................................................................................................ 1
1. Introducción...................................................................................................................... 1
1.1
Números Perfectos. .................................................................................................... 1
1.1.1
Opción 1:............................................................................................................ 1
1.1.2
Opción 2:............................................................................................................ 1
1.2
Conversor de Decimales - Hexadecimales................................................................. 2
1.3
Cálculo de la Derivada de un Polinomio en un Punto dado (x). ................................ 2
1.4
Cálculo de las distancias entre puntos........................................................................ 3
1. Introducción.
Como ya lo hemos venido haciendo, algunos ejercicios de esta práctica los debe
realizarlo solo, con el fin de que pueda ganar más experiencia en la programación en C++.
En otros ejercicios se dará el código, lo que no significa que sólo tenga que escribirlo
en el ordenador; debe tratar de realizarlos por su cuenta.
1.1 Números Perfectos.
1.1.1 Opción 1:
En este ejercicio el programa debe decir si un número dado por pantalla es Perfecto o
NO. 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:
28 =
1 + 2 + 4 + 7 + 14 + 28
2
Los pasos a seguir son los siguientes:
•
Pedir el número por teclado.
•
Imprimir en la consola si el número es perfecto o no.
•
Continuar pidiendo hasta que se de la opción de salir.
Nota: recuerde que puede usar el operador % para calcular el resto de una división, y
así encontrar los divisores de un número.
Para resolver este ejercicio, debe hacer la función bool Perfecto( int n), la cual debe
devolver verdadero o falso, si el número pasado como argumento es o no perfecto.
1.1.2 Opción 2:
En este apartado el programa debe pedir dos límites (A y B) y debe encontrar los
números perfectos que existan entre esos dos límites. Por ejemplo si doy entre 20 y 250, debe
encontrar el 28 y …?
Para resolver este ejercicio debe usar la función Perfecto que ha implementado en la opción
anterior. Debe hacer un bucle (con un For o While) desde el número A hasta el número B,
incrementándolo de uno en uno, y por medio de la función Perfecto verificar si ese número es
o no perfecto.
Copyright@ Paul Bustamante – Tecnun (Universidad de Navarra)
Practica Nº 4 Programación en C++
Pág. 2
1.2 Conversor de Decimales - Hexadecimales
En este ejercicio se pide realizar un programa que permita convertir un número
decimal, introducido por el usuario, a hexadecimal y viceversa.
Para esto es necesario crear un pequeño menú con las dos opciones de conversión para
que el usuario pueda escoger entre éstas y posteriormente, introducir el número a transformar.
Las dos funciones que debe crear para este ejercicio son:
void DecToHex(char *val, int n);
void HexToDec( char *numHex, int &num);
A continuación se le da la estructura del programa, incluyendo el llamado a las
funciones respectivas:
#include <iostream.h>
#include <string.h>
#include <math.h>
//para strlen()
//para pow()
void DecToHex(char *val, int n);
void HexToDec( char *numHex, int &num);
void main()
{
int num,opc;
char Hex[40];
cout << "1. Dec->Hex
2.
cin >> opc;
if (opc==1){
cout << "Dar Numero
cin >> num;
DecToHex(Hex,num);
cout << num << " en
}else{
cout << "Dar Numero
cin >> Hex;
HexToDec(Hex,num);
cout << Hex << " en
}
}
Hex->Dec ?";
en Dec:?";
Hex es " << Hex << endl;
en Hex(mayusculas):?";
Dec es " << num << endl;
1.3 Cálculo de la Derivada de un Polinomio en un Punto dado (x).
En este ejercicio se pide desarrollar un algoritmo para calcular la derivada de un
polinomio de grado n, dado por el usuario.
La fórmula para calcular la derivada es la siguiente:
n
f ( x) = ∑ coeficient esi * I * X i−1
'
i =1
El programa debe pedir:
1) El grado del polinomio (n).
2) Los coeficientes.
3) El punto x en el cual se quiere evaluar la derivada.
Debe sacar por la consola el valor de la derivada en ese punto dado.
Copyright@ Paul Bustamante – Tecnun (Universidad de Navarra)
Practica Nº 4 Programación en C++
Pág. 3
#include <iostream.h>
#include <math.h>
//declaración de la función
double CalculaDerivada(double *coefientes, int grade, double pto);
void main ()
{
int grado;
double x, derivada;
//introducción del grado del polinomio
cout << "Introduzca el grado del polinomio: ";
cin >> grado;
double *coefs=new double[grado+1]; //asignación dinámica de memoria
//introducción de los coeficientes
for (int i=0;i<=grado;i++)
{
cout << "Coeficiente para X^" << grado-i << " : " << endl;
cin >> coefs[i];
}
//introducción del punto de evaluación
cout << "Introduzca el punto para evaluar la derivada: " << endl;
cin >> x;
//llamada a la función CalculaDerivada()
derivada = CalculaDerivada(coefs, grado, x);
//saca el resultado por consola
cout << "El valor de la derivada es : " << derivada << endl;
delete [] coefs;
}
//definición de la función CalculaDerivada()
double CalculaDerivada(double *coeficientes, int grade, double pto)
{
double resultado=0;
//cálculo de la derivada. Implementar el algoritmo
return resultado;
}
1.4 Cálculo de las distancias entre puntos.
El objetivo de este ejercicio es el de calcular las distancias entre varios puntos de un
plano cartesiano x e y (dados por el usuario) y al final imprimir los dos puntos que están más
cercanos, con la distancia que les separa.
Para esto, el usuario debe introducir el total de puntos de trabajo, y luego cada uno de
éstos. Finalmente, se deberá imprimir en la consola la distancia que hay entre cada uno de los
puntos y además, cuáles son los que se encuentran más cercanos entre sí. Su distancia de
separación también deberá sacarse por consola.
La fórmula para hallar la distancia entre dos puntos es:
( x2 − x1 ) 2 − ( y 2 − y1 ) 2
Nota: Recuerde borrar los ficheros que estén en los subdirectorios \debug y \release del
proyecto, para que libere espacio en su disco G\.
Copyright@ Paul Bustamante – Tecnun (Universidad de Navarra)
Descargar