Cvičení 1 - Opakování
Téma 1: Opakování O-notace
Rozhodněte, zda následující vztahy platí nebo ne. Dokažte.
- 20 ⋅ n + 6 ∈ O(n)
- 20 ⋅ n + 6 ∈ Ω(n)
- 20 ⋅ n + 6 ∈ Θ(n)
- Σi = 1n (i) ∈ O(n2)
- 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ů.
- 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.
- Vytvořte adresář dlužníků jako pole struktur z předchozího bodu (data si vymyslete; alespoň pět záznamů).
- 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)
- pro přístup k údajům dlužníka:
AKTUALIZACE:
- Chcete-li typ
string
místo pole znaků, jak je použit výše, tak jej musíte definovat pomocí typedef. Pokud to dělat nechcete, klidně místo stringu použijte pole znaků. - Přidán parametr
n
– délka pole – do všech funkcí, kde to usnadní práci s polem. - Opraven překlep v typu u
nth_youngest
a opraven název naith_youngest
, aby se nepletly dva významyn
.