Cvičení 1 - Opakování

Cvičení neproběhlo ze zdravotních důvodů.

Níže jsou příklady, které byste měli být schopni vyřešit. Podívejte se na ně a příště si o nich krátce popovídáme.

Téma 1: Opakování O-notace

Rozhodněte, zda následující vztahy platí nebo ne. Dokažte.

  1. 20 ⋅ n + 6 ∈ O(n)
  2. 20 ⋅ n + 6 ∈ Ω(n)
  3. 20 ⋅ n + 6 ∈ Θ(n)
  4. Σi ∈ O(n2)
  5. n! ∈ O(n)

Téma 2: Opakování C

Následující úkol pokrývá základní znalosti, ktere byste už měli mít z kurzu Jazyka C a Algortimů 1. Zároveň je to první úkol z první sady zápočtových úkolů.

  1. Vytvořte v C strukturu struct dir pro záznam adresáře dlužníků obsahující:
  1. Vytvořte adresář dlužníků jako pole struktur z předchozího bodu (data si vymyslete; alespoň pět záznamů).
  2. Napište následující funkce:
    • tisknoucí dlužnou částku pro zadaný adresář, jméno a příjmení dlužníka: void print_debt(struct dir adresar[], string jmeno, string prijemni)
    • vracející dlužníka s největším dluhem (celou strukturu) v zadaném adresáři: struct dir max(struct dir adresar[])
    • navyšující dluh zadaného dlužníka o zadanou částku v zadaném adresáři: void increase_debt(struct dir adresar[], string jmeno, string prijmeni, int castka)
    • snižující dluh zadaného dlužníka o zadanou částku v zadaném adresáři: void decrease_debt(struct dir adresar[], string jmeno, string prijmeni, int castka)
    • vracející n-tého nejmladšího dlužníka pro zadané n a zadaný adresář: struct dir nth_youngest(struct dir adresar[], int n)
    • třídící zadaný adresář podle věku dlužníka: void sort(struct dir adresar[])