Prácticas de C++ Practica Calificada Informática II Fundamentos de Programación Prof. Dr. Paul Bustamante
Practica Calificada 06 Programación en C++ Pág. 1 ÍNDICE ÍNDICE... 1 1. Introducción... 1 1.1 Conversión de Temperaturas (0.2 Pts.)... 1 1.2 Intersección de una recta con una circunferencia (0.5 Pts.)... 1 1.3 Clases: Convertir coord. Cartesianas a Polares y viceversa (0.3Pts.)... 2 1. Introducción. Para la práctica calificada debe verificar que tiene creada su cuenta en G:\. No debe poner nada dentro de la carpeta \perfil. Las carpetas de los ejercicios debe crearlos en G:\, por ejemplo para el primer ejercicio debe tener G:\Ejer1. 1.1 Conversión de Temperaturas (0.2 Pts.) Realice un programa en C++ que escriba una tabla de dos columnas para la conversión entre las temperaturas en grados Fahrenheit (comprendidas entre A ºF y B ºF, según incrementos de INC ºF) y su equivalente en grados centígrados. Los valores de A, B e INC debe pedirlos por consola. Para desarrollar este programa, debe crear una función Convierte, a la cual se le pase la temperatura en ºF y devuelva la temperatura en ºC. Básicamente en esta función debe implementar la siguiente ecuación de conversión: 5*(º F 32) º C = 9 Siendo ºC la temperatura en grados Centígrados y ºF en grados Fahrenheit. El resto del programa (pedir datos y llamadas a la función) debe hacerlo en main(). Nota: como la finalidad de este ejercicio es evaluar el uso de funciones, sino hace dicha función, este ejercicio no tiene validez alguna. 1.2 Intersección de una recta con una circunferencia (0.5 Pts.) Este ejercicio consiste en verificar que una recta, cuya ecuación es: y y = m * x + c (ec.1) intersecta a una Circunferencia, cuya ecuación es: ( x = r 2 2 2 a) + ( y b) (ec.2),donde a y b son los valores del centro de la circunferencia, con respecto al origen (0,0) y r es el radio de la circunferencia. recta x Para hallar la solución basta con sustituir la ecuación de la recta (ec.1) en la ecuación de la circunferencia (ec.2) y resolver la ecuación de segundo grado que resulta: 2 2 2 2 2 2 ( 1+ m ) x + (2mc 2a 2mb) x + ( a + c + b 2bc r ) = 0
Practica Calificada 06 Programación en C++ Pág. 2 Evaluando la ecuación de Segundo grado, existen 3 casos posibles: 1. Si el discriminante es menor que 0, la recta no corta a la circunferencia. 2. Si el discriminante es mayor que 0, la recta corta a la circunferencia, para lo cual debe sacar por pantalla los puntos de corte (x,y). 3. Si el discriminante es igual que 0, quiere decir que la recta en tangente a la circunferencia, para lo cual debe sacar por pantalla el punto (x,y) en que es tangente. Programa: A continuación se dan algunas pautas para la elaboración del programa: 1. El programa principal main() debe pedir los datos de la recta y la circunferencia, tal como se ve en la figura de abajo y estará en un bucle hasta que el usuario decida salir de él, para lo cual sacará un mensaje por pantalla de Continuar (S/N)?. Debe sacar por consola si la recta es tangente, secante o no corta a la circunferencia y cuáles son los puntos de corte, tal como se puede ver en la figura. 2. Debe hacer obligatoriamente la función Ec2grado(...) que se debe llamar desde main. Esta función se encargará de resolver la ecuación de segundo grado y devolverá las raices. Los parámetros que le debe pasar a la ecuación son los coeficientes de toda ecuación de segundo grado del tipo Ax 2 + Bx + C = 0. 1.3 Clases: Convertir coord. Cartesianas a Polares y viceversa (0.3Pts.) Este ejercicio consiste en hacer un programa que le permita al usuario hacer conversiones de coordenadas rectangulares a polares y viceversa, usando la Programación Orientada a Objeto, es decir, con clases y objetos. En el programa principal debe hacer un menú donde el usuario elija la opción deseada (ver figura siguiente). Según la opción que el usuario elija, debe pedir los datos: x e y o r y el ángulo (en grados) y crear los objetos correspondientes para obtener las nuevas conversiones. Debe existir una sola clase que se llamará Convierte, cuyos datos miembros deben ser privados. A continuación puede observar la estructura de dicha clase:
Practica Calificada 06 Programación en C++ Pág. 3 class Convierte { double x,y,r,ang; //ang en grados bool tipo; //true: cart a pola false:pol a cart public: Convierte(...); // si desea puede poner más de 1 constructor tipo PolarToCartesianas(...); tipo CartesianasToPolar(...); }; Variables miembro (privadas): La variable bool tipo sirve para que la clase funcione como un convertidor de Polares a cartesianas o viceversa, según el valor (ver en la def. de la clase). Las variables x e y almacenan las coordenadas cartesianas y las variables r y ang las coordenadas polares. Funciones miembro: Puede haber uno o más constructores y los argumentos ud. decidirá cuales serán. Deben existir 2 funciones miembros, PolarToCartesianas y CartesianasToPolar, las cuales deben ser llamadas según sea el caso de conversión. Ud. debe ver qué argumentos pasarle a esas funciones y definir el tipo de retorno. En caso de que necesite agregar más funciones miembros a la clase, puede hacerlo Notas: Si no crea objetos de esta clase, NO tendrá validez el ejercicio. Si utiliza sobrecarga de operadores para pedir los datos de las coordenadas tendrá opción a 0.1 pt. más. Buena Suerte!!!!