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

C++ funkcje, procedury

Object Storage Arubacloud
0 głosów
401 wizyt
pytanie zadane 19 czerwca 2018 w C i C++ przez Białozór Użytkownik (750 p.)

Tak wygląda program poznany na kursie

#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;
}

 

tak wygląda kod który przepisałam, nie rozumiem dlaczego brak float ile_jardow(float x);  uniemożliwia działanie programu skoro funkcja od cali nie wymaga: float ile_cali(float x)

#include <iostream>

using namespace std;
float metry;

float ile_cali(float m)
{
     return m*39.37;
}
float ile_jardow(float x);
{
    return x*1.0936;
}
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;
}

 

komentarz 19 czerwca 2018 przez Huberti Gaduła (4,500 p.)

Jeżeli piszesz definicje dla funkcji to jej ogólny zapis wygląda tak:

typWartosciZwracanej nazwaFunkcji(listaArgumentow)
{
     //kod wykonywany przez funkcje
}

Natomiast ogólny zapis prototypu dla funkcji wygląda tak:

typWartosciZwracanej nazwaFunkcji(listaArgumentow);
komentarz 19 czerwca 2018 przez Białozór Użytkownik (750 p.)
Niestety, nie rozumiem dlaczego "wyrzucenie" zapisu prototypu funkcji uniemożliwia działanie programu.
2
komentarz 19 czerwca 2018 przez RafalS VIP (122,820 p.)
Bo kod jest analizowany z góry do dołu i gdy kompilator natknie się na wywołanie funkcji o której nic nie wie to zaprotestuje. Oczywiście nie musi znać ciała funkcji musi tylko wiedzieć, że ta nazwa oznacza taką funkcję, ktorej ciało (definicja) będzie gdzieś indziej.

Masz więc dwie opcje: albo definiujesz (razem z ciałem) funkcję całkowicie przed jej użyciem, albo deklarujesz tylko, żeby kompilator wiedział co ta nazwa oznacza a definicję (ciało) dostarczysz później np pod mainem.
komentarz 19 czerwca 2018 przez Białozór Użytkownik (750 p.)
Teraz rozumiem, dziękuję

1 odpowiedź

+2 głosów
odpowiedź 19 czerwca 2018 przez niezalogowany

Zostawiłeś średnik:

float ile_jardow(float x);

Podobne pytania

0 głosów
3 odpowiedzi 167 wizyt
pytanie zadane 20 czerwca 2018 w C i C++ przez Białozór Użytkownik (750 p.)
+1 głos
1 odpowiedź 610 wizyt
pytanie zadane 6 stycznia 2016 w Nasze projekty przez Remo Początkujący (280 p.)
0 głosów
3 odpowiedzi 4,692 wizyt
pytanie zadane 9 czerwca 2015 w SQL, bazy danych przez niezalogowany

92,575 zapytań

141,425 odpowiedzi

319,650 komentarzy

61,961 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!

...