====== 6 - Strukturované datové typy ====== ===== Procvičovaná témata ===== * Struktury, uniony, pole * Ukazatele ===== Úkoly na cvičení ===== - Napište program, který bude pracovat s komplexními čísly. * Komplexní čísla budou realizována pomocí struktur. * Implementujte funkce pro operace s komplexními čísly - Napište program, který provede inicializaci 1D pole. * Velikost pole zadá uživatel ze standardního vstupu. (Kompilujte program s podporou standardu C99.) * Pole naplňte celými čísly ze standardního vstupu. (Nebo použijte {{ :courses:b0b99prpa:labs:random.txt |náhodná data}} :-) ) * Doplňte program tak, aby prošel pole pomocí cyklu a vypsal jednotlivé prvky pole. Zkuste napsat cyklus tak, aby program vypsal pole ve více sloupcích. - Napište program, který v poli celých čísel nalezne ''N-té'' největší číslo. - Napište program, vypočítá průměr a střední kvadratickou odchylku v poli celých čísel. Kde je to vhodné, použijte funkci, které má pole jako argument. Jak C zjistí velikost pole ve funkci? ===== Další úkoly na procvičení (domácí práce) ===== - Napište program, který zrealizuje součet zlomků. Zlomek reprezentuje struktura (čitatel, jmenovatel), pro nalezení největšího společného dělitele použijte např. [[https://cs.wikipedia.org/wiki/Eukleid%C5%AFv_algoritmus|Eukleidův algoritmus]]. - Napište program, který vypíše prvočísla v zadaném intervalu pomocí algoritmu známého jako [[https://cs.wikipedia.org/wiki/Eratosthenovo_s%C3%ADto|Eratosthenovo síto]]. - Napište program, který vypíše jednotlivé byty čísla typu int * Pro realizaci využijte datový typ union - Napište program, který vypíše mantisu, exponent a znaménko čísla typu float * Výsledek můžete ověřit např. na [[https://en.wikipedia.org/wiki/Single-precision_floating-point_format|wikipedii]] * Tip na vylepšení příkladu: vypočítejte zpětně původní číslo :-) * Pozn. řešení pomocí unionu a bitového pole ve struktuře předpokládá, že pracujeme s 32-bitovou reprezentací reálného čísla odpovídající specifikaci podle IEEE 754.