background image

Informatyka - Podstawy Programowania w J

ę

zyku C++ 

Kierownik przedmiotu: Sławomir Czarnecki 

prow. Rafał Michalczyk / Zbigniew Trybocki 

 

Zadania na laboratorium nr. 6 dla grupy 4 

 

1.  Zdefiniuj  dwa  wektory  a[3],  b[3].  Składowymi  wektorów  niech  będą  liczby  losowe  z 
przedziału [-10,10]. Wyświetl na ekranie składowe obydwu wektorów. 

Oblicz i wyświetl na ekranie wartości trzech kolejnych iloczynów: 

 

a)

 

Skalarnego: 

]

2

[

]

2

[

]

1

[

]

1

[

]

0

[

]

0

[

b

a

b

a

b

a

b

a

+

+

=

 

ZauwaŜmy, Ŝe rezultatem działania jest liczba – suma iloczynów składowych wektorów a i b

 

 

 

 

=

=

2

0

]

[

]

[

_

i

i

b

i

a

skalarny

Il

 

b)

 

Wektorowego: 

=

×

]

0

[

]

1

[

]

1

[

]

0

[

]

2

[

]

0

[

]

0

[

]

2

[

]

1

[

]

2

[

]

2

[

]

1

[

b

a

b

a

b

a

b

a

b

a

b

a

b

a

 

ZauwaŜmy, Ŝe rezultatem działania jest wektor – o składowych zdefiniowanych j.w. . 
 

c)

 

Tensorowego: 

=

]

2

[

]

2

[

]

1

[

]

2

[

]

0

[

]

2

[

]

2

[

]

1

[

]

1

[

]

1

[

]

0

[

]

1

[

]

2

[

]

0

[

]

1

[

]

0

[

]

0

[

]

0

[

b

a

b

a

b

a

b

a

b

a

b

a

b

a

b

a

b

a

b

a

 

ZauwaŜmy,  Ŝe  rezultatem  działania  jest  macierz  –  o  składowych  równych  iloczynom 
odpowiednich składowych wektorów a i b. W ogólnej postaci składowa macierzy wynikowej 
jest równa: 

]

[

]

[

]

,

[

_

j

b

i

a

j

i

tensorowy

Iloczyn

=

 

 

background image

2. RozwiąŜ wszystkie polecenia zadania nr 1 korzystając z funkcji zapisanych w bibliotece 

„bib.h”

 : 

 

a)

 

tworzenie w sposób dynamiczny wektora: 

typ_zmiennych

*nazwa_wektora=NEW(wartość_składowych, wymiar_wektora); 

 

Przykład: 

double

* v=NEW(0.0, 10); 

 

b)

 

tworzenie w sposób dynamiczny macierzy: 

typ_zmiennych

**nazwa_macierzy=NEW(wartość_składowych,ilość_wierszy, ilość_kolumn); 

 

Przykład: 

int

** A=NEW(0, 5,10); 

 

c)

 

zwolnienie zarezerwowanej dynamicznie na stercie pamięci pod wektor/macierz: 

DEL(nazwa_wektora_lub_macierzy) 

d)

 

wyświetlenie na ekranie konsoli wektora: 

display(„dowolny_tekst”, nazwa_wektora, wymiar_wektora); 

Przykład: 

display(„Wektor v ma postac”, v, 10); 

 

e)

 

wyświetlenie na ekranie konsoli macierzy: 

display(„dowolny_tekst”, nazwa_macierzy, ilość_wierszy, ilość_kolumn); 

Przykład: 

display(„Macierz A ma postac”, A, 5, 10); 

 

f)

 

generowanie liczb pseudolosowych z dowolnego przedziału: 

random(od,do); 

 

Przykład – losowanie liczby całkowitej: 

random(-10,10); 

Przykład – losowanie liczby zmiennoprzecinkowej: 

random(-10.0,10.0); 

 

background image

3.  Korzystając  z  funkcji  dostępnych  w  bibliotece 

„bib.h” 

stwórz  następujące  tablice  o 

wymiarach wczytywanych z klawiatury mnk
 

- wektory v i w o wymiarze m 

 

- macierz A o wymiarach [n, m] i macierz B o wymiarach [m, k

 
Składowe tablic zapełnij liczbami losowymi z przedziału [a,b], np.[-10,10]. 
Napisz kod realizujący następujące operacje: 
 

a)

 

MnoŜenie wektora v i wektora w – zauwaŜmy, Ŝe wynikiem będzie liczba:  

=

=

1

0

]

[

]

[

m

i

i

w

i

v

c

 

 

b)

 

MnoŜenie  macierzy  A  i  wektora  v  –  zauwaŜmy,  Ŝe  wynikiem  będzie  wektor  o 
wymiarze n, o składowych:  

=

=

1

0

]

[

]

,

[

]

[

m

j

j

v

j

i

A

i

u

 

 

c)

 

MnoŜenie  macierzy  A  i  macierzy  B  –  zauwaŜmy,  Ŝe  wynikiem  będzie  macierz  o 
wymiarach 

k

n

×

, o składowych:  

=

=

1

0

]

,

[

]

,

[

]

,

[

m

l

j

l

B

l

i

A

j

i

C

 

 
Wyświetl na ekranie dane tablice oraz wyniki, zwolnij zarezerwowaną dynamicznie 
pamięć.