• Nie Znaleziono Wyników

2. Napisz i przetestuj funkcję, która zeruje wszystkie elementy wektora typu std::vector<double> .

N/A
N/A
Protected

Academic year: 2021

Share "2. Napisz i przetestuj funkcję, która zeruje wszystkie elementy wektora typu std::vector<double> ."

Copied!
1
0
0

Pełen tekst

(1)

Karta pracy 3

1. Napisz i przetestuj funkcję obliczającą wartość najmniejszego elementu wek- tora typu std::vector<int> . W przypadku, gdy wektor jest pusty, funkcja ta powinna zwracać wartość INT_MIN zdefiniowaną w standardowym pliku nagłówkowym climits .

2. Napisz i przetestuj funkcję, która zeruje wszystkie elementy wektora typu std::vector<double> .

3. Zdefiniuj nowe znaczenie dla operatora * tak, aby dla dowolnych obiektów v oraz w klasy std::vector<double> wyrażenie v * w zwracało iloczyn ska- larny obu wektorów (czyli sumę ∑ v.size() −1

i=0 v[i] ∗ w[i]). Możesz założyć, że rozmiary obu wektorów są zawsze takie same. Przetestuj ten operator.

4. Jaki będzie efekt wywołania poniższej funkcji silnia z argumentem -1 ?

3

unsigned silnia(unsigned n) {

if (n == 0) return 1;

7

else

return n ∗ silnia(n−1);

}

5. Ciąg Fibonacciego zdefiniowany jest wzorem f 0 = 0, f 1 = 1, f n = f n −1 + f n −2 , n ­ 3.

(a) Napisz (możliwie prostą) rekurencyjną funkcję int fibo1(int n) , któ- ra zwraca n-tą liczbę Fibonacciego.

(b) Napisz funkcję double fibo2(int n) obliczającą n-tą liczbę Fibonac- ciego ze wzoru

f n = 1

5

[( 2

5 − 1 ) n

( −2

5 + 1 ) n ]

Zwróć uwagę na to, że typem wartości fibo2 ma być double .

(c) Przetestuj funkcje fibo1 i fibo2 z dwóch poprzednich punktów dla n=1...47 i odpowiedz na następujące pytania:

Czy obie wersje daja takie same wyniki dla n < 47?

Sprawdź, że fibo1 staje się bardzo nieefektywna dla dużych n (rzę- du 30 i więcej).

Dlaczego rekurencyjna wersja funkcji zwraca wartość ujemną dla

argumentu n = 47 ?

Cytaty

Powiązane dokumenty

Sum uśmiechnął się z przekąsem, Liczy, liczy coś pod wąsem, Wąs sumiasty jak u suma, A sum duma, duma, duma?. „To dopiero mam z tym biedę –

vector &lt;int&gt; a; // wektor pusty elementów typu int vector &lt;double&gt; b(2); // wektor o 2 elementach typu double vector &lt;string&gt; c(5); // wektor o 5

Wyznacza wartość liczby  metodą Monte Carlo z zadaną dokładnością.. Rysuje „spiralę prostokątną” zwijającą się do punktu

Napisz i przetestuj szablon funkcji max(std::vector&lt;T&gt; const&amp; v) oblicza- jącej wartość największego elementu (niepustego) wektora obiektów

[r]

[r]

Podczas takiego określania monotoniczności funkcji jeśli ludzik w pewnym przedziale wspina się ku górze to mówimy, że funkcja jest rosnąca.. przypadku, gdy schodzi na dół

Dwa punkty materialne poruszają się na płaszczyźnie po torach będących liniami prostymi przecinającymi się pod kątem α.. Obliczyć, w którym momencie odległość