<?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_-_Instrukcje_arytmetyczne</id>
	<title>CSL-CROOK - Instrukcje arytmetyczne - 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_-_Instrukcje_arytmetyczne"/>
	<link rel="alternate" type="text/html" href="https://mera400.pl/index.php?title=CSL-CROOK_-_Instrukcje_arytmetyczne&amp;action=history"/>
	<updated>2026-05-01T11:17:46Z</updated>
	<subtitle>Historia wersji tej strony wiki</subtitle>
	<generator>MediaWiki 1.41.0</generator>
	<entry>
		<id>https://mera400.pl/index.php?title=CSL-CROOK_-_Instrukcje_arytmetyczne&amp;diff=1079&amp;oldid=prev</id>
		<title>Amo: Utworzono nową stronę &quot;= Instrukcja podstawiania =  Postać ogólna instrukcji:  : &lt;tt&gt;&lt;nazwa zmiennej&gt; = wyrażenie&lt;/tt&gt;  Wyrażenie i nazwa zmiennej nie muszą być tego samego typu. W przyp...&quot;</title>
		<link rel="alternate" type="text/html" href="https://mera400.pl/index.php?title=CSL-CROOK_-_Instrukcje_arytmetyczne&amp;diff=1079&amp;oldid=prev"/>
		<updated>2013-08-31T14:30:20Z</updated>

		<summary type="html">&lt;p&gt;Utworzono nową stronę &amp;quot;= Instrukcja podstawiania =  Postać ogólna instrukcji:  : &amp;lt;tt&amp;gt;&amp;lt;nazwa zmiennej&amp;gt; = wyrażenie&amp;lt;/tt&amp;gt;  Wyrażenie i nazwa zmiennej nie muszą być tego samego typu. W przyp...&amp;quot;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Nowa strona&lt;/b&gt;&lt;/p&gt;&lt;div&gt;= Instrukcja podstawiania =&lt;br /&gt;
&lt;br /&gt;
Postać ogólna instrukcji:&lt;br /&gt;
&lt;br /&gt;
: &amp;lt;tt&amp;gt;&amp;lt;nazwa zmiennej&amp;gt; = wyrażenie&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Wyrażenie i nazwa zmiennej nie muszą być tego samego typu. W przypadku niezgodności typów liczba będąca wynikiem obliczenia wartości wyrażenia zostanie przekształcona na typ nazwy zmiennej występującej po lewej stronie znaku równości. Lewa strona instrukcji podstawienia napisana w postaci ogólnej może być zmienną, atrybutem czasu, atrybutem obiektu lub elementem tablicy.&lt;br /&gt;
&lt;br /&gt;
= Instrukcja przyrostowa =&lt;br /&gt;
&lt;br /&gt;
Postać ogólna instrukcji:&lt;br /&gt;
&lt;br /&gt;
: &amp;lt;tt&amp;gt;nazwa zmiennej &amp;lt;operator&amp;gt;  wyrażenie&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
gdzie:&lt;br /&gt;
* operator - operator arytmetyczny &amp;quot;+&amp;quot; lub &amp;quot;-&amp;quot;&lt;br /&gt;
&lt;br /&gt;
W zależności od znaku &amp;quot;+&amp;quot; lub  &amp;quot;-&amp;quot; wartość  wyrażenia ulega zwiększeniu albo zmniejszeniu o wartość wyrażenia.&lt;br /&gt;
&lt;br /&gt;
= Instrukcje skoku GO TO =&lt;br /&gt;
&lt;br /&gt;
Instrukcja GO TO przekazuje sterowanie do innej instrukcji w tym samym segmencie. Rozróżniamy trzy typy instrukcji skoku:&lt;br /&gt;
&lt;br /&gt;
* instrukcja skoku bezwarunkowego;&lt;br /&gt;
* instrukcja skoku z przełącznikiem;&lt;br /&gt;
* instrukcja skoku wyznaczonego;&lt;br /&gt;
&lt;br /&gt;
Dozwolone jest użycie słowa kluczowego &amp;#039;&amp;#039;&amp;#039;GO TO&amp;#039;&amp;#039;&amp;#039; bez spacji w postaci &amp;#039;&amp;#039;&amp;#039;GOTO&amp;#039;&amp;#039;&amp;#039;.&lt;br /&gt;
&lt;br /&gt;
== Instrukcja skoku bezwarunkowego ==&lt;br /&gt;
&lt;br /&gt;
Instrukcja skoku bezwarunkowego ma następującą postać:&lt;br /&gt;
&lt;br /&gt;
: &amp;lt;tt&amp;gt;GO TO e&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
gdzie:&lt;br /&gt;
&lt;br /&gt;
* e - etykieta instrukcji, do której ma być przekazane sterowanie.&lt;br /&gt;
&lt;br /&gt;
Po każdorazowym napotkaniu instrukcji skoku sterowanie zostanie przekazane do instrukcji opatrzonej etykietą &amp;lt;tt&amp;gt;e&amp;lt;/tt&amp;gt;. Instrukcja ta musi być w tym samym segmencie co instrukcja skoku.&lt;br /&gt;
&lt;br /&gt;
== Instrukcja skoku z przełącznikiem ==&lt;br /&gt;
&lt;br /&gt;
Instrukcja skoku z przełącznikiem przekazuje sterowanie do jednej z etykiet wymienionych w liście, w zależności od wartości podanej zmiennej. Instrukcja ta ma następującą postać:&lt;br /&gt;
&lt;br /&gt;
: &amp;lt;tt&amp;gt;GO TO (k1, k2, ..., kn), i&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
gdzie:&lt;br /&gt;
&lt;br /&gt;
* i - zmienna typu INTEGER&lt;br /&gt;
* k1, ...., kn - etykiety instrukcji występujących w tym samym segmencie co instrukcja &amp;#039;&amp;#039;&amp;#039;GO TO&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
Jeżeli wartość zmiennej i jest poza parametrem od 1 do n to sterowanie przechodzi do instrukcji następnej po &amp;#039;&amp;#039;&amp;#039;GOTO&amp;#039;&amp;#039;&amp;#039;. Dowolna z etykiet w liście może być zerem. Jeżeli etykieta kj jest równa zeru a zmienna i ma wartość j to instrukcja skoku przekaże sterowanie do instrukcji następnej po &amp;#039;&amp;#039;&amp;#039;GOTO&amp;#039;&amp;#039;&amp;#039;.&lt;br /&gt;
&lt;br /&gt;
== Instrukcja ASSIGN ==&lt;br /&gt;
&lt;br /&gt;
Instrukcja skoku wyznaczonego przekazuje sterowanie do jednej z etykiet wymienionych w liście, w zależności od wartości zmiennej nadanej przez instrukcję ASSIGN. Instrukcja ta ma następującą postać:&lt;br /&gt;
&lt;br /&gt;
: &amp;lt;tt&amp;gt;GO TO i, (k1, k2, ..., kn)&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
gdzie:&lt;br /&gt;
* i - zmienna typu INTEGER&lt;br /&gt;
* k1, ..., kn - etykiety instrukcji występujące w tym samym segmencie co instrukcja &amp;#039;&amp;#039;&amp;#039;GOTO&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
Instrukcja ASSIGN ma postać:&lt;br /&gt;
&lt;br /&gt;
: &amp;lt;tt&amp;gt;ASSIGN k TO i&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
gdzie:&lt;br /&gt;
* i - zmienna typu INTEGER&lt;br /&gt;
* k - etykieta&lt;br /&gt;
&lt;br /&gt;
Instrukcja ta przyporządkowuje zmiennej i etykietę k, nie nadając przy tym zmiennej i wartości całkowitej. Zmienna i, po nadaniu jej wartości przez instrukcję &amp;#039;&amp;#039;&amp;#039;ASSIGN&amp;#039;&amp;#039;&amp;#039;, może być użyta tylko w instrukcji skoku wyznaczonego. Dopiero ponowne nadanie wartości całkowitej zmiennej i przez instrukcję podstawiania udostępnia ją do użycia w wyrażeniach arytmetycznych. Lista etykiet w instrukcji skoku wyznaczonego musi zawierać wszystkie etykiety, które mogą być przyporządkowane zmiennej. Jeżeli zmienna i nie posiada odpowiedniej wartości, wówczas nastąpi nieokreślone działanie.&lt;br /&gt;
&lt;br /&gt;
Przykłady:&lt;br /&gt;
&lt;br /&gt;
 GOTO 10&lt;br /&gt;
 GO TO 9999&lt;br /&gt;
 IWA=2&lt;br /&gt;
 . ......&lt;br /&gt;
 GOTO (14,10,12,100), IWA&lt;br /&gt;
 . ......&lt;br /&gt;
 10 K=1&lt;br /&gt;
 ASSIGN 19 TO KAYA&lt;br /&gt;
 GOTO KAYA, (3,5,19,100)&lt;br /&gt;
 . ......&lt;br /&gt;
 19 L=K*J&lt;br /&gt;
&lt;br /&gt;
= Arytmetyczna instrukcja IF =&lt;br /&gt;
&lt;br /&gt;
Arytmetyczna instrukcja warunkowa przekazuje sterowanie do jednej z trzech etykiet w zależności od wartości wyrażenia arytmetycznego. Ma ona następującą postać:&lt;br /&gt;
&lt;br /&gt;
: &amp;lt;tt&amp;gt;IF (w) k1, k2, k3&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
gdzie:&lt;br /&gt;
* w - wyrażenie arytmetyczne&lt;br /&gt;
* k1, k2, k3 - etykiety instrukcji występujących w tym samym segmencie co instrukcja &amp;#039;&amp;#039;&amp;#039;IF&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
Instrukcja przekazuje sterowanie do jednej z instrukcji z etykietą k1, k2 lub k3 w zależności od tego czy wartość wyrażenia w jest odpowiednio mniejsza, równa lub większa od zera. Dowolna etykieta występująca w instrukcji &amp;#039;&amp;#039;&amp;#039;IF&amp;#039;&amp;#039;&amp;#039; może być  zerem. Etykieta zerowa spowoduje przekazanie sterowania do instrukcji występującej bezpośrednio po instrukcji &amp;#039;&amp;#039;&amp;#039;IF&amp;#039;&amp;#039;&amp;#039;.&lt;br /&gt;
&lt;br /&gt;
= Instrukcja wielokrotnego wykonania =&lt;br /&gt;
&lt;br /&gt;
Instrukcja FOR z indeksowaniem przyrostowym ma następującą postać:&lt;br /&gt;
&lt;br /&gt;
: &amp;lt;tt&amp;gt;FOR &amp;lt;nazwa zmiennej&amp;gt; = p1, p2 [, p3]&amp;lt;/tt&amp;gt;&lt;br /&gt;
: &amp;lt;tt&amp;gt;FOR &amp;lt;nazwa zmiennej&amp;gt; = A&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Gdzie:&lt;br /&gt;
&lt;br /&gt;
* p1 - wartość początkowa&lt;br /&gt;
* p2 - wartość końcowa&lt;br /&gt;
* p3 - przyrost&lt;br /&gt;
* A - nazwa zbioru&lt;br /&gt;
* nazwa zmiennej - typu INTEGER&lt;br /&gt;
* &amp;quot;=&amp;quot; - znak może być opuszczany w instrukcji&lt;br /&gt;
&lt;br /&gt;
Instrukcja &amp;#039;&amp;#039;&amp;#039;FOR&amp;#039;&amp;#039;&amp;#039; umożliwia wielokrotne wykonanie grupy instrukcji o wspólnym stopniu wcięcia. Istnieje możliwość budowy złożonych instrukcji &amp;#039;&amp;#039;&amp;#039;FOR&amp;#039;&amp;#039;&amp;#039; poprzez pogrążenie instrukcji &amp;#039;&amp;#039;&amp;#039;FOR&amp;#039;&amp;#039;&amp;#039; w już istniejącej. Wewnętrzna instrukcja tytułowa &amp;#039;&amp;#039;&amp;#039;FOR&amp;#039;&amp;#039;&amp;#039; ma w tym przypadku wspólny stopień wcięcia z instrukcjami z zakresu zewnętrznej instrukcji &amp;#039;&amp;#039;&amp;#039;FOR&amp;#039;&amp;#039;&amp;#039;.&lt;br /&gt;
&lt;br /&gt;
 FOR I = A&lt;br /&gt;
 :&lt;br /&gt;
 FOR K = 1,10&lt;br /&gt;
 :&lt;br /&gt;
 FOR L = 1,2&lt;br /&gt;
 :&lt;br /&gt;
&lt;br /&gt;
= Instrukcje puste =&lt;br /&gt;
&lt;br /&gt;
Instrukcje:&lt;br /&gt;
&lt;br /&gt;
: &amp;lt;tt&amp;gt;DUMMY&amp;lt;/tt&amp;gt;&lt;br /&gt;
: &amp;lt;tt&amp;gt;REPEAT&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Mogą one występować w dowolnym miejscu programu, mogą  być etykietowane lub nie, a ich wykonanie nie powoduje żadnych zmian w programie. Stosuje się je często w instrukcjach FOR jako zakończenie ciągu instrukcji objętych wielokrotnym wykonaniem.&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>