Funkce, procedury, parametry, hodnotové vs referenční typy, rekurze, lambda, closure
Formát: 30 min praktická úloha, 15 min obhajoba + teorie. Praktika je v C# (.NET) a podle informací z minulých let obsahuje 4 části: faktoriál rekurze vs iterace s měřením, hodnotové vs referenční typy, lambda každý-s-každým, a closure.
Podprogram je pojmenovaný blok kódu, který vykoná určitý úkol a lze ho opakovaně volat z různých míst programu. Synonyma: funkce, procedura, metoda (v OOP).
Skládá se z:
return) - jen u funkcíProč používat podprogramy:
| Funkce | Procedura | |
|---|---|---|
| Návratová hodnota | Ano (např. int, string) |
Ne (void) |
| Klíčové slovo | Datový typ návratu | void |
| Použití ve výrazu | Ano (x = Plus(2, 3)) |
Ne |
| Typický účel | Výpočet, transformace | Akce, výpis, modifikace |
| Příklady | Math.Sqrt, int.Parse |
Console.WriteLine |
// Funkce: vrací hodnotu
int Plus(int a, int b)
{
return a + b;
}
int vysledek = Plus(3, 5); // 8
Console.WriteLine(Plus(2, 67)); // 69, výsledek lze rovnou použít
// Procedura: provede akci, nevrací
void Vypis(string text)
{
Console.WriteLine(text);
// žádný return s hodnotou
}
Vypis("Ahoj");
Historicky: v Pascalu byly
functionaprocedureoddělené klíčové slovo. V C#/Java/Pythonu jsou procedury jen funkce svoidnávratem. Formálně všechny jsou "metody" (pokud jsou v třídě).