Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

Petla - każdy z każdym

Ostatnio zmodyfikowano 2017-12-14 22:40
Autor Wiadomość
grytyn
Temat założony przez niniejszego użytkownika
Petla - każdy z każdym
» 2017-12-14 22:19:08
Witam. Pisze program który ma za zadanie odczytać punkty z pliku, obliczyć odległości miedzy nimi i posortować rosnąco .

Punkty muszę sprawdzić "każdy z każdym", i tutaj mam problem.
umiem sprawdzić pkt a z pkt b, pkt b z pkt c , ale jak a z c ...
Mój program nie zna dokładnej liczby pkt muszę napisać " uniwersalna " pętle pasującą do tego zdarzenia.


Oto kod :
C/C++
#include <iostream>
#include <fstream>
#include <string>

using namespace std;

int * x = new int[];
int * y = new int[];


int licznik = 0;
float wynik[ 100 ];
string znak[ 100 ];

bool kontrolaPliku( string nazwa_pliku );
float liczenie_odleglosci_pkt( int x[], int y[], string nazwa[] );
void sortowanie_i_zapis( float tab[], int size );


int main()
{
   
   
    if( !kontrolaPliku( "punkty.txt" ) )
         cout << " Nie znaleziono pliku " << endl;
   
    liczenie_odleglosci_pkt( x, y, znak );
   
    sortowanie_i_zapis( wynik, licznik );
   
   
    getchar();
    return 0;
   
}



bool kontrolaPliku( string nazwa_pliku )
{
   
    ifstream plik;
    plik.open( nazwa_pliku.c_str() );
    if( !plik.good() )
         return false;
   
   
   
    while( !plik.eof() )
    {
        plik >> znak[ licznik ] >> x[ licznik ] >> y[ licznik ];
        licznik++;
    }
    cout << "Dane pobrane z pliku " << endl;
    for( int i = 0; i != licznik; i++ ) cout << znak[ i ] << " " << x[ i ] << " " << y[ i ] << endl;
   
    return true;
   
   
}

float liczenie_odleglosci_pkt( int x[], int y[], string nazwa[] )
{
   
   
    // cout << x[0] << x[1];
   
    int b = 0;
    for( int i = 0; i != licznik - 1; i++ )
    {
       
        if( b == i )
        {
            wynik[ i ] = sqrt(( x[ i + 1 ] - x[ i ] ) *( x[ i + 1 ] - x[ i ] ) +( y[ i + 1 ] - y[ i ] ) *( y[ i + 1 ] - y[ i ] ) );
            cout << "odleglosc miedzy = " << nazwa[ i ] << "  " << nazwa[ i + 1 ] << wynik[ i ];
            cout << "if" << endl;
        }
        else
        {
           
            wynik[ i ] = sqrt(( x[ i + 1 ] - x[ i ] ) *( x[ i + 1 ] - x[ i ] ) +( y[ i + 1 ] - y[ i ] ) *( y[ i + 1 ] - y[ i ] ) );
            cout << "odleglosc miedzy = " << nazwa[ b ] << "  " << nazwa[ i ] << wynik[ i ];
        }
       
       
        b++;
    }
   
   
   
   
    return 0;
}
[/i]
P-167913
grytyn
Temat założony przez niniejszego użytkownika
» 2017-12-14 22:40:48
zrobione :)
P-167914
« 1 »
  Strona 1 z 1