Raziel Temat założony przez niniejszego użytkownika |
Kalkulator - sposob wykonania i czytelnosc kodu » 2012-08-16 20:49:48 Witam, to moj pierwszy post. Mam nadzieje, ze kod zrodlowy bedzie pokolorowany. Jesli nie to prosil bym o informacje jak to zrobic?
Natomiast to o co chcialem gl zapytac to o sposob wykonania. Tzn w kursie wychwalano funkcje, ale czy w tym przypadku nie przesadzilem? Czy np funkcje "suma", "iloczyn", "roznica", "iloraz" nie powinny byc w petli w "int main()"?
Oraz jak oceniacie przejrzystosc kodu? Ujdzie?
Mam wrazenie ze jakos niezbyt czytelny, chyba zle wstwiam spacje i entery w kod.
Bede wdzieczny za wszelkie rady. Pozdro i z gory dzieki :)
Oto kod:
(mam nadzieje ze bedzie kolorowy)
#include <iostream>
float suma( float pierwsza_liczba, float druga_liczba ) { return pierwsza_liczba + druga_liczba; }
float roznica( float pierwsza_liczba, float druga_liczba ) { return pierwsza_liczba - druga_liczba; }
float iloczyn( float pierwsza_liczba, float druga_liczba ) { return pierwsza_liczba * druga_liczba; }
float iloraz( float pierwsza_liczba, float druga_liczba ) { return pierwsza_liczba / druga_liczba; }
int menu() { std::cout << "\nProsze wybrac operacje:\n"; std::cout << "1 - dodawanie\n"; std::cout << "2 - odejmowanie\n"; std::cout << "3 - mnozenie\n"; std::cout << "4 - dzielenie\n"; std::cout << "5 - wylacz program\n"; std::cout << "wybor: "; }
int main() { int wybor; do { float pierwsza_liczba; float druga_liczba; std::cout << "Prosze podac pierwsza liczbe: "; std::cin >> pierwsza_liczba; std::cout << "Prosze podac druga liczbe: "; std::cin >> druga_liczba; menu(); std::cin >> wybor; switch( wybor ) { case 1: { std::cout << "wynik: " << suma( pierwsza_liczba, druga_liczba ) << std::endl << std::endl; } break; case 2: { std::cout << "wynik: " << roznica( pierwsza_liczba, druga_liczba ) << std::endl << std::endl; } break; case 3: { std::cout << "wynik: " << iloczyn( pierwsza_liczba, druga_liczba ) << std::endl << std::endl; } break; case 4: { std::cout << "wynik: " << iloraz( pierwsza_liczba, druga_liczba ) << std::endl << std::endl; } break; case 5: { return 0; } break; default: { std::cout << "\nNiewlasciwy wybor!\n"; } } } while( wybor != 5 ); return 0; }
// edit: bylo czarne, za drugim razem sie udalo pokolorowac :D (no i temat wstawilem XD) |
|
starter |
» 2012-08-16 20:53:39 jest okej tylko nie wiem czemu zakładasz temat na forum bez problemu po prostu uruchom program i tyle |
|
DejaVu |
» 2012-08-16 21:03:20 Warto stosować funkcje po to, aby je zrozumieć, oswajać się z nimi oraz je opanować. Całe programowanie sprowadza się do pisania i wywoływania funkcji. Faktem jest, że w dużych projektach nie będziesz widział sensu pisania osobnych funkcji na dodawanie/odejmowanie, jednak zanim zaczniesz pisać duże projekty to upłynie dużo czasu i będziesz sam w stanie ocenić gdzie warto wstawić funkcję, a gdzie to nie ma najmniejszego sensu. |
|
Raziel Temat założony przez niniejszego użytkownika |
» 2012-08-16 21:03:54 Zalozylem ten temat poniewaz ten kalkulatorek mozna wykonac na wiele roznych sposobow. Sam go napsialem w 3 czy 4 wersjach. Chodzi mi o sposob wykonania.
Przez okreslenie "sposob wykonania" mam namysli np czy nie za duzo funkcji, moze by lepiej w petle. Albo zamisast "switch" to dac "if .. else", a moze to wszystko jedno? Byc moze tego nie widac ale sporo czasu poswiecam na nauke programowania i chcial bym robic to dobrze.
A ze dziala to wiem, bo sprawdzalem ^^. |
|
kubawal |
» 2012-08-16 21:09:11 mam namysli np czy nie za duzo funkcji, moze by lepiej w petle. |
Mam wrazenie ze jakos niezbyt czytelny, chyba zle wstwiam spacje i entery w kod. |
To musisz sam ocenić. Jedni wolą tak, a drudzy siak. Możesz ściągnąć sobie IDE z profilerem kodu, wtedy to program będzie z ciebie wstawiał "spacje i entery" |
|
Raziel Temat założony przez niniejszego użytkownika |
» 2012-08-16 21:13:06 DejaVu czyli chodzi o to, ze funkcje maja 'zapierniczac', a w "int main()" ma byc jakby kolejnosc w jakiej maja te funkcje pracowac? Funkcja = chlop przy maszynie, "int main()" = dyrektor w biurze. Bo tak to sobie do tej pory wyobrazalem.
Czy moze to cos zupelnie innego, ale do tego trza doswiadczenia?
Dziekuje za odpowiedzi :)
//edit: Kubawal, sparwdze te IDE moze mi przypadnie do gustu. Chociaz po wordzie i autopoprawkach mam pewne obawy :P. |
|
DejaVu |
» 2012-08-16 21:17:39 Doświadczenie mówi, że funkcja dłuższa niż ekran kodu to funkcja nieczytelna. Jeżeli będziesz klepał cały kod w jednym miejscu (w jednej funkcji) to w bardzo krótkim czasie dojdziesz do sytuacji w której bugi będą się mnożyły w Twoim kodzie, a po krótkiej przerwie analiza kodu będzie zajmowała więcej czasu niż napisanie kodu od nowa. Kodowania trzeba nauczyć się doświadczalnie, a nie teoretycznie - po prostu pisz kolejne projekty na miarę swoich możliwości, a sam zauważysz co jest dobre, co jest złe :) |
|
kubawal |
» 2012-08-16 21:27:59 W dużych projektach całą czarną robotę odwalają klasy, a praca main() kończy się na utworzeniu obiektu/ów klas
/edit: co do IDE to polecam Visual Studio |
|
« 1 » |