Co do tego że sobie nie radzę - wiem, mam trochę plecy z programowaniem, ale staram się to nadrobić. No i nie jestem jedyną osobą w podobnej sytuacji u siebie na studiach ;d
A co do programu, udało mi się co nie co zrobić, program ma teraz konstruktor domyslny oraz konstruktor z zadanymi argumentami. Poza tym ma metody - wyswietlania, liczenia sumy, mnozenia przez liczbe, liczenia iloczynu skalarnego. Kod wyglada tak
Kod :
class wektor
{
private:
float mx, my;
public:
wektor()
{
mx=10;
my=10;
}
wektor(float x, float y)
{
mx=x;
my=y;
}
float showx();
float showy();
float xliczba(float a);
float yliczba(float a);
float iloczynSkalarny(wektor wek1, wektor wek2);
float sumax(wektor wek1, wektor wek2);
float sumay(wektor wek1, wektor wek2);
};
float wektor::showx()
{
return mx;
}
float wektor::showy()
{
return my;
}
float wektor::xliczba(float a)
{
return a*mx;
}
float wektor::yliczba(float a)
{
return a*my;
}
float wektor::iloczynSkalarny(wektor wek1, wektor wek2)
{
return (wek1.mx * wek2.mx + wek1.my * wek2.my);
}
float wektor::sumax(wektor wek1, wektor wek2)
{
return (wek1.mx+wek2.mx);
}
float wektor::sumay(wektor wek1, wektor wek2)
{
return (wek1.my+wek2.my);
}
chyba ok? w kazdym razie to dziala. Jednak mam kilka pytan
1. Czy np. funkcja wyswietlania czy liczenia sumy musi byc tak rozdzielona? Przykladowo
mam tutaj liczenie sumy X
Kod :
return (wek1.mx+wek2.mx);
a w drugiej funkcji sumy Y
Kod :
return (wek1.my+wek2.my);
a w mainie
Kod :
cout << "Suma wektorow = [" << arg.sumax(arg, def) << ", " << arg.sumay(arg, def) << "]";
Da sie to zrobic za pomoca 1 funkcji? Jak tak to w jaki sposob?
No i pytanie 2, powiazane z powyzsza linia z main'a.
Wywolujac te funkcje pisze - arg.sumax(arg, def) - czyli - nazwa_obiektu.nazwa_funkcji(argument1, argument2) - gdzie argumentami sa obiekty arg i def.
Sęk w tym, że nie ma różnicy czy zapis wyglada tak, czy np. def.sumax(arg, def). To samo tyczy sie iloczynu skalarnego, kompilator domagal sie by przed kropką była nazwa obiektu, jednak nie ma różnicy który obiekt wezme, wynik jest we wszystkich przypadkach taki sam. Program działa poprawnie, ale może jest jakieś "ładniejsze" rozwiązanie tego? Nie bardzo rozumiem jaka jest rola tego obiektu ktory wpisze przed kropką..
edit#
aha no i jeszcze 1 pytanie... profesor mowil cos jeszcze o konstruktorze ktorego elementem jest tablica 1wymiarowa
doubleA[20];
wektor x(20, A);
niestety za cholere nie wiem o co z tym chodzi (ludzie z grupy maja ten sam problem... profesor ma to do siebie ze rzuci cos takiego i koniec tematu, a pozniej nie wiadomo o co chodzi ;d). Moze ktos mądrzejszy ode mnie pomoglby to rozszyfrowac?
Zakładki