Nie jesteś zalogowany.
Jeśli nie posiadasz konta, zarejestruj je już teraz! Pozwoli Ci ono w pełni korzystać z naszego serwisu. Spamerom dziękujemy!
Prosimy o pomoc dla małej Julki — przekaż 1% podatku na Fundacji Dzieciom zdazyć z Pomocą.
Więcej informacji na dug.net.pl/pomagamy/.
Witam
mam do zrobienia kalkulator liczb zespolonych w c++:
Zaprogramuj w C++ kalkulator Liczb Zespolonych. Program ma obejmować następujące klasy:
- klasa LiczbaZespolona jest klasą reprezentującą liczbę zespoloną w postaci algebraicznej, klasa posiada zatem dwa argumenty: LRzeczywista i LUrojona oraz funkcje: Ustaw, Wyzeruj i Pokaz,
- klasa Kalkulator jest kompozycją dwóch atrybutów klasy LiczbaZespolona
i posiada funkcje: Dodaj, Odejmij, Pomnoz, Podziel i Pokaz. [/quote]
przedmiot te rozpocząłem tydzień temu jako totalny nowicjusz. i do niedzieli mam zrobić właśnie ten kalkulator. skrypt jest całkowicie nie zrozumiały wszelkie podręczniki wprowadzają klasy, konstruktory itp. stopniowo po zapoznaniu ze składnią. a tu na dzień dobry to i ma to działać.
czy mógłby mnie ktoś pokierować jak to zrobić od czego zacząć.
posiłkowałem gręboszem i thinking in c++ żeby cokolwiek zrozumieć.
więc rozumię że celem klasy jest mozliwośc utworzenie obiektu jak np int a który ma jakiś właściwiści.
i robi się to
class jakaśklasa { };
skoroliczy zespolone w postaci algebraicznej LRzeczywista i LUrojona to muszę określić dwie zmienne float
LRzeczywista, LUrojona; teraz trzeba określić te funkcje Ustaw (czyli ja rozumię że trzeba za pomocą cin dwie liczby zespolone), Wyzeruj i Pokaz , ale jak zrobić juz dalej to niemam pojęcia.jeszcze coś o konstruktorach mają być w klasie. Czytam i czytam i coraz bardziej jestem zamotany.
bez klas to sobie proadzię ale z klasami ani rusz. proszę o pomoc
Offline
nie bylem guru ani z c++ ani z zespolonych ale
klasa liczbazespolona moze wygladac tak:
class LiczbaZespolona { private: float LR; float LU; public: //<-*** void Ustaw(float tLR, float tLU){ LR = tLR; LU = tLU; } void Wyzeruj(){ LR = 0; LU = 0; } void Pokaz(){ cout << "czesc rzeczywista: " << LR << endl; cout << "czesc zespolona: " << LU << endl; } }
tam gdzie sa *** mozna wcisnac konstruktor, polega to na tym, ze jezeli tworzysz obiekt klasy LiczbaZespolona to masz niezainicjowane pola, jesli utworzysz konstruktor np
LiczbaZespolona (float tLR = 0.0, float tLU = 0.0){ LR = tLR; LU = tLU; }
to teraz tworzac obiekt klasy LiczbaZespolona mozesz posluzyc sie konstrukcja
LiczbaZespolona(3.2, 3.3)
obiekt bedize zainicjowany zmiennymi z nawiasu, mozesz to sprawdzic wywolujac metode Pokaz(), "= 0.0" jest po to, ze jesli wywolasz kosntruktor bez parametrow, to zmienne przyjma wartosc 0.0, czyli najprosciej mowiac, dzieki temu nadal mozesz tworzyc "puste" obiekty Reszte musisz sprawdzic sam, pisalem z glowy wiec gdzies moze czegos brakowac.
Jesli chodzi o druga klase, to musisz poczytac o przeciazaniu operatorow, typ danych ktorymi bedziesz sie teraz poslugiwal to wlasnie stworzona LiczbaZespolona
edit
pare tematow nizej masz przyklad przeciazania operatorow [url]http://www.dug.net.pl/forum/viewtopic.php?t=5917[/url]
Offline
wielkie dzięki popróbuję :-)
Offline
heheh w poprzednim semestrze miałem też kalkulator liczb zespolonych w obiektowym ... mam gdzieś na dysku w jak byś był zainteresowany daj znać na prv to podeśle
Offline
Time (s) | Query |
---|---|
0.00010 | SET CHARSET latin2 |
0.00004 | SET NAMES latin2 |
0.00132 | SELECT u.*, g.*, o.logged FROM punbb_users AS u INNER JOIN punbb_groups AS g ON u.group_id=g.g_id LEFT JOIN punbb_online AS o ON o.ident='3.144.41.200' WHERE u.id=1 |
0.00110 | REPLACE INTO punbb_online (user_id, ident, logged) VALUES(1, '3.144.41.200', 1732283895) |
0.00062 | SELECT * FROM punbb_online WHERE logged<1732283595 |
0.00079 | SELECT t.subject, t.closed, t.num_replies, t.sticky, f.id AS forum_id, f.forum_name, f.moderators, fp.post_replies, 0 FROM punbb_topics AS t INNER JOIN punbb_forums AS f ON f.id=t.forum_id LEFT JOIN punbb_forum_perms AS fp ON (fp.forum_id=f.id AND fp.group_id=3) WHERE (fp.read_forum IS NULL OR fp.read_forum=1) AND t.id=6076 AND t.moved_to IS NULL |
0.00009 | SELECT search_for, replace_with FROM punbb_censoring |
0.00186 | SELECT u.email, u.title, u.url, u.location, u.use_avatar, u.signature, u.email_setting, u.num_posts, u.registered, u.admin_note, p.id, p.poster AS username, p.poster_id, p.poster_ip, p.poster_email, p.message, p.hide_smilies, p.posted, p.edited, p.edited_by, g.g_id, g.g_user_title, o.user_id AS is_online FROM punbb_posts AS p INNER JOIN punbb_users AS u ON u.id=p.poster_id INNER JOIN punbb_groups AS g ON g.g_id=u.group_id LEFT JOIN punbb_online AS o ON (o.user_id=u.id AND o.user_id!=1 AND o.idle=0) WHERE p.topic_id=6076 ORDER BY p.id LIMIT 0,25 |
0.00112 | UPDATE punbb_topics SET num_views=num_views+1 WHERE id=6076 |
Total query time: 0.00704 s |