Reference
Příklad 1:
Napište funkci, která vymění hodnoty dvou proměnných stejného
typu (,které jsou jí předány jako parametry pomocí reference), tak
aby se výměna projevila i mimo tuto funkci (po jejím ukončení)..
Typ proměnných zvolte jako double. V následujícím volte správné typy/varianty proměnných, se kterými se pracuje (v definicích, v hlavičkách funkcí, při volání funkcí, při práci s proměnnými) – hodnota, ukazatel, reference.
Ve funkci main nadefinujte dvě proměnné typu double Val1 a Val2. Val1 inicializujte na hodnotu 1, Val2 inicializujte na hodnotu 10.
Vytiskněte proměnné Val1 a Val2 na konzolu pomocí streamů (cout<< …). Tento tisk pro Val1 a Val2 následně provádějte po každé výměně prvků.
Ve funkci main vyměňte pomocí pomocné proměnné Pom hodnoty v proměnných Val1 a Val2.
Ve funkci main nadefinujte proměnné typu reference na double Ref1 a Ref2. Ref1 inicializujte jako referenci na proměnnou Val1. Proměnnou Ref2 inicializujte jako referenci na proměnnou Val2.
Ve funkci main vyměňte pomocí pomocné proměnných Pom, Ref1 a Ref2 hodnoty v proměnných Val1 a Val2 (V tomto kroku nepoužívejte přímo proměnné Val, ale pouze reference na ně. Po skončení tohoto kroku by měly mít Val1 a Val2 původní hodnoty z inicializace).
Napište funkci Swap, která bude mít dva parametry typu reference na double aRef1 a aRef2. Tato funkce vymění hodnoty proměnných odkazovaných pomocí reference. Z funkce main zavolejte funkci Swap kde jako parametry použijete proměnné Val1 a Val2. V main ověřte, že došlo k výměně hodnot.
Srovnejte realizaci pomocí ukazatelů (viz minulý kurz) a referencí. Uvědomte si rozdíly v zápisech a v činnosti (předávání a manipulace s parametry).
Příklad 2:
Napište
funkci tak aby vrátila prvek struktury (na základě daného kriteria –
například minimum), tak aby se s takto vráceným prvkem dalo
plnohodnotně pracovat (tj aby se tento vrácený prvek dal měnit a
změna se promítla i uvnitř původní struktury – viz příklad
níže).
K řešení použijte mechanizmus referencí (návratovou hodnotu funkce). Volte správné varianty předávaných a vracených proměnných – hodnotou, ukazatelem, referencí.
Vytvořte strukturu, která má dva prvky typu double. Ve funkci main vytvořte proměnnou této struktury a inicializujte ji.
Napište funkci FMin, které je předán prvek typu struktura, a která vrátí jednu z proměnných uvnitř struktury (například) tu s menší hodnotou a to tak aby fungoval následující kód:
struct DATA s; // struktura se
dvěma proměnnými double – inicializujte na hodnotu -2 a
4
double a;
a = FMin(s); // hodnota menšího z prvků ve
struktuře je zapsána do proměnné a
FMin(s) = 10; // menší z prvků
proměnné s je nahrazen uvnitř struktury s (je do něj zapsána)
hodnotou 10. Toto je možné, je-li prvek vrácen pomocí reference
Poslední změna 2018-09-30