• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

C++ obiektowo, odległość między punktami

Mały hosting, OGROMNE możliwości
+1 głos
1,293 wizyt
pytanie zadane 10 stycznia 2022 w C i C++ przez jagfoljersolen Początkujący (250 p.)

Zaczęłam pisać to zadanie i utknęłam. Jak mam teraz skorzystać z tych współrzędnych, żeby je wstawić do wzoru?

Nie obiektowo napisałabym po prostu zmienne x1,x2,y1,y2, ale tutaj chyba chodzi, żeby użyć jakoś optymalnie klasy...

#include <iostream>
using namespace std;

/*Napisz program, który zdefiniuje typ złożony Point reprezentujący punkt w dwuwymiarowej przestrzeni euklidesowej. Punkt powinien być opisany za pomocą dwóch współrzędnych. 
Zdefiniuj metody do wczytywania i wypisywania współrzędnych. Zadeklaruj wszystkie pola klasy jako prywatne. Następnie wczytaj od użytkownika współrzędne dwóch punktów.
Oblicz i wyświetl odległość pomiędzy tymi punktami.*/

class Point{
private:
	int x;
	int y;
public:
void dodaj_wspolrzedne_x() {
		
		cout << "x=";
	cin >> x;
	}

void dodaj_wspolrzedne_y() {
	cout << "y=";
	cin >> y;
}

void wyswietl() {
	cout << "(" << x << "," << y << ")";
}
};


int main() {
	Point punkt_1;
	cout << "Podaj wspolrzedne punktu 1: " << endl;
	punkt_1.dodaj_wspolrzedne_x();
	punkt_1.dodaj_wspolrzedne_y();
	punkt_1.wyswietl();
	cout << "\nPodaj wspolrzedne punktu 2: " << endl;
	Point punkt_2;
	punkt_2.dodaj_wspolrzedne_x();
	punkt_2.dodaj_wspolrzedne_y();
	punkt_2.wyswietl();
}

 

2
komentarz 10 stycznia 2022 przez Wojciech Rokicki Użytkownik (850 p.)

Prawdopodobnie powinnaś użyć getterów i setterów - funkcji, które odpowiednio pośrednio zwracają oraz ustawiają wartości prywatnych pól obiektu. W tym zadaniu chodzi o zachowanie tzw. enkapsulacji aka. hermetyzacji. Poniżej link do wpisu wyjaśniającego wcześniej wspomniane metody:

https://forum.pasja-informatyki.pl/37282/czym-sa-gettery-i-settery-w-c

Następnie możesz obliczyć już odległość między punktami z wykorzystaniem napisanej przez siebie, dedykowanej funkcji przyjmującej jako argumenty dwa punkty i wyliczającej odległość na podstawie wzoru d = sqrt( pow( p1.getX()-p2.getX() , 2 ) + pow( p1.getY()-p2.getY() , 2 ) ). Pamiętaj o kontroli typów i niejawnej konwersji w przypadku używania funkcji matematycznych.

2
komentarz 10 stycznia 2022 przez jagfoljersolen Początkujący (250 p.)
Dziękuję:)

Zaloguj lub zarejestruj się, aby odpowiedzieć na to pytanie.

Podobne pytania

0 głosów
1 odpowiedź 574 wizyt
pytanie zadane 22 stycznia 2018 w SPOJ przez Maciej3206 Użytkownik (570 p.)
+1 głos
2 odpowiedzi 1,937 wizyt
pytanie zadane 4 marca 2018 w C i C++ przez kubal0101 Początkujący (280 p.)
0 głosów
2 odpowiedzi 1,794 wizyt

93,718 zapytań

142,630 odpowiedzi

323,262 komentarzy

63,265 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj

Twierdza Linux. Bezpieczeństwo dla dociekliwych

Aby uzyskać rabat -10%, użyjcie kodu pasja-linux, wpisując go w specjalne pole w koszyku.

...