Está en la página 1de 2

Escuela de ingeniería de Sistemas y Computación.

Introducción a la Programación Orientada Objetos

Ejercicios POO

1. Lucho Parra tiene un gran dilema no sabe la distancia que ha recorrido en su bicicleta, cuando va
desde un punto a otro en el plano carteciano. Es decir la distancia recorrida desde p1(x,y) hasta otro
punto p2(x,y). Adicionamente desea conocer cuánto ha recorrido en todo el tiempo de ejecución del
programa.
NOTAS
=====
[1] En realidad, el constructor siempre retorna automáticamente un
puntero al objeto recién creado, pero eso es un tema avanzado.
El destructor nunca recibe argumentos y nunca retorna nada.
[2] Funciones matematicas complejas se encuentran en la librería matemática
estándar. Todas las librerías estándar vienen incluidas con el
compilador. Para que funcione la librería matemática, hay que
incluir sus definiciones con: #include <math.h>
[3] Todos los operadores binarios (con dos argumentos), tales como
el +, -, *, /, %, &, |, ^, <<, >> se pueden asociar con el
operador de asignación (=). Y funciona abreviando expresiones
en donde el resultado y el primer operando es la misma
variable. Ejemplos:
a = a + b; <======> a += b;
a = a - b; <======> a -= b;
a = a / b; <======> a /= b;

2. Martín Emilio Rodríguez (Cochise) salío en su bicicleta a alcanzar a Lucho Parra, Cochise quiere
saber cuándo alcanza en su bicicleta a Luchito (Si o No lo ha alcazado). Martín Emilio tiene un lío es
que no sabe programar. Un estudiante de Ipoo de Univalle le comentó que se pueden definir métodos
como operadores de la siguiente forma: bool operator == (OtraBicicleta b);
Y se pueden implementar de la siguiente forma:

bool Bicicleta::operator == ( OtraBicicleta b)


{
//Donde x corresponde a la definición de la clase y b.x al objeto que llega como parámetro de igual
forma para y.
if((x == b.x) && (y == b.y))
{
return true;
}
return false;
}
NOTAS
=====
[1] El operador asignación (=) es un operador como otro
cualquiera. De la misma manera que el operador suma realiza
una operación y retorna un resultado (por ejemplo: 3+2 realiza
una suma y retorna 5) también el operador asignación realiza
una operación (asignar el valor que hay a su derecha a la
variable que hay a su izquierda) y retorna un resultado, que
es el valor asignado (ejemplo: xxx=8 realiza la operación
asignar el valor 8 a la variable xxx, y retorna el resultado
8). Por ello, se pueden emplear expresiones tan chuscas como:
x = (y=3) + 1;
Al final, la y valdrá 3 y la x valdrá 4.
[2] La estructura de control:
if(condicion)
{
sentencias1;
}
else
{
sentencias2;
}
ejecuta las sentencias1 si y solo si la condición es true. En
caso contrario, ejecuta las sentencias2.
El bloque else es opcional.
[3] Los valores booleanos (bool) son true y false.
[4] Los operadores relacionales comparan dos objetos y retornan
un bool, y son los siguientes:
== para comparar a ver si son iguales
!= para comparar a ver si son distintos
> mayor que
>= mayor o igual
< menor
<= menor o igual
[5] Los operadores lógicos sirven para agrupar relaciones
(retornando un bool), y son los siguientes:
&& realiza un AND entre dos relaciones
|| realiza un OR entre dos relaciones
! realiza un NOT sobre una relación
[6] Las cuatro formas siguientes son completamente equivalentes:
if(x == true)
if(x != false)
if(x)
if(!(x == true))
También son equivalentes las siguientes cuatro formas:
if(x == false)
if(x != true)
if(!x)
if(!(x == false))
[7] TEMA AVANZADO. Se verá en detalle mas adelante, pero si
alguien tiene inquietudes, puede interesarle que:
El operador * sirve para dos cosas:
- Hacer multiplicaciones.
- Averiguar el contenido de una dirección o puntero.
Por otro lado, this es un puntero o dirección que apunta al
propio objeto. Por lo tanto, *this es el propio objeto.

3. Esto se puso bueno a Nairo Quintana, Cochise y Fabio les dió por hacer una competencia, cada uno
tiene una capacidad atletica que se representa en la aceleración que pueden imprimir en su bicileta. Así
en un plano Nairo acelerar 30m/s2, Cochise acelera 29.5m/s2, Fabio acelerar 29.7m/s2. Implemente una
simulación que debe mostrar en cualquie momento de la carrera el orden de los competidores
(implemente un menú). Mustre la carrera de los tres colombianos que inician en el mismo punto y
recorren una carrera de 40 kilometros, el programa debe indicar cuándo hay un ganador de la carrera.
Adicionalmente informar ¿cuál es el orden de llegada?

Que pasa si realizas una nueva carrera donde inviertes el orden de llegada de la anterior carrera, para la
nueva partida cada competidor tiene un 1 kilometro de distancia de diferencia en la partida (esto para
equilibrar la competencia), cuál es el nuevo orden de llegada?

También podría gustarte