Zadanie, które dotyczy zakresu materiału, jaki będzie poruszany na lab. 3. Rozwiązanie nie jest wymagane. Zadanie stanowi wyłącznie pomoc w przygotowaniu się do zajęć.
Zadanie:
Korzystając z szablonu kontenera Konten utwórz w funkcji main
obiekt reprezentujący kontener do przechowywania zmiennych typu double
i umieść w nim za pomocą metody push
dowolną liczbę (nie większą od 100) wartości losowych rzeczywistych z przedziału 〈0, 10).
Napisz szablony trzech funkcji, które jako argument wejściowy przyjmują parę iteratorów identyfikujących przedział danych z kontenera, i które dla liczb w tym przedziale znajdują lub obliczają i zwracają:
- wartość minimalną/maksymalną,
- medianę,
- wartość średnią.
Przyjmij, że typ danych przechowywanych w kontenerze zawsze pozwala na wszystkie standardowe operacje arytmetyczne i logiczne (posiada odpowiednie operatory). Uwaga: funkcje nie otrzymują w argumentach wywołania referencji ani wskaźnika do obiektu kontenera, a jedynie iteratory wskazujące na poprawny przedział danych w nim zawartych.
Zademonstruj poprawne działanie tych szablonów funkcji wywołując je w funkcji main
dla przykładowych danych zapisanych w kontenerze. Na początku na potrzeby testów poprawności spreparuj dane testowe w kontenerze tak, aby łatwo było w pamięci policzyć wynik i potwierdzić poprawność działania szablonów funkcji.
Hint: aby wygenerować wartość losową z przedziału 〈0, 1) można użyć funkcji:
//generates a psuedo-random double between 0.0 and 0.999...
double randdouble()
{
return rand()/(double(RAND_MAX)+1);
}