Wszystkie ćwiczenia


Ćwiczenia 5

Wskaźniki na funkcje

Zadanie 0

Przeanalizuj wystąpienie każdej gwiazdki w zapisie.


#include <iostream>

int daj2()
{
    return 2;
}

int main()
{
    int  fun0; // zmienna typu int
    int *fun1; // wskaźnik na int

    int *fun2();  // nagłówek funkcji, która zwraca wskaźnik na int
    
    int (*fun3)(); // wskaźnik na funkcję, która zwraca int
    int *(*fun4)(); // wskaźnik na funkcję, która zwraca wskaźnik na int

    fun3 = &daj2;
    std::cout << fun3() << std::endl;

}
Zadanie 1: Rosyjska ruletka

Napisz funkcję traf(), która zwróci jedną (1/6 szansy) albo drugą (5/6 szansy) funkcję.

Zadaniem funkcji jest wyświetlić na ekranie odpowiednio "Przegrana" oraz "Wygrana".

W main wywołaj funkcję zwróconą przez traf().

Zadanie 2: Całkujący automat

Napisz metodę, która będzie wyliczać wartość całki oznaczonej dowolnej funkcji.

Stwórz 3 różne funkcje i przekaż je jako parametry do metody całkującej.

Uwaga: przyjąć dyskretną definicję całki.

Zadanie 3: Lambdy

Przekaż lambdę jako parametr funkcji do metody, która wywoła tę lambdę z podanym parametrem.


#include <iostream>

void x_100(bool (*fun)(int)) {
    std::cout << fun(100) << std::endl;
}

int main()
{
    x_100([](int a) { return a % 2 == 0; });
}
Zadanie 4: Przyjmowanie wielomianów

Napisz metodę, która pobierze z pliku parametry potrzebne do stworzenia tablicy zawierającej funkcje realizujące matematycznej funkcje wielomianowe.

Zwróć uwagę, jeśli chcesz użyć lambd, na zastosowanie znaku "=" wewnątrz nawiasów kwadratoych.