Obliczenie zanurzenia odbywa się metodą interpolacji krzywoliniowej. Na podstawie trzech wyporności zostają określone współczynniki równania kwadratowego i na jego podstawie zostanie obliczona wartość ułamkowa zanurzenia. Zanurzenie z dokładnością do 0,5 m zostanie obliczone na podstawie wartości „I". Dokładniej problem ten zostanie omówiony w punkcie 15.2.
650 — 690 na podstawie określonego indeksu „I" oraz ułamkowej części zanurzenia zostają określone krzywe hydrostatyczne dla aktualnego zanurzenia. W niektórych wersjach BASIC można definiować funkcję z wieloma parametrami i wówczas problem ten można rozwiązać następująco:
— na początku programu zdefiniować funkcję, która zastąpi cały podprogram 1000:
DEF FNY(U, V, W, Z)-(2*U -4*V + 2#W)*Z*Z + (4* V - 3*U - W)*Z + U
zamiast instrukcji 650 zastosować instrukcję:
650 XF = FNY(F(I -1),F(I), F(I +1), DT)
660 XS «= FNY(S(I — 1), S(I), S(I +1), DT)
670 ZM = FNY(K(I -1),K(l), K(I +1), DT)
680 MJ = FNY(M(I-1),M(I), M(I + IX DT)
takie rozwiązanie jest możliwe w komputerze Spectrum.
700 — 730 następuje tutaj obliczenie wysokości metacentrycznej i przegłębic-nia statku.
740 — 750 metodą interpolacji liniowej następuje tutaj określenie krytycznego położenia środka masy statku. —
760 — 840 jest to wyprowadzanie wyników, które może przybrać różną
postać.
Dalsza rozbudowa programu
Ten prymitywny program można stopniowo rozbudowywać i doskonalić. Kierunki usprawniania programu mogą dotyczyć każdego jego bloku.
Blok danych może zostać rozbudowany o informacje dotyczące objętości zbiorników i ładowni oraz o współrzędne ich geometrycznych środków. Każdy zbiornik winien zostać opisany odpowiednim łańcuchem zawierającym nazwę zbiornika. Dane ładowni mogą zostać wzbogacone o dopuszczalne obciążenie dna ładowni.
Blok wczytywania danych może zostać tak zorganizowany, że dane będą umieszczone w oddzielnym zbiorze, który będzie wczytywany w trakcie wykonywania programu. Zaoszczędzi to miejsca w pamięci operacyjnej i umożliwi znaczną rozbudowę programu.
253