1. Funkce
  2. Standardní knihovny, vlastní knihovny
  3. Pole, třídění pole
  4. Soubory
  5. Programovací jazyky

Funkce

  • Funkce je blok kódu, který provádí určitou operaci a lze ho volat z různých míst v programu.

  • Funkce nám umožňují opakovat blok kódu opakovaně dále v kódu. Tímto docílíme lepší přehlednosti a modularitu kódu.

  • Pseudokód funkce:

    • Zde si popíšeme jednotlivé části funkce v tzv. pseudokódu.
      návratový_typ název_funkce(parametry) {
      	// Tělo funkce
      	
      	return návratová_hodnota; // (pokud není `void`)
      }
    • návratový_typ – Datový typ hodnoty, kterou funkce vrací (int, float, void…).
    • název_funkce – Identifikátor/Název funkce.
    • parametry – Vstupní argumenty, mohou být i prázdné.
    • return – Ukončí funkci a vrátí hodnotu (pokud není návratový_typ void).
    • void je datový typ, který označuje, že funkce nevrací žádnou hodnotu nebo že nepřijímá žádné parametry.
  • Příklad funkce v C:

    • Zde máme příklad použití funkce. Tento program sečte 2 čísla a vypíše je do konzole.

      #include <stdio.h>
       
      // Funkce sečte dvě čísla a vrátí výsledek
      int secti(int a, int b) {
      	return a + b;  // Vrátí součet a a b
      }
       
      int main() {
      	int vysledek = secti(5, 3);  // Volání funkce a přiřazení výsledku
      	printf("Součet: %d\n", vysledek);  // Výpis výsledku součtu
      	return 0; // Ukončení programu
      }
      Součet: 8
      
  • Příklad rekurzivní funkce v C:

    • Funkce také může volat sama sebe (rekurze), například pro výpočet faktoriálu.

      #include <stdio.h>
       
      // Funkce pro výpočet faktoriálu
      int faktorial(int n) {
      	if (n == 0) return 1;  // Základní případ: faktoriál 0 je 1
          return n * faktorial(n - 1);  // Volání: n * faktoriál(n-1)
      }
       
      int main() {
          printf("5! = %d\n", faktorial(5));  // Volání funkce faktorial pro 5
          return 0; // Ukončení programu
      }
      5! = 120
      

Standardní knihovny, vlastní knihovny

  • Knihovna v informatice je označení pro souhrn procedur a funkcí, často také konstant a datových typů (v objektovém programování též tříd, objektů a zdrojů).

  • Knihovny usnadňují programátorovi tvorbu aplikací tím, že umožňují využití hotového kódu, použití jednou vytvořeného kódu v jiných programech.

  • Standardní knihovny

    • Standardní knihovna je soubor předpřipravených funkcí, tříd a metod, které jsou součástí jazyka.
    • Umožňuje rychlé a efektivní programování bez nutnosti implementovat základní funkce (např. matematické operace, práce se soubory, řetězce, datové struktury, atd.).
    • Standardní knihovny jsou součástí každého kompilátoru a jsou implementovány přímo v rámci jazyka.

    • Příklad matematické knihovny v C:
      #include <stdio.h> 
      #include <math.h> // Implementace matematické knihovny
       
      int main() {
      	// Výpočet druhé odmocniny pomocí funkce sqrt
      	double result = sqrt(16.0); 
      	// Vypíše druhou odmocninu z 16
      	printf("Druhá odmocnina z 16 je: %f\n", result); 
      	
      	return 0; // Ukončení programu
      }
  • Vlastní knihovny

    • Vlastní knihovny jsou knihovny, které si programátor vytvoří podle specifických potřeb projektu. Tyto knihovny mohou obsahovat užitečné funkce, které opakovaně používáte ve více programech.

    • Příklad vytvoření vlastní knihovny v C:
        1. Vytvoření knihovny: (soubor vlastni_knihovna.c):
          #include <stdio.h>
          	
          void hello_world() {
          	printf("Ahoj světe!\n");
          }
        1. Vytvoření hlavičkového souboru pro knihovnu: (soubor vlastni_knihovna.h):
        • Hlavičkové soubory (.h) v C/C++ slouží k deklaraci funkcí, makrodefinic, konstant a typů, které se pak používají v různých částech programu. Hlavním účelem je oddělit deklarace od implementace.
          #ifndef MYLIB_H
          #define MYLIB_H
          void hello_world();
          #endif
        1. Použití knihovny v jiném programu: (soubor main.c):
          #include <stdio.h>
          #include "mylib.h"  // Načtení vlastní knihovny
          	
          int main() {
          	hello_world();  // Volání funkce z vlastní knihovny
          	return 0; // ukončení programu
          }

Pole, třídění pole

  • Pole jsou datové struktury, které umožňují ukládat více hodnot stejného typu pod jedním názvem.
  • Hodnoty jsou v paměti uloženy sekvenčně a přistupuje se k nim pomocí indexu.
  • Prvky v poli jsou indexovány od 0.
// Příklad pole v jazyce C.
 
#include <stdio.h>
int main() {
    int pole[5] = {1, 2, 3, 4, 5};  // Deklarace pole o 5 prvcích
 
    printf("%d\n", pole[2]);  // Vytiskne 3 (prvek na indexu 2)
 
    return 0;
}
 
3



  • Příklad Bubble Sort (bublinkové třídění) v C:

    • Bubble Sort opakovaně porovnává sousední prvky a vyměňuje je, pokud jsou ve špatném pořadí.

    • Existují rychlejší algoritmy jako QuickSort, MergeSort a další.

      #include <stdio.h>
       
      // Funkce pro provedení Bubble Sortu
      void bubbleSort(int pole[], int velikost) {
      	// Procházíme pole (n-1) krát
      	for (int i = 0; i < velikost - 1; i++) { 
      		// Posouváme největší prvek na konec
      		for (int j = 0; j < velikost - i - 1; j++) {
      			// Pokud je prvek větší než následující, vyměníme je
      			if (pole[j] > pole[j + 1]) { 
      				// Uložíme hodnotu prvku
      				int temp = pole[j];
      				// Vyměníme prvky
      				pole[j] = pole[j + 1];
      				// Nastavíme druhý prvek na uloženou hodnotu 
      				pole[j + 1] = temp; 
      			}
      		}
      	}
      }
       
      // Funkce pro výpis pole
      void printPole(int pole[], int velikost) {
      	// Pro každý prvek v poli
      	for (int i = 0; i < velikost; i++) {
      		// Vytiskneme prvek
      		printf("%d ", pole[i]); 
      	}
      	// Na konec řádku přidáme nový řádek
      	printf("\n"); 
      }
       
      int main() {
      	// Nesetříděné pole
      	int pole[] = {64, 34, 25, 12, 22, 11, 90}; 
      	// Zjistíme velikost pole (počet prvků)
      	int velikost = sizeof(pole) / sizeof(pole[0]);
      	
      	printf("Původní pole: ");
      	// Vytiskneme původní pole
      	printPole(pole, velikost); 
      	// Zavoláme funkci pro seřazení pole pomocí Bubble Sortu
      	bubbleSort(pole, velikost); 
      	
      	printf("Setříděné pole: ");
      	// Vytiskneme setříděné pole
      	printPole(pole, velikost);
      	
      	return 0; // Ukončení programu
      }
      Původní pole: 64 34 25 12 22 11 90 
      Setříděné pole: 11 12 22 25 34 64 90 

Soubory

  • V programování jsou soubory důležitým prostředkem pro ukládání a načítání dat. * Místo toho, abychom pracovali jen s daty v paměti (např. pole nebo proměnné), můžeme je uložit na disk a později znovu načíst.

  • To se hodí např. pro:

    • Ukládání konfigurací,
    • Práci s databázemi,
    • Logování výstupů,
    • Načítání datových sad atd.
  • V jazyce C se soubory pracujeme pomocí standardní knihovny <stdio.h>, která obsahuje funkce jako fopen, fclose, fprintf, fscanf, fread, fwrite apod.

  • Příklad zápisu .txt souboru v jazyce C:

    // Zápis do textového souboru v jazyce C.
     
    #include <stdio.h>
     
    int main() {
    	// Otevření souboru pro zápis
    	FILE *soubor = fopen("soubor.txt", "w");  
    	
    	if (soubor == NULL) {
    		printf("Chyba při otevírání souboru.\n");
    		return 1;
    	}
    	
    	// Zápis textu do souboru
    	fprintf(soubor, "Testovací zápis do txt souboru.\n");  
    	// Uzavření souboru
    	fclose(soubor);  
    	return 0;
    }
  • Příklad čtení ze souboru v jazyce C:

    // Čtení textového souboru po řádcích v jazyce C.
     
    #include <stdio.h>
     
    int main() {
    	// Otevření souboru pro čtení
    	FILE *soubor = fopen("soubor.txt", "r");  
    	char radek[100];
    	
    	if (soubor == NULL) {
    		printf("Soubor nelze otevřít.\n");
    		return 1;
    	}
    	// Smyčka se opakuje, dokud fgets načítá řádky (dokud není konec souboru)
    	while (fgets(radek, sizeof(radek), soubor) != NULL) {
    		// Výpis načteného řádku
    		printf("Načtený řádek: %s", radek);
    	}
    	
    	// Uzavření souboru
    	fclose(soubor);  
    	return 0;
    }

Programovací jazyky

  • Programovací jazyky jsou nástroje, které umožňují lidem komunikovat s počítači a psát instrukce, které počítač vykoná.
  • Existuje spousty různých programovacích jazyků a každý z nich má jiný účel, styl a optimalizaci pro konkrétní typy aplikací.



  • Rozdělení programovacích jazyků:**

    1. Nízké úrovně (Low-level)
      • Jsou blíže strojovému kódu a umožňují přímou manipulaci s hardwarem.
      • Příklady: Assembler, C
    2. Vysoké úrovně (High-level)
      • Jsou více abstraktní a snadněji čitelné pro člověka.
      • Příklady: Python, Java, C++
    3. Deklarativní jazyky
      • Zaměřují se na popis toho, co se má provést, místo toho, jak se to má provést.
      • Příklady: SQL, Prolog, HTML
    4. Procedurální jazyky
      • Kód je organizován do funkcí nebo procedur.
      • Příklady: C, Pascal
    5. Objektově orientované jazyky
      • Pracují s objekty, které mají vlastnosti a metody.
      • Příklady: C++, Java, Python
    6. Funkcionální jazyky
      • Založené na matematických funkcích a neměnných hodnotách.
      • Příklady: Haskell, Lisp
    7. Skriptovací jazyky
      • Používají se často k automatizaci úloh a rychlému vývoji.
      • Příklady: Python, JavaScript, Bash
  • Příklady použití:

    • JavaScript se nejčastěji používá pro tvorbu webových stránek a interaktivních prvků na frontendu, ale s Node.js se dá využít i na backendu. center
    • C++ je oblíbené pro vývoj výkonných aplikací, jako jsou hry, operační systémy nebo software pro práci s hardwarem. center
    • Python se využívá v oblasti datové analýzy, umělé inteligence a webového vývoje (díky frameworkům jako Django nebo Flask). center
    • Java je vhodná pro podnikové aplikace a mobilní vývoj na Androidu. center
    • PHP se stále používá pro tvorbu dynamických webů a systémů jako WordPress. center