June 2022 1 12 Report
Napisać klasę Wektor reprezentującą wektor na płaszczyźnie kartezjańskiej. Klasa
ta powinna mieć dwie składowe prywatne – wspołrzędne (x, y) oraz następujące
metody publiczne:
• konstruktor bezparametrowy tworzący wektor zerowy,
• konstruktor z parametrami umożliwiającymi ustalenie wartości współrzędnych wektora,
• metodę dlugosc , której wynikiem ma być długość wektora,
• metodę Wektor pomnoz(double a) , której wynikiem ma być nowy wektor
będący wynikiem przemnożenia bieżącego wektora przez podany skalar,
• metodę Wektor dodaj(const Wektor &w) , której wynikiem ma być nowy
wektor będący sumą bieżącego i podanego wektora,
• metodę Wektor odejmij(const Wektor &w) , której wynikiem ma być nowy wektor będący różnicą bieżącego i podanego wektora,
• metodę Wektor normalizuj() , której wynikiem powinien być nowy wektor
równy znormalizowanemu bieżącemu wektorowi,
• metodę string toString() , której wynikiem powinien być łańcuch opisujący wektor, np. ”[1.2, -3]”
Przykład zastosowania klasy Wektor:
int main(int argc, const char *argv[])
{
Wektor w1(2, 4),
w2(1, 0);
cout << "w1 = " << w1.toString() << " w2 = " << w2.toString() << endl;
cout << "dł. w1 = " << w1.dlugosc() << " dł. w2 = " << w2.dlugosc() << endl;
cout << "w1 + w2 = " << w1.dodaj(w2).toString() << endl;
cout << "w1 - w2 = " << w1.odejmij(w2).toString() << endl;
cout << "w1 * -2 = " << w1.pomnoz(-2).toString() << endl;
cout << "w1 po normalizacji = " << w1.normalizuj().toString() << endl;
cout << "w2 po normalizacji = " << w2.normalizuj().toString() << endl;
cout << "w1 * 2 - w2 = " << w1.pomnoz(2).odejmij(w2).toString() << endl;
return 0;
}

Wynik działania przykładowego programu:
w1 = [2.00, 4.00] w2 = [1.00, 0.00]
dł. w1 = 4.47214 dł. w2 = 1
w1 + w2 = [3.00, 4.00]
w1 - w2 = [1.00, 4.00]
w1 * -2 = [-4.00, -8.00]
w1 po normalizacji = [0.45, 0.89]
w2 po normalizacji = [1.00, 0.00]
w1 * 2 - w2 = [3.00, 8.00]

Recommend Questions



Life Enjoy

" Life is not a problem to be solved but a reality to be experienced! "

Get in touch

Social

© Copyright 2013 - 2024 KUDO.TIPS - All rights reserved.