Informatyka - Podstawy Programowania w Języku C++
prow. Sławomir Czarnecki
Zadania na laboratorium nr. 6
1. Zapisz do plików tekstowych dane definiujące odpowiednio:
topologię połączeń prętów kratownicy (relacje definiujące dla każdego numeru pręta
numery węzłów na jego końcach) –
plik
A.txt,
geometrię (współrzędne kartezjańskie węzłów) –
plik
Z.txt,
obciążenia (składowe kartezjańkie sił przyłożonych do węzłów) –
plik
Q.txt
warunki podparcia (numery odebranych stopnii swobody w kierunku poziomym i/lub
pionowym) –
plik
R.txt
moduł Younga materiału, z którego wykonane są pręty kratownicy oraz ich pola
przekrojów poprzecznych –
plik
Y.txt
8-prętowej kratownicy statycznie wyznaczalnej przedstawionej na rys.1. Przyjmij:
[ ]
1.5
l
h
m
= =
,
[ ]
3
1.0 10
Q
N
=
⋅
,
7
2
1.0 10
/
E
N m
=
⋅
,
2
2
0
7
...
1.0 10
A
A
m
−
= =
=
⋅
.
0
1
2
3
4
5
0
1
2
3
4
7
5
6
Q
l
l
l
h
x
y
Rys.1.
Proponuje się następujący schemat „organizacji danych” w plikach:
plik
: A.txt
plik
: Z.txt
plik
: Q.txt
w pierwszym wierszu
w pierwszym wierszu
w kolejnych wierszach
liczba prętów (równa 8)
liczba węzłów (równa 6)
wszystkie składowe
a następnie w kolejnych
a następnie w kolejnych
wektorów obciążenia
wierszach wszystkie
wierszach wszystkie
węzłów w układzie 0xy
składowe macierzy
składowe kartezjańskie
przy czym nieznane
alokacji oddzielone
położeń węzłów w
składowe reakcji
spacją
przyjętym układzie 0xy
przyjąć równe 0
8
6
0.0 0.0
4 5
1.5 0.0
0.0 0.0
0 5
3.0 1.5
0.0 -1.0e3
0 4
4.5 1.5
0.0 0.0
0 1
3.0 0.0
0.0 0.0
1 3
0.0 0.0
0.0 0.0
1 2
0.0 1.5
2 3
0 3
plik
: R.txt
Uwaga !
Przyjmujemy numerację stopni swobody
w pierwszym wierszu
,
x
y
i i
w kierunku odpowiednio osi x i y w węźle i-tym
liczba odebranych
następująco:
stopni swobody (równa 4)
2
x
i
i
= ⋅
(w kierunku poziomym x)
a następnie w kolejnych
2
1
y
i
i
= ⋅ +
(w kierunku pionowym y)
wierszach wszystkie
numery odebranych
stopni swobody
4
7
8
10
11
plik
: Y.txt
w pierwszym wierszu moduł Younga
a następnie w kolejnych wierszach
pola przekrojów poprzecznych
wszystkich prętów kratownicy
1.0e7
1.0e-2
1.0e-2
1.0e-2
1.0e-2
1.0e-2
1.0e-2
1.0e-2
1.0e-2
Dołącz do projektu m.in. bibliotekę
truss2D.h
i zdefiniuj pełną ścieżkę dostępu (zakończoną
podwójnym \\ ) do katalogu, w którym zapisane zostały wszystkie powyższe pliki, np.:
string PATH=
"I:\\Projekty\\Kratownica\\"
;
a nastepnie wywołaj funkcję (tylko dla płaskich, statycznie wyznaczalnych kratownic)
kratownica2D_SW(PATH);
lub funkcję (dla dowolnych płaskich kratownic)
kratownica2D(PATH);
w celu obliczenia sił i reakcji podporowych w przypadku kratownica2D_SW(…) oraz sił
i przemieszczeń węzłów w przypadku kratownica2D(…).