• 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

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ść

[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ół