Dev - C++ - Ayuda con string 2

   
Vista:

Ayuda con string 2

Publicado por Federico fedeinformatica9@gmail.com (11 intervenciones) el 22/03/2017 18:17:41
Buenas, estoy bastante perdido en este ejercicio ya que me han dado unas clases, metodos y objetos que no se utilizar

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
#include <iostream>
#include <cmath> 
#include <string>
#include <sstream>
 
using namespace std;
 
const double PI = 3.14159265;
class Punto {
private:
    double x; // coordenada x del punto
    double y; // coordenada y del punto
 
public:
    Punto(); //constructor. Pone a 0 las dos coordenadas
    Punto(double px, double py); // constructor. Inicializa un punto con dos valores x y
    double getX();
    double getY();
    void setX(double newXValue);
    void setY(double newYValue);
    string toString(); ///<  devuelve el contenido del punto como un string
    double distancia(Punto p2); // calcula la distancia a otro punto
    Punto puntoMedio(Punto p2); //devuelve el punto medio entre el objeto implicito y p2
};
 
Punto::Punto():x(0),y(0) {
}
 
Punto::Punto(double px, double py):x(px),y(py) {
}
 
double Punto::getX() {
	return x;
}
 
double Punto::getY() {
	return y;
}
 
void Punto::setX(double px) {
	x = px;
}
 
void Punto::setY(double py) {
	y = py;
}
 
string Punto::toString() {  // devuelve un string con el formato (x,y)
    stringstream ss;
    ss << "(" << x << "," << y << ")";
    return ss.str();
}
 
double Punto::distancia (Punto p2){  //devuelve la distancia entre el objeto implicito y p2
	double distancia;
	distancia = sqrt (  );
}
 
 
Punto Punto::puntoMedio(Punto p2){
}


Mis preguntas son:

1- Como obtener las coordenadas del punto implicito
2- Como obtener las coordenadas del punto que introduzco por ejemplo en distancia
3-Como calcular la distancia entre un punto que introduzco y el implícito

Gracias
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

Ayuda con string 2

Publicado por Thanatos (131 intervenciones) el 22/03/2017 21:36:30

Resp 1:


La función Punto::distancia(Punto p2) es un miembro de la clase Punto, para poder utilizarla es necesario crear un objeto o instancia de la clase. Esto hace que las coordenadas del punto implícito sean las del objeto desde el que se está llamando a la función.

Por ejemplo, si tenemos este código en la función main:
1
2
3
4
5
6
7
8
int main() {
    Punto p1(-4.0, 0.0);
    Punto p2(5.0, 0.0);
 
    cout << "distancia = " << p1.distancia(p2) << '\n';
    cout << "distancia = " << p2.distancia(p1) << '\n';
    return 0;
}

En la línea 5 estamos llamando a la función distancia, desde p1. Entonces, en esta línea, las coordenadas del punto implícito son las coordenadas de p1.

En la linea 6 las coordenadas del punto implícito son las coordenadas del punto p2, porque la llamada a la función se hace desde ese objeto.

Para obtener las coordenadas del punto implícito, dentro de la función distancia, sólo necesitas utilizar las variables de instancia de la clase: x, y.


Resp 2:


Para obtener las coordenadas del punto que la función recibe como argumento, utiliza los getters que tienes definidos en la clase.


Resp 3:


1
2
3
double Punto::distancia(Punto p2) {
	return sqrt(pow(p2.getX() - x, 2.0) + pow(p2.getY() - y, 2.0));
}
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
2
Comentar