4  Funkcje

Zadania należy rozwiązać bez tablic, napisów, wskaźników, wbudowanych funkcji matematycznych. W zadaniach można stworzyć kilka funkcji pomocniczych. Do każdej funkcji z polecenia należy wywołać przypadek testowy (wywołać co najmniej jeden raz na poprawnym argumencie). W poleceniach używana jest konwencja camelCase. Zwróć uwagę, czy funkcja ma coś zwrócić czy wyświetlić.

  1. Napisz funkcję sumTwoNumbers, której argumentami są dwie liczby całkowite. Funkcja ma wyświetlać sumę liczb przekazany jako argument funkcji. Stwórz przypadek testowy.

  2. Napisz funkcję calculateAbsoluteValue, której argumentem jest liczba zmiennoprzecinkowa. Funkcja ma zwracać wartość bezwzględną liczby przekazanej jako argument funkcji. Stwórz przypadek testowy.

  3. Napisz funkcję calculateFactorial, której argumentem jest liczba całkowita nieujemna. Funkcja ma zwracać wartość silni liczby przekazanej jako argument funkcji, obliczoną metodą nierekurencyjną. Stwórz przypadek testowy.

  4. Napisz funkcję sumNumbers, której argumentem jest dodatnia liczba całkowita \(n\). Funkcja ma zwracać sumę liczb od 1 do \(n\) włącznie. Stwórz przypadek testowy.

  5. Napisz funkcję sumSquares, której argumentem jest dodatnia liczba całkowita \(n\). Funkcja ma zwracać sumę kwadratów liczb od 1 do \(n\) włącznie. Stwórz przypadek testowy.

  6. Napisz funkcję calculatePowerOfTwo, której argumentem jest liczba całkowita \(n\). Funkcja ma zwracać wartość \(2^n\). Stwórz przypadek testowy.

  7. Napisz funkcję calculateSquareRootFloor, której argumentem jest nieujemna liczba całkowita \(n\). Funkcja ma zwracać część całkowitą pierwiastka kwadratowego z \(n\). Stwórz przypadek testowy.

  8. Napisz funkcję countFunctionCalls, która nie przyjmuje żadnych argumentów. Funkcja ma zliczać i wypisywać na standardowym wyjściu liczbę swoich wywołań od momentu uruchomienia programu. Stwórz przypadek testowy. Wykorzystaj zmienne statyczne.

  9. Napisz funkcję calculateFactorialRecursively, której argumentem jest liczba całkowita nieujemna \(n\). Funkcja ma zwracać wartość silni liczby \(n\), obliczoną metodą rekurencyjną. Stwórz przypadek testowy.

  10. Napisz funkcję calculateFibonacciRecursively, której argumentem jest liczba całkowita nieujemna \(n\). Funkcja ma zwracać \(n\)-ty wyraz ciągu Fibonacciego, obliczony metodą rekurencyjną. Stwórz przypadek testowy.

  11. Napisz funkcję calculateArithmeticSequenceRecursively, której argumentami są dwie liczby całkowite: dodatnie \(n\) (numer wyrazu ciągu do obliczenia) oraz \(d\) (różnica ciągu arytmetycznego), przy założeniu, że wyraz początkowy ciągu \(a_1\) wynosi 1. Funkcja ma zwracać \(n\)-ty wyraz ciągu arytmetycznego, obliczony metodą rekurencyjną. Stwórz przypadek testowy.

  12. Napisz funkcję calculateGeometricSequenceRecursively, której argumentami są dwie liczby całkowite: dodatnie \(n\) (numer wyrazu ciągu do obliczenia) oraz \(d\) (iloraz ciągu geometrycznego), przy założeniu, że wyraz początkowy ciągu \(a_1\) wynosi 1. Funkcja ma zwracać \(n\)-ty wyraz ciągu geometrycznego, obliczony metodą rekurencyjną. Stwórz przypadek testowy.

  13. Napisz funkcję calculate13, której argumentem jest dodatnia liczba całkowita \(n\). Funkcja ma zwracać wartość wyrażoną wzorem \(f(n) = 2f(n-1) + 3\), gdzie \(f(1) = 1\). Stwórz przypadek testowy.

  14. Napisz funkcję calculate14, której argumentem jest dodatnia liczba całkowita \(n\). Funkcja ma zwracać wartość wyrażoną wzorem \(f(n) = 3f(n-1) - 1\), gdzie \(f(1) = 2\). Stwórz przypadek testowy.

  15. Napisz funkcję calculate15, której argumentem jest dodatnia liczba całkowita \(n\). Funkcja ma zwracać wartość wyrażoną wzorem \(f(n) = f(n-1) + 2f(n-2)\), gdzie \(f(1) = 1\) i \(f(2) = 2\). Stwórz przypadek testowy.

  16. Napisz funkcję calculate16, której argumentem jest dodania liczba całkowita \(n\). Funkcja ma zwracać wartość wyrażoną wzorem \(f(n) = 2f(n-1) + 3f(n-2)\), gdzie \(f(1) = 2\) i \(f(2) = 3\). Stwórz przypadek testowy.

  17. Napisz rekurencyjną funkcję calculate17, której argumentem jest nieujemna liczba całkowita \(n\). Funkcja ma zwracać wartość wyrażoną wzorem \(f(n) = f(0)+f(1)+\ldots +f(n-1)\), gdzie \(f(0) = f(1) = 1\). Stwórz przypadek testowy.

  18. Napisz rekrurencyjną funkcję calculateGCD, której argumentami są dwie dodatnie liczby całkowite \(n\) i \(m\). Funkcja ma zwracać największy wspólny dzielnik (NWD) tych liczb algorytmem Euklidesa. Stwórz przypadek testowy.