Está en la página 1de 5

Prcticas de C++

Practica N 4

Fundamentos de Programacin Informtica II


Prof. Dr. Paul Bustamante

Practica N 4 Programacin en C++

Pg. 1

NDICE
NDICE ........................................................................................................................................ 1 1. Introduccin...................................................................................................................... 1 1.1 Nmeros Perfectos. .................................................................................................... 1 1.1.1 Opcin 1: ............................................................................................................ 1 1.1.2 Opcin 2: ............................................................................................................ 1 1.2 Conversor de Decimales - Hexadecimales................................................................. 2 1.3 Clculo de la Derivada de un Polinomio en un Punto dado (x). ................................ 2 1.4 Clculo de las distancias entre puntos........................................................................ 3

1. Introduccin.
Como ya lo hemos venido haciendo, algunos ejercicios de esta prctica los debe realizarlo solo, con el fin de que pueda ganar ms experiencia en la programacin en C++. En otros ejercicios se dar el cdigo, lo que no significa que slo tenga que escribirlo en el ordenador; debe tratar de realizarlos por su cuenta.

1.1 Nmeros Perfectos. 1.1.1 Opcin 1: En este ejercicio el programa debe decir si un nmero dado por pantalla es Perfecto o NO. Un nmero 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 nmero por teclado. Imprimir en la consola si el nmero es perfecto o no. Continuar pidiendo hasta que se de la opcin de salir.

Nota: recuerde que puede usar el operador % para calcular el resto de una divisin, y as encontrar los divisores de un nmero.
Para resolver este ejercicio, debe hacer la funcin bool Perfecto( int n), la cual debe devolver verdadero o falso, si el nmero pasado como argumento es o no perfecto.

1.1.2 Opcin 2:
En este apartado el programa debe pedir dos lmites (A y B) y debe encontrar los nmeros perfectos que existan entre esos dos lmites. Por ejemplo si doy entre 20 y 250, debe encontrar el 28 y ? Para resolver este ejercicio debe usar la funcin Perfecto que ha implementado en la opcin anterior. Debe hacer un bucle (con un For o While) desde el nmero A hasta el nmero B, incrementndolo de uno en uno, y por medio de la funcin Perfecto verificar si ese nmero es o no perfecto.

Copyright@ Paul Bustamante Tecnun (Universidad de Navarra)

Practica N 4 Programacin en C++

Pg. 2

1.2 Conversor de Decimales - Hexadecimales


En este ejercicio se pide realizar un programa que permita convertir un nmero decimal, introducido por el usuario, a hexadecimal y viceversa. Para esto es necesario crear un pequeo men con las dos opciones de conversin para que el usuario pueda escoger entre stas y posteriormente, introducir el nmero 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 continuacin 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 Clculo 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 frmula para calcular la derivada es la siguiente:

f ( x) = coeficient esi * I * X i1
' 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 Programacin en C++ #include <iostream.h> #include <math.h> //declaracin de la funcin double CalculaDerivada(double *coefientes, int grade, double pto); void main () { int grado; double x, derivada; //introduccin del grado del polinomio cout << "Introduzca el grado del polinomio: "; cin >> grado;

Pg. 3

double *coefs=new double[grado+1]; //asignacin dinmica de memoria //introduccin de los coeficientes for (int i=0;i<=grado;i++) { cout << "Coeficiente para X^" << grado-i << " : " << endl; cin >> coefs[i]; } //introduccin del punto de evaluacin cout << "Introduzca el punto para evaluar la derivada: " << endl; cin >> x; //llamada a la funcin CalculaDerivada() derivada = CalculaDerivada(coefs, grado, x); //saca el resultado por consola cout << "El valor de la derivada es : " << derivada << endl; delete [] coefs; } //definicin de la funcin CalculaDerivada() double CalculaDerivada(double *coeficientes, int grade, double pto) { double resultado=0; //clculo de la derivada. Implementar el algoritmo

return resultado;

1.4 Clculo 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 estn ms 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 adems, cules son los que se encuentran ms cercanos entre s. Su distancia de separacin tambin deber sacarse por consola. La frmula para hallar la distancia entre dos puntos es:
( x2 x1 ) 2 ( y 2 y1 ) 2

Nota: Recuerde borrar los ficheros que estn en los subdirectorios \debug y \release del proyecto, para que libere espacio en su disco G\.

Copyright@ Paul Bustamante Tecnun (Universidad de Navarra)

También podría gustarte