PB161 Jazyk C++ - 10. cvičení

Práce s trojrozměrnými vektory - šablony

Jestliže nevidíte správně česká písmena, zvolte potřebné kódování češtiny manuálně.

Zadání je považováno za oficiální od neděle 28. 11. v 14:07. Případné změny po tomto okamžiku budou vyznačeny červeně. Dřívější verze zadání považujte za předběžné.

28.11.2004 večer: Doplněna, resp. opravena identifikace adresáře.
30.11. Opraven název požadované šablony, řada dalších upřesnění vyznačených červeně.
2.12. Funkce abs a m_product mají být spřátelené.

Úvod:

Ve fyzice se často pracuje s trojrozměrnými vektory. Nejčastějším matematickým popisem takového vektoru je trojice čísel, představujících průmět fyzikálního (prostorového) vektoru do jednotlivých souřadnicových os x, y, z. Těmto 3 číslům říkáme složky vektoru.

Nad vektory jsou běžně definovány následující operace:

Zadání:

  1. Definujte šablonu třídy vect3 vhodnou pro reprezentaci trojrozměrných vektorů se složkami různých reálných typů (float, double, long double). Pro ni implementujte šablony operátorů a dalších funkcí pro následující operace s trojrozměrnými vektory:

    a dále funkci m_product pro výpočet smíšeného součinu 3 vektorů a přetíženou funkci abs pro výpočet absolutní hodnoty (délky) vektoru.

  2. Přidejte hlavní program, v němž deklarujete tři trojrozměrné vektory r, s, t (případně podle potřeby další vektory a jiné proměnné). Program přečte hodnoty složek prvního vektoru r a vytiskne jeho délku; vytiskne také opačný vektor a vektor vynásobený číslem -1/2 a jejich délky. Potom přečte druhý vektor s a vytiskne součet a rozdíl vektorů r+s, r-s a součiny r.s, r×s, s.r a s×r. Nakonec přečte 3. vektor t a vytiskne smíšený součin všech 3 vektorů.

Požadavky:

Poznámky:


Předchozí Předchozí cvičení Další Další příklad do cvičení není
(jen příklad ke zkoušce)
Hlavní stránka Hlavní stránka