Vzorové řešení zápočtového testu Přednáška č. 11
Zadání (1) V hlavním programu jsou v poli double voltage [100] uložena změřená napětí. Velikost napětí je kladná a pohybuje se od 0 V do 5 V. Za poslední změřenou hodnotou je uloženo záporné číslo. Sestavte funkci, která vypočte aritmetický průměr změřených napětí a použije jej jako návratovou adresu. Napište i část kódu pro hlavní program, kde se bude sestavená funkce a výsledek průměru se vypíše do konzolového okna.
Zadání (2) V řetězci char number[10] jsou uloženy číslice a desetinná tečka, za posledním znakem je null. Sestavte část hlavního programu, kde se do řetězce cela uloží číslice před tečkou, do řetězce des číslice za desetinnou tečkou. Řetězce cela a des pak převeďte na celá čísla i_cela a i_des voláním funkce y = atoi(x) z celých čísel složte číslo racionální x. Do konzolového okna vypište celé číslo před tečkou, celé číslo za tečkou a racionální výsledek (parametry tiskového řetězce jsou čísla).
Zadání (3) Deklarujte strukturu TBook, která popisuje knihu ve vaší knihovně. Struktura obsahuje řetězce ukončené znakem null se jménem autora author a s názvem knihy title, a dále celočíselné položky year (rok vydání) a price (cena knihy). V hlavním programu vytvořte dynamickou proměnnou kniha typu TBook a naplňte ji daty Hrabal, Postřižiny, 1986, 200. Údaje vypište do konzolového okna.
Zadání (4) Deklarujte vlastní typ tBooks jako pole pro uložení 100 ukazatelů na strukturu knihy (viz předchozí příklad). Nechť je toto pole naplněno z části odkazy na dynamicky vytvořené záznamy knih, pokud odkaz na dané pozici v poli ukazatelů není, pozice obsahuje adresu 0. Napište funkci, která vypíše do konzolového okna všechny údaje o nejstarší knize a o knize nejdražší ze vstupního pole ukazatelů. První (index 0) ukazatel vždy odkazuje na naplněný záznam.
Zadání (5) Deklarujte svůj vlastní datový typ TMatrix – pole o třech řádcích a třech sloupcích celých čísel. V hlavním programu deklarujte proměnné A a B typu TMatrix a naplňte je náhodnými hodnotami v rozsahu -10 až 10. Použijte funkci rand(), která vrací celočíselnou hodnotu v rozsahu 0 až 32767. Pro inicializaci semínka náhodného generátoru použijte následující konstrukci srand(time(NULL)); Sestavte funkci, která provede součet dvou matic typu TMatrix a výsledek vypíše do konzolového okna. Použijte ji v hlavním programu pro součet matic A a B.
Zadání (6) V poli double data[100] je uloženo 100 náhodných čísel neznámého rozsahu. Napište část kódu pro seřazení těchto čísel podle velikosti od největšího po nejmenší a vypište je do konzolového okna, každé na nový řádek.