přejít na obsah přejít na navigaci

Linux E X P R E S, Programovanie v jazyku C++: Tvorba funkcii (1)

Programovanie v jazyku C++: Tvorba funkcii (1)

C++

Článok vás uvedie do oblastí tvorby vlastných funkcii. Pochopíte význam a syntax funkcie a dozviete sa o rozdielu medzi parametrom a argumentom.


Definícia funkcie

Funkcie definujeme ako blok skladajúci sa s postupností príkazov. Funkcia sa môže inicializovať s nejakými vstupmi a môže vracať navratovú hodnotu. To závisi, ako ju naprogramujete. Syntax funkcie je nasledovná:

type name(parameter1,parameter2,parameter3, …) 
{
    statements
}

type rozumieme typ návratovej hodnoty, ktorú má funkcia vrátiť. name je meno funkcie a parameter je nejaký vstup, ktorý môže funkcia využiť. statements rozumieme postupností príkazov, ktoré sa vykonajú v danom tele funkcie.

Význam funkcii

Vytvorme si program, kde fiktívna osoba sa opýta na meno a priezvisko a odpoveďou budú tri odpovede.

#include <iostream>
using namespace std;

int main()
{
    string retazec = "Ake je tvoje meno a priezvisko uzivatel?\n";
    cout << retazec;
    cout << "Ja sa volam Jozko Hrasko."<<"\n";
    cout << "Ja sa volam Marienka Mlada."<<"\n";
    cout << "Ja sa volam Ruzena Krasomilka."<<"\n";
    return 0;
}

Výstupom programu je otázka a 3 odpovede:

Ake je tvoje meno a priezvisko uzivatel?
Ja sa volam Jozko Hrasko.
Ja sa volam Marienka Mlada.
Ja sa volam Ruzena Krasomilka.

A teraz si predstavte, že nemáme len 3 odpovede, ale tisíc! Budeme takto riadok po riadku pracne programovať? Ako sa hovorí, sústavná manuálna práca zabíja čas a tvorivosť. Aby sme sa vyhli toľkému programovaniu, využijeme funkciu.

#include <iostream>
using namespace std;

void vypis(string name)
{
    cout << "Ja sa volam "<<name<<".\n";
}

int main()
{
    string retazec = "Ake je tvoje meno a priezvisko uzivatel?\n";
    cout << retazec;
    vypis("Jozko Hrasko");
    vypis("Marienka Mlada");
    vypis("Ruzena Krasomilka");
    return 0;
}

Môžete namietať, že sme mohli využiť cyklus for, napr. takto:

#include <iostream>
using namespace std;

int main()
{
    string retazec = "Ake je tvoje meno a priezvisko uzivatel?\n";
    string poleStringov[3] = {"Jozko Hrasko","Marienka Mlada","Ruzena Krasomilka"};
    cout << retazec;
    for(int i = 0; i < 3;i++)
    {
        cout << "Ja sa volam "<<poleStringov[i]<<".\n";
    }
    return 0;
}

Síce sme ušetrili pár riadkov, no predstavte si, že v hlavnej funkcii main je stovky takýchto cyklov. Dostávame sa ku veľkej zložitostí a malej priehľadností, čo bola aj najväčšia slabina programovacích jazykov pred érou procedurálneho programovania a podpory C syntaxe. Preto funkcie poskytujú lepšiu priehľadnosť a čitateľnosť kódu.

Ešte sa pozrime na zaujímavosť, ktorá v seriáli doteraz nebola.

string poleStringov[3] = {"Jozko Hrasko","Marienka Mlada","Ruzena Krasomilka"};

Vytvorili sme si pole reťazcov o veľkostí 3! Čiže môžeme obsadiť prvky 0, 1 a 2.

Rozdiel medzi argumentom a parametrom

Jedna z najčastejších otázok začiatočníkov je, aký je rozdiel medzi argumentom a parametrom? Nachvíľu si predstavme oceán. Najvyšší bod oceánu je jeho hladina. Najnižší bod oceánu je jeho dno. Máju niečo spoločné hladina a dno? Áno, ten náš oceán. No napriek tomu používame slová hladina a dno nato, aby sme definovali rozdielne výškové body. Rovnakú myšlienkovú argumentáciu môžeme využiť pri argumentoch a parametrov. Parameter píšeme ako vstup pri definovaní našej funkcie. Argument píšeme pri volaní funkcii. A čo spája parameter a argument? No predsa tá funkcia! Toto rozdelenie sa zaviedlo, aby sa spoľahlivo rozlišovali jednotlivé úkony napr. v dokumentácii alebo v tímovej komunikácii.

Vytvorme si program, ktorý vypíše interval od 1 po num, kde num zapíšeme aj ako argument a parameter.

#include <iostream>
using namespace std;

void vypisInterval(int num)
{
    for(int i = 1; i <= num; i++)
    {
        cout<<i<<" ";
    }
    cout <<"\n";
}

int main()
{
    string retazec = "Zadaj cislo, po ktorom sa ma skoncit vypis!";
    cout <<retazec<<"\n";
    int num;
    cin >> num;
    vypisInterval(num);
    return 0;
}

Argument num sme definovali takto:

vypisInterval(num);

A parameter num:

void vypisInterval(int num)

Nahoru

Příspěvky

Programovanie v jazyku C++: Tvorba funkcii (1)
Filip 23. 04. 2018, 22:00:03
Odpovědět  Odkaz 
Pre koho je urceny tento clanok?
Petr Valach Re: Programovanie v jazyku C++: Tvorba funkcii (1)
Petr Valach 23. 04. 2018, 22:13:23
Odpovědět  Odkaz 
Pro čtenáře LinuxEXPRES.cz, ideálně i další, kteří na něj budou upozorňovat další potenciální čtenáře.
Re: Re: Programovanie v jazyku C++: Tvorba funkcii (1)
Filip 23. 04. 2018, 22:20:21
Odpovědět  Odkaz 
Pride mi to ako dost trivialna vec na jeden clanok.
Petr Valach Re: Re: Re: Programovanie v jazyku C++: Tvorba funkcii (1)
Petr Valach 23. 04. 2018, 22:43:20
Odpovědět  Odkaz 
No vidíte, a pro mě, co má k programování daleko, je to lepší. Daleko lepší. Jsem radši za tohle, než když na mě spadne tuna kamení. A Edův lidový přístup je fajn. Sice leckterým koženým lidem může drásat nervy, ale je fajn. Přes 4 roky píše články pro ExoSpace.cz a hodně se zlepšil.
Re: Re: Re: Re: Programovanie v jazyku C++: Tvorba funkcii (1)
Filip 24. 04. 2018, 19:34:42
Odpovědět  Odkaz 
Asi mate pravdu. Pokial clovek zacina, tak to vnima trochu inak.

Odpovědět

Nejsou podporovány žádné značky, komentáře jsou jen čistě textové. Více o diskuzích a pravidlech najdete v nápovědě.
Diskuzi můžete sledovat pomocí RSS kanálu rss



 
 

Top články z OpenOffice.cz