Attualmente ho fatto (forse) un piccolo passo avanti...
#include <iostream>
#include <cmath>
#include <vector>
#include <fstream>
using namespace std;
int a;
vector <int> Vx,Vy;
vector <float> Vsomma;
float distanza(int x1, int x2, int y1, int y2);
main()
{
int x;
int y;
float somma;
float d;
cout << "Inserisci il numero di punti \n";
cin >> a;
cout << "Il numero é " << a << endl;
cout << "inserisci le cordinate (x,y) dei nodi: \n";
somma = 0;
for (int i=0; i<a; i++)
{
cin >> x;
cin >> y;
Vx.push_back(x);
Vy.push_back(y);
}
for (int g=0; g<a; g++)
{
for (int b=0; b<a; b++)
{
for (int h=0; h<a; h++)
{
cout << Vx[h] << endl;; //controllo delle variabili in entrata
/* d=distanza(Vx[h],Vx[h+1],Vy[h],Vy[h+1]);
cout<< d << endl; //output a schermo della distanza tra i vari nodi
somma=(d+somma);
cout << "somma del punto " << h+1; //output che fornisce l'indicazione sul numero della somma che stiamo svolgendo
cout << " + " << h+2 << " = ";
cout << somma << endl; //somme parsiali della distanza al passo h
*/
}
cout << "-----------" << endl;
int o = Vx[b+1];
int p = Vy[b+1];
Vx[b] = Vx[b+2];
Vy[b] = Vy[b+2];
Vx[b+2] = o;
Vy[b+2] = p;
}
int m = Vx[g];
int n = Vy[g];
Vx[g] = Vx[g+1];
Vy[g] = Vy[g+1];
Vx[g+1] = m;
Vy[g+1] = n;
}
}
float distanza(int x1, int x2, int y1, int y2)
{
float dis;
// cout << x1 << x2 << y1 << y2 << endl; //controllo delle variabili in entrata
dis=sqrt(pow((x2-x1),2)+pow((y2-y1),2));
// cout << x1 << x2 << y1 << y2 << endl; //controllo delle variabili in uscita nella funzione
// cout << dis << endl;
// cout << " x2-x1 "<< x2-x1 << endl; //controllo dei binomi in uscita nella funzione
// cout << " y2-y1 "<< y2-y1 << endl; //controllo dei binomi in uscita nella funzione
return dis;
}
Il problema così facendo è che oltre a dover finire di sistemare il ciclo ne serve uno in più per ogni nodo che si aggiunge...![]()