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.


reklama

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.

Přidat názor

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

Eduard Boldižár

Eduard Boldižár

Som redaktorom stránky Exospace.cz. Mám 24 rokov. Čas trávim v IT škole. Medzi moje záľuby patrí astronómia, sci-fi literatúra a programovanie.


  • Distribuce: ubuntu
  • Grafické prostředí: unity



Public Relations

Obnovte ztracená data pomocí nástroje EaseUS Data Recovery Wizard Free

EaseUS Data Recovery Wizard FreeBezplatná aplikace Data Recovery Wizard Free od společnosti EaseUS je nejpoužívanějším softwarem, pokud jde o získání ztracených dat, ať už se jedná o data z pevného disku PC, paměťovou SD kartu, CF kartu, Apple desktop nebo MacBook. Tento software je vhodný pro nasazení ve firmě i pro individuální použití. Data Recovery se každým rokem upgraduje a nová verze pro rok 2018 byla právě vydána.

Pokračování ...


Redakční blog

Redakce

Redakce, 21. prosinec

Pište pro LinuxEXPRES

Baví vás Linux? Pište o něm, není to nic těžkého. LinuxEXPRES hledá nové autory.


Pavel Fric

Pavel Fric, 23. říjen

Nové motivy pro přehrávač Sayonara

Pomozte rozšířit možnost měnit vzhled programu za běhu


Pavel Fric

Pavel Fric, 28. únor

Lollypop


Všechny blogy »