background image

Informatyka - Podstawy Programowania w Języku C++ 

prow. Sławomir Czarnecki 

 

Zadania na laboratorium nr. 3 

 
1.  Zdefiniuj  i  zainicjalizuj  „losowo”  6  zmiennych  typu 

double

:  A

1

,  B

1

,  C

1

,  A

2

,  B

2

,  C

2

  z 

przedziału  [a  ,  b],  gdzie 

(

)

,

a

b a b

<

∈ ℝ

.  Zmienne  te  interpretujemy  jako  współczynniki 

definiujące równania dwóch prostych na płaszczyźnie 0XY
 

1

1

1

2

2

2

0

0

A x

B y C

A x

B y C

+

+

=

+

+

=

 

(*) 

 
W celu zainicjalizowania zmiennych A

1

B

1

C

1

 oraz A

2

B

2

C

2

, wywołaj funkcję random(…) 

z  biblioteki  bib.h  (sposób  dołączenia  pliku  bib.h  oraz  wyjaśnienie  działania  funkcji 
random(…) będą omówione na laboratorium).  
Wyświetl  na  ekranie  pełną  informację  o  połoŜeniu  obu  tych  prostych  względem  siebie  w 
zaleŜności od spełnienia poniŜszych warunków: 

•  proste się przecinają dokładnie w jednym punkcie jeśli: 

1

1

2

2

0

A

B

A

B

•  proste  się  pokrywają  (przecinają  się  w  nieskończonej  liczbie  punktów)  jeśli: 

1

1

1

1

2

2

2

2

0

A

B

A

C

A

B

A

C

=

=

•  proste są równoległe (nie mają punktów wspólnych) jeśli: 

1

1

2

2

0

A

B

A

B

=

 
2.
 Zdefiniuj i wczytaj z klawiatury dwie róŜne liczby naturalne m > 0, n  > 0 tak aby n

Oblicz  sumę 

(

)

(

)

1

...

1

n

i m

i

m

m

n

n

=

= +

+ + +

− +

  oraz  iloczyn 

(

) (

)

1 ...

1

n

i m

i

m m

n

n

=

=

+

Sprawdź wynik np. dla m = 1, n = 10 : 

(

)

10

1

1

55

2

n

i

n n

i

=

=

+

=

=

10

1

! 3628800

n

i

i

n

=

=

=

=

 
3. Zdefiniuj i wczytaj z klawiatury pierwszy wyraz 

1

∈ ℝ , iloraz 

1

≠  oraz całkowitą liczbę 

1

 wyrazów ciągu geometrycznego 

( )

1,2,...

i i

a

=

. Kolejne wyrazy 

i

 tego ciągu dla i = 2,3,… 

obliczamy  według  rekurencyjnego  lub  iteracyjnego  wzoru: 

1

i

i

a

a

q

=

  (rekurencja)  lub 

1

1

i

i

a

a q

=

(iteracja). Wyświetl wszystkie wyrazy tego ciągu od 1 do 

n na ekranie oraz oblicz 

(w pętli) sumę: 

1

n

i

i

a

=

. Sprawdź wynik korzystając ze  wzoru: 

1

1

1

1

n

n

i

i

q

a

a

q

=

=

 (prawdziwego 

dla 

1

≠ ). 

 
 
 
 
 

background image

4. 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 2NWD = m 

 
Algorytm iteracyjny II

•  Krok 1. Dopóty dopóki n > 0 wykonaj jednocześnie następujące podstawienie 

(

)

,

, reszta z dzielenia 

m

m n

n

n

= 

 

•  Krok 2NWD = m 

 
Przed implementacją zapoznaj się z dowodem twierdzenia matematycznego uzasadniającego 
poprawność pierwszego z powyŜej zaproponowanych algorytmów.