Filippo9669 Temat założony przez niniejszego użytkownika |
zwracanie wskaźnika » 2015-12-02 18:08:16 cześć. borykam się z takim oto problemem: mam pewną funkcję, która chciałbym, aby zwróciła więcej niż jedną wartość. jednocześnie jest na tyle mała, że bez sensu jest deklarować na jej potrzeby strukturę. myślałem o wskaźnikach, ale nie za bardzo wiem, jak potem zajmować się taką funkcją zwracającą wskaźnik. przykładowa byłaby taka: użytkownik podaje współrzędne dwu punktów (x,y), po czym funkcja znajduje środek odcinka łączącego oba te punkty i zwraca współrzędne tegoż punktu. prosiłbym o pomoc :)
Filip |
|
michal11 |
» 2015-12-02 18:14:20 Wszystko zależy jakie dane chcesz zwrócić, w zależności od tego możesz zwracać vector(tablicę), mapę, krotkę, wartości zwracać przez referencję/wskaźnik jako argumenty. |
|
pekfos |
» 2015-12-02 19:03:17 przykładowa byłaby taka: użytkownik podaje współrzędne dwu punktów (x,y), po czym funkcja znajduje środek odcinka łączącego oba te punkty i zwraca współrzędne tegoż punktu. |
Użyj struktury. To najlepsze rozwiązanie, jeśli chcesz pisać funkcje do operacji na punktach. Jeśli nie chcesz poświęcić na to tych paru linii, możesz użyć gotowej struktury z jednej z multum bibliotek. |
|
Filippo9669 Temat założony przez niniejszego użytkownika |
» 2015-12-02 19:32:52 to może inaczej. na pierwszym roku mam przedmiot informatyka I i jako, że coś tam już kiedyś programowałem (niedużo) to uznałem, że napiszę kolokwium zaliczające semestr we wcześniejszym terminie. no i przerobienia był pisany na ćwiczeniach program, gdzie wszystko odbywało się w funkcji głównej, ja natomiast dostałem za zadanie zrobić funkcję, która będzie zwracać wartości x,y położenia punktu, na podstawie danych przekazywanych w mainie. ćwiczeniowiec oglądając program powiedział, żeby zrobił prostą funkcję - domyślam się, że zwracającą wskaźnik, a nie strukturę. |
|
michal11 |
» 2015-12-02 19:46:11 Zrób strukturę. Ew. std::pair<> |
|
carlosmay |
» 2015-12-02 20:28:37 no i przerobienia był pisany na ćwiczeniach program, gdzie wszystko odbywało się w funkcji głównej, ja natomiast dostałem za zadanie zrobić funkcję, która będzie zwracać wartości x,y położenia punktu, na podstawie danych przekazywanych w mainie. |
Wynika z tego, że program jako taki już jest, ale do przerobienia. Jak w tym programie przechowywane są dane? |
|
Filippo9669 Temat założony przez niniejszego użytkownika |
» 2015-12-02 22:56:48 utworzone były dwie tablice o rozmiarze n wypełniane liczbami losowymi - jedna tablica odpowiadała za składowe x punktów, druga za y. potem użytkownik podawał jakiś swój punkt (xp, yp), następnie w mainie wyszukiwane były współrzędne punktu najbardziej oddalonego od tego wprowadzonego przez użytkownika. moim zadaniem było stworzyć funkcję zewnętrzną, która właśnie by to robiła - szukała tego najbardziej oddalonego punktu, zwracała współrzędne x,y oraz numer indeksu tablicy, pod którym znajduje się ten punkt. |
|
carlosmay |
» 2015-12-03 00:15:55 Rozumiem to tak: Funkcja niech przyjmuje obie tablice, oraz współrzędne punku odwzorowania. Szukasz w każdej parze wartości maksymalnie odsuniętej od punktu odwzorowania. Jak znajdziesz to zwracasz nr indeksu (wartości nie musisz bo w tablicach nie nanosisz zmian, więc możesz później odczytać te wartości).
Ew. gdy osobno chcesz szukać w każdej z tablic, to mechanizm będzie ten sam, tylko funkcja przyjmie jedną tablicę i jedną odpowiadającą współrzędną punktu odniesienia. Funkcję wtedy wywołujesz dwa razy( raz dla każdej tablicy).
Jednak uważam, że wiązanie takich danych w strukturze jest dużo lepszym rozwiązaniem. Możesz wtedy napisać dla niej metody, które będą wyliczać różne kombinacje. |
|
« 1 » 2 |