[ miljan9602 @ 27.01.2013. 21:26 ] @
Pozdrav, radim knjigu C++ 21 dan od Jesse Liberty i stigao sam do 5 dana (FUNKCIJE)

Procitao sam u knjizi sta je pisalo u vezi funkcija, deklarisanja i definisanja funkcije i prototipovi funkcija
Od toga sto sam procitao slabo sta sam razumeo..
Ima i knjizi jedan mali programcic koji objasnja portotip funkcije

Code:
// Listing 5.1 - Demonstrira Upotrebu prototipova funkcija

typedef unsigned short USHORT;
#include <iostream>
USHORT FindArea(USHORT length, USHORT width); // prototip funkcije

int main()
{
    USHORT lengthOfYard;
    USHORT widthOfYard;
    USHORT areaOfYard;
    
    cout << "Koliko je siroko vase dvoriste? " << endl;
    cin >> widthOfYard;
    cout << "Koliko je dugacko vase dvoriste? " << endl;
    cin >> lengthOfYard;
    
    areaOfYard = FindArea(lengthofYard,widthofYard);
    
    cout << "Vase dvoriste je: " << endl;
    cout << areaOfYard;
    cout << "Kvadratnih stopa " << endl;
       system("PAUSE");
       return 0;
}

USHORT FindArea(USHORT 1, USHORT w)
{
       return 1 * w;
}


Eto ga kode, inace kad pokusam da ga kompajlujem imam dosta gresaka koje isto nerazumem
Moze li sada neko od vas da mi pojasni ceo ovaj programcic jer mi bas nista nije jasno, bio bi vam jako zahvalan !
[ Nedeljko @ 27.01.2013. 22:20 ] @
Iza "#include <iostream>" stavi u sledećem redu "using namespace std;" (bez navodnika), a objašnjenje je valda dato u knjizi.
[ miljan9602 @ 27.01.2013. 22:36 ] @
Slucajno sam zaboravio da stavim using namespace std;
I ima neko objasnjenje u knjizi ali ga ne razumem, zato bih vas zamolio da mi objasnite :)
[ Nedeljko @ 27.01.2013. 22:42 ] @
Pa, napiši šta ne razumeš.
[ miljan9602 @ 27.01.2013. 22:57 ] @
USHORT FindArea(USHORT length, USHORT width);
Znam da je USHORT -unsigned short, ali zasto su stavili FindArea i jos ovo u zagradi ? Zar netreba samo USHORT FindArea, ja ovo tumacin kao da su napravili jos dve unsigned short promenljive length, width, to mi nije jasno.

areaOfYard = FindArea(lengthofYard,widthofYard);

Ovo me isto jako zbunjuje znam da ovo treba da dodeli vrednost areaOfYard al ovde FindArea(lengthofYard,widthofYard); nisu stavili nista da se izracuna, kao npr. FindArea*(lengthofYard + widthofYard);

USHORT FindArea(USHORT 1, USHORT w)
{
return 1 * w;
}

Ovaj deo mi isto nije jasan i sta predstavlja i zasto se taj deo ide posled system("PAUSE"); i return 0;
jer svaki program koji sam pisao do sada iz ove knjige se zavrsavao sa system("PAUSE"); i return 0;

To je ukratko to sto mi nije jasno :))
[ Nedeljko @ 28.01.2013. 09:18 ] @
FindArea je funkcija koja prihvata dva broja i vraća neki rezultat. U ovom slučaju, to je njihov proizvod.

Prvo je zadat prototip funkcije koji kaže da postoji funkcija koja se zove FindArea, koja nprihvata dva nenegativna cela broja i vraća nenegativan ceo broj.

Izvršavanje programa je zapravo izvršavanje naredbi funkcije main. U liniji

areaOfYard = FindArea(lengthofYard,widthofYard);

se poziva funkcija FindArea sa dva operanda - lengthOfYard i widthOfYard i rezultat koji vraća ta funkcija se dodeljuje promenljivoj areaOfYard.

Negde mora da bude definisano šta funkcija FindArea radi, tj. po nkom pravilu od argumenata proizvodi rezultat. To je urađeno na kraju programa, gde je FindArea funkcija definisana kao nfunkcija koja vraća proizvod argumenata.

I nisi dobro prepisao program. Umesto jedinice treba slovo "l".