Programación I Ejercicios tipo Final

Anuncio
Programación I
Ejercicios tipo Final
2009
Usted puede usar cualquier material escrito que haya traído consigo para la
resolución de este examen. No podrá intercambiar notas ni ideas ni código con sus
compañeros.
NOTA: Para obtener el máximo del puntaje el programa deberá funcionar y hacer lo
pedido.
Se ingresan los 3 lados de un triangulo, que se cargan en un objeto de una clase como
la que se indica a continuación.
1. class Triang {
2. public:
3. int uno; int dos; int tres;
4. Triang(int x, int y, int z):uno(x),dos(y),tres(z){};
5. bool esTriang();
6. bool equilatero();
7. bool isosceles();
8. bool escaleno();
9. friend istream& operator >> (istream& is,Triang& a);
10.friend ostream& operator << (ostream& os,Triang a);
11.private:
12.// …. Las que necesite;
13.};
Ud. deberá programar las funciones que necesite la clase. Luego escribirá un programa
principal que lea los datos de un triángulo y los guarde en uno de tres archivos
distintos según sea equilátero, isósceles o escaleno. El programa deberá además
imprimir además los datos del triángulo con mayor área entre los ingresados (ayuda,
use la fórmula de Heron)
Se tiene un collar con cuentas de colores, representados por la siguiente clase:
class grupo{
int cuentas;
string col; //color
public:
grupo():...;
grupo(int n,string c):....;
int cantCuentas();
string color();
friend ostream& operator<<(ostream& os, grupo g);
friend istream & operator>>(istream &is, grupo &g);
};
Ud deberá diseñar la clase collar.
-1-
UCA 2009
Ejercicios tipo Final
Su programa deberá leer las cuentas de un archivo. No hay límite para la cantidad de
grupos a incluir. Los colores pueden estar repetidos. El máximo de los grupos a
ingresar es 50.
Luego el programa preguntará por terminal por un color e informará cuantos grupos y
cuantas cuentas hay de ese color. Además determinará cuál es el color con el grupo
mas numeroso y cual es el color del que hay mas cuentas.
Con las clases del ejercicio anterior:
Su programa deberá leer las cuentas de un archivo. Al cortar el collar se extraen de un
extremo las cuentas siempre que sean del mismo color hasta llegar a un nuevo color.
La operación se repite en el otro extremo (pueden ser 2 colores distintos). Su programa
deberá indicar donde cortar para que la cantidad de cuentas extraída sea máxima.
Un ejemplo de datos (datcol) es:
4 azul
5 rojas
3 naranjas
8 verdes
Y un ejemplo de salida del programa:
collar1 datcol
­­4(azul)
­­5(rojas)
­­3(naranjas)
­­8(verdes)
Imprimo el collar
­­4(azul)­­5(rojas)­­3(naranjas)­­8(verdes)
Cortar entre ­­8(verdes) y ­­4(azul)
Se tiene un conjunto de puntos en el plano representados por sus coordenadas según la
siguiente clase:
class punto {
float x;
float y;
public:
punto():...;
punto (float u, float d):...;
float getX() {return x;}
float getY(){return y;}
friend istream& operator >> (istream& s, punto &p);
friend ostream& operator << (ostream& s, punto p);
};
Su programa deberá leer un conjunto de puntos, ingresarlos a un arreglo y recorrer la
lista para imprimirlos. A continuación se leen las coordenadas los dos puntos de una
diagonal de un rectángulo y su programa deberá imprimir los puntos que se encuentran
dentro del rectángulo.
Un ejemplo de la salida del programa es:
-2-
UCA 2009
Ejercicios tipo Final
Datos Leidos
x=2.3, y=4.5
x=­0.3, y=2.8
x=1.9, y=­2
x=­2, y=1
x=1, y=­4.5
x=­2.3, y=0
Coordenadas de dos puntos del Rectangulo
1.5, ­3 ­4, 1
El rectangulo es: (­4, ­3) y (1.5, 1)
El punto x=­2, y=1 esta adentro
El punto x=­2.3, y=0 esta adentro
Se tiene una clase Coord que contiene las coordenadas de un punto:
1. class Coord {
2. public:
3.
float x;
4.
float y;
5.
Coord():x(0),y(0) {};
6.
Coord(float u,float d){...}
7.
Coord(const Coord& c){...}
8.
float dist(Coord c){...} // distancia entre dos
puntos
9.
friend ostream& operator <<(ostream& os,Coord p){...}
10.
friend istream& operator >>(istream& is,Coord& p)
{...}
11.};
y una clase Circ que contiene un círculo:
1. class Circulo{
2. public:
3.
Coord centro;
4.
float diametro;
5.
friend ostream& operator <<(ostream &os,Circulo c){...}
6.
friend istream &operator >>(istream &is,Circulo& c)
{...}
7. };
Su programa deberá leer de un archivo un conjunto de círculos, ingresarlos a una lista y
recorrer la lista para imprimirlos. A continuación deberá imprimir todos los pares de círculos cuya
intersección no es nula
-3-
Descargar