CSL-CROOK - Instrukcje działania na zbiorach

Z MERA 400 wiki
Wersja z dnia 14:30, 31 sie 2013 autorstwa Amo (dyskusja | edycje) (Utworzono nową stronę "Przedstawione niżej instrukcje służą do przekształcania zbiorów. Przekształcanie to polega na dodawaniu lub usuwaniu grup obiektów. Dla każdej z tych instrukcji...")
(różn.) ← poprzednia wersja | przejdź do aktualnej wersji (różn.) | następna wersja → (różn.)
Przejdź do nawigacji Przejdź do wyszukiwania

Przedstawione niżej instrukcje służą do przekształcania zbiorów. Przekształcanie to polega na dodawaniu lub usuwaniu grup obiektów. Dla każdej z tych instrukcji zbiory, których one dotyczą, mogą być zbiorami uporządkowanymi lub zbiorami boole'owskimi.

Instrukcja LOAD

Postać instrukcji:

Z LOAD Z1, Z2 , ...
LOAD Z1, Z2, ...

Gdzie:

  • Z - nazwa klasy zbiorów
  • Z1, Z2, ... - nazwy zbiorów należących do klasy Z.

Obydwie postacie instrukcji prowadzą do tego samego efektu. Po wykonaniu każdy ze zbiorów Z1, Z2, ... jest równy klasie Z. Obiekty klasy (zbioru) Z występują w każdym ze zbiorów Z1, Z2, ... w tym samym porządku, w jakim występują w klasie Z. Jeżeli w instrukcji występuje nazwa klasy (postać pierwsza instrukcji) to zbiory Z1, Z2, ... nie muszą należeć do tej samej klasy.

Instrukcja ZERO

Postać instrukcji jest następująca:

ZERO Z1, Z2, Z3, ...

Gdzie:

  • Z1, Z2, Z3, ... - nazwy zbiorów

Instrukcja powoduje opróżnienie wszystkich wymienionych zbiorów. (zbiory Z1, Z2, ... są puste).

Instrukcja CONVERT ... TO

Postać instrukcji jest następująca:

CONVERT Z1 TO Z2

Gdzie:

  • Z1, Z2 - nazwy zbiorów należących do tej samej klasy.

Instrukcja powoduje opróżnienie zbioru Z2 i umieszczenie wszystkich elementów zbioru Z1 w zbiorze Z2. Zbiór Z1 pozostaje niezmieniony.

Instrukcja CONVERSE

Instrukcja ma następującą postać:

Z1 Z CONVERSE Z2
Z1 CONVERSE Z2

Instrukcja powoduje usunięcie wszystkich obiektów ze zbioru Z1 a następnie umieszczenie w Z1 tych wszystkich obiektów klasy Z, które nie należą do zbioru Z2 zachowując przy tym porządek dla klasy. Nazwa klasy może być opuszczona i nie spowoduje to żadnej zmiany w wyniku realizacji instrukcji.

Instrukcja LOSES

Postać instrukcji jest następująca:

Z1 LOSES Z2

Instrukcja powoduje usunięcie ze zbioru Z1 tych obiektów, które należą równocześnie do Z2. Zbiór Z2 pozostaje niezmieniony po wykonaniu instrukcji.

Instrukcja GAINS

Postać instrukcji jest następująca:

HEAD Z1 GAINS Z2
TAIL Z1 GAINS Z2

Instrukcja w obydwu swych postaciach powoduje dodanie do zbioru Z1 pewnych elementów zbioru Z2, które nie należały poprzednio do Z1. Zbiór Z2 pozostaje niezmieniony. Jeżeli użyte jest słowo HEAD (początek), wówczas elementy zbioru Z2 są dodawane na początku zbioru Z1. Jeżeli użyto słowa TAIL (koniec), to elementy Z2 są dodawane na końcu zbioru Z1.

Słowa HEAD oraz TAIL nie są obowiązujące. Jeżeli się je opuści, to efekt będzie taki sam jak w przypadku użycia słowa TAIL. Obiekty są dodawane do zbioru Z1 w takim porządku, w jakim występują one w zbiorze Z2.

Jeżeli Z1, Z2 są zbiorami boolowskimi to słowa HEAD i TAIL nie są w ogóle uwzględniane a dodawanie obiektów do zbioru Z1 odbywa się według zasady obowiązującej ogólnie dla tego typu zbiorów.

Źródło: Translator języka CSL-CROOK dla minikomputera MERA-400 w systemie operacyjnym CROOK-4, Instrukcja Programisty (wersja-17/2), Janusz Gocałek, Jacek Klauziński, Poznań, 1985