• Nie Znaleziono Wyników

Informatyka Nr 6; Organ Komitetu Informatyki, Ministerstwa Nauki, Szkolnictwa Wyższego I Techniki Oraz Komitetu Naukowo-Technicznego NOT DS. Informatyki - Digital Library of the Silesian University of Technology

N/A
N/A
Protected

Academic year: 2022

Share "Informatyka Nr 6; Organ Komitetu Informatyki, Ministerstwa Nauki, Szkolnictwa Wyższego I Techniki Oraz Komitetu Naukowo-Technicznego NOT DS. Informatyki - Digital Library of the Silesian University of Technology"

Copied!
28
0
0

Pełen tekst

(1)
(2)

N r 6

M iesięcznik R o k X X

Czerw iec 1985

Organ Kom itetu Inform atyki MNSZWiT oraz Komitetu Naukowo-Technicznego NOT ds. Inform atyki ;

K O L E G IU M R E D A K C Y JN E :' W'-"'

D r in ż. W a c ła w IS Z K O W S K I, m g r T e ­ r e s a JA B Ł O Ń S K A - .( s e k r e ta r z r e d a k c ji), W ła d y s ła w K L E P A C Z , (z a stę p c a r e d a k t o ­ r a n a c z e ln e g o ), p ro f. d r f h a b . L e o n Ł U ­ K A S Z E W IC Z ( r e d a k to r n a c z e ln y ), m g r i aż. A n d r z e j J . P IO T R O W S K I, d r in ż.

J a n u s z Z A L E W S K I

S T A L E W S P Ó Ł P R A C U JĄ :

M gr in ż . W ito ld A B R A M O W IC Z (S z w a j­

c a ria ), m g r in ż . R y s z a rd K . K O T T (W ie lk a B r y ta n ia ) , d r J a c e k O W C ZA R - CZY K , d r A n d rz e j S Z A Ł A S , m g r in ż.

T e re s a W IL C Z E K

P R Z E W O D N IC Z Ą C Y RA D Y P R O G R A M O W E J:; P ro f . d r h a b . T a d e u sz P E C H E

M a te ria łó w n ie z a m ó w io n y c h r e d a k c ja n ie z w ra c a

R e d a k c ja : 00-041 W a rsz a w a , u l. J a s n a 14/M, p o k . 243 i 244, te l. 27-71-40 lu b 26-82-61 W. 1*84

Z a k ł. G ra f. ,,T a m k a " . Z a m . 0438-1300/85.

O b j. 4,0 a r k . d r u k . N a k ła d 6100 egz. N-10.

IS S N ' 0542-9951, IN D E K S 36124

C ena e g z e m p la rz a zł 100,—

P r e n u m e r a ta ro c z n a zł 1200,—

3 WYDAWNICTWO G

N r

00-950 Warszawa skrytka pocztowa 1004

ul Biała 4

W NUMERZE: Strona

Kom putery SINCLAIRA — rachunki num eryczne w kodzie nowym

maszy Jerzy K arczm arczu k

Pakiet SIMIS dla MERY 403. 1

Marian Furman, Zbig niew M. Nowicki, J e r zy Solak 4 Język program owania C (3)

Julian W in iew ski 7

mikroKLAN 11

Jak rozszerzyć BASIC ZX SPECTRUM D oświadczenia z eksploatacji IMZ-80 Schem at ZX SPECTRUM

Polska Federacja K lubów Mikroinformatycznych A kadem ia m ikroKLANU (7). ACKERMAN Test num eryczny

i / - j Y

!

DYDAKTYKA j - i , »

:

* i ! ' ! I i

N auczyciel — uqzeń — i i . 1 i

m ikrokomputer > 1 i

Emanuel Czyżo i i ; j . ■. i

i i 1

i 19

SAMOTESTY i I !

: ;= ! !

,ii i ^

! . :

III/B. Metody sortowania wew nętrznego . i1 21

Z KRAJU 23

M ikrokomputery w Pałacu Młodzieży Rozproszone system y przetwarzania danych

ZE ŚWIATA 25

D yski lasesow e D yski 3M

TERMINOLOGIA 26

Problem y tworzenia term inologii

W N A JB L IŻ S Z Y C H N U M ER A C H :

• J a c e k I r l i k o k w a lif ik a c ji p r a w n e j s y s te m u k o m p u te r o w e g o

• J a n B ie le c k i o d e f in io w a n iu k o m p ila to ró w i i n s t r u k c j i s t r u k t u r a l n y c h w ję z y k u F O R T H

• Z b ig n ie w S u ra j;.o p r o b le m a c h n a u c z a n ia in f o r m a t y k i w s z k o ła c h ś r e d n ic h

• S ta n is ła w W a lig ó rs k i o ję z y k u LOGO

• W a c ła w Isz k o w s k i i P a w e ł G rz e g o rz e w ic z o s y s te m ie g e n e r o w a n ia sy s te m ó w o p e ­ r a c y j n y c h LO G O S

• P e t e r B ro c z k o o p r o d u k c ji m ik r o k o m p u te r ó w w k r a j a c h R W PG

• C e z a ry S tę p ie ń i J a r o s ła w S z y rk o w ie c o w ie lo p o z io m o w y m s y s te m ie o p r o g ra m o w a ­ n ia p a m ię c i k a s e to w y c h P K -1

■ ' r ł'

.!£ V ‘ "

(3)

JER ZY K A R C Z M A R C Z U K

“’' A

Instytut Fizyki

Uniwersytet JagiellońSi

i S

Kom putery S I N C L A I R A

— rachunki numeryczne w kodzie m aszynow ym

W przypadku skom plikow anych problemów, dla których czas ooliczeń jest param etrem krytycznym , mikrokomputery ZX81 i ZX SPECTRUM nie są zbyt użyteczne, jednak nawet m ały ZX81 może być niekiedy przyzwoitym narzę­

dziem obliczeniowym , np. dla fizyka — jeśli om inie się czasową nieefektyw ność BASICA i skorzysta bezpośrednio z w budowanych procedur arytm etycznych. Artykuł ten jest przeznaczony dla użytkowników ZX81 i ZX SPECTRUM, którzy usiłują w ykorzystać je do celów profesjonalnycn i zależy im na przyspieszeniu obliczeń.

PROGRAMOWANIE W KODZIE MASZYNOWYM

Pisanie dużych programów w yłącznie w kodzie m aszyno­

w ym jest kłopotliw e i nieopłacalne, gdyż strata ludzkiego czasu może znacznie przewyższyć oszczędność czasu m aszy­

ny Takie czynności, jak w prowadzanie i drukowanie danych, rezerwacja m iejsca na tablice liczbow e itp. — najlepiej w y ­ konywać m etodą najprostszą, tj. w BASICU, co ma doJat- Kową zaletę łatw ego przerywania programu. Nieopłacalna jest konw ersja na kod tych fragm entów programu, które stanow ią jedno (naw et duże) w yrażenie arytm etyczne za­

w ierające dużo stałych liczbowych. Stałe liczbow e w pro­

gram ie są kom pilow ane przez BASIC SINCLAIRA w m o­

m encie wprowadzania programu. Operowanie stałym i licz­

bowym i w kodzie nie jest najw ygodniejsze i zabiei-a sporo czasu.

N ajw iększy zysk czasowy jest zw iązany z m ożliwością w ykonyw ania w kodzie szybkich operacji na m ałych lic z­

bach całkow itych, m ieszczących się w sprzętowych reje­

strach Z80, a także — z m ożliwością om inięcia organiza­

cyjnych nieefektyw ności BASICU, tj. liniowego przeszuki­

w ania obszaru zm iennych przy każdym odwołaniu się do zm iennej oraz liniow ego przeszukiwania programu przy każ­

dym skoku GOTO, GOSUB czy NEXT.

Program owanie obliczeń w arytm etyce zm iennopozycyjnej w kodzie na ZX81I i ZX SPECTRUM (w tym zakresie oba komputery są praw ie identycznie oprogramowane) jest złożone, ale nie jest trudne i m oże być ciekawe. Ponie­

waż interpreter BASICA, oprócz operacji jaw nie nakaza­

nych przez program, w ykonuje szereg obliczeń w ew nętrz­

nych; np. w yw ołanie RND uruchamia podprogram realizu­

jący algorytm:

SEED : = ((SEED + 1) * 75) m o d G3537 — 1 RND : = SEED/63536

— projektanci oprogramowania ZX, aby ułatw ić sobie pracę, w budow ali w interpreter niejako m aszynę w maszynie. Jest to w irtualny „kalkulator” ze stosem , m ający w łasny język z rozkazami w ykonującym i operacje arytm etyczne (w yw o­

łujące funkcje wbudowane), ale także rozkazy skoków i rozkazy ułatw iające konstrukcję w łasnych funkcji zada­

nych przez przybliżenia wielom ianow e.

Kalkulator operuje na kilku specyficznych strukturach da­

nych, w ym ienionych poniżej.

• Stos kalkulatora. Jego adres początkowy m ieści się w zmiennej system ow ej STKBOT, a koniec, tj. adres pierw­

szej wolnej komórki nad stosem — w zmiennej STKEND.

Stos ten jest zorganizowany jako zw iększająca się w górę przestrzeni adresowej tablica 5-bajtow ych elem entów zaw ie­

rających liczby zm iennopozycyjne lub deskryptory ciągów znaków (napisów, ang. string). Format liczb zm iennopozy­

cyjnych jest podawany w podręcznikach, warto jednak przypomnieć, że pierwszy bajt zaw iera cechę przesuniętą o 128, tj. dla cechy równej 128, wartość liczby pokrywa się z wartością m antysy mieszczącej się w czterech dalszych bajtach i ograniczonej do zakresu [1/2, 1] dla liczb dodat­

nich. Pierw szy bit znorm alizowanej m antysy jest z definicji równy 1. W form acie przyjętym m.in. przez Sinclaira, bit ten jest w ykorzystany do pam iętania znaku liczby — jeśli wynosi 0, liczba jest dodatnia (oczywiście podczas w ykony­

wania operacji bit ten jest w staw iany), jeśli zaś 1, to liczba jest ujemna. Deskryptor napisu ma następujący format:

pierwszy bajt informuje, czy jest to napis prosty czy tabli­

ca, dwa następne zawierają adres początku napisu (lub odpowiedniego fragm entu), dwa ostatnie — długość.

© System ow a tablica stałych: 0, 1, 1/2, PI/2 oraz 10. Adres tej tablicy w ZX81 jest równy 1915, a w SPECTRUM — 32c5 (adresy i w szystkie liczby będą dalej podawane w kodzie szesnastkowym , chyba że zostanie zaznaczone ina­

czej). Format liczb w tej tablicy, a także w innych stałych, o których będzie m owa, jest niestandardowy!

• Tablica pomocnicza. Jej adres początkowy jest zawarty w zmiennej system ow ej MEM. W w iększości w ypadków za­

w artość MEM pokrywa się z adresem MEMBOT — 30-bito- wej tablicy system ow ej, jednak użytkownik może przypisać zm iennej MEM adres w łasnej tablicy, np. tablicy utworzonej przez program w BASICU, zapew niając w ten sposób ko­

m unikację między kalkulatorem a programem w BASICU.

• Stale liczbowe. Są one um ieszczone w ew nątrz programu kalkulatora, np. jako współczynniki w ielom ianów.

® Zmienna system ow a BREG (oznaczana też BERG). Jest w ykorzystyw ana jako pomocniczy rejestr do konstrukcji pętli w kodzie kalkulatora.

Kalkulator uruchamia się rozkazem procesora Z80, RST 28 (kod EF), który przekazuje sterow anie głównej pętli k al­

kulatora m ieszczącej się pod adresem 199D (ZX81) oraz 335B (SPECTRUM). Przed w yw ołaniem kalkulatora zaleca się przechowanie zawartości rejestru HL’ i odtworzenie go przed powrotem do BASICA. N ależy rów nież odtworzyć poprzed­

nie wartości w przypadku przedefiniowania adresu stosu lub wartości MEM.

Po rozkazie RST 28 pisze się rozkazy w kodzie kalku­

latora. N ie są one rozpoznawane przez asembler Z80, w ięc trzeba je wprowadzić num erycznie. Interpreter BASICA dość intensyw nie w ykorzystuje podprogramy kalkulatora, co powoduje, że m echaniczna deasemblacja pamięci ROM przez nieśw iadom ych program istów dostarcza niekiedy w y ­ druków bez sensu. Powrót do norm alnego trybu, tj. kodu Z80. następuje po rozkazie kalkulatora ENDC (kod 34 dla

1

(4)

ZX81, 38 dla SPECTRUM). Kody kalkulatora są 1-bajtowe, nie licząc przesunięć dotyczących rozkazów skoku oraz w bu­

dowanych w program stałych liczbowych i są traktowane (po ew entualnym przetworzeniu) jako indeksy w tablicy procedur wykonawczych. Adres tej tablicy w ynosi 1923 (ZX81) i 32D7 (SPECTRUM).

Nieco inna m nemonika niż użyta w tym artykule, w ystę­

puje w książkach lana Logana pt. ZX81 i ZX SPECTRUM ROM Disassem bly, w ydaw anych od 1981 roku przez M el­

bourne House.

Przez WW oznaczono liczbę lub deskryptor napisu znaj­

dujący się na szczycie stosu (o adresie równym wartości STKEND-5), a przez DD — elem ent stosu leżący pod WW.

Dla operacji dw uargum entow ych (o kodach 00-17) DD i WW są traktowane jako argum enty, a wynik jest wpisyw-m y jako now e WW w miejscu poprzedniego DD, ze zm niejsze­

niem STKEND o 5. Rozkazy o kodach w iększych niż 17 są jednoargum entow e i w ym ieniają poprzednie WW na nowe nie zm ieniając w artości STKEND, względnie dokładają na stos nową liczbę z tablicy stałych, z programu lub z tabli­

cy MEM.

KOD ZX81 SPECTRUM Opis dla SEPCTRUM!

sk o k w z g lę d n y w a r u n k o w y , je ś li W W # 3

z a m ia n a w a rto ś c i WW z DD u s u n ię c ia W W ; p o p rz e d n ie DD s ta je się WW

o d e jm o w a n ie W W od DD m n o ż e n ie DD p rz e z WW d z ie le n ie DD p rz e z WW p o d n o sz e n ie DD do p o tę g i WW lo g ic z n e „ lu b ” ; w y n ik je s t r ó w ­ n y 1, o ile W W # , w p rz e c iw n y m w y p a d k u — DD

lo g iczn e „ i ” d la liczb

DD m n ie jsz e lu b r ó w n e WW lic z ­ bow o? W y n ik je s t r ó w n y 1 je śli p r a w d a , w p r z e c iw n y m w y p a d ­ k u 0

DD w ię k sz e lu b ró w n e W W ? DD n ie ró w n e W W ?

DD w ię k sz e od W W ? DD m n ie js z e od W W?

DD ró w n e W W?

d odaw ’a n ie liczb DD i WW lo g ic z n e „ i ” ; w y n ik ie m je s t n a ­ p is w DD je ś li lic z b a WW=£0, w p rz e c iw n y m wry p a d k u — p u s ty N a p isy w’ DD i W W są r ó w n e lu b DD p o p rz e d z a le k s y k a ln ie WW jw ., lecz DD n a s tę p u je po WW N a p isy wr DD i W W są ró ż n e ? W y n ik je s t r ó w n y 1 lu b 0 DD le k s y k a ln ie n a s tę p u je po WW DD le k s y k a ln ie p o p rz e d z a WW czy DD i W W są id e n ty c z n y m i n a p is a m i?

k o n k a te n a c ja n a p is ó w — WW d o ­ łą c z a się do DD

w y w o ła n ie f u n k c ji w b u d o w a n e j jw ., w y w o ła n ie U SR z a r g u m e n ­ te m z n a k o w y m (do UDG) c z y ta n ie z n a k u z ró ż n y c h s t r u ­ m ie n i

LEN NEG z m ia n a z n a k u lic z b y n a sto sie S IN COD E w y w o ła n ie f u n k c ji w b u d o w a n e j

COS V A L jw .

T A N LEN jw .

A SN S IN jw .

ACS COS jw .

A T N T A N jw .

L N A SN jw .

E X P A CS jw .

IN T A T N jw .

SQ R L N jw .

S G N E X P jW.

A BS IN T jw .

P E E K SQ R jw .

USR S G N jw .

STR $ A BS jw .

CHRS P E E K jw .

NOT IN jw .

00 JR T R JR T R

Cl E X C II E X C II

02 DELE DELE

f 3

_ _

02 *

05 / /

C6 ł i

07 OR OR

P8 N&N N&N

09 N < = N N < = N

0A N > = N N > - N

OB N O N N O N

OC N > N N > N

CD N < N N < N

0E N - N N - N

0F N + N N + N

10 S&N S&N

11 S < = S S < = S

12

s>=s

S > = S

13

s o s s o s

14

s>s s>s

15

s<s s<s

16

s - s s=s

17

s+s s+s

18 NEG W AL$

19 CODE USRS

1A VAL R D IN

IB 1C II) 1E 1F 20

21

22

¿3 24 25 26 27 28 29 2 A 2B 2C

2D D U P L U SRN w y w o ła n ie U SR z a r g u m e n te m

lic z b o w y m

2E MODQ STR$ w y w o ła n ie f u n k c ji w b u d o w a n e j

2F JU M P CHR$ jw .

30 LDD NOT jw .

31 D JN Z D U P L p o w ie le n ie WW i p o ło ż e n ie n a

stosj ja k o n o w e WW

32 0 MODQ d z ie le n ie c a łk o w ite DD p rz e z W W ;

w y n ik j e s t u m ie sz c z o n y w W W, a r e s z ta wr DD

33 0 JU M P b e z w a ru n k o w y sk o k w z g lę d n y

34 ENDC LDD z a ła d o w a n ie n a sto s s ta łe j u ż y t­

k o w n ik a

33 TRIG D JN Z z m n ie jsz e n ie BRG o 1 i s k o k ,

je ś li BREG=£0

36 T R U N 0 je d n o a r g u m e n to w e p o r ó w n a n ie :

czy W W j e s t m n ie js z e od 0?

37 O PER 0 WW w ię k s z e od z e ra ?

38 EFM T ENDC r o z k a z k o ń c z ą c y s e k w e n c ję k o d u k a lk u la to r a

33 S E R I TRIG p r z y g o to w a n ie a r g u m e n tu d la

f u n k c ji S IN i COS

3 A LDC T R U N o b c ię c ie W W do n a jb liż s z e j lic z b y c a łk o w ite j

3B STM OPER* * d y n a m ic z n a o p e r a c ja , k o d p r z e ­ k a z a n y w r e je s tr z e B

3C LDM EFM T k o n w e r s ja z f o r m a tu x E m

3D IFM T k o n w e r s ja z f o r m a tu c a łk o w ite g o

3E* S E R I o b lic z e n ie su m y r o z w in ię c ia Cze-

b y sz e w a

3F LDC ła d o w a n ie n a sto s s ta łe j s y s te ­

m o w e j

40 STM p rz e s ła n ie WW do ta b lic y MEM

41 LDM ła d o w a n ie n a sto s d a n e j z MEM

PRZYKŁADOWE PROGRAMY

Przedstawiam tu przykład prostego programu obliczają­

cego pierwiastek kwadratowy m etodą Newtona. Metoda ta jest znacznie szybsza niż używana przez funkcję SQR, gdzie x = j/y oblicza się jako x = e x p (l/2ł In(ny)). Podane kody dotyczą SPECTRUM. Aby przystosować ten fragm ent pro­

gramu do ZX81 w ystarczy zmienić kody rozkazów DUPL, NOT, JUMP i ENDC. Założono, że w artość y jest um iesz­

czona w pierwszym elem encie tablicy MEM, a w ynik — w drugim.

R o z k a z K o d

R ST 28 E F w y w o ł a n i e k a l k u l a t o r a LDC 1 A l p o c z ą t k o w a w a r t o ś ć x : 1

D U P L 31 n a s t o s i e : x , x

D U P L 31 X, X, X

LDM 0 E0 x , x , x , y

EX CH 01 • x , x , y , x

/ 05 x , x , y / x

N + N 0F x , x + y / x

LDC 2 A2 x x - f y / x , l / 2

* 04 x , ( x + y /x ) / 2

STM 1 C l p r z e s ł a n i e w y n i k u d o MEM

03 x — ( x + y / x ) / 2

NOT 30 j e ś l i w y n i k z e r o w y : W W : = 1

JR T R k o n 00 04 s k o ń c z i z a k o ń c z o b l i c z e n i a LDM 1 E l w p r z e c i w n y m w y p a d k u p o b i e r z

n o w e x

JU M P e t 2F F I i k o n ty n u u j ite r a c ję

ENDC 38 k o n ie c p r a c y k a lk u la to r a

k o n

Program w raz ze w stępem i zakończeniem, których celem było przekazanie danych z programu i do programu w BASICU, w ykonyw ał się tysiąc razy w pętli na SPECTRUM przez ok. 50 sekund. D la porównania, pętla w yw ołująca SQR trwa 114 sekund, a tak samo zorganizowana pętla ,.pusta”, zaw ierająca w yw ołanie nie w ykonujące żadnego podprogramu — 14 sekund. Oszczędność byłaby jeszcze większa, gdyby zam iast dzielić przez dwa w kodzie kalku­

latora, po prostu zm niejszyć w ykładnik liczby o 1 w ko­

dzie ¿80.

Tablica rozkazów kalkulatora oraz przykład w ym agają dokładniejszego komentarza.

2

(5)

Skok pusty jest to skok 7. przesunięciem 1, a nie 0, jak dla kodu Z80! Rozkaz JRTR usuwa WW ze stosu, a JUMP i DJNZ nie naruszają stosu.

Rozkazy SERI, LDC, STM i LDM w rzeczyw istości są kodowane inaczej niż podano w tabeli, której kody stanow ią bezpośrednie indeksy tablicy adresów. W 1-bajtowy kod rozkazu wbudowany jest parametr, np. dla obu komputerów rozkazy SERI m ają kody 86, 88 i 8C (takich używ a inter­

preter BASIC 4.), odpowiadające wielom ianom 6, 8 i 12 stop­

nia. Użytkownik może skonstruować w łasne rozkazy SERI — do 32 stopnia. Rozkazy LDC w ystępujące w przykładzie, o kodach AO, A1,...,A4, ładują na stos odpowiednio: 0, 1, 1/2, PI/2 oraz 10 (dziesiętnie). Rozkazy STM m ają kody CO, C l itd., a LDM — kody E0, E l itd. Maksym alny rozmiar tabli­

cy MEM w ynosi 32. W przypadku w iększych tablic należy podczas pracy z kalkulatorem przesuwać zawartość MEM.

Rozkaz DJNZ jest analogiczny do odpowiedniego rozkazu m ikroprocesora Z80. Jako rejestr sterujący pętlą w ykorzy­

styw ana jest zmienna BREG, do której w m om encie w yw o­

łania kalkulator kopiuje zawartość rejestru B. Jeśli ch ce­

my, aby kalkulator n ie zm ieniał wartości BREG, należy go w yw ołać przez CALL 19A4 dla ZX81 lub CALL 3362 dla SPECTRUM, zam iast przez RST 28.

Program kalkulatora można zakończyć rozkazem ENDC, w ykonać fragm ent programu w kodzie Z80 i wrócić do kal­

kulatora nie tracąc zawartości stosu ani tablicy MEM.

Takie rozłączne fragm enty kodu kalkulatora mogą kom uni­

kować się przez skoki; byle tylko w skutek błędu nie w yko­

nać skoku do kodu Z80.

Rozkaz OPER jest często w ykorzystyw any przez in ter­

preter BASICA. Pozw ala on w ykonać operację, której kod jest dynam icznie przekazany kalkulatorow i przez rejestr B.

Rozkaz IFMT dla SPECTRUM dokonuje konw ersji WW z dopuszczalnego na tym komputerze form atu całkowitego na zm iennopozycyjny.

Rozkaz EFMT służy do wprowadzania liczb w form acie z potęgą dziesiątki, znanym z FORTRANU jako form at E.

Fragm ent zapisu liczby przed literą E znajduje się na stosie, a potęga dziesiątki — w rejestrze A. Tę operację można wykorzystać do m nożenia liczb przez potęgę dziesiątki.

Rozkaz TRIG zm ienia argum ent na n iew ielką liczbę, dla której w ielom ianow e rozw inięcie funkcji trygonom etrycz­

nych jest już w m iarę dokładne.

Program w kodzie kalkulatora m oże zaw ierać w budowane stałe liczbowe. Rozkaz LDD powoduje, że następujący po nim ciąg bajtów jest traktowany jako stała liczbowa w sp e­

cjalnym , skondensow anym t e m a c ie . Jeżeli NO, NI, itd. — oznacza kolejne bajty po rozkazie LDD, to zapis NO div 40+ 1 wyznacza, ile następnych bajtów (od 1 do 4) należy do stałej. Te bajty tworzą m antysę liczby, ew entualnie uzu­

pełnioną zeram i z prawej strony, a w ykładnik jest dany przez NO mod 40+50, o ile NO mod 40 jest różne od zera.

W przeciwnym wypadku w ykładnikiem jest N l+ 5 0 . Należy pamiętać, że jest to w ykładnik przesunięty. Tak w ięc dla ZX81 skondensowana postać liczby dziesięć jest równa 34 20.

Jako przykład zapiszmy fragm ent programu obliczającego wartość funkcji Gamma Eulera p x + l ) dla x od 0 do 1 przez przybliżenie w ielom ianem piątego stopnia (schematem Hornera). Wartość x jest podana w komórce MEM 0, a w y ­ nik —• udostępniany w MEM 1.

Rozkaz Kod dla SPECTRUM LD B,05 06 05

R E S T 28 E F

LD C 1 A l J e d y n k a : z e ro w y w y ra z

LDD 34 F0 93 2A 53 9« —0.5748646

LDD 34 F0 73 84 38 DE 0.9512383

LDD 34 F0 B3 29 F 2 42 —0.6998588

LDD 34 E F 59 5F 42 85 0.4243549

LDD 34 ED CE FC A2 7C —0.1010678

LD M 0 E9 w a r to ś ć z m ie n n e j

* 04

N + N 0F

D JN Z e t 35 FC 5 p r z e b ie g ó w p ę tli

S TM 1 C l

ENDC 38

Użycie kalkulatora w yłącznie w celu obliczenia w artości takiego w yrażenia nie jest opłacalne, naw et jeśli będzie ono obliczane w iele razy, gdyż zysk czasowy (dzięki om inięciu analizatora w yrażeń w BASICU) jest zredukowany przez przetwarzanie skondensowanych stałych. W ygodniejsze dla człow ieka i nieco szybsze dla m aszyny będzie przekazanie stałych w tablicy MEM.

W obliczeniach funkcji elem entarnych wbudowanych w BASIC n ie korzysta się z rozw inięć Taylora, lecz z rozwinięć na w ielom iany Czebysżewa. Sum ow anie tych rozwinięć w y ­ konuje się rozkazami SERI, Za rozkazem SERI znajduje się odpowiednia liczba stałych w form acie skondensow a­

nym , traktowanych jako w spółczynniki rozwinięcia. A r­

gum ent rozw inięcia znajduje się na stosie. Zagadnienie kon­

strukcji rozwinięć na w ielom iany C zebyszewa jest jednak zbyt skom plikowane, aby je szczegółowo w yjaśnić w tym artykule.

Jak przekazywać kalkulatorowi dane z programu w BASICU i jak odbierać w yniki? Operowanie m ałym i licz­

bami całkow itym i jest niew ygodne, lecz proste, gdyż można użyć instrukcji POKE w pisania do określonej komórki lub RANDOMIZE — um ieszczającej w artość argum entu w SEED. Podprogram w kodzie może tę liczbę pobrać do rejestru BC i w yw ołać procedurę o adresie 1520 (ZX81) w zględnie 2D2B (SPECTRUM), która umieszcza wartość BC na stosie w form acie zm iennopozycyjnym . Odwrotną opera­

cją, tj. przesłanie WW do BC, w ykonuje procedura o adresie 158A (ZX81) lub 2DA2 (SPECTRUM). N ależy przypomnieć, że USR udostępnia program owi w BASICU w artość re­

jestru BC.

Przesłanie liczb zm iennopozycyjnych jest bardziej skom ­ plikowane. Jeden sposób polega na przekazaniu progra­

m owi w kodzie m aszynow ym nazw y tablicy (razem z na­

w iasem otwierającym ), którą można przygotować gdzie­

k olw iek w pam ięci (chodzi o nazw ę nie o tablicę). Adres nazw y należy um ieścić w zm iennej system ow ej CELADD i w yw ołać procedurę o adresie H IC (ZX81) lub 28B2 (SPEC­

TRUM), która w rejestrze HL dostarczy adresu, pod którym um ieszczony jest ostatni (dla tablic — jedyny) znak nazw y zm iennej w obszarze zm iennych. Następnie należy ominąć nagłów ek zaw ierający inform ację o w ym iarach tablicy i odpowiedni adres początku danych przekazać do MEM.

Prostszym sposobem jest w ykorzystanie zm iennej system o­

wej DEST. Przykładowo — jeżeli tablica M zawiera in te­

resujące nas dane, to w yw ołanie podprogramu w kodzie przez instrukcję:

L E T M (1) - U SR ...

spowoduje, że do zm iennej DEST interpreter instrukcji LET przekaże adres o 1 m niejszy niż adres M (l) i w tedy dopiero nastąpi w yw ołanie USR. Dalsze działanie przebiega podob­

nie jak w m etodzie pierwszej, przy czym dla tablic zna­

kowych obowiązuje nieco inna konwencja.

SPECTRUM ma jeszcze jedną m etodę, w ygodną przy d e­

finiow aniu w łasnych funkcji w kodzie, które można n a­

stępnie w yw ołać przez FN. Jeśli zdefiniujem y np.

D E F F N 1 (X) = U SR ...

to w m om encie wprowadzania tej definicji interpreter za­

rezerwuje w programie za literą x m iejsce na w artość argumentu — 5 bajtów poprzedzone bajtem znacznika, identycznym jak dla w szystkich stałych liczbowych w pro­

gramie. W m om encie w yw ołania FN f, zm ienna system ow a DEFADD będzie zawierać adres litery x , o 2 m niejszy niż adres wartości argum entu. Wartość tę m ożna pobrać, można rów nież zm ienić i przekazać z powrotem przy użyciu niezbyt czystego chwytu:

D E F F N f (X) - U SR (...) + X

Podprogram w kodzie pobiera argument, oblicza w ynik, um ieszcza w m iejsce argum entu, a przed powrotem do BASICA zeruje rejestr BC. Interpreter „nie zauw aży”, że do zera doda już zupełnie inną w artość x. Oczywiście, to x nie ma nic wspólnego z ew entualną zm ienną x.

» *

Podana inform acja o kalkulatorze ZX jest z konieczności w yryw kow a i bardzo skondensowana. N ie są to gotowe przepisy, lecz raczej m ateriał do dalszej samodzielnej pracy.

Jej w yniki mogą się jednak bardzo opłacić. Zainteresow a­

nych Czytelników proszę o listy (ul. Łokietka 19/90; 30-016 Kraków).

(6)

M A R IA N F U R M A N Z B IG N I E W M. N O W I C K I JER Z Y S O L A K

instytut Informacji Naukowej, Technicznej i Ekonomicznej W arszaw a

Celem artykułu jest przedstaw ienie m ożliwości pakietu SIMIS dla m inikom putera MERA 400. Pakiet ten został o- pracowany w Instytucie INTE w W arszawie i stanow i kon­

tynuację w cześniej zrealizowanych w Instytucie przez ten sam zespół pakietów SIM-400 [4], SIM-400 M [1] i SIM - -400 R 1.3]. Ze względu na sw ą uniwersalność pakiety te znalazły szerokie zastosow anie wśród użytkow ników m a­

szyn MERA 400 przy realizacji system ów w yszukiwania in ­ formacji. Ze wzglądu na istniejące ograniczenia w zakresie pojem ności pamięci przyjęto w nich prostą strukturę zbio­

rów danych o dostępie sekw encyjnym . D zięki tem u pakie­

ty serii SIM-400 można było z powodzeniem w ykorzystyw ać do tworzenia i przetwarzania zbiorów danych o niezbyt w ielkich rozmiarach (rzędu kilku tysięcy dokumentów). Ko­

lejne pakiety tej serii były tworzone jako rozszerzenia m o­

żliw ości w ersji poprzednich. I tak, SJM-400 M dzięki wpro­

wadzeniu pól num erycznych pozw alał łączyć funkcje in - form acyjno-w yszukiw aw cze SIM-400 z funkcjam i typow y­

mi dla system ów przetwarzania danych, natom iast SIM - -400 R rozw ijał m ożliwości w yszukiw aw cze swoich poprzed­

ników, poprzez stworzenie m ożliwości badania relacji i od­

w oływ ania się do w yników w yszukiwania przy w ykonyw a­

niu innych operacji. W skład pakietu SIM-400 R wchodzi konwersacyjny m oduł wyszukiwania, natom iast w szystkie pozostałe funkcje są realizow ane w sposób wsadow y.

P akiet SIMIS zachowuje w szystkie m ożliwości SIM-400 R, najbardziej rozwiniętego pakietu serii SIM-400. Aparat w y ­ szukiw awczy pakietu SIMIS został wzbogacony o m ożliw o­

ści równoczesnego odw oływania się w zapytaniu w yszuki­

w aw czym do dwóch zbiorów danych. Stw arza to jakościo­

wo now e m ożliwości, m iędzy innym i um ożliw ia prostą re­

alizację operacji typowych dla system ów zarządzania rela­

cyjnym i bazami danych takich, jak selekcja, projekcja i złą­

czenie. Ponadto SIMIS został wyposażony w elastyczny aparat operowania w ielom a zbiorami danych, identyfiko­

w anym i poprzez nazw y. M ożliwości te oraz przeniesiony z poprzednich pakietów tej serii aparat obsługi zapytań przed­

staw ionych jako złożone w yrażenia logiczne sprawiają, że SIMIS łączy w sobie cechy w łaściw e typow ym system om inform acyjno-wyszukiw aw czym oraz system om zarządza­

nia bazami danych.

OGÓLNA CHARAKTERYSTYKA PAKIETU

Baza danych SIMIS składa się ze zbiorów danych ozna­

czonych unikalnym i nazwami. Zbiór danych obejm uje do­

kum enty jednego rodzaju. Każdy dokument podzielony jest na pola opatrzone unikalnym i (w skali danego zbioru) ety ­ kietam i. W szystkie dokumenty wchodzące w skład jednego zbioru m ają taką sam strukturę. Strukturę dokumentu d e­

finiuje się w trakcie zakładania bazy danych, określając liczbę pól, ich etykiety oraz typy. Dopuszczalne są pola dwóch typów:

— znakowe, które mogą zawierać dowolne ciągi znaków,

— liczbowe, z których każde zawiera pojedynczą liczbę.

D ługość dokumentu nie jest stała i zależy od jego zawar­

tości.

P akiet SIMIS został zrealizowany jako zespół w spółpra­

cujących ze sobą m odułów programowych. Przeznaczenie poszczególnych m odułów jest następujące:

EDYTOR — zakładanie zbiorów danych i ich aktualizacja, SCALAJ — łączenie w jeden zbiór dwóch posortowanych zbiorów o podanej strukturze dokumentów,

SŁOWNIK — sporządzenie alfabetycznego wykazu słów w y ­ stępujących w e w skazanych polach dokumentów,

INDEKS — sporządzanie alfabetycznego w ykazu deskryp- torów użytych do opisu dokumentów; z każdym deskrypto- rem jest powiązana lista num erów odpowiednich dokum en­

tów,

OBLICZ — w ykonyw anie operacji arytm etycznych na po­

lach liczbow ych dokumentów,

SIMIS — w yszukiw anie oraz przeglądanie, drukowanie i sortowanie zbiorów.

Pierw sze pięć m odułów służy do w sadow ego przetwarza­

nia zbiorów danych. Ich funkcje oraz sposób sterowania w znacznej m ierze są takie sam e jak w przypadku noszących identyczne nazw y m odułów pakietu SIM-400 R. N ow e fun­

kcje pakietu zostały zgrupowane w m odule SIMIS, który realizuje przetwarzanie danych w trybie konwersacyjnym . Wybór trybu pracy m odułów był podyktow any charakte­

rem realizowanych przez n ie funkcji. Moduły realizujące funkcje w ykonyw ane stosunkowo rzadko oraz takie, które nie wym agają bezpośredniego udziału użytkow nika, zostały zrealizowane w postaci w sadow ej. W m odule konw ersacyj­

nym skupiono natom iast funkcje w ykon yw ane często i te, w których w skazany jest bezpośredni udział użytkownika.

Rezultatem w yszukiw ania realizowanego w m odule SIMIS jest utw orzenie nowego zbioru dokumentów. Nazwę i strukturę tego zbioru, jak rów nież jeden bądź dwa zbio­

ry w ejściow e oraz w arunek w yszukiw aw czy, określa użyt­

kownik w trakcie form ułow ania zlecenia w yszukiw aw cze­

go. Zbiór w yszukanych dokum entów można wyprowadzić na konsolę użytkownika. Podczas przeglądania tego zbioru można ręcznie w skazyw ać te dokumenty, które zostaną przeniesione do innego, now o tworzonego zbioru. Pozwala to w trakcie przeglądania realizow ać w yszukiw anie według kryterium, którego nie można sform alizow ać jako warunku wyszukiw aw czego. Zbiory w yszukanych dokum entów są zbiorami roboczymi, co oznacza iż z chw ilą zakończenia seansu przestają one być dostępne dla użytkow nika. Zbio­

ry te można „utrwalić” za pomocą odpowiedniej dyrekty­

w y, co zapew nia ich późniejsze przetwarzanie. Przykładem pomocniczych funkcji modułu SIMIS jest tworzenie zbio­

rów trw ałych oraz inform ow anie o zbiorach dostępnych i o strukturze dokum entów w skazanego zbioru.

Z punktu widzenia użytkow nika najbardziej istotną funk­

cją pakietu SIMIS pest w yszukiwanie, które w ym aga bliż­

szego om ówienia.

MOŻLIWOŚCI WYSZUKIWAWCZE PAKIETU

W celu zlecenia operacji w yszukiwaw czej użytkownik wprowadza komendę UTWÓRZ. Przed przystąpieniem do w yszukiw ania system żąda od użytkow nika podania n ie­

zbędnych danych w ejściow ych, mianowcie:

— określenie zbiorów w ejściow ych — należy podać nazwy jednego lub dwóch zbiorów podlegających przeszukiwaniu;

— określenia zbioru w ynikow ego — należy podać nazwę zbioru roboczego, w którym zostaną umieszczone w yszuka­

n e dokumenty, a także strukturę dokum entów tego zbio­

ru (liczbę pól oraz ich etykiety i typy) oraz sposób ich tw o­

rzenia. D okum ent w ynikow y jest budowany z pól doku­

(7)

m entu w ejściowego (dokumentów w ejściowych). Definiując pole dokumentu w ynikow ego użytkownik wskazuje jedno­

cześnie to pole w ejściow e, którego zaw artość zostanie doń przeniesiona;

— zapytania w yszukiwaw czego — ma ono postać wyrażenia logicznego zbudowanego z relacji (operandów), operatorów logicznych (AND &, OR 4r, NOT ) oraz naw iasów . Każda z relacji zbudowana jest z etyk iety pola w ejściowego, ope­

ratora relacji i wzorca. Dozwolone są operatory standardo­

w ych relacji równości, m niejszości i w iększości oraz relacji złożonych z w ym ienionych relacji prostych (np. > = ) . Dla w ygody użytkow nika przyjęto, że relacje złożone mogą być oznaczane za pomocą jednego z dwóch równoważnych ope­

ratorów, i tak > = oraz > = oznaczają tę samą relację. Do­

puszcza się użycie relacji występow ania, oznaczanej opera­

torem — ?. R elacja ta jest spełniona wówczas, gdy w e w ska­

zanym polu w ystępuje ciąg znaków pokrywający się z za­

danym wzorcem i rozpoczynający się od początku sło w a J).

U życie tej relacji pozwala zatem na w yszukiw anie (z m as­

kowaniem sym boli z prawej strony). W szystkie w ym ienione w cześniej relacje dotyczą pełnej zawartości wskazanego pola.

W relacji jako wzorzec może zostać użyta etykieta pola w ejściow ego albo stała. Stałe znakowe ogranicza się sym ­ bolami gwiazdki. Interpretacja relacji zależy od typu ba­

danego pola i wzorca. Jeśli pole i wzorzec są typu liczbo­

wego, relacja ma sens arytm etyczny. Gdy natom iast bada się pole znakowe, to relacja ma sens leksykograficzny. O- czywiście, relacji w ystępow ania można użyć jedynie w od­

niesieniu do pola znakowego.

Sposób w ykonania operacji w yszukiwania zależy od tego czy w skazano jeden czy dwa zbiory w ejściow e. Jeśli w ska­

zano jeden taki zbiór, to zadany w arunek bada się kolejno dla poszczególnych dokum entów tego zbioru i na podsta­

w ie każdego dokumentu spełniającego to kryterium tworzy się jeden dokument w ynikow y. Gdy natom iast wskazano dw a zbiory w ejściow e, w arunek bada się dla w szystkich par dokum entów w ejściow ych, pochodzących z Tóżnych zbiorów, i dla każdej pary spełniającej ten warunek tw o­

rzy się jeden dokument w ynikow y. Jeśli zatem w skazano dw a zbiory w ejściow e, to liczebność zbioru w ynikow ego może osiągnąć w artość rów ną iloczynow i liczebności zbiorów w ejściow ych. W zbiorze w ynikow ym mogą w ystąpić powtó­

rzenia dokumentów. Po przejrzeniu w szystkich dokumentów w ejściowych zbiór w ynikow ych dokum entów jest poddawa­

ny operacji elim inacji powtórzeń. Na zakończenie użytkow ­ nik jest inform owany o liczebności utworzonego zbioru w y ­ nikowego.

TRASY

ID T R A S — i d e n t y f ik a to r t r a s y

T R A S A — lis ta o d w ie d z a n y c h m ie jsc o w o śc i T R A N S — ś r o d e k t r a n s p o r t u

O P IS — s k r ó to w y o p is w y c ie c z k i, z a w ie r a ją c y m .in . o k r e ś le n ie c e lu , p r o p o n o w a n e r o z ­ r y w k i, z a ję c ia s p o r to w e ltp .

CEN A — b a z o w a c e n a w y c ie c z k i (p o le n u m e r y c z ­ ne)

WYCIECZKI

ID W Y C — i d e n t y f ik a to r w y c ie c z k i

ID T R A S — i d e n t y f ik a to r t r a s y (w s k a z u ją c y o d p o ­ w ie d n i r e k o r d w z b io rz e T R A SY ) D A T W Y J — d a t a w y ja z d u

D A TPO W — d a t a p o w r o tu

U L G A — z n iż k a w z g lą d e m c e n y b a z o w e j (p o le n u ­ m e ry c z n e )

KLIENCI

N A Z W — n a z w is k o 1 im ię k lie n ta A D R E S — p e łn y a d r e s k lie n ta

ID W Y C — i d e n t y f ik a to r w y c ie c z k i, w s k a z u ją c y o d ­ p o w ie d n i r e k o r d w z b io rz e W Y C IE C Z K I R y s. 1. P rz y k ła d o w a b a z a d a n y c h

>) S ło w o d e f in iu je się ja k o c ią g z n a k ó w z ło ż o n y z l i t e r 1 c y f r.

O g r a n ic z n ik a m i słó w są z a te m sy m b o le s p e c ja ln e , w t y m s p a c ja . D la u m o ż liw ie n ia w y s z u k iw a n ia f r a z z b u d o w a n y c h z k i l k u słó w , d e f i n i u je się s p e c ja ln y t y p p o la , n a z y w a n y p o le m d e s k ry p to r o w y m . W ta k im p o lu o g r a n ic z n ik ie m sło w a je s t je d y n ie p r z e c in e k .

Dla zilustrowania m ożliwości w yszukiw aw czych pakietu SIMIS zostanie przedstawionych kilka przykładów dyrekty­

w y UTWÓRZ. D yrektywa ta zapew nia realizację operacji typow ych dla system ów zarządzania relacyjnym i bazami danych [2]. W szystkie przykłady dotyczą działalności pew ­ nego biura podróży, związanej z organizacją grupowych w yjazdów turystycznych [6]. Przykładow a baza danych biu­

ra podróży obejm uje trzy zbiory danych, których strukturę przedstawiono na rys. 1. W szystkie pola, z w yjątkiem tych, które określono w sposób jaw ny jako num eryczne, są po­

lam i znakowym i. Zbiór TRASY zawiera ogólne opisy tras w yjazdow ych proponowanych przez rozważane biuro, nato­

m iast zbiór WYCIECZKI składa się z dokum entów opisują­

cych w szystkie w ycieczki, jakie zostaną zorganizowane na tych trasach w danym okresie. Dokum enty w zbiorze TRASY opatrzone są unikalnym i identyfikatoram i (pole IDTRAS), to samo dotyczy dokum entów ze zbioru WYCIECZKI (iden­

tyfikator IDWYC). Każdy dokument zbioru WYCIECZKI jest powiązany z dokum entem zbioru TRASY, który za­

w iera ogólne dane dotyczące trasy wycieczki. N ależy zwró­

cić uwagę, że kilka dokum entów z WYCIECZKI może od­

w oływ ać się do tego sam ego dokumentu z TRASY, mogą to być przykładowo w ycieczki odbyw ane po tej sam ej trasie w różnych terminach. Trzeci zbiór danych KLIENCI za­

w iera dane dotyczące uczestników w ycieczek organizowa­

nych przez rozważane biuro podróży. Ze zrozumiałych w zględów dokumenty tego zbioru są powiązane z dokum en­

tami wchodzącym i w składz bioru WYCIECZKI. Gdy ta sa­

ma osoba uczestniczy w kilku w ycieczkach, w zbiorze KLIENCI tworzy się kilka dokum entów zaw ierających iden­

tyczne dane personalne.

a) U TW Ó RZ

z b ió r w e jś c io w y 1: T R A S Y z b ió r w e jś c io w y 2:

z b ió r w y jś c io w y : P O C IĄ G IE M —DO—P R A G I p o la : 1

w a r u n e k : T R A S A — ? * P R A G A • & T R A N S = * P O C IĄ G ♦ b) U TW Ó RZ

z b ió r w e jś c io w y 1: T R A SY z b ió r w e jś c io w y 2:

z b ió r w y jś c io w y : T R A S Y —W Y C IE C Z E K p o la : ID T R A S , T R A S A

w a r u n e k : C) U TW Ó R Z

z b ió r w e jś c io w y 1: T R A S Y z b ió r w e jś c io w y 2: W Y C IE C Z K I

z b ió r w y jś c io w y : W Y C IE C Z K I—DO—D R E Z N A

p o la : ID W Y C, T R A S A , C E N A , U L G A , D A T W Y J, D A T P O W

w a r u n e k : 1.ID T R A S >= 2. ID T R A S & T R A S A ■=> ? * D R E Z ­ N O •

(1) U TW Ó R Z

z b ió r w e jś c io w y 1: W Y C IE C Z K I—DO—D R E Z N A z b ió r w e jś c io w y 2: K L IE N C I

z b ió r w y jś c io w y : T U R Y Ś C I—DO—D R E Z N A p o la : N A Z W , A D R ES, D A T W Y J, D A T P O W

w a r u n e k : I.ID W Y C ■= 2. ID W Y C & D A T W Y J > ■= 840101

& D A T P O W < =■ 841231

R ys. 2. P r z y k ła d y d y r e k ty w U TW Ó R Z

Przykłady dyrektyw UTWÓRZ odnoszących się do bazy danych (przedstawione na rys. 1) podano na rys. 2. Teksty wprowadzane przez użytkow nika zostały wyróżnione przez użycie dużych liter. Pierw szy z przykładów (a) dotyczy ty ­ powej operacji wyboru (selekcji). W yszukiwane są w szyst­

k ie trasy podróży, które obejmują Pragę, a środkiem trans­

portu jest pociąg. D la wykonania tej operacji potrzebny jest tylko jeden zbiór w ejściow y (zbiór TRASY). W rozważa­

nym przypadku w arunek ma postać iloczynu logicznego dwóch relacji. W yniki w yszukiw ania umieszczone są w zbiorze POCIĄGIEM -DO-PRAGI. Dokum enty tego zbioru będą m iały identyczną budowę jak dokumenty pierwszego zbioru w ejściow ego, czyli zbioru TRASY. Użytkow nik po­

dejm uje taką decyzję podając cyfrę 1 jako odpowiedź na zapytanie system u dotyczącego pól zbioru w yjściow ego.

Drugi przykład dyrektyw y UTWÓRZ (b) dotyczy typowej operacji rzutowania (projekcji). Podobnie jak w poprzednim przykładzie, w ykorzystyw any jest tylko jeden zbiór w ejścio­

w y. W odróżnieniu od operacji wyboru, w przypadku rzu­

5

(8)

tow ania nie podaje się warunku wyszukiw aw czego (ściśle, podaje się w arunek pusty, który jest zawsze spełniony). P o­

w oduje to, że dokumet w ynikow y zostaje utworzony dla każdego dokumentu wejściowego. Dokum ent w ynikow y nie zaw iera w szystkich pól dokumentu w ejściowego, ale jedy­

n ie wybrane z nich. W om awianym przykładzie do doku­

m entu w ynikow ego przenoszone są pola IDTRAS i TRASA, przy czym etykiety ich n ie ulegają zmianie. N ależy zwrócić uwagę, że chociaż zam ierzeniem użytkow nika jest utw orze­

n ie zbioru w ynikow ego zaw ierającego dane dotyczące w y ­ łącznie przebiegu trasy, to w łącza on do dokumentu w yn i­

kowego — oprócz pola TRASA — rów nież pole IDTRAS, które — jak w spom niano — jest identyfikatorem dokumen­

tów w zbiorze TRASY. Zam ieszczenie tego pola zapobiega utożsamieniu w zbiorze w ynikow ym w szystkich dokum en­

tów dotyczących tej samej trasy, ale pochodzących z róż­

nych dokum entów w ejściow ych (opisujących podróże róż­

niące się np. użytym środkiem transportu).

O czywiście, opisane w yżej operacje selekcji i projekcji można połączyć. W ówczas w dyrektyw ie UTWÓRZ w y stę ­ puje zarówno lista pól w yjściow ych jak i w arunek w yszu ­ kiw awczy.

Trzeci przykład (c) dotyczy bardziej złożonego działania, które jest połączeniem dwóch typow ych operacji dla syste­

m ów zarządzenia relacyjnym i bazami danych: złączenia i projekcji. To działanie w ym aga w skazania dwóch zbiorów w ejściow ych, na podstaw ie których tworzony jest zbiór w y ­ n ikow y. Niezbędne jest określenie warunku w yszu kiw aw ­ czego, który zostanie zbadany dla każdej pary dokumentów w ejściow ych. W przykładzie w arunek ten jest spełniony, gdy oba dokumenty w ejściow e odnoszą się do tej samej tra­

sy (tzn. pola IDTRAS m ają tę samą wartość w obu doku­

mentach) oraz trasa ta obejm uje Drezno. Trzeba zwrócić uwagę, że pola w ejściow e o tych sam ych etykietach są roz­

różniane przez użycie etyk iet kw alifikow anych, tj. etykiet poprzedzonych identyfikatorem zbioru w ejściow ego 1. lub 2.). W rozważanym przykładzie do dokumentu w ynikow ego są kopiow ane pola TRASA i CENA, ze zbioru TRASY, oraz pola IDWYC, ULGA, DATWYJ i DATPOW — z drugiego zbioru w ejściow ego (WYCIECZKI).

O czyw iście w arunek logiczny dotyczący dwóch zbiorów w ejściow ych może być bardziej złożony od rozważanego po­

w yżej, co pozw ala na obsługę bardziej skom plikow anych zapytań W yszukiwawczych. Na przykład, zastąpienie w a ­ runku podanego w punkcie c warunkiem:

(TRASA = ? * DREZNO * # TRASA ,= ? * LIPSK *) & 1.

IDTRAS = 2. IDTRAS & DATW YJ = > ' 85061 & DATPOW

< = 850930 & CENA < = 15000

spowoduje w yszukiw anie danych dotyczących w ycieczek do Drezna lub Lipska latem 1985 roku, których cena nie prze­

kracza 15 tys. zł. N ależy zwrócić uw agę, że zastosowany sposób zapisu dat um ożliw ia ich bezpośrednie porów nyw a­

n ie (daty późniejsze są zarazem „w iększe” leksykograficz- nie).

Dla w ykonania operacji angażującej w ięcej n iż dw a zbio­

ry w ejściow e należy posłużyć się kilkoma dyrektywam i UTWÓRZ, z których każda (z w yjątk iem pierw szej) używa jako zbioru w ejściowego zbioru utworzonego w rezultacie wykonania jednej z poprzednich dyrektyw. Dla ilustracji tej techniki rozważone zostanie zadanie polegające na w y ­ szukaniu danych o w szystkich klientach, którzy uczestni­

czyli w wycieczkach do Drezna w 1984 roku. Łatwo zauwa­

żyć, że dla realizacji tego zadania należy posłużyć się da­

nym i z trzech zbiorów. Trzeba w tym celu użyć dwóch d yrektyw UTWÓRZ. Jednym z m ożliwych rozwiązali jest podanie dyrektyw przedstawionych w przykładzie pod lite­

rami c i d. Pierwsza z tych dyrek tyw 20stała uprzednio o- m ówiona. Druga dyrektyw a zapew nia powiązanie odpow ia- dajacvch sobie dokum entów ze zbiorów WYCIECZKI DO -DR EZN A i KLIENCI oraz w ybranie tych, które dotyczą w ycieczek odbytych w 1984 roku.

* *

Z przedstawionego opisu wynika, że pakiet SIM IS dys­

ponuje prostym i w ygodnym w obsłudze aparatem w yszu ­ kiw awczym , zapew niającym realizację operacji typowych dla system ów zarządzania relacyjnym i bazam i danych. Ist­

n ieje rów nież m ożliwość form ułow ania zapytań w yszuki-

w aw czych w postaci złożonych w yrażeń logicznych zaw ie­

rających relacje, co jest cechą charakterystyczną typowych system ów inform acyjno-wyszukiw aw czych. SIMIS odznacza się rów nież w ielom a innym i m ożliwościam i, istotnym i z punktu widzenia rozm aitych zastosowań. D la przykładu m ożna w ym ienić w ykonyw anie obliczeń z użyciem pól licz­

bowych. U żytkow nik dysponuje bardzo w ygodnym i sil­

nym aparatem definiow ania tych obliczeń w postaci progra­

mu złożonego z instrukcji podstawienia, warunku oraz skoku.

Przedstawione w artykule przykłady dotyczyły zastoso­

wania pakietu SIMIS w działalności biura podróży. Zakres m ożliwości stosow ania tego pakietu jest bardzo szeroki. Do podstawowego obszaru zastosowań należy działalność ośrod- ków informacji i bibliotek [5]. jednakże pakiet SIMIS m o­

że być użyty z powodzeniem rów nież do prowadzenia ew i­

dencji kadr, wspom agania działalności niew ielkich zespołów badawczych lub autom atyzacji rachunkowości.

D ostępna aktualnie pierwsza w ersja pakietu SIMIS ko­

rzysta ze standardowego oprogram owania obsługi zbiorów dyskow ych (pakiet File M aintenance Control) w ramach system u operacyjnego SOM-3. Przygotow anie dysków do u- życia w SIMIS jest bardzo proste i polega na utworzeniu na pakiecie dyskowym sekcji oznaczonych ustalonym hasłem dostępu (standardowo jest to hasło SIMIS). Pakiet SIMIS poszukuje zbiorów danych w tych w łaśn ie sekcjach i za­

pew nia dostęp do zbiorów o podanej nazwie. W ten sposób użytkow nik został uw olniony od żm udnych czynności dołą­

czania zbiorów danych do strum ieni system u operacyjnego, co zw ykle było czynnością w ym agającą znajomości tego sys­

temu oraz źródłem w ielu pomyłek.

Plany rozw ojow e pakietu SIMIS obejmują m.in. w łącze­

nie bardziej rozbudowanej kontroli poprawności dokumen­

tów wprowadzanych do bazy danych. Celowe -wydaje się rów nież zdefiniow anie nowego typu pola, tzw. pola atrybu­

towego, przeznaczonego do przechow yw ania pojedynczej wartości z określonego zbioru (przykładem pól tego typu są pola TRANS, IDTRAS i IDWYC oraz DATWYJ i DATPOW z rys. 1). Szczególnym przypadkiem pola atrybutowego by­

łoby pole num eryczne.

Realizacja planów rozwojowych pakietu SIMIS zależy w dużej m ierze od zapotrzebowania ze strony jego użytkow ni­

ków. Osoby zainteresowane w ykorzystaniem tego pakietu m ogą otrzymać w szelkie informacje na ten tem at u auto­

rów artykułu.

L IT E R A T U R A

[1] B a ń k o w s k i J . i in n i: U n iw e r s a ln y p a k ie t p r z e tw a r z a n ia i w y ­ s z u k iw a n ia in f o r m a c ji d la M E R Y 400. IN F O R M A T Y K A , 9, 1980, s tr.

15—17.

[2] D a te C. J . : W p ro w a d z e n ie do b a z d a n y c h . W N T , W a rs z a w a , 1981.

[3] F u r m a n M. i in n i: R o z sz e rz e n ia p a k ie tu in f o r m a c y jn o - w y s z u - k iw a w c z e g o SIM-400M. IN F O R M A T Y K A , 5, 1983, s tr . 24—26.

14] N o w ic k i Z .: C o m p u te r is e d i n f o r m a tio n s e rv ic e : M in ic o m p u te r A p p lic a tio n . I n t . F o r u m I n f . D oc., 2, 1981, s i r . 25—27.

[5] N o w ic k i Z., S o la k J . : O b s lu z iv a n ie k o m p le k s n y c h i n f o r m a e jo n - n y c h z a p r o s o v v r e i l m i e o n - la jn s is p o lz o w a n ie m m in i-e v m . K o n f.

B a z y d a n y c h v s e tia e h e v m . M C N T I, M o sk w a 1984, s tr . 213—218.

[Si N o w ic k i Z., S o la k J . : O ffic e a u to m a tio n w ith th e m in ic o m p u te r s y s te m S IM IS . P r o c . o f I n t. S y m p . „ N e tw o r k in O ffic e A u to ­ m a tio n ” , N o r th - H o lla n d (w d r u k u ) .

Ogłoszenia • Ogłoszenia • Ogłoszenia ® Ogłoszenia

Michał Chorosiucha poszukuje MACRO-8000 oraz innego o - program owania Z-8000. W arszawa, teł. 10-26-68.

EOI923IKI85

OgłoszeniaOgłoszenia ® OgłoszeniaOgłoszenia

Cytaty

Powiązane dokumenty

m atycznych S ystem ów Sterow ania przy RWPG, uczestnikiem prac zespołów problem owych z zakresu rozwoju inform atyki, działaczem TNOiK-u, w ielo ­ letnim

HacTonu^ne ciicTeMbi nMeiOT Cojiee uinpOKiie c^yiiK- ijnonajibHbie bo3mo&gt;khoctji no cpaBiieiimo c cncreMaMu, KOTOpbie AOCTaBJI«IOT npOI13BOAHTejlH BbIHIICJIHTejIbHbIX

W ciągu ostatnich m iesięcy sytuacja w Polsce zmieniła się tak dalece, że realne stają się nawet takie sfery działań, których wcześniej nie sposób

W ciągu ostatnich m iesięcy sytuacja w Polsce zmieniła się tak dalece, że realne stają się naw et takie sfery działań, których wcześniej nie sposób

Autor opublikowanego w INFORMATYCE artykułu otrzym uje bezpłatnie egzemplarz okazowy. Leon ŁUKASZEW ICZ, gen.. A, Szalew icza.. Jam rógiew icz i in.. N ależy dążyć do

N adal też nie zauw aża się postępu w dziedzinie system ów w ieloprocesorow ych.. pamięć danych i pamięć programu, dzięki czemu mogą pracować sam odzielnie,

Sprzedaż kom puterów domowych firm am erykańskich (w

duje zupełne niem al zahamowanie rozwoju, także — przepływu m yśli technicznej (która wszak nie jest niezależna od ogólnej sytuacji).. Niewydolność