Complex Numbers
komplexné čísla, štruktúry
Ciele
- Tvorba vlastných štruktúr
- Osvojiť si základy práce so štruktúrami
Postup
Complex Number Representation
Každé komplexné číslo obsahuje reálnu a imaginárnu zložku. V tomto kroku vytvoríme štruktúru, ktorá bude komplexné čísla reprezentovať.
Úloha
Vytvorte štruktúru complex
, ktorá bude reprezentovať
komplexné čísla.
Štruktúra bude mať týchto dvoch členov:
real
- reálna časť komplexného číslaimag
- imaginárna časť komplexného čísla
Reálna aj imaginárna zložka komplexného čísla môže byť reprezentovaná ako číslo s pohyblivou desatinnou čiarkou.
Úloha
Vytvorte funkciu cplx_real()
, ktorá vráti reálnu časť
komplexného čísla.
Funkcia bude mať jeden vstupný parameter, ktorý bude typu
struct complex
.
Úloha
Vytvorte funkciu cplx_imag()
, ktorá vráti imaginárnu
časť komplexného čísla.
Funkcia bude mať jeden vstupný parameter, ktorý bude typu
struct complex
.
Úloha
Vytvorte funkciu cplx_conj()
, ktorá vráti združené
komplexné čislo (z angl. complex conjugate) vytvoreného z
komplexného čísla odovzdaného ako parameter funkcii.
Funkcia bude mať jeden vstupný parameter, ktorý bude typu
struct complex
.
Funkcia vráti hodnotu typu struct complex
, ktorá bude
obsahovať združené komplexné číslo.
Poznámka
Združené komplexné číslo komplexného čísla je také číslo, ktoré vznikne zmenou znamienka imaginárnej časti.
Združené komplexné číslo z čísla 3 – 2i bude komplexné číslo 3 + 2i
Úloha
Vytvorte funkciu print_cplx()
, ktorá vypíše na obrazovku
reťazcovú podobu komplexného čísla.
Funkcia bude mať jeden vstupný parameter, ktorý bude typu
struct complex
. Výsledný reťazec bude v tvare:
\[ REAL + IMAG \]
kde:
REAL
reprezentuje reálnu časť komplexného čísla s presnosťou na 4 desatinné miesta, aIMAG
reprezentuje imaginárnu časť komplexného čísla s presnosťou na 4 desatinné miesta.
Basic Operations with Complex Numbers
V tomto kroku sa pokúsime vytvoriť niekoľko základných operácií pre prácu s reálnymi číslami, akými sú napr. súčet, rozdiel a súčin.
Úloha
Vytvorte funkciu cplx_add()
, ktorá vráti súčet dvoch
komplexných čísiel.
Poznámka
Príklad súčtu dvoch komplexných čísiel:
(3–2i) + (2–6i) = 3–2i + 2 − 6i = 5 − 8i
Deklarácia funkcie bude vyzerať nasledovne:
struct complex cplx_add(const struct complex cplx1, const struct complex cplx2)
Parametre cplx1
a cplx2
sú vstupné
parametre, ktoré reprezentujú sčítance súčtu.
Funkcia vráti výsledok súčtu ako hodnotu typu
struct complex
.
Úloha
Vytvorte funkciu cplx_sub()
, ktorá vráti rozdiel dvoch
komplexných čísiel.
Poznámka
Príklad súčtu dvoch komplexných čísiel:
(3–2i)–(2–6i) = 3–2i–2 + 6i = 1 + 4i
Deklarácia funkcie bude vyzerať nasledovne:
struct complex cplx_sub(const struct complex cplx1, const struct complex cplx2)
Parametre cplx1
a cplx2
sú vstupné
parametre, ktoré reprezentujú operandy operácie rozdiel.
Funkcia vráti výsledok rozdielu ako hodnotu typu
struct complex
.
Úloha
Vytvorte funkciu cplx_mul()
, ktorá vynásobí dve
komplexné čísla.
Deklarácia funkcie bude vyzerať nasledovne:
struct complex cplx_mul(const struct complex cplx1, const struct complex cplx2)
Parametre cplx1
a cplx2
sú vstupné
parametre, ktoré reprezentujú operandy súčinu.
Funkcia vráti výsledok súčinu ako hodnotu typu
struct complex
.
Poznámka
Pri implementácii funkcie nezabudnite uvažovať všetky tri prípady, ktoré môžu nastať:
- násobenie komplexného čísla reálnym číslom, napr. 2(3+2i) = 6 + 4i
- násobenie komplexného čísla imaginárnym číslom, napr. 2i(3+2i) = − 4 + 6i
- násobenie komplexného čísla komplexným číslom, napr. (3–2i)(9+4i) = 35–6i