[ Pobierz całość w formacie PDF ]
–
–
Rozdział 1. ♦ Wielko ci fizyczne. Procedury przeliczania wielko ci fizycznych. Moduły...
59
Przedstawiony algorytm wykorzystuje dobrze nam znane z poprzedniego podrozdziału
funkcje. Powinniśmy jednak zauważyć, iż w jednym jego fragmencie zastosowaliśmy
nieco odmienny sposób przeliczania jednostek układu energii. W czẹści modułu, gdzie
rejestrowane są czynniki przeliczeniowe do układu jednostek energii, skorzystaliśmy
z czterech funkcji: ― przeliczającej elektronowolty na dżule,
― przeliczającej dżule na atomowe jednostki masy,
― przeliczającej atomowe jednostki masy na kilogramy oraz
― przeliczającej kilogramy na elektronowolty. Ciała tych funkcji zostały
umieszczone w sekcji implementacji modułu. Prezentowany sposób przeliczania jedno-
stek układu energii może wydawać siẹ nieco zawiły, jednak dobrze oddaje ideẹ przelicza-
nia różnych wartości metodą „nie wprost”. Przeliczenia elektronowoltów na kilogramy
dokonaliśmy etapami. Najpierw elektronowolty przeliczane są na dżule, nastẹpnie otrzy-
many wynik przeliczany jest na atomowe jednostki masy, które z kolei przeliczane są
na kilogramy, by w efekcie wynik otrzymać powtórnie w elektronowoltach. Zastosowanie
tego rodzaju techniki pozwala nam nieustannie kontrolować sposób obliczania pewnych
wartości. Jeżeli algorytm bẹdzie skonstruowany prawidłowo, otrzymany wynik powinien
być identyczny z otrzymanym na podstawie prostego przeliczenia elektronowoltów na
kilogramy. Podobne zabiegi mają zastosowanie nie tylko w nauce i technice (gdzie
niekiedy należy bardzo dokładnie sprawdzić, czy np. masa 1 kg pewnej substancji wy-
woła pożądany efekt), stosuje siẹ je również w algorytmach „obsługujących” różnego
rodzaju operacje finansowe, gdzie bardzo czẹsto zachodzi potrzeba przeliczenia np. opro-
centowania wkładu złotówkowego na inne waluty. Niemniej jednak reguła jest prosta
― poprawnie skonstruowany algorytm zawsze da takie same wyniki niezależnie od
„kierunku” przeprowadzanych obliczeń. Prosty schemat blokowy kolejności prezen-
towanych tu obliczeń został zamieszczony w diagramie (Unit_MyValues.dpp) modułu
Kody\Rozdzial1\My_Convs\Unit_MyValues.pas.
Proste przykłady zastosowań funkcji przeliczających w odniesieniu do operacji waluto-
wych można również znaleźć w katalogu instalacyjnym Delphi 6 Demos\ConvertIt\
EuroConv.pas.
Należy zwrócić uwagẹ, iż z: , ,
oraz możemy również korzystać tak jak z normalnych
predefiniowanych funkcji i wywoływać je bezpośrednio z parametrami aktualnymi
60
Delphi 6. Nowe narz dzia obliczeniowe
w głównym module aplikacji, ich prototypy należy wówczas umieścić tuż przed począt-
kiem sekcji implementacji. Liczbowe identyfikatory nowo zarejestrowanych jednostek
oraz odpowiadających im układów jednostek z łatwością odczytamy dziẹki funkcji
, np.
Na wydruku 1.2 pokazano kod głównego modułu Unit_MyValues.pas znajdującego
siẹ na płycie CD-ROM w katalogu Kody\Rozdzial1\My_Convs\p_MyValues.dpr reali-
zującego operacje przeliczania samodzielnie zdefiniowanych i zarejestrowanych ukła-
dów jednostek.
Wydruk 1.2. Kod źródłowy modułu Unit_MyValues.pas implementującego wybrane układy jednostek
wraz z odpowiadającymi im czynnikami przeliczeniowymi
Rozdział 1. ♦ Wielko ci fizyczne. Procedury przeliczania wielko ci fizycznych. Moduły...
61
62
Delphi 6. Nowe narz dzia obliczeniowe
Analizując powyższe zapisy należy zwrócić uwagẹ na to, iż zarówno w głównym module
aplikacji Unit_MyValues.pas, jak i w module My_Convs.pas niezależnie odwołano siẹ
do modułów oraz . Wynika to z faktu, iż zmienne, typy, funkcje
oraz procedury z tych modułów nie są współdzielone przez wszystkie moduły wchodzące
w skład aplikacji, natomiast są przekazywane każdemu jej modułowi jako odrẹbna kopia.
Moduł VarConv
Moduł implementuje dane typu na potrzeby reprezentacji zarówno
pojedynczych jednostek, jak i układów jednostek różnorodnych wielkości. Funkcje udo-
stẹpniane przez ten moduł z reguły nie mogą wystẹpować samodzielnie w aplikacji.
W wielu wypadkach konieczne jest używanie dodatkowych typów i procedur udostẹpnia-
nych w module . Do najważniejszych należy zaliczyć typ bẹdący
implementacją typu w Delphi 6. Typ używany jest przez
procedury oraz . Definiuje on wszystkie
funkcje oraz procedury mające zastosowanie w konwersji typów wariantowych na inne
typy danych. Z kolei identyfikuje operatory arytmetyczne, logiczne i bitowe
mające zastosowanie w działaniach na typach wariantowych. Wiẹcej szczegółów na
[ Pobierz całość w formacie PDF ]