Wstęp i metody programowania. Ćwiczenie 5.
Procedury i funkcje
Cel ćwiczenia: Poznanie struktury procedur i funkcji. Przekazywanie parametrów do procedur i funkcji. Obliczanie sum szeregów z wykorzystaniem procedur i funkcji.
Opracować funkcję, która oblicza sumę dwóch liczb rzeczywistych przekazywanych przez wartości za pomocą argumentów x i y oraz zwraca wynik dodawania argumentów przez nazwę funkcji. W programie głównym wywołać funkcję dla danych wejściowych wczytanych z klawiatury. Przykładowy nagłówek funkcji ma następującą postać: function Suma1(x, y: real): real.
Opracować procedurę, która oblicza sumę dwóch liczb rzeczywistych przekazywanych przez wartości za pomocą argumentów x i y oraz zwraca wynik dodawania argumentów za pośrednictwem zmiennej wyn, będącej argumentem procedury. W programie głównym wywołać funkcję dla danych wejściowych wczytanych z klawiatury. Przykładowy nagłówek procedury: procedure Suma2(x, y: real; Var wyn: real).
Opracować funkcję, która zwraca przez nazwę minimum z dwóch liczb rzeczywistych, przekazywanych do funkcji przez wartości, oraz zwraca maksimum z tych liczb przez zmienną. Przykładowy nagłówek: function MinMax1(x,y: real; Var max: real): real.
Opracować procedurę, która zwraca przez zmienne minimum i maksimum z dwóch liczb rzeczywistych przekazywanych do procedury przez wartości. Przykładowy nagłówek procedury: procedure MinMax2(x,y: real; Var min,max: real).
Opracować procedurę, która dla n będącego jej parametrem oblicza sumę:
S(n) = 1 - 1/2 + 1/4 - 1/6 + ... ±1/k , gdzie k <=n.
Na przykład, n = 1; S(1) = 1; n = 2; S(2) = 1 - 1/2; n = 3; S(3) = 1 - 1/2;
n = 4; S(4) = 1 - 1/2 + 1/4; n = 5; S(5) = 1 - 1/2 + 1/4.
Nagłówek procedury: procedure s1(n: integer; Var wyn: real).
Opracować funkcję, która dla n będącego parametrem funkcji oblicza sumę:
S(n) = (1/1 + 1/2 + 1/3) - (1/4 + 1/5 +1/6) + ... ± (... 1/n).
Na przykład, dla
n=1; S(1) = (1/1);
n=2; S(2) = (1/1 + 1/2);
n=3; S(3) = (1/1 + 1/2 + 1/3);
n=4; S(4) = (1/1 + 1/2 + 1/3) - (1/4);
n=5; S(5) = (1/1 + 1/2 + 1/3) - (1/4 + 1/5).
Nagłówek funkcji: function s2(n: integer): real.
Niech x będzie liczbą rzeczywistą wczytywaną z klawiatury. Opracować funkcję, która dodaje kolejne wyrazy szeregu
S(x, k) = 1 + x^1 / 1! + x^2 / 2! + ... + x^k / k! ...
tak długo, aż pojawi się wyraz o numerze k taki, że moduł | x^k / k! | < eps, gdzie
eps=1E-7 jest stałą w programie (obliczanie ex z dokładnością eps=10-7). Przyjąć, że
x oraz eps są argumentami funkcji.
Opracować funkcję, która wyznacza n pierwszych wyrazów szeregu przybliżającego wartość sin(x) dla x typu rzeczywistego. Przyjąć, że x oraz n są argumentami funkcji.
S(x,n) = x^1 / 1! - x^3 / 3! + x^5 / 5! - x^7 / 7! + ... ± x^(2n-1) / (2n-1)!
Wartości n są liczbami naturalnymi (n=1, 2, 3, ...). Porównać wartość funkcji S(x,n) dla wybranych x i n (np. x=2; n=8) z wartością standardowej funkcji sin(x). Dla dużych n powinno być sin(x) ≈ S(x,n).