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.
" Wprowadz 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 r i o większym R por. rys.1.
Rys.1. Szpulka w ruchu płaskim toczenie się bez poślizgu ze stałą prędkością kątową.
Dla uproszczenia interpretacji formuł zakładamy, \e R = " . W chwili początkowej t = 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
T = 0," opisuje odwzorowanie
[ )
x0 îÅ‚X0 cos É t + X1 sin É t + É r tÅ‚Å‚
îÅ‚ Å‚Å‚ ( ) ( )
F : &!×T !2, x = F X,t , = , (1)
( )
śł
ïÅ‚ śł
x1 ïÅ‚ -X0 sin É t + X1 cos É t
( ) ( )
ðÅ‚ ûÅ‚
ðÅ‚ ûÅ‚
x0
îÅ‚ Å‚Å‚
gdzie: x = " !2 oznacza punkt przestrzenny definiujący poło\enie punktu
ïÅ‚ śł
x1
ðÅ‚ ûÅ‚
X0
îÅ‚ Å‚Å‚
materialnego X = "&! identyfikujÄ…cego punkt szpulki &! w chwili czasowej t "T .
ïÅ‚ śł
X1
ðÅ‚ ûÅ‚
Definiując trajektorię jako zbiór
! = x,t " F &!,t ×T
( ) ( )
{ }
odwzorowanie odwrotne
-1
G = F : ! &!
do odwzorowania
F : &!×T !2
mo\emy zdefiniować następująco:
X0 îÅ‚x0 cos É t - x1 sin É t -É r t cos É t Å‚Å‚
îÅ‚ Å‚Å‚ ( ) ( ) ( )
G : ! &!, X = G x,t , = . (2)
( )
ïÅ‚ śł
X1 ïÅ‚ x0 sin É t + x1 cos É t -É r t sin É t
( ) ( ) ( )śł
ðÅ‚ ûÅ‚
ðÅ‚ ûÅ‚
Nietrudno jest sprawdzić, \e dla dowolnych X, x, t :
F îÅ‚G x,t ,tÅ‚Å‚ = x oraz G îÅ‚F X,t ,tÅ‚Å‚ = X .
( ) ( )
ðÅ‚ ûÅ‚ ðÅ‚ ûÅ‚
Wektor prędkości v definiujemy jako pole materialne
v0 îÅ‚-X0 É sin É t + X1 É cos É t + É rÅ‚Å‚
"F îÅ‚ Å‚Å‚ ( ) ( )
v : &!×T !2, v = X,t , = , (3)
( )
ïÅ‚ śł
ïÅ‚v śł
"t -X0 É cos É t X1 É sin É t
( )-
( )
ðÅ‚ 1 ûÅ‚
ðÅ‚ ûÅ‚
natomiast opis przestrzenny V wektora prędkości v definiujemy jako pole przestrzenne
V0 x1 É + É r
îÅ‚ Å‚Å‚ îÅ‚ Å‚Å‚
V : ! &!, V x,t = v îÅ‚G x,t ,tÅ‚Å‚ , =
( ) ( )
ïÅ‚V śł ïÅ‚-x É + É2 r tśł . (4)
ðÅ‚ ûÅ‚
ðÅ‚ 1 ûÅ‚ ðÅ‚ 0 ûÅ‚
Zdefiniuj i zainicjalizuj trzy zmienne typu double: r = 1[m], É = 3[1/ s] , T = 5 [s].
Zdefiniuj i zainicjalizuj zmiennÄ… n = 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,
T
ëÅ‚i öÅ‚
równo odlegÅ‚ych od siebie chwilach czasowych ti = i ×Å‚%T = 0,1,..., n -1, Å‚%T = .
ìÅ‚
n -1÷Å‚
íÅ‚ Å‚Å‚
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 ti i = 0,1,...,n -1 .
( )
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 ti i o końcach w punktach x + v . 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 ti powinny być zawsze
w ustalonym punkcie x, natomiast ich końce w punktach x + V . 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ą.
Wyszukiwarka
Podobne podstrony:
Inf Lab04inf rak mutginf kolo1inf stos) 4T Inf 4Inf Lab07inf 13 gim jezyk niemieckiinf dodatkpodstawowe infinf lista2inf stos w 4LAB04 Rozniczkowanieinf GSiAKOL2b inf 2015 2016dzwięcej podobnych podstron