Algorytmika i Programowanie.
Podstawy języka C++ ze wstępem do programowania dla
inżynierów
Tematyka ćwiczeń laboratoryjnych AiP_Lab06
dla 2 semestru studiów dziennych
na Wydziale Inżynierii Lądowej PW
Prowadzący Sławomir Czarnecki
instrukcje pętli cz. 3 – proste zadania programistyczne + powtórzenie
materiału.
Zad.1. Zdefiniuj N – elementowy wektor A[N] liczb rzeczywistych dla N = 3 i
zainicjalizuj wszystkie jego składowe zerami. Używając instrukcji pętli,
wyświetl na ekranie wszystkie jego składowe w następujący sposób:
A[0]=0
A[1]=0
A[2]=0
Zad.2. Dla ustalonej liczby naturalnej n (np. dla n = 10) i ustalonej liczby
rzeczywistej x, oblicz wartość wielomianu stopnia n :
( )
2
0
1
2
...
n
n
n
W
x
a
a x
a x
a x
=
+
+
+
+
(*)
gdzie
(
)
0,1,...,
i
a i
n
=
oznaczają dowolnie przyjęte wartości współczynników
rzeczywistych tego wielomianu. Wartość (*) oblicz na dwa sposoby:
a)
bezpośrednio, na podstawie wzoru (*)
b)
korzystając ze schematu Hornera (opartym o rozkład wielomianu na
czynniki):
( )
(
)
(
)
(
)
1
2
1
0
...
n
n
n
n
W
x
a x
a
x
a
x
a x
a
−
−
=
+
+
+
+
+
UWAGA !
Zalecana powszechnie (w niemal wszystkich podręcznikach) metoda
b)
liczenia wartości wielomianu
nie zawsze okazuje się być pod każdym
względem lepszą i optymalniejszą
od najbardziej oczywistej i najprostszej
metody
a)
liczenia wartości wielomianu.
Zad.3 -
cz.1.
Oblicz (nieskończone) sumy następujących szeregów funkcyjnych:
a)
2
3
0
1
...
...
!
0! 1!
2!
3!
!
i
i
x
i
x
x
x
x
x
e
i
i
∞
=
=
+
+
+
+
+
+
=
∑
,
b)
( )
(
)
( )
2 1
3
5
7
0
1
... sin
2
1 !
3!
5!
7!
i
i
i
x
x
x
x
x
x
i
+
∞
=
−
= −
+
−
+
=
+
∑
,
c)
( )
( )
( )
2
2
4
6
0
1
1
... cos
2 !
2!
4!
6!
i
i
i
x
x
x
x
x
i
∞
=
−
= −
+
−
+
=
∑
.
w dowolnym, ale ustalonym punkcie x i porównaj je z wartościami obliczonymi
bezpośrednio na podstawie dostępnych w <cmath> funkcji bibliotecznych
exp(...), sin(...) i cos(...).
Dla ułatwienia obliczeń, warunek stopu uzależnij tylko od przyjętej a priori
wartości n > 0 - liczby sumowanych wyrazów (i = 0, 1, 2,..., n) (w innym
wariancie warunek stopu uzależnij od ustalonej dokładności eps > 0, podobnie
jak w
Zad.2.
z AiP_Lab05).
Wskazówka.
Zauważ, że mamy następujące zależności rekurencyjne na kolejne
wyrazy szeregów funkcyjnych:
(
)
1
0
1 ,
1
n
n
a
a
a
x
n
n
−
=
=
≥
w przypadku szeregu
a)
(
)
(
)
2
1
0
,
1 ,
2, 4,6,...
1
n
n
a
a
x a
x
n
k
k k
−
=
= −
≥
=
+
w przypadku szeregu
b)
(
)
(
)
2
1
0
1 ,
1 ,
1,3,5,...
1
n
n
a
a
a
x
n
k
k k
−
=
= −
≥
=
+
w przypadku szeregu
c)
Zad.3 -
cz.2.
Oblicz sumy szeregów
a)
i
b)
z
cz.1.
w oparciu o schemat Hornera
obliczania sumy szeregu potęgowego. Zauważ, że dla przyjętej wartości n
sumowanych wyrazów, współczynniki
0
1
2
, ,
,...
a a a
rozkładu wielomianu, będą
miały następujące wartości:
0
1
2
1
1
1
1
,
,
,...,
0!
1!
2!
!
n
a
a
a
a
n
=
=
=
=
w przypadku
a)
oraz
(
)
0
1
2
3
2
2
2
1
1
1
1
0,
,
0,
,...,
0,
1!
3!
2
1 !
n
n
a
a
a
a
a
a
n
−
−
=
=
=
=
=
=
−
(n
≥
2) w
przypadku
b).
Współczynniki te można obliczyć i zainicjalizować nimi tablice, odpowiednio
EXP[n+1] oraz SIN[2n], a następnie obliczyć odpowiadające im wartości
wielomianu w punkcie x.