background image

Informatyka - Podstawy Programowania w Języku C++ 

prow. Sławomir Czarnecki 

 

Zadania na laboratorium nr. 4 

 

Uwaga !

 Na laboratorium, zademonstrowany zostanie sposób wywoływania funkcji NEW(...) 

i  DEL(...)  dynamicznego  alokowania  i  de-alokowania  tablic  jedno  oraz  dwuwymiarowych 
(tzn.  wektorów  oraz  macierzy)  z  biblioteki 

bib.h

.  Zadanie  drugie  nawiązuje  do  tematyki 

wykładu z Mechaniki Teoretycznej – dział kinematyka – nauka o ruchu ciał sztywnych.  
 
1. Dynamiczna alokacja i de-alokacja tablic. 

•  Wprowadź z klawiatury liczby całkowite dodatnie m i n .  

•  Zdefiniuj następnie dynamicznie tablice: wektor u[m] typu 

int

, wektor v[m] typu 

long

 

oraz wektor w[m] i macierz t[m][n] typu 

double 

inicjalizując składowe definiowanych 

tablic  dowolną,  ale  ustaloną  liczbą  (np.  liczbą  zero).  Wykorzystaj  w  tym  celu 
odpowiednie wersje funkcji NEW(...) z biblioteki 

bib.h

.  

•  Wyświetl na ekranie wszystkie składowe macierzy t[m][n] wywołując funkcję cout .   

•  Zmień składowe powyŜej zdefiniowanych tablic wywołując funkcję random(). 

•  Wyświetl  na  ekranie  wszystkie  składowe  powyŜej  zdefiniowanych  tablic  wywołując 

odpowiednie wersje funkcji display(...) z biblioteki 

bib.h

.  

•  Zwolnij zarezerwowaną dynamicznie na stercie pamięć wywołując funkcje DEL(...) z 

biblioteki 

bib.h

 
 
 
2.  
WzdłuŜ  poziomej  linii  prostej  toczy  się  ze  stałą  prędkością  kątową 

ω

  oraz  bez  poślizgu 

szpulka  Ω  o mniejszym promieniu   i o większym   – por. rys.1. 
 

 

 

Rys.1. Szpulka w ruchu płaskim – toczenie się bez poślizgu ze stałą prędkością kątową.    

 
 
 
 
 
 

background image

Dla  uproszczenia  interpretacji  formuł  zakładamy,  Ŝe  = ∞ .  W  chwili  początkowej 

0

=

środek  szpulki  znajduje  się  w  początku  0  globalnego  układu  współrzędnych  kartezjańskich. 
Ruch  szpulki  Ω   w  globalnym  układzie  współrzędnych  kartezjańskich  i  w  przedziale  czasu 

[

)

0,

=

 opisuje odwzorowanie 

 

(

)

( )

( )

( )

( )

0

1

0

2

0

1

1

cos

sin

:

,

,

,

sin

cos

X

t

X

t

r t

x

F

T

F

t

X

t

X

t

x

ω

ω

ω

ω

ω

+

+

 

Ω × →

=

= 

 

+

  

x

X

,  

 

    (1) 

 

gdzie: 

0

2

1

x

x

 

=

 

 

x

  oznacza  punkt  przestrzenny  definiujący  połoŜenie  punktu 

materialnego 

0

1

X

X

=

∈ Ω

X

 identyfikującego punkt szpulki  Ω  w chwili czasowej  t

T

∈ .  

Definiując trajektorię jako zbiór  
 

( )

(

)

{

}

,

,

t

F

t

T

ℑ =

×

x

 

 
odwzorowanie odwrotne 
 

1

:

G

F

=

ℑ → Ω  

 
do odwzorowania 
 

2

:

F

T

Ω × → ℝ  

 
moŜemy zdefiniować następująco:  
 

( )

( )

( )

( )

( )

( )

( )

0

1

0

0

1

1

cos

sin

cos

:

,

,

,

sin

cos

sin

x

t

x

t

r t

t

X

G

G

t

x

t

x

t

r t

t

X

ω

ω

ω

ω

ω

ω

ω

ω

ℑ → Ω

=

= 

+

 

X

x

 

    (2)  

 
Nietrudno jest sprawdzić, Ŝe dla dowolnych Xx
 

( )

,

,

F G

t t =

x

x

 oraz 

(

)

, ,

G F

t t =

X

X

 
Wektor prędkości v definiujemy jako pole materialne 
 

(

)

( )

( )

( )

( )

0

1

0

2

0

1

1

sin

cos

:

,

,

,

cos

sin

X

t

X

t

r

v

F

T

t

X

t

X

t

v

t

ω

ω

ω

ω

ω

ω

ω

ω

ω

+

+

 

Ω× →

=

= 

 

  

v

v

X

,   

    (3) 

 

natomiast opis przestrzenny V wektora prędkości v definiujemy jako pole przestrzenne 
 

( )

( )

1

0

2

0

1

:

,

,

, ,

,

x

r

V

t

G

t t

x

r t

V

ω ω

ω ω

+

 

ℑ → Ω

=

=

 

+

  

V

V x

v

x

 

 

 

    (4) 

 

background image

  Zdefiniuj i zainicjalizuj trzy zmienne typu 

double

1[ ]

r

m

=

3 [1 / ]

s

ω

=

5 [ ]

T

s

=

.  

  Zdefiniuj  i  zainicjalizuj  zmienną 

100

=

  typu 

int

,  oznaczającą  liczbę  chwil 

czasowych, w przedziale czasu T.   

  Zdefiniuj  dynamicznie  dwa  wektory:  X[2],  x[2]  typu 

double

.  Składowe  wektora  X 

zainicjalizuj  dowolnymi  liczbami  wskazującymi  wybrany  punkt  materialny  szpulki 

Ω ,  a  składowe  wektora  x  zainicjalizuj  dowolnymi  liczbami  wskazującymi  wybrane 

miejsce w przestrzeni 

2

ℝ .  

  Zdefiniuj  dynamicznie  cztery  macierze:  FX[n][2],  Gx[n][2],  v[n][2],  V[n][2].  W 

kaŜdym  z  n  wierszy  oblicz  następnie  według  formuł  odpowiednio:  (1),  (2),  (3)  i  (4) 
połoŜenia  punktu  materialnego  X,  punkty  materialne  przechodzące  przez  miejsce  x
wektor prędkości v punktu materialnego X oraz wektor prędkości V w miejscu x w n

równo odległych od siebie chwilach czasowych 

0,1,...,

1,

1

i

T

t

i

T i

n

T

n

= ×

=

=

  Zapisz  do  czterech  plików  tekstowych:  trajektoria.txt,  X.txt,  predkosc.txt,  V.txt 

składowe  macierzy  odpowiednio:  FX,  Gx,  v,  V  w  taki  sposób,  aby  na  podstawie 
zapisanych danych, moŜliwe było sporządzenie  wykresów  w Excelu wizualizujących 
(w  sposób  dyskretny)  odpowiednio:  trajektorię  wybranego  punktu  materialnego  X
zbiór  punktów  materialnych  przechodzących  przez  wybrane  miejsce  x,  wektor 
prędkości  v  wybranego  punktu  materialnego  X,  wektory  prędkości  V  punktów 
materialnych  przechodzących  przez  wybrane  miejsce  x  w  kolejnych  chwilach 
czasowych 

(

)

0,1,...,

1

i

t i

n

=

.  

  Uwaga  !  Znacznie  „lepszą”  wizualizację  wektora  prędkości  v  moŜna  uzyskać, 

sporządzając  jego  prezentację  w  postaci  odcinków  o  początkach  w  n  zmieniających 
się
 punktach x reprezentujących – zmieniające się – połoŜenie punktu X w kolejnych 
chwilach 

i

  i  o  końcach  w  punktach 

+

x

.  Taka  wizualizacja  umoŜliwia  bowiem 

potwierdzenie  znanego  faktu  styczności  (w  kaŜdej  chwili  czasowej  t)  wektora 
prędkości  do  toru  ruchu  punktu.  Analogiczna  uwaga  dotyczy  wizualizacji  wektora 
prędkości  v  w  ustalonym  miejscu  x  przestrzeni,  czyli  wizualizacji  tzw.  opisu 
przestrzennego  V  materialnego  pola  wektorowego  v.  Początki  odcinków 
reprezentujących wektor V w kolejnych chwilach czasowych 

i

 powinny być zawsze 

w  ustalonym  punkcie  x,  natomiast  ich  końce  w  punktach 

+

x

.  Zamieszczone  w 

uwadze wskazówki powinny być uwzględnione w zmienionym nieco sposobie zapisu 
danych  do  plików  tekstowych  predkosc.txt,  V.txt  ,  umoŜliwiającym  sporządzenie  w 
Excelu rysunków zgodnych z przedstawioną wyŜej interpretacją.