C++ Funkce s příklady programů

V čem je funkce C++?

A funkce in C++ odkazuje na skupinu příkazů, které převezmou vstup, zpracují jej a vrátí výstup. Myšlenkou za funkcí je kombinovat běžné úkoly, které se provádějí opakovaně. Pokud máte různé vstupy, nenapíšete znovu stejný kód. Jednoduše zavoláte funkci s jinou sadou dat nazývanou parametry.

Každý C++ program má alespoň jednu funkci, funkci main(). Svůj kód můžete rozdělit do různých funkcí. Toto rozdělení by mělo být takové, aby každá funkce vykonávala určitý úkol.

Existuje mnoho vestavěných funkcí C++ standardní knihovna. Tyto funkce můžete volat ve svém programu.

Proč používat funkce?

S používáním funkcí je spojeno mnoho výhod. Tyto zahrnují:

  • Každá funkce dává související kód dohromady. To usnadňuje programátorům porozumět kódu.
  • Funkce usnadňují programování tím, že eliminují opakování kódu.
  • Funkce usnadňují opětovné použití kódu. Stejnou funkci můžete zavolat k provedení úkolu v různých částech programu nebo dokonce mimo program.

Vestavěné funkce

In C++ funkce knihovny jsou vestavěny C++ funkcí. Chcete-li tyto funkce použít, jednoduše je přímo vyvolejte/zavolejte. Funkce nemusíte psát sami.

Příklad 1:

#include <iostream>
#include <cmath>
using namespace std;
int main() {
	double num, squareRoot;
	cout << "Enter number: ";
	cin >> num;
	squareRoot = sqrt(num);
	cout << "The square root of " << num << " is: " << squareRoot;
	return 0;
}

Výstup:

Vestavěné funkce

Zde je snímek obrazovky kódu:

Vestavěné funkce

Vysvětlení kódu:

  1. Chcete-li používat jeho funkce, zahrňte do našeho programu hlavičkový soubor iostream.
  2. Chcete-li používat její funkce, zahrňte knihovnu cmath. Chceme použít funkci sqrt() v něm definovanou.
  3. Zahrňte do našeho kódu jmenný prostor std, abyste mohli používat jeho třídy bez jeho volání.
  4. Zavolejte funkci main(). Programová logika by měla být přidána do těla této funkce.
  5. Deklarujte dvě dvojité proměnné, num a squareRoot.
  6. Vytiskněte nějaký text na konzoli. Text vyzve uživatele k zadání čísla.
  7. Čtení uživatelského vstupu z klávesnice. Vstupem se stane hodnota proměnné num.
  8. Zavolejte knihovní funkci sqrt(), která vypočítá druhou odmocninu čísla. Předali jsme funkci parametr num, což znamená, že vypočítá druhou odmocninu z num. Tato funkce je definována v knihovně cmath.
  9. Vytiskněte na konzole číslo zadané uživatelem, jeho druhou odmocninu a nějaký další text.
  10. Program musí po úspěšném dokončení vrátit hodnotu.
  11. Konec těla funkce main().

Uživatelsky definované funkce

C++ umožňuje programátorům definovat jejich vlastní funkce. Účelem funkce je seskupit související kód. Kód pak dostane jedinečný identifikátor, název funkce.

Funkci lze volat/vyvolat z jakékoli jiné části programu. Poté spustí kód definovaný v jeho těle.

Příklad 2:

#include <iostream>
using namespace std;

void sayHello() {
	cout << "Hello!";
}

int main() {

	sayHello();

	return 0;
}

Výstup:

Uživatelsky definované funkce

Zde je snímek obrazovky kódu:

Uživatelsky definované funkce

Vysvětlení kódu:

  1. Chcete-li používat jeho funkce, zahrňte do našeho programu hlavičkový soubor iostream.
  2. Zahrňte do našeho kódu jmenný prostor std, abyste mohli používat jeho třídy bez jeho volání.
  3. Vytvořte uživatelem definovanou funkci s názvem sayHello().
  4. Při volání funkce sayHello() vytiskněte na konzolu nějaký text.
  5. Konec těla funkce sayHello().
  6. Zavolejte funkci main(). Programová logika by měla být přidána do těla této funkce.
  7. Zavolejte/vyvolejte funkci s názvem sayHello().
  8. Program musí po úspěšném dokončení vrátit hodnotu.
  9. Konec těla funkce main().

Deklarace funkce/Prototyp

Pokud definujete uživatelem definovanou funkci po funkci main(), C++ kompilátor vrátí chybu. Důvodem je, že kompilátor nezná podrobnosti o uživatelsky definované funkci. Podrobnosti zahrnují jeho název, typy argumentů a jejich návratové typy.

In C++, deklarace/prototyp funkce deklaruje funkci bez těla. To poskytuje kompilátoru podrobnosti o uživatelsky definované funkci.

Deklarace funkce/Prototyp

V deklaraci/prototypu zahrnujeme návratový typ, název funkce a typy argumentů. Názvy argumentů se nepřidávají. Přidání názvů argumentů však negeneruje žádnou chybu.

Definice funkce

Účelem deklarace funkce je sdělit C++ kompilátor o názvu funkce, návratovém typu a parametrech. Definice funkce říká C++ kompilátor o těle funkce.

Definice funkce/Prototyp

Syntax

return_datatype function_name( parameters) {
   function body 
}

Z výše uvedeného vyplývá, že definice funkce má záhlaví a tělo funkce. Zde je vysvětlení parametrů:

  • return_datatype- Některé funkce vracejí hodnotu. Tento parametr označuje datový typ vrácené hodnoty. Některé funkce nevrací hodnotu. V takovém případě se hodnota tohoto parametru stane neplatnou.
  • název_funkce- Toto je název funkce. Název funkce a parametry tvoří podpis funkce.
  • Parametry – Jedná se o typ, pořadí a počet parametrů funkce. Některé funkce nemají parametry.
  • tělo funkce – to jsou příkazy definující, co bude funkce dělat.

Volání funkce

Aby funkce provedla zadaný úkol a vrátila výstup, musí být volána. Když zavoláte funkci, provede příkazy přidané do jejího těla.

Volání funkce

Program se nazývá svým jménem. Pokud funkce přebírá parametry, jejich hodnoty by měly být předány během volání. Pokud služba nemá žádné parametry, nepředávejte během volání žádnou hodnotu.

Předávání argumentů

In C++, argument/parametr jsou data předaná funkci během jejího volání. Hodnoty musí být inicializovány na příslušné proměnné.

Při volání funkce se musí počet argumentů shodovat. Znamená to, že hodnoty, které předáte, se musí rovnat počtu parametrů. Opět platí, že hodnoty musí odpovídat parametrům i z hlediska typu. Pokud je prvním parametrem celé číslo, předaná hodnota musí být celé číslo.

Parametrům funkcí lze přiřadit výchozí hodnoty. Pokud během volání funkce nezadáte hodnotu parametru, použije se výchozí hodnota.

Příklad 3: Jak napsat a volat funkci

#include <iostream>
using namespace std;
int addFunc(int, int);
int main() {
	int x, y, sum;
	cout << "Enter two numbers: ";
	cin >> x >> y;
	sum = addFunc(x, y);
	cout <<"The sum of "<<x<< " and " <<y<<" is: "<<sum;
	return 0;
}
int addFunc(int num1, int num2) {
	int addFunc;
	addFunc = num1 + num2;
	return addFunc;
}

Výstup:

Předávání argumentů

Zde je snímek obrazovky kódu:

Předávání argumentů

Vysvětlení kódu:

  1. Chcete-li používat jeho funkce, zahrňte do našeho programu hlavičkový soubor iostream.
  2. Zahrňte do našeho kódu jmenný prostor std, abyste mohli používat jeho třídy bez jeho volání.
  3. Deklarujte funkci s názvem addFunc(), která přebírá dva celočíselné parametry. Tím se vytvoří prototyp funkce.
  4. Zavolejte funkci main(). Programová logika by měla být přidána do těla této funkce.
  5. Deklarujte tři celočíselné proměnné x, y a součet.
  6. Vytiskněte nějaký text na konzoli. Text vyzve uživatele k zadání dvou čísel.
  7. Přečtěte si uživatelský vstup z klávesnice. Uživatel by měl zadat dvě čísla pro proměnné x a y oddělená mezerou.
  8. Zavolejte funkci addFunc() a předejte jí parametry x a y. Funkce bude pracovat s těmito parametry a přiřadí výstup proměnné sum.
  9. Vytiskněte hodnoty proměnných x, y a součtu na konzole vedle ostatního textu.
  10. Funkce musí po úspěšném dokončení vrátit hodnotu.
  11. Konec těla funkce main().
  12. Definice funkce. Definujeme funkci addFunc(). Uvedeme, co bude funkce dělat v jejím těle, v { }.
  13. Deklarování celočíselné proměnné s názvem addFunc.
  14. Sečtení hodnot parametrů num1 a num2 a přiřazení výsledku do proměnné addFunc.
  15. Funkce addFunc() by měla vrátit hodnotu proměnné addFunc.
  16. Konec těla funkce, tedy definice funkce.

Shrnutí

  • Funkce v C++ vám pomůže seskupit související kód do jednoho.
  • Funkce usnadňují opětovné použití kódu.
  • Místo psaní podobného kódu znovu a znovu jej jednoduše seskupíte do funkce. Funkci pak můžete volat odkudkoli v kódu.
  • Funkce mohou být knihovní nebo uživatelsky definované.
  • Knihovní funkce jsou různé vestavěné funkce C++ funkce.
  • Chcete-li používat funkce knihovny, jednoduše zahrnete její knihovnu definic a zavoláte funkci. Funkci nedefinujete.
  • Uživatelsky definované funkce jsou funkce, které definujete jako a C++ programátor.
  • Deklarace funkce informuje kompilátor o názvu funkce, návratovém typu a typech parametrů.
  • Definice funkce přidává tělo funkce.
  • Pokud funkce přebírá parametry, jejich hodnoty by měly být předány během volání funkce.