Cvičení 1 - Opakování

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 = 1n (i) ∈ O(n2)
  5. n! ∈ O(n)

Téma 2: Opakování C (Úkol 1)

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 debtor pro záznam adresáře dlužníků obsahující:
    • jméno dlužníka,
    • příjmení dlužníka,
    • věk dlužníka,
    • dlužnou částku.
  2. Vytvořte adresář dlužníků jako pole struktur z předchozího bodu (data si vymyslete; alespoň pět záznamů).
  3. Napište následující funkce:
    • pro přístup k údajům dlužníka:
      • string debtor_name(struct debtor d),
      • string debtor_surname(struct debtor d),
      • int debtor_age(struct debtor d),
      • int debtor_debt(struct debtor d);
    • vypisující dlužnou částku na standardní výstup pro zadaný adresář, jméno a příjmení dlužníka: void print_debt(struct debtor debts[], int n, string name, string surname)
    • vracející dlužníka s největším dluhem (celou strukturu) v zadaném adresáři: struct debtor max_debt(struct debtor debts[], int n)
    • navyšující dluh zadaného dlužníka o zadanou částku v zadaném adresáři: void increase_debt(struct debtor debts[], int n, string name, string surname, int amount)
    • snižující dluh zadaného dlužníka o zadanou částku v zadaném adresáři: void decrease_debt(struct debtor debts[], int n, string name, string surname, int amount)
    • vracející i-tého nejmladšího dlužníka pro zadané n a zadaný adresář: struct debtor ith_youngest(struct debtor debts[], int i, int n)
    • třídící zadaný adresář podle věku dlužníka: void sort_debts(struct debtor debts[], int n)

AKTUALIZACE: