Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

Kalkulator - sposob wykonania i czytelnosc kodu

Ostatnio zmodyfikowano 2012-08-16 21:27
Autor Wiadomość
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)
C/C++
#include <iostream>

float suma( float pierwsza_liczba, float druga_liczba ) //sumuje i zwraca wynik
{
    return pierwsza_liczba + druga_liczba;
}

float roznica( float pierwsza_liczba, float druga_liczba ) //odejmuje i zwraca wynik
{
    return pierwsza_liczba - druga_liczba;
}

float iloczyn( float pierwsza_liczba, float druga_liczba ) //mnozy i zwraca wynik
{
    return pierwsza_liczba * druga_liczba;
}

float iloraz( float pierwsza_liczba, float druga_liczba ) //dzieli i zwraca wynik
{
    return pierwsza_liczba / druga_liczba;
}

int menu() // wyswietla dostepne operacje i wczytuje wybor
{
    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: ";
    // std::cin >> 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 ) // wybor operacji na wczytanych liczbach lub wylaczenie programu
        {
        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)
P-62679
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
P-62681
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.
P-62684
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 ^^.
P-62685
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"
P-62687
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.
P-62689
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 :)
P-62690
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
P-62692
« 1 »
  Strona 1 z 1