Informatyka - Podstawy Programowania w Języku C++
Kierownik przedmiotu: Sławomir Czarnecki
prow. Rafał Michalczyk / Zbigniew Trybocki
Zadania na laboratorium nr. 4 dla grupy 4
0. Napisz kod programu obliczającego dla x = , 1 ,
2 ..., n , gdzie n – dowolna liczba naturalna wczytywana z klawiatury, wartość funkcji f ( x) = 2 ⋅ x . Dla każdej kolejnej wartości x na ekranie konsoli ma być wyświetlany napis:
„Dla x=… wartość funkcji f(x) wynosi: …”
Zamiast znaku „…” w tekście ma się ukazywać wartość liczby x oraz funkcji f(x).
1. Zdefiniuj i wczytaj z klawiatury dwie różne liczby naturalne m > 0, n > 0 tak aby m < n.
n
n
Oblicz sumę ∑ i = m + ( m + )
1 + ... + ( n − )
1 + n oraz iloczyn
i
∏ = m( m+ )1...( n− )1 n.
i= m
i= m
n 1
= 0
n ( n + )
1
n 1
= 0
Sprawdź wynik np. dla m = 1, n = 10 : ∑ i =
= 55 ,
i
∏ = n!= 3628800.
i=
2
1
i 1
=
2. Zdefiniuj i wczytaj z klawiatury pierwszy wyraz a ∈ R , iloraz q ≠ 1 oraz całkowitą liczbę 1
n ≥ 1 wyrazów ciągu geometrycznego ( a
. Kolejne wyrazy a tego ciągu dla i = 2,3,…
i ) i 1
= ,2,...
i
obliczamy według rekurencyjnego lub iteracyjnego wzoru: a = a q (rekurencja) lub
i
i 1
−
i 1
a
a q −
=
(iteracja). Wyświetl wszystkie wyrazy tego ciągu od 1 do n na ekranie oraz oblicz i
1
n
n
n
q −1
(w pętli) sumę: ∑ a . Sprawdź wynik korzystając ze wzoru: ∑ a = a (prawdziwego
i
i
1
=
q −
i
1
i 1
=
1
dla q ≠ 1).
3. Znajdź NWD( m , n) – Największy Wspólnik Dzielnik dwóch liczb naturalnych m > 0, n > 0
implementując dwa poniższe algorytmy iteracyjne (algorytmy Euklidesa): Algorytm iteracyjny I:
• Krok 1. Dopóty dopóki m ≠ n wykonaj następujące podstawienie jeśli m > n, to m = m – n
w przeciwnym przypadku: n = n – m
• Krok 2. NWD( m , n) = m
Algorytm iteracyjny II:
• Krok 1. Dopóty dopóki n > 0 wykonaj jednocześnie następujące podstawienie (
m
,
m n) = n , reszta z dzielenia
n
• Krok 2. NWD( m , n) = m
Przed implementacją zapoznaj się z dowodem twierdzenia matematycznego uzasadniającego poprawność pierwszego z powyżej zaproponowanych algorytmów.