podstawa Temat założony przez niniejszego użytkownika |
Przesyłanie wielu elementów do funkcji. » 2016-11-01 20:33:39 Witam, w moim programie próbowałam przesłać wyniki wyliczenia odległości poszczególnych punktów od środka układu współrzędnych, na końcu dodałam wskaźnik, jednak program nadal nie wyświetla poprawnych wyników. Proszę o pomoc. #include<iostream> #include<ctime> #include<cstdlib> #include<iomanip> #include<math.h>
using namespace std;
struct point { int x; int y; };
const int p = 10; point punkt[ 10 ];
float wypelnianie( int Point[ p ] );
float length( int Point[ p ], double & odleglosc, int * wskodl ); void drukowanie( int Point[ p ], double & odleglosc, int * wskodl );
int main() { double odleglosc = 0; int Point[ p ]; int * wskodl = & Point[ 0 ]; wypelnianie( Point ); length( Point, odleglosc, wskodl ); drukowanie( Point, odleglosc, wskodl ); }
float wypelnianie( int Point[ p ] ) { srand( time( NULL ) ); for( int i = 0; i < 10; i++ ) { punkt[ i ].x = rand() % 198 - 99; punkt[ i ].y = rand() % 198 - 99; } }
float length( int Point[ p ], double & odleglosc, int * wskodl ) { for( int i = 0; i < 10; i++ ) { odleglosc = sqrt( pow( punkt[ i ].x, 2 ) + pow( punkt[ i ].y, 2 ) ); wskodl++; } return odleglosc; }
void drukowanie( int Point[ p ], double & odleglosc, int * wskodl ) { for( int i = 0; i < 10; i++ ) { odleglosc = length( Point, odleglosc, wskodl ); cout << "Punkt " << i << " o wspolrzednych: (" << punkt[ i ].x << "," << punkt[ i ].y << ") jest oddalony o " << odleglosc << endl; } }
|
|
podstawa Temat założony przez niniejszego użytkownika |
» 2016-11-01 20:55:22 wiem, że mogę wypisać wszystkie odległości za pomocą jednej funkcji, jednak w tym zadaniu mam napisać osobną funkcję do obliczania odległości |
|
carlosmay |
» 2016-11-01 21:23:20 tym zadaniu mam napisać osobną funkcję do obliczania odległości |
#include <iostream> #include <random> #include <iomanip> #include <array> using namespace std;
constexpr int SIZE { 10 }; std::random_device rd; std::mt19937 gen( rd() );
struct Point { int x; int y; float distanceFromCenter; };
void fill( std::array < Point, SIZE >& points ); Point maxDistance( std::array < Point, SIZE >& points ); float currentDist( const Point & point ); void print( std::array < Point, SIZE >& points );
int main() { std::array < Point, SIZE > points; fill( points ); print( points ); Point maxDistPoint = maxDistance( points ); cout << "Najdalszy punkt od poczatku ukladu wspolrzednych: x = " << maxDistPoint.x << " oraz y = " << maxDistPoint.y << " a, odleglosc wynosi " << maxDistPoint.distanceFromCenter << '\n'; }
void fill( std::array < Point, SIZE >& points ) { std::uniform_int_distribution < int > dist( - 99, 99 ); for( int i = 0; i < 10; i++ ) { points[ i ].x = dist( gen ); points[ i ].y = dist( gen ); points[ i ].distanceFromCenter = currentDist( points[ i ] ); } }
Point maxDistance( std::array < Point, SIZE >& points ) { Point maxDistPoint = points[ 0 ]; for( int i { 1 }; i < 10; i++ ) { if( points[ i ].distanceFromCenter > maxDistPoint.distanceFromCenter ) { maxDistPoint = points[ i ]; } } return maxDistPoint; }
float currentDist( const Point & point ) { return sqrt( pow( point.x, 2 ) + pow( point.y, 2 ) ); }
void print( std::array < Point, SIZE >& points ) { for( int i = 0; i < points.size(); i++ ) { cout << "Punkt " << i + 1 << " o wspolrzednych: (" << points[ i ].x << "," << points[ i ].y << ") jest oddalony o " << points[ i ].distanceFromCenter << endl; } } |
|
podstawa Temat założony przez niniejszego użytkownika |
» 2016-11-01 21:28:42 czy istnieje jakiś prostszy sposób? jestem początkująca i niewiele rozumiem z tego kodu :( |
|
carlosmay |
» 2016-11-01 21:37:03 Czego nie rozumiesz? |
|
podstawa Temat założony przez niniejszego użytkownika |
» 2016-11-01 21:49:53 constexpr int SIZE { 10 }; std::random_device rd; std::mt19937 gen( rd() );
na przykład tego, na dodatek ten program mi nie działa
nie da się przekształcić mojego programu, tak żeby wysyłał odpowiednie odległości do każdego punktu ? |
|
carlosmay |
» 2016-11-01 21:58:53 |
|
podstawa Temat założony przez niniejszego użytkownika |
» 2016-11-01 22:07:07 Dziękuję, postaram się zrozumieć ten kod. |
|
« 1 » 2 |