Ver Mensaje Individual
  #3 (permalink)  
Antiguo 27/03/2014, 03:44
dehm
 
Fecha de Ingreso: septiembre-2010
Mensajes: 494
Antigüedad: 14 años, 2 meses
Puntos: 10
Respuesta: estructuras en c++

Entiendo que si ya tienes la estructura que alberga una pareja de puntos, y la función que calcula la distancia entre dos puntos, sólo tienes que implementar una función que sume todas las distancias de todas las parejas de puntos (los lados).
No parece muy problemático.
Sería algo como esto:
Una estructura para albergar un punto
Código C++:
Ver original
  1. struct punto
  2. {
  3. float x,y;
  4. };

una estructura para albergar un lado (o arista)
Código C++:
Ver original
  1. struct arista
  2. {
  3. punto vertices[2]
  4. float distancia (vertice[0],vertice[1]);//implementar la función
  5. };

una estructura para albergar el polígono, pongamos un cuadrado
Código C++:
Ver original
  1. struct rectangulo
  2. {
  3. arista aristas[4];
  4. float calcularperimetro()
  5.    {float perimetro=0;
  6.     for (int i=0;i<4;i++)
  7.     {
  8.          perimetro+=aristas[i].distancia;
  9.     }
  10.     return perimetro;
  11. }

Bueno, algo así. Obviamente con sus constructores y demás donde hagan falta.
Estos ejercicios están bien para ir construyendo objetos más complejos de forma progresiva, y hacer uso de los métodos de los objetos base para conseguir de forma sencilla y lógica implementar métodos en los objetos siguientes. Fíjate que para obtener el perímetro sólo has de sumar las distancias de las aristas.
Con dos float construyes un objeto punto.
Con dos punto construyes un objeto arista
Con n arista (en este caso 4) construyes un objeto cuadrado o rectángulo.

Todo esto se puede mejorar para que la estructura que alberga un cuadrado pueda funcionar para cualquier tipo de polígono y obviamente para muchas mas sutilezas.

Bueno, espero que esto te sirva.