<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="pl">
	<id>https://mera400.pl/index.php?action=history&amp;feed=atom&amp;title=CSL-CROOK_-_Instrukcja_SPLIT</id>
	<title>CSL-CROOK - Instrukcja SPLIT - Historia wersji</title>
	<link rel="self" type="application/atom+xml" href="https://mera400.pl/index.php?action=history&amp;feed=atom&amp;title=CSL-CROOK_-_Instrukcja_SPLIT"/>
	<link rel="alternate" type="text/html" href="https://mera400.pl/index.php?title=CSL-CROOK_-_Instrukcja_SPLIT&amp;action=history"/>
	<updated>2026-05-01T12:26:50Z</updated>
	<subtitle>Historia wersji tej strony wiki</subtitle>
	<generator>MediaWiki 1.41.0</generator>
	<entry>
		<id>https://mera400.pl/index.php?title=CSL-CROOK_-_Instrukcja_SPLIT&amp;diff=1084&amp;oldid=prev</id>
		<title>Amo: Utworzono nową stronę &quot;Instrukcja &#039;&#039;&#039;SPLIT&#039;&#039;&#039; na podstawie, której dokonuje się  podziału elementów między zbiory w/g różnych kryteriów, ma kilka postaci. Używa się jej w formie zasa...&quot;</title>
		<link rel="alternate" type="text/html" href="https://mera400.pl/index.php?title=CSL-CROOK_-_Instrukcja_SPLIT&amp;diff=1084&amp;oldid=prev"/>
		<updated>2013-08-31T14:31:30Z</updated>

		<summary type="html">&lt;p&gt;Utworzono nową stronę &amp;quot;Instrukcja &amp;#039;&amp;#039;&amp;#039;SPLIT&amp;#039;&amp;#039;&amp;#039; na podstawie, której dokonuje się  podziału elementów między zbiory w/g różnych kryteriów, ma kilka postaci. Używa się jej w formie zasa...&amp;quot;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Nowa strona&lt;/b&gt;&lt;/p&gt;&lt;div&gt;Instrukcja &amp;#039;&amp;#039;&amp;#039;SPLIT&amp;#039;&amp;#039;&amp;#039; na podstawie, której dokonuje się  podziału elementów między zbiory w/g różnych kryteriów, ma kilka postaci. Używa się jej w formie zasadniczej (pełnej) i skróconej, z towarzyszącym zespołem warunków lub bez a nawet w bardziej złożonej konfiguracji. W połączeniu z innymi instrukcjami. Cechą  charakterystyczną wszystkich form wykorzystania tej instrukcji jest brak instrukcji postaci adresowej. Program jest kontynuowany zawsze od następnej instrukcji po &amp;#039;&amp;#039;&amp;#039;SPLIT&amp;#039;&amp;#039;&amp;#039;.&lt;br /&gt;
&lt;br /&gt;
Zasadnicza postać instrukcji jest następująca:&lt;br /&gt;
&lt;br /&gt;
: &amp;lt;tt&amp;gt;SPLIT i z1 INTO z2 ELSE z3&amp;lt;/tt&amp;gt;&lt;br /&gt;
: &amp;lt;tt&amp;gt;:&amp;lt;/tt&amp;gt;&lt;br /&gt;
: &amp;lt;tt&amp;gt;:  (łańcuchy badań)&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Gdzie:&lt;br /&gt;
&lt;br /&gt;
* i - zmienna typy INTEGER&lt;br /&gt;
* z1, z2, z3 - nazwy zbiorów, które zadeklarowano jako należące do tej samej klasy.&lt;br /&gt;
&lt;br /&gt;
Działanie instrukcji rozpoczyna się opróżnieniem (zerowaniem) zbiorów &amp;lt;tt&amp;gt;z1&amp;lt;/tt&amp;gt; i &amp;lt;tt&amp;gt;z2&amp;lt;/tt&amp;gt;. Następnie kontrolowany jest zespół warunków dotyczący każdego elementu zbioru &amp;lt;tt&amp;gt;z1&amp;lt;/tt&amp;gt;. Zmienna &amp;lt;tt&amp;gt;i&amp;lt;/tt&amp;gt; przybiera przy każdej kontroli zespołu warunków wartość indeksu kolejnego elementu zbioru &amp;lt;tt&amp;gt;a1&amp;lt;/tt&amp;gt;. Jeżeli zbiór warunków jest spełniony, element zostaje umieszczony w zbiorze &amp;lt;tt&amp;gt;Z2&amp;lt;/tt&amp;gt;, jeżeli zaś, którykolwiek z warunków nie jest spełniony, element umieszczony zostaje w &amp;lt;tt&amp;gt;Z3&amp;lt;/tt&amp;gt;. W ciągu całego procesu wykonywania instrukcji zawartość zbioru &amp;lt;tt&amp;gt;z1&amp;lt;/tt&amp;gt; nie ulega zmianie. Instrukcja ta wymaga zawsze podania co najmniej jednego warunku, który zawiera również zmienna &amp;lt;tt&amp;gt;&amp;lt;nowiki&amp;gt;&amp;lt;i&amp;gt;&amp;lt;/nowiki&amp;gt;&amp;lt;/tt&amp;gt;, bowiem w przeciwnym przypadku instrukcja ta traci sens.&lt;br /&gt;
&lt;br /&gt;
W skróconej formie instrukcja &amp;#039;&amp;#039;&amp;#039;SPLIT&amp;#039;&amp;#039;&amp;#039; może występować w dwóch postaciach:&lt;br /&gt;
&lt;br /&gt;
: &amp;lt;tt&amp;gt;SPLIT i Z1 INTO Z2&amp;lt;/tt&amp;gt;&lt;br /&gt;
: &amp;lt;tt&amp;gt;:&amp;lt;/tt&amp;gt;&lt;br /&gt;
: &amp;lt;tt&amp;gt;:  (łańcuchy badań)&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
lub&lt;br /&gt;
&lt;br /&gt;
: &amp;lt;tt&amp;gt;SPLIT i Z1 ELSE Z2&amp;lt;/tt&amp;gt;&lt;br /&gt;
: &amp;lt;tt&amp;gt;:&amp;lt;/tt&amp;gt;&lt;br /&gt;
: &amp;lt;tt&amp;gt;:  (łańcuchy badań)&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
W rezultacie działania pierwszej wersji instrukcji &amp;#039;&amp;#039;&amp;#039;SPLIT&amp;#039;&amp;#039;&amp;#039;, do zbioru &amp;lt;tt&amp;gt;Z2&amp;lt;/tt&amp;gt; zostaną przeniesione te elementy zbioru &amp;lt;tt&amp;gt;Z1&amp;lt;/tt&amp;gt;, dla których zespół warunków jest spełniony.&lt;br /&gt;
&lt;br /&gt;
Druga wersja skróconej instrukcji &amp;#039;&amp;#039;&amp;#039;SPLIT&amp;#039;&amp;#039;&amp;#039; działa w sposób odwrotny tj., powoduje umieszczenie w zbiorze &amp;lt;tt&amp;gt;Z2&amp;lt;/tt&amp;gt; tych elementów zbioru &amp;lt;tt&amp;gt;Z1&amp;lt;/tt&amp;gt;, dla których łańcuchy badań nie są spełnione.&lt;br /&gt;
&lt;br /&gt;
Instrukcję &amp;#039;&amp;#039;&amp;#039;SPLIT&amp;#039;&amp;#039;&amp;#039; można również używać w połączeniu z zastrzeżonymi słowami &amp;#039;&amp;#039;&amp;#039;HEAD&amp;#039;&amp;#039;&amp;#039; lub &amp;#039;&amp;#039;&amp;#039;TAIL&amp;#039;&amp;#039;&amp;#039;.&lt;br /&gt;
&lt;br /&gt;
Ogólna postać instrukcji jest w tym układzie następująca:&lt;br /&gt;
&lt;br /&gt;
: &amp;lt;tt&amp;gt;SPLIT i Z1 INTO HEAD Z2 ELSE HEAD Z3&amp;lt;/tt&amp;gt;&lt;br /&gt;
: &amp;lt;tt&amp;gt;TAIL TAIL&amp;lt;/tt&amp;gt;&lt;br /&gt;
: &amp;lt;tt&amp;gt;:&amp;lt;/tt&amp;gt;&lt;br /&gt;
: &amp;lt;tt&amp;gt;:  (łańcuchy badań)&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
W tej postaci zbiory &amp;lt;tt&amp;gt;Z1, Z2&amp;lt;/tt&amp;gt; nie są zerowane, jak to ma miejsce w innych wersjach wykorzystania instrukcji. Jeżeli łańcuchy badań są spełnione, wówczas dany element klasy należący do zbioru &amp;lt;tt&amp;gt;Z1&amp;lt;/tt&amp;gt; zostaje dołączony na początek zbioru &amp;lt;tt&amp;gt;Z2&amp;lt;/tt&amp;gt;. Dzieje się tak w przypadku użycia słowa &amp;#039;&amp;#039;&amp;#039;HEAD&amp;#039;&amp;#039;&amp;#039;. Natomiast dany element zostaje dodany za elementami znajdującymi się już w zbiorze &amp;lt;tt&amp;gt;Z2&amp;lt;/tt&amp;gt;, jeśli użyjemy słowa &amp;#039;&amp;#039;&amp;#039;TAIL&amp;#039;&amp;#039;&amp;#039;.&lt;br /&gt;
&lt;br /&gt;
Słowo &amp;#039;&amp;#039;&amp;#039;ELSE&amp;#039;&amp;#039;&amp;#039; oznacza alternatywne działanie instrukcji, która powoduje umieszczenie danego elementu w zbiorze &amp;lt;tt&amp;gt;Z3&amp;lt;/tt&amp;gt; (na początku zbioru jeżeli użyjemy słowa &amp;#039;&amp;#039;&amp;#039;HEAD&amp;#039;&amp;#039;&amp;#039; lub na końcu zbioru jeżeli użyjemy słowa &amp;#039;&amp;#039;&amp;#039;TAIL&amp;#039;&amp;#039;&amp;#039;), jeżeli łańcuch badań nie jest spełniony.&lt;br /&gt;
&lt;br /&gt;
Słowa &amp;#039;&amp;#039;&amp;#039;INTO&amp;#039;&amp;#039;&amp;#039; i &amp;#039;&amp;#039;&amp;#039;ELSE&amp;#039;&amp;#039;&amp;#039; mogą być w instrukcji &amp;#039;&amp;#039;&amp;#039;SPLIT&amp;#039;&amp;#039;&amp;#039; dodatkowo uzupełnione słowami &amp;#039;&amp;#039;&amp;#039;HEAD&amp;#039;&amp;#039;&amp;#039; lub &amp;#039;&amp;#039;&amp;#039;TAIL&amp;#039;&amp;#039;&amp;#039;. Dopuszczalne są więc następujące formy użycia instrukcji:&lt;br /&gt;
&lt;br /&gt;
: &amp;lt;tt&amp;gt;SPLIT .... INTO HEAD .... ELSE TAIL ...&amp;lt;/tt&amp;gt;&lt;br /&gt;
: &amp;lt;tt&amp;gt;SPLIT .... INTO HEAD .... ELSE&amp;lt;/tt&amp;gt;&lt;br /&gt;
: &amp;lt;tt&amp;gt;SPLIT .... INTO ......... ELSE HEAD ....&amp;lt;/tt&amp;gt;&lt;br /&gt;
: &amp;lt;tt&amp;gt;SPLIT .... INTO HEAD ....&amp;lt;/tt&amp;gt;&lt;br /&gt;
: &amp;lt;tt&amp;gt;SPLIT .... ELSE TAIL ....&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Specjalne możliwości w symulacji daje instrukcja &amp;#039;&amp;#039;&amp;#039;SPLIT&amp;#039;&amp;#039;&amp;#039; połączona ze słowem strukturalnym języka &amp;#039;&amp;#039;&amp;#039;QUALIFY&amp;#039;&amp;#039;&amp;#039;. Słowa tego używa się w instrukcji &amp;#039;&amp;#039;&amp;#039;SPLIT&amp;#039;&amp;#039;&amp;#039; w celu zignorowania przy badaniu łańcuchów badań określonych elementów klasy. Słowo &amp;#039;&amp;#039;&amp;#039;QUALITY&amp;#039;&amp;#039;&amp;#039; może występować wyłącznie w zespole warunków instrukcji &amp;#039;&amp;#039;&amp;#039;SPLIT&amp;#039;&amp;#039;&amp;#039; i musi być umieszczone bezpośrednio po &amp;#039;&amp;#039;&amp;#039;SPLIT&amp;#039;&amp;#039;&amp;#039;.&lt;br /&gt;
&lt;br /&gt;
Ogólna postać tej wersji instrukcji &amp;#039;&amp;#039;&amp;#039;SPLIT&amp;#039;&amp;#039;&amp;#039; jest następująca:&lt;br /&gt;
&lt;br /&gt;
: &amp;lt;tt&amp;gt;SPLIT .... Z1 .... Z2 .... Z3&amp;lt;/tt&amp;gt;&lt;br /&gt;
: &amp;lt;tt&amp;gt;QUALIFY&amp;lt;/tt&amp;gt;&lt;br /&gt;
: &amp;lt;tt&amp;gt;.... (łańcuchy badań dla QUALIFY)&amp;lt;/tt&amp;gt;&lt;br /&gt;
: &amp;lt;tt&amp;gt;....&amp;lt;/tt&amp;gt;&lt;br /&gt;
: &amp;lt;tt&amp;gt;.... (łańcuchy badań dla SPLIT)&amp;lt;/tt&amp;gt;&lt;br /&gt;
: &amp;lt;tt&amp;gt;....&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Każdy element zbioru &amp;lt;tt&amp;gt;Z1&amp;lt;/tt&amp;gt; zostaje sprawdzony na podstawie łańcuchów badań objętych słowem &amp;#039;&amp;#039;&amp;#039;QUALIFY&amp;#039;&amp;#039;&amp;#039; zanim zostanie umieszczony w zbiorze &amp;lt;tt&amp;gt;Z2&amp;lt;/tt&amp;gt; lub &amp;lt;tt&amp;gt;Z3&amp;lt;/tt&amp;gt;, zgodnie z kryteriami instrukcji &amp;#039;&amp;#039;&amp;#039;SPLIT&amp;#039;&amp;#039;&amp;#039;.&lt;br /&gt;
&lt;br /&gt;
= Instrukcja RANK =&lt;br /&gt;
&lt;br /&gt;
Instrukcja ta ma następującą postać:&lt;br /&gt;
&lt;br /&gt;
: &amp;lt;tt&amp;gt;RANK i &amp;lt;zbiór&amp;gt; (&amp;lt;wyrażenie&amp;gt;)&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Dla każdego elementu zbioru zmienna przyjmuje wartość indeksu obiektu i następuje obliczenie obliczenie wyrażenia. Obiekty należące do zbioru zostaną ustawione w taki sposób, że odpowiadające im wartości wyrażenia zostają uporządkowane w porządku malejącym. Ten obiekt, dla którego wartość wyrażenia przyjmuje największą wartość, staje się pierwszym elementem zbioru. Instrukcja &amp;#039;&amp;#039;&amp;#039;RANK&amp;#039;&amp;#039;&amp;#039; występuje łańcucha badań. Dla zbiorów boolowskich instrukcja ta jest ignorowana.&lt;br /&gt;
&lt;br /&gt;
{{source|title=Translator języka CSL-CROOK dla minikomputera MERA-400 w systemie operacyjnym CROOK-4, Instrukcja Programisty (wersja-17/2)|author=Janusz Gocałek, Jacek Klauziński|date=Poznań, 1985}}&lt;/div&gt;</summary>
		<author><name>Amo</name></author>
	</entry>
</feed>