• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

[CR] C++ (#9): Własne funkcje. Podejście proceduralne

Object Storage Arubacloud
+2 głosów
4,195 wizyt
pytanie zadane 8 kwietnia 2016 w Nasze poradniki przez Mirosław Zelent Nałogowiec (34,750 p.)

CR = Code Review. O co chodzi? Zajrzyj tutaj
Pełna lista wszystkich Code Review? Zajrzyj tutaj

https://www.youtube.com/watch?v=HHplT1A4_A4

Kod z odcinka:

#include <iostream>

using namespace std;

float metry;

float ile_cali(float m)
{
   return m*39.37;
}

float ile_jardow(float x);

void ile_mil(float m)
{
   cout<<"na mile: "<<m*0.0006213;
}

int main()
{
    cout << "Podaj ile metrow: ";
    cin>>metry;

    cout<<"na cale: "<<ile_cali(metry)<<endl;
    cout<<"na jardy: "<<ile_jardow(metry)<<endl;
    ile_mil(metry);

    return 0;
}

float ile_jardow(float x)
{
   return x*1.0936;
}

Paczka z odcinka: POBIERZ​

1 odpowiedź

–1 głos
odpowiedź 20 kwietnia 2019 przez stellatus Obywatel (1,390 p.)

Musiałem obejrzeć 2 razy, żeby zrozumieć. Wydaje mi się, że przykład jest zbyt zawiły i gdyby wyglądał tak:

#include <iostream>

using namespace std;

float metry;

//FUNKCJE
float ile_cali(float x)
{
    return x*39.37;
}

float ile_jardow(float x)
{
    return x*1.0936;
}

float ile_mil(float x)
{
    return x*0.0006213;
}

//PROCEDURY
void ile_cali_proc(float x)
{
    cout<<"na cale: "<<x*39.37<<endl;
}

void ile_jardow_proc(float x)
{
    cout<<"na jardy: "<<x*1.0936<<endl;
}

void ile_mil_proc(float x)
{
    cout<<"na mile: "<<x*0.0006213<<endl;
}


int main()
{
    cout<<"KONWERSJA PRZY UZYCIU FUNKCJI"<<endl;
    cout << "Ile metrow: ";
    cin>>metry;
    cout<<"na cale: "<<ile_cali(metry)<<endl;
    cout<<"na jardy: "<<ile_jardow(metry)<<endl;
    cout<<"na mile: "<<ile_mil(metry)<<endl;
    cout<<endl;

    cout<<"KONWERSJA PRZY UZYCIU PROCEDUR"<<endl;
    ile_cali_proc(metry);
    ile_jardow_proc(metry);
    ile_mil_proc(metry);
    return 0;
}

to przerobienie tego odcinka zajęłoby mi połowę mniej czasu.

Po pierwsze proponowałbym zrobić cały konwerter w dwóch wersjach: na funkcjach i na procedurach. Po drugie wszystkie zmienne lokalne oznaczyłbym jako literę "x". Ma to sens?

1
komentarz 20 kwietnia 2019 przez Hiskiel Pasjonat (22,830 p.)
edycja 21 kwietnia 2019 przez Hiskiel
Nie. Dlaczego?
1. Zmienna globalna "metry". Po pierwsze, globalna, po drugie po polsku.
2. Wszystko powinno być nazwane po angielsku.
3. Zmienne lokalne jako 'x'? Nie. Dlaczego? Bo zmienne muszą coś reprezentować.
4. Te procedury są bezsensu. Z tego co wiem nazywa się to "głośną funkcją". Funkcje raczej nie powinny robić nic więcej, niż to co mają robić. Czyli, jeśli masz funkcję, która konwertuje jednostkę na jednostkę, to powinna ona tylko to zrobić i zwrócić wynik (ew. przyjąć przez referencję/wskaźnik i zmodyfikować, ale to podejście jest rzadko używane).
komentarz 21 kwietnia 2019 przez stellatus Obywatel (1,390 p.)
OK, dzięki za komentarz.

Podobne pytania

+1 głos
0 odpowiedzi 2,981 wizyt
+4 głosów
1 odpowiedź 2,271 wizyt
+1 głos
0 odpowiedzi 5,370 wizyt

92,568 zapytań

141,420 odpowiedzi

319,622 komentarzy

61,954 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...