• Nie Znaleziono Wyników

Język programowania ALGOL dla ZAM-41 : opis

N/A
N/A
Protected

Academic year: 2022

Share "Język programowania ALGOL dla ZAM-41 : opis"

Copied!
187
0
0

Pełen tekst

(1)

Język programowania

(2)

I N S T Y T U T M A S Z Y N M A T E M A T Y C Z N Y C H B O I T E

J ę z y k p ro g ra m o w a n ia A L G O L

dla Z A M 41

O P I S

W Y D A W N I C T W A P R Z E M Y S Ł U M A S Z Y N O W E G O „ W E H A "

W arszawa 1971

(3)

Autorzyi

mgr Jowita Konoewioz, Bgr Maria Łąoka

Komitet Redakcyjny i

J , Barowieo /r e d , n a o t . / , W. Kossakowski, X. M azurkiew icz, J . Wierzbowski,

A . W iśn iew ski, W . tu d e l / s e k r . r e d , /

Opraoowaaie redakoyjnai Eotaana Witkowska

Adres Redakcji»

Warszawa, u l , Krzywioklego 34 t e l , 21-84—41 w . 431 lub 28-37-29

Waroiawa "1971. I.Hakloa 150t*-*b « 8 * . A rk.w jd .6 , 0 . A rk.druk.B,O .Fapi«r offs«t I I I k l . 80 g.

Foraat 10^x197 urn. Zaa&lłnl» 41V71-5-?/3---

■BiwwaU'"Zakład Poligraflo*aj w B-atoku.Zaa.161, 0-97

(4)

ALG 0-3

Spis rzeozy

ROZDZIAŁ 1 . . W S T ? P ... . . • ... 1-1 1 . 1 . Formalizm opisu składni . . 1-2 1 . 2 . Translator języka ALGOL . . 1-4

ROZDZIAŁ 2 . SYMBOLE PODSTAWOWE, IDENTY­

FIKATORY, LICZBY, TEKSTY I SŁOWA ZASTRZEŻONE. POJĘCIA ' P O D S T A W O W E ... 2-1 2 . 1 . L i t e r y ... 2-1 ' 2 . J . O g r a n i c z n i k i ... . 2-2 2 . 4 . I d e n t y f i k a t o r y ... 2-5 2 . 5 . Liczby ... 2-6 2 . 6 . Teksty » . * « / > . « . . * 2—7 2 . 7 . W ielk o ś c i, klasy i obszary

d zia ła n ia . . . i ...

2-8

2 . 8 . Wartości i t y p y ...2-8

ROZDZIAŁ 3 . W YRAŻENIA... 3-1 3 . 1 . Z m ie n n e ...3-1 3 .2 . Odwołanie funkcyjne . . . .

5-3

3 .3 " Wyrażenia arytmetyczne . .

3-6

3 . 4 . Wyrażenia boolowskie . . . 3-13 3.5- Wyrażenia sterujące . . . .

3 -15

ROZDZIAŁ 4 . I N S T R U K C J E ... 4-1

4 . 1 . Instrukcje złożone i bloki 4-1 4 . 2 . Instrukcje przypisania . . 4-5 4 .3 * Instrukcje skoku . . . 4-7 4 . 4 . Instrukoje puste ... 4-8

4

.

5

. Instrukcje warunkowe . . . 4-8 4 . 6 . Instrukcje c y k l u ...4-11

4

.

7

. Instrukcje procedury . . . 4-15 ROZDZIAŁ

5

. D E K L A R A C J E ... 5-1

5 . 1 . Deklaracje zmiennych prostych.5-2 5 . 2 . Deklaraoje tablic ... 5-3

5

.

3

. Deklaracje przełączników . 5-6 5 . 4 . Deklaracje procedur . . . . 5-S

(5)

ALG 0-4

ROZDZIAŁ 6 .

6

.

1

.

6 . 2 .

ROZDZIAŁ 7 . 7 . 1 . 7 . 2 .

ROZDZIAŁ 8 .

8

.

1

.

STANDARDOWE PROCEDUKf w e jSc i a-wyj ś c i a . . . . Instrukcje w yjścia . . Instrukcje w ejścia . .

URUCHAMIANIE PROGRAMĆW Język operacyjny ALGOLu Sygnalizaoja błędów . .

6-1

6-1 6-16

7-1 7-1 7-4

8 . 2 .

8

.

3

. 8 . 4 .

ROZDZIAŁ 9 .

JEŻYK ALGOL JAKO CZĘŚĆ SYS­

TEMU OPROGRAMOWANIA SO 141 8-1 Ogólne informaoja o Trans­

latorze i Interpreterze A L G O L u ... 8-1 Uwagi o formułowaniu pro­

gramów w ALGOLu ...8-9 Praca w systemie SO 141 . . 8-9 Edytor ALGOLu ... 8-18

ZESTAWIENIE RÓŻNIC REPREZEN­

TACJI KONKRETNEJ ALGOLU W STOSUNKU DO JĘZYKA WZORCO­

WEGO . ... 9-1

•Rozdział 1 0 . PRZYKŁADY PROGRAMÓW W ALGOLU 10-1 1 0 . 1 . Przykład 1 ... 10-2 1 0 . 2 . Przykład 2 ... 10-8 1 0 .3 « Przykład 3 ... .... 10-12 . 1 0 . 4 . Przykład 4 ... 10-17

1 0 .5 < Przykład 5 ... 10-34

DODATEK A. s SŁOWA ZASTRZEŻONE I ICH ZNA­

CZENIE W JĘZYKU POLSKIM . . A-1

DODATEK B . INTERPRETACJA SYMBOLI PRZEZ FUNKCJĘ INCHAR . . . B-1

DODATEK C. BŁĘDY I PRZEPEŁNIENIA SYGNA­

LIZOWANE W PIER.YSZYM PRZE­

BIEGU ... C-1

(6)

DODATEK D . BŁĘDY X PRZEPEŁNIENIA SYGNA­

LIZOWANE W DRUGIM PRZEBIEGU . • D-1

DODATEK E . BŁ$BT I PRZEPEŁNIENIA SYGNALI­

ZOWANE w TRAKCIE WYKONYWANIA

• PROGRAMU WINIKO.TEGO . . . E-1

SCHEMAT SKŁADNI JĘZYKA ALGOL 60

(7)

•$•*0

nAKîtïa ■

. ooaiaasffi hîwIîïrî, % z k í m x u.

♦a ztâÀg

' .-r~¡z i ...', 0í«r¡5ÍM :v;

•; . -. -■ -. ! í

■■ . ' Oí I D O & ' Ä s i i ' 17áf--sj¡&'tiéM

* Ȥ ,. I

(8)

Ala i-i

1» WST^P

Opisany n iż e j ję zyk ALGOL je s t reprezenta­

cją konkretną ję iy k a ALGOL 6 0 d l a maszyny cy­

frowej ZAM 4 1 . W ro zdzia ła o h 2-5 podano ;de- fin io je jednostek akładnlowyoh języka AI/ioL, reguły tworzenia struktur poprawnych w tys\

Języku, o b ja ś n ie n ia znao zen ia poszozagólnyoh konstrukoji językowyoh ora» informacje o spe- oyfioznyoh o graniozeniach przyjętyoh. w t e j r«- prezentao ji Języ k a. R o zdziały te są tłumacze­

niem odpowiednioh rozdziałów ofio ja ln e g o doku­

mentu "R ev ised Report on the Algorithm ic la n ­ guage ALGOL 6 0 " 1 ^ aaohowijąoym jego uk ła d , leoz zawierająoym w ie le uzupełnień oraz uwzględniającym wszystkie zmiany wynikłe B p rzy ję t e j r e p r e z e n t a c ji. W tłumaozeniu wzoro­

wano s ię na tłumaozeniu powyższego dokumentu przez 8 . Paszkowskiego2 ^ , starano s i ę też ea- chowaó p r z y ję t ą w nim term inologię, wprowadza­

jąc r_.Iany tylko w niektóryoh' przypadkaoh.

Część z n io u , to zmiany satwierdsone p rzez

H a u r. P . (e d.) , Revised Report on the A l­

gorithm ic LangUŁc" i ‘ ALGOL 6 0 , E P IP , Copen­

hagen 1 9 6 2 .

^ Paszk ow ski, S . , Język ALGOL 6 0 , I T O , Warsła­

wa 1 9 6 8 , Dodatek i , s t r . 213- 253.

(9)

ALO 1-2

zespół C Korniej i <1/b 8ystemów Oprogramowania Maszyn Cyfrowyoh1 \ pozostałe wynikły z ko- nleoznośol zastosowania jed n o lit e j terminolo­

g i i w opisaoh wszystkloh elementów oprogramo­

wania maszyny oyfrowej ZAM 4 1 .

Rozdział 6 zawiera opis atandardowyoh pro- oedur wejścia-wyjśoia ALOOLu uzupełniony przy­

kładami danych wejśolowyoh i wyjśolowyoh na oryginalnyoh fórmularzaoh. W ro zdzia le 7 poda­

no wiadomości niezbędne do uruchamiania pro­

gramów w ALOOLu dla maszyny oyfrono j ZAM 41, a w rozdziale 8 - b a r d zie j azozegółowe informa- oje na temat Translatora ALOOLu i praoy w Sys­

temie Oprogramowania 141 - tzw . 3 0 1 4 1 .

Rozdział 9 jest przezneozony dla tych Czy­

telników , którzy chcieliby poznać jedynie róż- nloe między językiem wzoroowym, a opisywaną reprezentacją konkretną ALGOLu. Wymieniono w nim wszystkie zmiany w porządku numeraajl punk­

tów opisu języka wzoroowego.

W rozdziale 10 zamieszczono k ilk a przykła­

dów programowania problemów w języku ALGOL.

Przy doborze przykładów kierowano s ię przede wszystkim możliwośolami p rze jr zy st e j i l u s t r a o ji poszczególnych zagadnień związanyoh z użytkowa-' niem opisywanego ję zy k a , a n ie loh wartośoią numeryozną,

1 . 1 . Formalizm opisu składni

Składnia języka ( t j . obiekty określone » ję zy k u ) została opisana w n o ta o ji zaproponowa-

vf~ 1

' Protokół b p osie dze nia zespołu C Kom isji d /a Systemów Oprogramowania Maszyn Cyfrowy oh od­

bytego dn . 8 majn 1958 w Zakopanem podozas K o n feren cji OAMS G AJAF3I.

(10)

ALQ 1-3

nej przez J .W . Backusa ' - za pomooą formuł me­

tajęzykowych. Formuły-metajęzykowe składają aię ze .zmiennych metajęzykowych, stałyoh metajęzy­

kowych 1 łączników metajęzykowych.

Łączniki metajęzykowe oznaoza się symbolami

««= oraz I i czyta odpowiednio Jako "równe z d e f i n i c j i " i " l u b " . Symbol : : = d z i e l i formułę na dwie czę ś o i. Z jego lew ej stajany umieszcza się obiekt d e f i n i o w a n y z prawej - obiekty de­

fin i u ją c e . W wyniku każdy z obiektów Jest zde­

finiowany przez tak zwane symbole podstawowe Języka (l i t e r y , oyfry, nawiasy, znaki in t e r ­ punkcji i t p .) . Symbole podstawowe w formułach metajęzykowyoh reprezentują same s ie b i e , pod- ozas gdy inne oznaczenia reprezentują zawsze oałą klasę obiektów. Z tego względu symbole - podstawowe zwane są stałymi metajęzykowymi, a pozostałe obiekty - zmiennymi metajęzykowymi.

Zmienne metajęzykowe w formułach metajęzyko­

wy oh umieszoza s ię w nawiasaoh kątowyoh, nie umieszcza s i ę w nloh natomiast symboli podsta­

wowych.

Na przykład formuła

<ab> t * = / 1« I < ab > / | < a b > < d >

podaje rekurencyjną regułę tworzenia wartośoi zmiennej < ab > . Wynika z n i e j , że zmienna <ab>

może mieć wartość /

lub

i

1 }

1}1 Baokus, J . W . , The Syntax and Semantics of the Proposed Intern atio n al Algebraio Language of the Zurich ACM - GAUM Conference, I C I P . P a r is , June 1 9 5 9 .

(11)

ALQ 1-4

lub

j e ż e l i jest dana pewna dopuszozalna wai^- tość zmiennej < ab> , to nową jej wartość można otrzymać dopioująo do n ie j znak /

lub

je ż e l i jes t dana pewna dopuszozalna war­

tość zmiennej < a b > , to nową jej wartość można otrzymać dopioująo do n ie j pewną wartość zmiennej < d > .

Nieoh wartośoiami zmiennej < d > b ę d ą oyfiy dziesiętne

< d > ti= 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9

wówozas niektórymi wartośoiami zmiennej metaję­

zykowej < a b > będą«

1 / / / / ■

» / / / 1 I / / / 1 / x / / / 1 /3 7 /1 2 J4 5

»86

D e fln io ja i

< puste > : «=

oznaoza pusty oiąg symboli.

1 . 2 . Translator Języka ALGOL

Translator Języka ALGOL opraoowar^ dla maszy­

ny oyfrowej ZAU 41 jes t adaptaoją translatora Whatstone Compiler dla maszyny oyfrowej KDF 9 ' ,

zrealizowaną z wieloma modyfikaojami wynikają-

R andell, B . and R u ss e ll, L . J . , ALGOL 60 Inple- mentation, AP, London and New Yoik 1 9 6 4 .

(12)

- ALU 1-5

cymi ze specy fiki maszyny ZAU 4 1 . Tłumaczenie programu źródłowego na program wynikowy odby­

wa się w dwu etapach, zwany oh odpowiednio prze­

biegiem pierwszym i drugim.

Program wynikowy otrzymuje s ię w sp e cja l­

nym języku makrorozkazów wykonywanyoh za pomo­

oą programu zwanego Interpreterem . Rozmieszoze- nie danyoh w pamięoi operaoyjnej, dokonuje się dynamioznie za pomooą programowanego stosu pod­

czas wykonywania programu wynikowego. Zarówno program wynikowy, Jak i stos są automatycznie segmentowane i umieszczane w pamięoi bębnowej, skąd Interpreter sprowadza Je do pamięoi opera- o y jnej•

Translator ALGOLu dla maszyny cyfrowej ZAM 41 opraoował zespół pod kierowniotwem Ma­

r i i Łąokiej w składzie i Stanisław Choromąńal^i, Jowita Konoewioz, Janina Kozłowska-Pawlikowska, Waldemar Romaniuk i Zbigniew Ż o rsk i.

(13)

-*•5 6 :

• ■ - ■ ' A . — - ■■ ■

'

'

'

■ ■ - • ■ V.- Ł ...

iliiß, iV-S*

; .Î8VÆ;ï.:t- «Sf'SÍeiaíííS' -

“ÄÜ -:■•; SÉ-',;.;--/: 3 , i :óí:-;t ■ -:

• ■ :- v-,: :îm ■

....-

.

, L-i.;.'.r;'-íc’;‘ s Äfefex.:»;

(14)

AL<J 2-1

2 . SYMBOLE PODSTAWOWE, IDENTYFIKATORA , LICZBY, TEKSTY I SŁOWA ZASTRZEŻONE. POJĘCIA PODSTA­

WOWE

Programy w języku ALGOL tworzy s ię z następu- jąoyoh symboli podstawowyaht

(symbol podstawowy» i ! = < lit e r a > | *o y fra >|

<wertośó lo g ic z n a » I <o g r a n ic zn ik >

2 . 1 . Litery

< lit e r a > 1t= A |B |C |D |E |F |G |H |I|J|K |L |U |N |0 |P Q |R |S|T|U |V|’.V|X|Y|Z

Litery n ie mają indywidualnej w arto ści. Uży­

wa się ich do tworzenia identyfikatorów , teks­

tów i słów zastrzeżonych (patrz punkty 2 .3 »

"O g r a n ic z n ik i", 2 . 4 , "Id e n t y fik a t o zy " oraz 2 . 6 ,

"T e k s t y ").

2 . 2 . 1 , Cyfry

t oyfra > ««= 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9

Cyfry służą do tworzenia li o z b , identyfikato­

rów i tekstów.

(15)

ALO 2-2

2 , 2 . 2 . Wartości logiczne

< wartość lo g ic z n a ) ::=• TRUE | FALSE

Sens wartośoi logioznyoh Jest oczywisty (patrz Dodatek A ) .

2 ,3 « Ograniczniki

< o g r a n ic zn ik > :t= <operator >|<separator>|<nawias > |

< deklaxa tor >|< spe oy fik ato r >

< operator > »

1

= < operator arytmetyczny> |< operator logiozny >|<operator następstwa>

< operator aiy tmetyozny > : «= +|-| * | / |DXV| POWER

< operator r e l a c j i > it= LESSInOTGREATER|=|EQUAL|

NOTLESSI GREATERl NOTEQUAL

< operator logiczny > i : = EQUIV|IMPL|0R|aND|N0T

< operator następstwa» l *= GOTOlGO TO|lF|THEN|

e l s e If o rId o

< separator > : := , | .| E |t | j | : = | STEP|UNTIL|WHILE | COtlMENT|< spać Ja>|< nowa l i n i a >

< nawias > u = ( | ) | [ | ] r| BEGIN|i!ND

<deklarator>: := OJ/H |BOOLEAN| INTEGER|REAL|

ARRAY|SWITCH|PROCEDURE

•Cspecyfikator? : : = STRING|LABEL|VALUE

Ograniczniki mają ustalone znaczenie, które w większości przypadków jest oczywiste, w pozo­

stałych przypadkaoh będzie wyjaśnione w odpowied­

nim m iejscu (patrz również Dodatek A ) .

2 . 3 . 1 . Słowa zastrzeżone

Ograniczniki będące słowami utworzonymi z l i ­ ter, a także wartości lo g iczn e, są słowami za­

strzeżonymi, tzn . nie można ich używać jako iden­

tyfikatorów1 \ Wewnątrz słowa zastrzeżonego nie 1 ) Zastrzeżenie to nie dotyczy separatora E i po­

szczególnych składowych operatora GO TO - moż­

na używać identyfikatorów: GO, TO i E .

(16)

ALO 2-3

moie występować ^paoja ani nowa l i n i a . Między słowami GO 1 TO może pojawić s ię dokładnie jedna s p a c ja , ale n ie moie występować nowa l i n i a . J e ż e li bezpośrednio po słowie zastrze­

żonym nie następuje żaden ogranioznlk spośród ograniozników różnych od słów z a s tr ze żo n y o h ,■

to należy po nim umleśoló spaoję lub nową l i ­ n ię . Spis słów zastrzeżonych i ioh znaozenle w Języku polskim umieszozono w Dodatku A .

Przyjmuje s i ę , że następująoe o graniczn ik i są równoważne!

Ogranioznlk Jego równoważnik

GOTO GO TO

EQUAL S

W o graniczniku " « » " między symbolami ''« "

i " a " nie może występować a n i spao ja,~ a n i no­

wa l i n i a .

2 . 3 . 2 . Komentarze

Następująoe reguły pozwalają na wstawienie komentarza między symbole programu«

Ciąg symboli podstawowych Jego równoważnik

ł COMUENT < oiąg dowolnyoh

symboli nie zawierający t> t t BEGIN COMMENT < oiąg dowolnyoh

symboli n ie zawleiająoy t > t BEGIN END < oiąg dowolnyoh symboli

n i e ■zawierająoy \ ani END,

ani ELSE » END

Równoważność oznaoza t u , ża translator za­

stąpi każdą z trze oh struktur1 ^ podany oh w 'le- 1 ^Nle dotyczy to struktur zawartyoh w teks-

taoh - patrz p . 2 . 6 . "T e k s t y ".

(17)

ALG 2-4

wej kolumnie odpowiednim synbolem z prawej ko­

lumny; zastąpienie to nie będzie miało ja k ie ­ gokolwiek wpływu na program. Przyjmuje się też, że pierwszy komentarz (przy czytaniu symboli programu od lewej strony w iersza do praw ej) ma pierwszeństwo w zastępowaniu go równoważni­

kiem przed strukturami znajdującymi się w d a l­

szym ciągu programu. Szczególna postać komen­

ta rza , a mianowicie komentarz rozpoozynająoy się od słowa COMMENT, po którym następuje b e z­

pośrednio symbol * , może służyć do warunkowe­

go włączenia instrukoji lub de k lara cji do pro­

gramu (p atrz punkty 7 . 1 . "Języ k operacyjny ALGOLu" i 7 . 1 . 2 . "Zdanie KONTROLA.").

2 . 5 . 2 . 1 . P r z y k ł a d

BEGIN COMMEŃT PROGRAM ILUSTRUJĄC!

STOSOWANIE KOMENTARZ* j INTEGER Ij REAL X;

COMMENT POCZĄTEK PROGRAMU BEGIN POR I j= 1 STEP 1 UNTIL 10 DO OBLICZENIA END KONIEC PROGRAMU{

FOS I i= 1 STEP 1 UHTIL 10 DO BEGIN 13? I = 5

THEN BEGIN X s= I * (i + 1 ) ; X != X PO.YER X END PRZTPADEK 1 ELSE BEGIN X «= I * (I - 1 ) ;

X ł= X POiVER(X + 1) END PRZYPADEK 2

END

END KONIEC PROGRAMU *

Program powyższy jest równoważny następują­

cemu t

(18)

ALG 2-5

BEGIN INTEGER I ; HEAL Xj

FOR I != 1 STEP 1 UNTIL 10 DO BEGIN IP I = 5

THEN BEGIN X := I * (I + 1 )j X «= X PO.VER X END

ELSE BEGIN X t= I *■ ( I - 1 )j X := X POKER (X + 1) END

END END *

2 . 4 . Identyfikatory

2 . 4 . 1 . Składnia

< id e n t y f ik a t o r > : : = <litera> |< iden tyfik ator>

< l it e r a >(<iden tyfik ator >

< cyfra >

2 . 4 . 2 . Przykłady

Identyfikatory zbudowane poprawnie i A

BETA ALFA5

PIEHWI ASTKIWIELOHIANU D12MP52F

Identyfikatory zbudowane niepoprawnie«

ALFA 5 1B

PIERWIASTKI WIELOMIANU 2 . 4 . ^ . Znaczenie

Identyfikatory nie mają samoistnego sensu, lecz służą jedynie do nazywania zmiennych pros­

tych, t a b l i c , ety k ie t, przełąozników i prooe- dur. Można Je wybierać dowolnie, Jednak z uwzględnieniem ograniozeń wymienionych w punk—

(19)

ALG 2-6

taoh 2 . 3 . 1 . "Słowa zastrzeżone" oraz 3.2.4-.

"Funkcje standardowe". Wewnątrz identyfikatora nie może występować ani spaoja, ani nowa l i ­ n ia . J e ż e li po identyfikatorze nie następuje żaden z ograniczników różnyoh od słów zastrze­

żonych, to należy po nim umieśoić spaoję lub nową l i n i ę .

Różne wielkości można oznaozaó tym samym identyfikatorem tylko wtedy, gdy mają rozłą- ozne obszary d z ia ł a n ia , określone w programie deklaracjami (p a trz punkt 2 .7 » "W ie lkośoi, klasy i obszary d z ia ł a n ia " oraz rozdział 5»

"D e k l a r a c j e ").

2 . 4 . 4 . Ograniczenie

W jednym programie można deklarować najwy- ' żej 511 różnych identyfikatorów. Maksymalna długość identyfikatora nie może przekraozaó 68 l i t e r i (lub) cy fr.

2,5.» Liczby

2 . 5 . 1 . Składnia

< liczb a całkowita bez znaku > :

1

= < cyfra > |

< liczb a całkowita bez znaku > <ayfra>

< lio zb a całkowita >

1

:= < lic zb a oałkowita bez znaku>|+ < liczb a całkowita bez znaku »|

-< lic zb a całkowita bez znaku >

< ułamek dziesiętny > : . < lio zb a oałkowita bez znaku »

< o echa> s:= E < liczba całkow ita>

< lic zb a d z ie s ię t n a »!i= <liczb a całkowita bez zn a k u > | < ułamek d z ie s i ę t n y > I < liczb a oałko­

wita bez zn aku » < ułamek d z ie s ię t n y »

(20)

ALG 2-7

< liozba bez z n a k u ) : : = < lic zb a d z ie się tn a >1

<liozba d z i e s i ę t n a > < oeoh a>

< lic zb a > 1 1= < lic zb a bez znaku > I + < lio zb a bez znaku > I - < lio zb a bez .znaku >

2 . 5 . 2 . Przykłady

O - 200.084 v -.083E-02

1777 + 0 7 .4 3 .53 84

+ 0 .7 3 0 0 9 .3 4 E + 1 0 2E-4

2

.

5

.

3

. Znaozenie

Liczby dzie się tn e mają swe zwykle znaoze­

n i e . Ceoha jes t czynnikiem skalującym, riwnym potędze liczby 10 o wykładniku całkowitym.

Wewnątrz lio zby nie może występować ani spa­

c ja , ani nowa l i n i a . J e ż e li po lic zb ie nie następuje żaden o granicznik spośród-ogranicz­

ników różnyoh od słów zastrzeżonych, to n a le ­ ży po n ie j umieśoić spaoję lub nową l i n i ę . Ograniozonia nałożone na liozby podano w punk- oie 3«3>6 "Arytmetyka w ielkości typu KEAL i INTEGER".

2 . 5 . 4 . Typy

Liczby oałkowito są typu INTEGER. Wszyst­

kie inno liozby są typu REAL (p atrz punkt

"D eklaracje zmiennyoh p ro s t y o h ").

2 . 6 . Tokaty 2 . 6 . 1 . Składnia

< tekst > » ia '< dowolny oiąg symboli nio za­

wierający ' > '

(21)

ALG 2-8

2 . 6 . 2 . Przykłady ' i '

'+ K ,- ] = + (C l 7 T ) 1 2 5 '

'PIERW IASTKIt 2BWIEL0UIAHU *

2 .6 .5 « Znaozenie

Teksty stosuje się jako parametry standardo­

wych procedur w yjśoia (punkt 6 . 1 . "Instrukoje w y j ś c i a ").

Tekst może zawierać najwyżej 584 symbole (wraz z obydwoma symbolami " ' " ) . •

Symbole spaoji i nowej l i n i i są pomijane pod- ozas czytania tekstu, nie mają one bowiem żad­

nego znaozenia w obrębie tekstu.

2 . 7 . W lelkośol, klasy 1 obszary d ziałania

Rozróżnia się następująoe klasy wlelkościi zmienne proste, ta blioe, etykiety, przełąozniki i procedury.

Obszarem dzia ła n ia w ielkości jest zbiór in ­ s truk cji i wyrażeń, w którym obowiązuje dekla- raoja identyfikatora tej w ielk o śo i. Etykiety omówiono w punkcie 4 . 1 . 5 ,

2 . 8 . Wartości i typy

Wartością nazywamy uporządkowany zbiór l ic zb (w ezczególnośoi jedną l i c z b ę ), uporządkowany zbiór wartości logicznyoh (w szozególnośoi Jed­

ną wartość lo giazn ą) lub etykietę.

(22)

ALG 2-9

Niektóre jednostki składniowe mogą p rzyb ie­

rać w artośai, które na' ogół zm ieniają się w czasie wykonywania programu. Wartośoi wyrażeń i ich składowych zdefiniowano w. rozdziale 3«

Wartośoią identyfikatora tablioy jes t upo­

rządkowany zb ió r wartości odpowiedniej tablioy zmiennyoh indeksowany oh (punkt 3 .1 . 4 . 1 ).

Poszczególnie typy (INTEGER, REAL, BOOTiKAN) oznaozają ogólne cechy w arto śoi. Typy związane z jednostkami składniowymi odnoszą s ię 'd o war­

tośoi tyoh jednostek.

(23)
(24)

ALQ 3-1

3 . WYRAŻENIA

Podstawowymi ozęśoiąmi składowymi progra­

mów w języku ALGOL są wyrażenia arytmetyczne, boolowskie i s teru jąoe. Elementami tych wyra­

żeń, opróoz odpowiednich ograniozników war­

tośoi lo g io zn e, lio zb y , zmienne, odwołania funkcyjne oraz operatory elementarne: arytme­

tyczne, r e l a c j i , logiozne i następstwa. Ponie­

waż w d e fin ic ja o h składni zmiennej i odwołania funkoyjnego występuje w yrażenie, d e fin lo ja wy­

rażenia i jego elementów jes t z konieoznośoi rekurenoy jn a .

< wyrażenie >- «in <wyrażenie aiytmetyozne > I

<wyrażanie boolowskie>l

«wyrażenie sterująoe>

3 . 1 . Zmienne 3 . 1 . 1 . Składnia

< iden tyfikator zm iennej) i s= < identyf ikator >

< zmienna prosta > n = < iden tyfikator zmiennej J

< wyrażenie indeksowe >: s= < wyrażenie arytme­

tyczne >

< l i s t a indekeów>i!= < wyrażenia indeksowe vl

<l i s t a Indeksów > , <wyrażenle indeksowe)

(25)

ALG 3-2

< identyfikator tablicy > : : = < iden tyfikator >

< zmienna indeksowana» < identyfikator ta­

blicy > [<iiota indeksów>]

< zmienna> :s= <zmienna p ro s t a >l<zmienna indek­

sowana >

3 . 1 . 2 . Przykłady

DELTA A17 Q [ 7 ,2 3

X[SIN (N * PI/2), q O , N ,

4

] , a ]

3 . 1 . 3 . Znaczenie

Zmienna jest nazwą nadaną pojedynozej wai>- to śc i. Z wartości tej można korzystać w wyraże­

niach w oelu tworzenia innych wartośoi i można ją zmienić za pomocą instrukojl p rzypisania (patrz punkt 4 . 2 ) . Typ wartośoi zmiennej okreś­

lany jest deklaracją tej zmiennej (p atrz punkt 5 . 1 . "Deklaracje zmiennyoh p ro s ty c h ") lub odpo­

wiednią deklaracją Identyfikatora tablioy (patrz punkt 5 « 2 . "Deklaracje t a b lic "').

3 . 1 . 4 . Indeksy

3 . 1 . 4 . 1 . Zmienne Indeksowane są nazwami wartoś­

ci elementów tablic (p atrz punkt 5 * 2 . "Db^la- racje t a b l i c " ) . Każde wyrażenie indeksowe, znajdujące się na liś c ie indeksów, zajmuje jed­

ną pozycję indeksu w zmiennej Indeksowanej i nazywa się indeksem. Pełną lis t ę indeksów u j­

muje się w nawiasy kwadratowe "C " i " 3 " . E l e ­ ment t a b licy , odpowiadający zmiennej lndekso-

(26)

ALO 3-3

w anej, o k re ślają aktualne wartośol liczbowe In ­ deksów (p a trz punkt 3 .3 » "W yrażenia arytmetycz­

n e " ) .

3 . 1 . 4 . 2 . Każdy indeks interp re tuje a ię Jako zmienną typu IMTEGER, a p rzez o b lic ze n ie indek­

su rozumie s ię p rzyp isan ie wartośol tBj fikoyj- nej zmiennej (punkt 4 .2 .4 - ^

Wartość zmiennej Indeksowanej Jest określona tylko wtedy, gdy wartość w yrażenia Indeksowego zawiera się w granicach indeksu tablioy (p a t r z punkt 5 . 2 . "D e k la ra cjo t a b l i c "').

3

. 1 . 4 .

3

. O g r a n i o z e n l e

Wartość bezwzględna Indeksu nlo może prze- kraozać llo zby 32767«

3 . 2 . Odwołanie funkoy.jne 3 . 2 . 1 . Składnia

< Id e n t y fik a t o r prooedury) ««a < id e n t y fik a t o r )

< parametr a k t u a ln y )

11

» < tekat)|<wyrażenie> |

<id e n t y fik a t o r tablioy )l< id en ty fik a to r p rzełąoznlka > |< id e n t y fik a t o r procedury)

< tekst l it e r o w y ) tt* < litera> |< tek st l i t e r o ­ w y ) < l i t e r a >

< ograni o zn ik p aram etru ) tt» ,l)< tekst literow y >

1

(

< l i s t a parametrów a k tu a ln y o h ) i«» <parametr ak tu alny ) l< lista parametrów a k tu a ln y o h )

< ograniczn ik p aram etru) < parametr a k tu a ln y )

< zb ió r parametrów a k t u a ln y o h )

11

=» < puste > l(

< l i s t a parametrów aktualnyoh-))

< odwołanie fu n k o y jn e ) : ła < Id e n ty fik a to r procedury >< zb ió r parametrów ak tu alny oh >

(27)

ALG 3-4

3 . 2 . 2 . Przykłady

SIN(A+B) P (A , B-C) R

S (X-Y) TEMPERATURAl (T) CIŚNIENIE: (C) INCHAR (O)

SIGN(B POWER 2 - 4 * A * C )

3 .2 .3 » Znaczenie

Odwołanie funkcyjne określa pojedynczą w a r ­ tość liczbową lub lo giczn ą, która jes t wyni­

kiem zastosowania odpowiedniego oiągu reguł zadanych deklaracją procedury (punkt 5 * 4 . "D e ­ k laracje p ro o e d u r ") do ustalonego zbioru para­

metrów aktualnych. Reguły rządzące określaniem parametrów aktualnych podano w punkcie 4 . 7 , ("In s tr u k c je p ro c edu ry "). Nie każda deklaracja procedury określa wartość odwołania funkcyjne­

go.

3 * 2 , 3 . 1 . O g r a n i e z e n i e

W ograniczniku parameti-u poutacii ) < tekst literowy > : (

nie może występować symbol nowej l i n i i .

3 . 2 , 4 , Funkcjo standartowe

J e ż e li yr programie nie. występują deklara­

cjo (patrz rozdział 5 , "D e k la ra o je " ) odnoszą- oe się do wymienionych poniżej iden tyfik ato­

rów, to wówczas te identyfikatory są nazwami funkcji standartowych ALGOiiu.

(28)

A M 3-5

ABS AJRCTAN COS ENTIER EXP ■ INCHAR LN SIGN SIN SQHT

W przypadku, gdy program ista n ie ohoe korzys­

tać w programie lub Jego ozęśoi c ja k ie jś funk- a j i standardowej, może wtedy używać je j na^wy jako iden tyfik a to ra zadeklarowanaj w danym pro­

gramie w ie lk o ś o i.

3 . 2 . 4 . 1 . Z n a o z e n l e

Poniższe odwołania do fu n k o jl standardowyoh cznaozają odpowiednio*

ABS(w) wartość bezwzględną wartośoi wyraże­

n i a Wt

ARCIAN(.W) wartość główną fu n k o jl arpuo tan­

go ns Wj

COS (W) wartość fu n k o jl ’ oosinus Wł

ENSIER(W) wartość n ajw ię ksze j llozby. całkowi­

tej nie w ięk szej oęl wartośoi W;

EXP (W) wartość fu n k c ji wykładniczej wartoś­

oi W;

INCHAR(W) wartość symbolu wprowadzanego z urzą­

d z e n ia wejściowego związanego z nu­

merem symbolloznej operaoji wejA- o la Sj

L N W wartość logaiytmii naturalnego wyra- . żenla Wj

(29)

kto > 6

SION(W) znak algebralozny wartości W ( + 1 d la W > O , O d la WnO, -1 d la W < 0 ) ł

S IN (W) wartość fu n k c ji ainus Wj

SQRT(W) wartość dodatniego p ierw iastka kwa­

dratowego z W .

Funkcje te są określone zarówno d la argumen­

tów typu REAL, jak i typu INTEGER. Funkcje i EN TIER (W ), SIGN (W) i IN CHAR (W) przyjmują war- tośoi typu INTEGER, a pozostałe funkoje otan- dardowe - wartośoi typu REAL. Funkojei

ARCTAN (W) , COS (W) , ETP(W) , M(.W) i SQRT (W) są obliczane za pomooą algorytmów dająoyoh wyniki a błędem bezwzględnym mniejszym od 2 ‘*^0 .

' Wywołanie fu n k c ji standardowej ŁN(W) dla W < 0 ora* fu n k o ji standardowej SQIB?(W) d la W < 0 powoduje przerwanie wykonywania programu.

Arginaenty fanko j i RIH(W) i COS (W) oraz wartośoi fu n k cji ARCTAN(W) ją podawane w radian aoh .

3 .3 « Wyrażenia arytmetyczne 3 . 3 , 1 . Składnie

<operator typu dodawania> u = + l~

< operator- typu mnożenia > :«= * l/l D IY

< wyrażenie pierw otn e> i !a < lic zb a be z znaku >|

' < «sienna >| < odwołanie funkcyjne > |(< wy rażenia arytmetyozne >)

<ozynnik> «»a «w yrażenie pieiwotne> l<osynnik>

K W K B < wyrażania pierwotne >

< a k ła ć n ik > < oeynrdk>|< składnik> «op erator typu mnożenia > <

0

£ynniJk>

<prosto wyrażenie arytmetyczne > «»= < składnik >l

< operator typu dodawania > < składnik > |

< proste wyrażenie arytmetyczne > < operator typu dodawania > < składnik >

(30)

ALO 3-7

< warunek>

11

= XP < wyrażenie boolowskie >

THEN

< wyrażenie arytmetyozne > n * < proste wyraże­

n ie aiy tmetyozne>|<warunek> < proste wyra­

żenie ary tmetyozne > EI£E < wyrażenie aryt­

metyczne >

3«3»2. Przykłady

Wyrażenia pierwotnet 7.394E- S

BUM

W [j+ 2 ,8 ]

c o s ( r + z * 3 ) (A-3A+7U POWER e)

Czynniki«

OMEGA

SUM POWER COS('/■«■ Z * 3 )

7.394B- 8 P083R wjT.+2,8] POWER (A-3A+VTJ PCWER 8)

Skład nik ii U

CUBGA* SłJM POSKR C08(X+Z * 3 ) /7i394E - 3 POSBR W [J + 2 ,8 ] POWER (A- 3A+VU POWER 8)

Pro a te wyrażenie arytBetyoznst U-TO + CMBOAŁSUM POSBR COS(T+Z.*3)

/7.394E-8 POWER W £ + 2 ,0 PCWER (A-3/i+VU POKER 8)

Wyrażania aiyteetycsnei W * U - 0 .& + O T ] POSSR 2

I ? ą GREf.TBR O THĘH 8 +3 * Q A E13E 2 * 8 + 3 * *

IP

k LESS O TEEN U+V

EL3E TB A»B GREĄTER Vf THEH C /Y

SLSB I i Z HOTEQUitL T THHS Y /O ELSĘ O

(31)

ALG 5-8

A*SIN(OMEGA*T)

O .S T E ^

a

L

n

* (N -iy/ 2 ,o ]

(A*ARCTAN(I) + Z ) POfflBR(7+Q) A+ ( I F Q THEN N-1'EL3E N )

IF A LESS O THEN A /B ElfiE IF B

3

0 THEN B A SLSE Z

Wyrażenie arytmetyozne zbudowane niepopraw­

nie*

A + IF Q THEN N - 1 ELSE N S IN (A + X )B '

IF A LESS O THEN U + V 3 S IN (X )

5 .3 .5 « Znaozenie

Wyrażenie arytmetyozne jes t regułą na o b l i­

czanie wartośoi lic zb o w e j. W przypadku proste­

go w yrażenia arytmetycznego wartość tę otrzy­

mujemy wykonując wskazane operaoje aiy tmatyoz- ne na aktualnych wartośoiaoh liozbowyoh wyrażeń pierwotnyoh ( szozegćły podano w punkcie

5

«

5

.^»)»

Aktualna wartość liczbowa wyrażenia pierwotne­

go jest oozyv?iata, j e ż e l i wyrażeniem tym jes t lt o zb a . D la zmiennych je s t to wartość bieżą c a nadana ostatnim przypisaniem , a dla odwołań funkcyjnych je s t to wartość otrzymana w wyniku wykonania o bliczeń według reguł określająoyoh procedurę, zastosowanyoh do bieżąoych wartoś­

oi parametrów procedury, danyoh w yyrażeniu (p atrz punkt 5 . 4 . 4 . "W artośoi f u n k o j l " ) . W a r ­ tość wyrażenia arytmetyoznego ujętego w nawia­

sy należy wyrazić rekurenoyjnie p rzez wartoś­

oi pozostałyoh trzeoh typów wyrażeń piorwot- nych.

W b a r d z ie j ogólnym wyrażeniu arytmetycznym, zawierającym warunki, wybiera s ię jedno z

(32)

ALG 3-9

prostych wyrażeń arytmetyaznyoh, zgodnie z ak­

tualnymi wartośoiami wyrażeń boolowskioh (p a trz punkt 3*4-. "W yrażenia boolowskle"'). Wy­

boru dokonuje się w aposób następująoyi war- tośol wyrażeń boolowskioh występujących w wa­

runkach obliczamy kolejno dopóty, dopóki nie znajdziemy wyrażenia o wartości THUE. Wówozas wartością wyrażenia arytmetycznego będzie war­

tość pierwszego wyrażenia aiytmetycznego, nas­

tępującego po tym wyrażeniu boolowskim. Kons­

trukcja

EISE < proste wyrażenie arytmetyczne>

jeat równoważna konstrukcji

EI£E IF ' TRtJE THEH < proste wyrażenie arytme­

tyczne >

3

«

3

.

4

. Operatory i typy

Poza wyrażeniami boolowskimi występującymi w warunkaoh, ozęśoi składowe prostych wyrażeń aiytmetycznych muszą być typu REAL lub INTEGER (p a trz punkt

5

.

1

. "D ek laracje zmiennych pros­

tych"'). Znaczenie podstawowyoh operatorów i typy wyrażeń, do któryoh ono prowadzą, określa­

ją następujące reguły:

3 . 3 . 4 . 1 . Operatory .+ , - i * mają zwykły sens (dodawanie, odejmowanie i m nożenie).

Wyrażenie bę dzie typu INTEGER, j e ż e l i oba jego argumenty są typu IiJTEGBR, w przypadku przeciwnym będzie ono typu REAL.

3 . 3 . 4 .

2

. Operacje < s k ł a d n i k i/ < czynnik >

oraz < składnik > DIV < czynnik > o zna o za ją

(33)

A10 3-10

d z i e l e n i e , rozumiana Jako mnożenie składnika przez odwrotność czynnika, z uwzględnieniem odpowiednich reguł pierwszeństwa (p a t r z punkt 3 . 3 . 5 . ) .

Tak więc na przykład wyrażenie»

A / B * 7 / ( P ~ Q ) « V / S oznacza w za p isie konwencjonalnym

( ( ( (a-(b-1 ) ) - ? ) . ( ( p - q r 1 ) > v)- (s~ 1)

Operator " / " jes t określony dla w szystkiah czterech kom binacji typów REAL i IHTEGER skład­

n ik a oraz czynnika i w każdym przypadku daj a wynik REAL. Operator D IV je s t określony tylko dla obu argumentów typu INTEGEl? i daje wynik typu INTEGER, określony matematycznie wzoremi

A D IT B si S IG N (A /B )*E N T IE R (A B S (a/ B ) ) (p a t r z punkty 3»2- 4. oraz 3 . 2 . 5 . ) .

3 . 3 . 4 .

3

. Operacja < czynnik > POKER < wyrażanie p ie r w o tn e ) oznacza potęgowanie, przy czym

ozynnik jeat podstawą, a wyrażenie pierwotne wykładnikiem. Tak >vięo na przykład»

u K 2 POSER N POWER K oznacza (2** ) natomiast

f 2 POWER (N POTER M ) ozn>3. 'z a 2'-** '

Oznaczmy lit e r ą I lio zby typu INIEGER, l it e r ą R - liczby typu HłAL, l i t e r ą A - liczby typu HEAL lub INTEGER. Wtady wynik o p er a cji potęgowania ok reślają następująoe reguły»

A POWER I * j e ż e l i I > 0 , to wynik rówue. się A » A * • . . . * A ( I r a z y ) i j e s t te­

go aasego typu, ao At

(34)

ALO 3-11

ijeżoli X

3

O i j e ż e l i A J O , to wynik równa s i ę 1 i jest tego sa- Jmego typu oo A;

j e ż e l i A a 0 # to wynik jest nleokreś-

! _ _ l o n y t ____

¡jeżeli I c O i jeżal l A 4 O , to wy­

n ik równa aię l/^ A a - A * . . . * A ) (-1 razy) 1 jes t typu REA1»

j e ż e l i A a O , to wynik jest n ie ­ określony}

A POWER R :j e ż e l i A > 0., to wynik równa się EXP ( R * L N ( A ) ) i jes t typu HEALj

j e ż e l i A = O 1 j e ż e l i R > O , to wynik równa s ię

0 .0

i jes t typu

REAL}

je ż e l i R <

0

, to wynik jes t n ie ­ określony;

[jeżeli A <

0

, to wynik jes t n ie ­ określony.

3 . 3 . 5 . Pierwszeństwo operatorów

Operacje w wyrażeniu wykonuje się na ogół kolejno od jego strony lewej do p raw ej,jedn ak z uwzględnieniem dodatkowyoh reguł.

3 . 3 . 5 . 1 . Zgodnie ze składnią opisaną w punk- oie

3

.

3

.

1

. pierwszeństwo operatorów je s t nastę- pująoe:

pierw szy: POWER d r u g i: *•/ D IV t r z e c i: + -

(35)

ALG 3-12

3 » 3 » 5 » 2 . Wyrażenie ujęte w nawiasy - otwiera­

jący i odpowiadający mu zamykająoy - jes t ob­

liczan e n iesależn ie od innych, a jego wartoś­

ci używa się w dalszyoh oblicze n ia c h . Dlatego w wyrażeniu można zawsze osiągnąć dowolny po­

rządek wykonywania operacji przez odpowiednie rozmieszczenie nawiasów.

3 . 3>&. Arytmetyka w ielkośoi typu REAL i INTE­

GER

Zarówno zmienne typu REAL jak i typu INTE­

GER mają w maszynie cyfrowej ¿AM 41 tę samą reprezentację zmiennoprzecinkową. W związku z tym wartości zmiennych muszą zawierać się odpovdednio w przedziałach :

- 2 - 2 7 4 8 7 7 9 0 6 9 4 4 < wartość zmiennej typu IilTEGER < 274877906944 = 2 58

0 . 8 6 5 6E - 7 7~ 2 < ABS( wartość zmiennej typu REAL) < 2255 sł 0 .5 7 8 9 E 7 7

J e ż e li wartość funkoji AES(wartość zmien­

nej typu REAL) jest m niejsza od 0.8 63 6 E - 7 7, to tej zmiennej przypisuje się wartość 0 .

J e ż e l i wartość fun k cji ABS(wartość zmien­

nej typu REAL) jest większa od 0 .5 7 8 9 E 7 7 , to maszyna przezywa r e a liza c ję px’

0

gramu i sygna­

liz u je błą d.

J e ż e li wartość w yrażenia, które zgodnie z regułami podanymi w punkcie 3 . 3 . 4 . jest typu IIITEGKR, nie mieści się w podanym powyżej p r z e d z ia l e , to wynik o blicze nia będzie n iedo­

kładny.

(36)

ALO 3-13

3 . 4 . Wyrażenia t>oolowskle 3 . 4 . 1 . Składnia

<relaoja> s s= < proste wyrażenie arytmety ozne>

< operator relaoji> < proste wyrażenie aryt­

metyczne >

< pierwotne wyrażenie boolowskie>:s= < wartość lo giczn a >|< zmienna> | < odwołanie funkoy jne> |

<relac;)a>|(< wyrażenie boolow sk ie»)

< wtórne wyrażenie boolowskie> s :< pierwotne wyrażenie boolowskie» lNOT< pierwotno wyra­

żenie boolow skie»

< czynnik boolowski> 5:-a < wtórne wyrażenie I boolowskie»| <ozynnik boolowski > AND

< wtórne wyrażenie boolowskie >

< składnik bo o lo w sk i> is= < czynnik boolowski >l .< składnik boolowski > OR < czynnik boolow ski>

< im plikaoja > : : = < składnik boolowski > |

< im plikaoja> IMEL < składnik b o o lo w s k i>

< proste wyrażenie b o o lo w sk ie> s: = < implika-

!c;ja>|< proste wyrażenie boolowskie > EQUIV

< im plikaoja >

< wyrażenie boolowskie > ! ! = < proste wyrażenie boolowskie>|<warunek> <proste wyrażenie

¡boolowskie > EISE < wyrażenie boolowskie >

3 . 4 . 2 . Przykłady

X =

-2

X EQUAL -2

I GREATER V OR Z LESS Q

A + B GREATER

-5

AND Z - D GREATER Q POWER 2 P AND Q OR X NOTEQUAL 1

Q EQUIV NOT A AND B AND NOT C OR D OR E IMPL NOT F

IP K LESS I THEN S GREATER W ELSE H NOTGHEATER C IP IP IF A THEN B ELSE C THEN D ELSE F THEN G

ELSE H LESS K '

(37)

ALQ 3-14

3 . 4 . 3« Znaczenie

Wyrażenie boołowskie jest regułą na obli - ozanie wartości lo g io zn e j. Zasady obliczeń są tu analogiozne do zasad dotyoząoyoh wyrażeń arytmetyoznyoh, podanych w punkole 3 . 3 . 3 .

3 . 4 . 4 . Typy

Zmiennym i odwołaniom funkcyjnym, użytym jako pierwotne wyrażenia boolowskie, należy przypisać typ BOOLEAN (p a trz punkty 5 *1 » "D e ­ k laracje zmiennych prosty oh" oraz 5 . 4 . 4 .

"Wartości f u n k c j i " ) .

3 . 4 . 5 . Operatory

Helaoja m aw artość TRUE, j e ż e l i jest speł­

niona d la wyrażeń wohodzących w jej skład, W przypadku przeoiwnym r e la c ja ma wartość FA1SE.

W poniższej tabeli podano interpretaaję opera­

torów logicznych» NOT ( n i e ) , AND ( i ) , OR (lu b ), IŁIPL (im p lik u je ) oraz EQUIV (równoważne)«

B

1

FALSE FALSE TRUE ÎRUE

B2 FALSE TRUE FALSE TRUE-

NOT B1 TRUE TRUE FALSE FALSE

B1 AND B2 FALSE. FALSE FALSE TRUE B1 OR B2 FALSE TRUE TRUE TRUE B1 IMPL B2 TRUE TRUE FAI5E TRUE B1 EQUIV B2 TRUE FALSE FALSE TRUE

3 . 4 . 6 . Pierwszeństwo operatorów

Operacje w wyrażeniu są wykonywane na ogół od lewej do prawej, z uwzględnieniem następu- jąoyoh dodatkowyoh reguł«

(38)

ALQ > 1 5

3 . 4 . 6 . 1 . Zgodnie ze składnią opisaną w punkoie 3 . 4 . 1 . operacje są wykonywane w następującej k olejn o ści:

pierwsze« wyrażenia arytmetyozne, zgodnie z punktem 3 *3 *5 *

drugie: LESS, NOTGREATER, = , EQUAL, HOTLESS, GREATER, NOTEQUAL

trzecia: NOT ozwarta: AND piąta: OR szósta: IMFL siódma: EQUIV

3 . 4 .

6

. 2 . Zastosowanie nawiasów interpretuje się w sensie podanym w punkcie

3

*

3

*

5

*

2

.

3*5* Wyrażenia sterująoe 3 .5 * 1 . Składnia

< etykieta» : : = <id e n t y f ik a t o r >

< iden tyfik ato r przełąoznika > : := « id e n t y f i­

kator >

< p r z e ł ą c z e n ie > : «=<identyfikator p rzełącznika>

| | [< wyrażenie indeksowe

>3

«proste wyrażenie s t e r u ją c e > :«= <etykieta>l

« przełąozenie>|(< wyrażenie steru jąoe >)

«wyrażenie s te r u ją c e * : : = < proste wyrażenie sterująoe>|<warunekxproste wyrażenie sterująoe> ELSE < wyrażenie sterujące»

3 * 5 * 2 . Przykłady

E3 P9

(39)

ALG 3-16

WARIANT [N-1]

DROGA U F Y LESS O THEN N ELSE N+1]

IF AB LESS C THEN E3 ELSE Q [iF W NOTGREATER O THEN 9 EISE N]

3

.

5

.

3

. Znaczenie

Wyrażenie sterujące jes t regułą na określa­

nie etykiety instru kc ji (p a t r z ro zdział 4 .

"I n s t r u k c j e " ). Reguły o b licza n ia wartości wy­

rażenia sterującego są w p ełn i analogiczne do reguł podanych d la wyrażenia arytmetyoznego (p a trz punkt 3 « 3 * 3 * )* Wyrażenia boołowskie za­

warte w warunkach wyznaczają jedno z prostych wyrażeń sterujących. J e ż e li jest ono etykietą, to żądany wynik już otrzymano. Przełąozenle odsyła do deklaraoji odpowiedniego p rzełączni­

ka (p a t rz punkt 5*3« "D e k la ra cja p rzełączni­

ków" ) i według aktualnej wartośoi liczbowej jego wyrażenia indeksowego wybiera jedno

2

wy­

rażeń sterująoych umieszczonych na l i ś o i e w de k lara c ji p rzełącznika, liczą c te wyrażenia od lewego do prawego. W związku z tym, że wy­

brane w ten sposób wyrażenie sterujące może znów okazać się przełączeniem, proces o b lic za ­ n ia wartości jest na ogół rekurencyjny.

3 . 5 . 4 . Wyrażenie Indeksowe

Obliczanio wartości wyrażenia indeksowego przebiega tak samo, jak w przypadku zmiennej indeksowanej (p a trz punkt

3

. , . 4 . 2 . ) . Wartość p rzełączenia je s t określona tylko wtedy, gdy wyrażenie Indeksowe ma jedną z wartości do­

datnich: 1 , 2 , . . . N , gdzie N jest l ic z b ą po­

zy c ji na l i ś c ie w de k lara cji p rzełąoznika.

(40)

ALG 4-1

4 . INSTRUKCJE

Jednostki operaoyjne języka nazwano instruk­

cjami. Instrukcje wykonuje się zwykle w takim porządku, w jakim są n ap isa n e. Porządek ten mo­

gą zmienić jedynie instrukcje skoku, jawnie określające swój następnik oraz instrukcje wa­

runkowe, które mogą spowodować pominięcie pew- nyoh in s t r u k c ji.

Instru kcje można opatrywać etykietam i, co pozwala określić szozególne dynamiczne następ­

stwo i n s t r u k c ji.

W związku z tym, że ciągi in s tru k c ji można grupować w instrukcje złożone i b l o k i , z ko­

nieczności d e f in l o ja in s t r u k c ji Jest rekuren- oyjna. W składniowej d e f i n i o j i in s tru k o ji za­

kłada się t e ż , że dek laracje (p a trz r o zd zia ł 5 ) są Już określone, stanowią one bowiem istotną część struktury składniow ej.

4 . 1 . Instrukcjo złożone i Tploki 4 . 1 . 1 . Składnia

< instru kcja podstawowa be z etykiety > ::=»

instru kc ja przypisania>| < instrukcja skoku>|<instrukcja pusta>| < instrukcja pro- ceduiy>

(41)

ALd 4-2

<instrukcja podstawowa) : : n < instrukcja pod- I stawowa baz e t y k ie ty * | < etykieta > :

* instrukoja podatawowa >

< instrukc ja bezwarunkowa) : : = < instrukoja podstawowa) |< instrukcja złożona) |< b l o k )

<instrukoja> i := < instrukcja bezwarunkowa) i

< instrukcja warunkowa) l< instrukcja cyklu>

<koniec instru kcji zł o ż o n e j> s:= < in s t r u k c ja ) I END I < ins trukoja > j <konieo in s tr u k c ji

’ złożonej >

< początek b l o k u ) »

1

= BEGIN < deklaracja > I

< początek b l o k u ) j < d e k la r a o ja )

< instrukcja złożona bez e t y k ie t y ) : : = BEGIN

•ikonieo in stru kc ji zło ż o n e j)

< blok bez etykiety >

1 1

= < poozątek bloku > j

< koniec instru kc ji z ł o ż o n e j )

< instrukcja złożona > ! : = < instrukcja złożona bez etykiety )|<etykieta> t < instrukcja złożo na)

< b lo k ') s := < blok bez ety k ie ty ) |< etykieta > «

< blok >

< program ) : : = < b l o k ) j<instrukcja z ło ż o n a )

W celu o bjaśnienia tej składni oznaczmy dowolne instru kc je, deklaracje i etykiety od­

powiednio literam i

1

I , D i E . Wtedy podstawo­

we jednostki składniowe będą miały następują­

cą postać:

Instrukcja złożona:

E : E : . . . BEGIN I j I j . . . I j I END Blok:

E : E : . . . BEGIN D } Di . . . Dj I ; I , . . . I , I END

■Należy przy tym pamiętać, że każda z in ­ struk cji I sama może być instrukcją złożoną lub blokiem.

(42)

ALO 4-3

4 . 1 . 2 . Przykłady

Instrukoje podstawowe*

A := P + Q GO TO KONIEC

START i DALSZYCIAG. l Wio 7 .9 9 3

Instru k cja złożona:

BEGIN X := Oj

FOR Y := 1 STEP 1 UNTIL N DO X := X + A[Y]ł

IF X GREATER Q THEN GO TO STOP ELSE IF X GREATER W - 2

THEN GO TO St AW: ST: W:= X + BOB END

Blok:

Q : BEGIN INTEGER I , Kj .REAL W

5

L : FOR I :=1 • STEP 1 UNTIL 1.1 DO

FOR K := 1+1 STEP 1 UNTIL U DO BEGIN W := a[ I , K ] }

L : aCi,K ]i= a[k,i] { a( K ,I ] : = W END DLA I ORAZ K END KONIEC BLOKU Q

Przykład bloku zbudowanego niepoprawnie:

BEGIN INTEGER N; REAL W,Vj L : I N P (

0

,N ,v ) j

SWITCH P := E , E 1 , E2j IF N LESS V THEN GO TO P[n]

ELSE GOTO L|

E l ‘ Wiś N + GO TO L 1 ; E 1 : W := 2 * N + V;

GO TO L 1 ;

(43)

ALG 4-4

!021 W: i; U * V |

L1:E1ID BLOKU Z i.liKLA.RACJA W HIJJWŁASCIWtM KONTEKŚCIE

4 . 1 , 3 . Znaczenie

Każdy blok wprowadza automatycznie nowy po­

ziom oznaczeń. Realizuje się to w ton sposób, że dowolny identyfikator występujący wewnątrz bloku może być przez odpowiednią deklai’aoję (r o zd ział 5« "D e k la r a o je ") zlokalizowany do tego bloku. Oznaoza to, że« (a ) obiekt, repre­

zentowany przez ten identyfikator wewnątrz da­

nego bloku, nie is t n ie je poza tym blokiem oraz (b) dowolny obiekt, repi’ezentowany przez ten san identyfikator poza danym blokiem, jest całkowicie niedostępny w tym bloku.

Identyfikatory (z wyjątkiem tyoh, które o zn a cza j! etykiety) spotykane wewnątrz bloku i w nim nie zadeklarowane, nie są w nim lo k a l­

ne, t j . reprszentują te same obiekty wewnątrz danego blok u, co i w blrku bezpośrednio obej- mująoym dany blo k . Etykietę oddzieloną dwukrop­

kiem od in s t r u k c ji, a więc przyporządkowaną tej in s t r u k c ji, traktuje ię tak. jak gdyby była ona zadeklarowana na początku obejmują­

cego blo k u, t j . w najmniejszym bloku, którego nawiasy BEGIN i END zawierają wspomnianą in ­ struk cję. .7 tym kontekście treść procedury, a także instrukcję występującą po warunku cyklu (punkt 4 . 6 ; "In str u k c je oyklu" ) należy trakto­

wać tak, jak edyby były one ujęte w nawiasy BEGIN i END i stanowiły b l o k i .

VI związku z tym, że instrukcja w bloku sa­

ma może być blokiem, p ojęcia "lo k a ln y " lub

(44)

ALO 4-5

"n ie lo k a ln y " należy rozumieć rekurenoyjnie.

Tak więc id en ty fik a to r nielokalny w bloku A może być lokalny lub nielokalny w bloku B , w którym A jes t jedną z in s t r u k o ji.

4 . 1 . 4 . Ograniozenie

L iozba poziomów bloków, które mogą być de­

klarowane jeden wewnątrz drugiego, została ograniczona do 63«

4 . 2 . Instrukcje p rzyp isan ia 4 . 2 . 1 . Składnia

<lewa strona> 1

1

= <zmienna> «=» |<identyf ikator procedury> »=

< li8 ta lewyoh stron> : t= < lewa strona>|

< l i s t a lewyoh Btron> < lewa strona>

< instru k o ja p rzyp isan ia > : : = < l i s t a lewych stron> < wyrażenie aiytmetyczn9>|<lisT;a lewyoh stron><wyrażenie boolowskie>

' ‘ ■■ ' . r . : V i? '

4 . 2 . 2 . Przykłady

Si= P[0]x= Nj= N + 1 + S Ni= N + 1

At= B /C - V - Q * S

S [ V ,K + 2 ] := 3 - ARCTAN ( S » Z E Ta) V «= q GRKA.TER i AND Z

4 . 2 . 3 . Znaozenie

Instru kcje p rzyp isan ia służą do p rzyp isan ia wartośoi wyrażenia jednej lub w ielu zmiennym lub identyfikatorom prooedury. Przypisanie

(45)

ALG 4—6

wartości identyfikatorom procedury może mieć miejsce jedynie w treści procedury określają­

cej wartość funkcji (punkt 5 * it '.4 .) . Prooes p rzypisania wartości przebiega w trzeoh nastę­

puj ąoy oh krokaohi

4 .2 .3 * 1 » Wszystkie wyrażenia indeksowe wystę­

pujące w zmiennyoh lewyoh stron oblioza się kolejno, poczynając od lewego wyrażenia, aż do prawego.

4 . 2 . 3 . 2 . O blicza się wartość wyrażenia.

4 .2 .3 * 3 « Wartość wyrażenia przypisuje się wszystkim zmiennym lewych stron z wyrażeniami indeksowymi o wartościach obliozonych w kroku 4 . 2 . 3 . 1 .

4 . 2 . 4 . Typy

Wszystkie zmienne i identyfikatory proce­

dury na l i ś c i e lewych stron powinny tyć jedna­

kowego typu. J e ż e li jes t to typ BOOLEAK, to wy­

rażenie także musi być typu BOOLEAH. J e ż e li jes t to typ REAL lub INTEGER, to vyrażenie musi być arytmetyczne. J e ż e li typ wyrażenia arytmetycznego różni s ię od typu związanych z nim zmiennych i identyfikatorów procedury, to odpowiednie przekształcenie jest wykonywane autoratycznie. Przy przekształceniu wartośoi wyrażenia W z typu REAL na typ IHTEGER otrzy­

muje s ię wyniki

ENTIER (W + 0 . 5 )

Typ związany z identyfikatorom procedury jes t określony przez deklarator, będący pierw­

szym symbolem w deklaraojl tej prooedury (punkt 5 . 4 . 4 . ) .

(46)

Aia 4-?

4 . 3 . Instrukcje skoku 4 . 3 . 1 . Składnia

< instru kcja s k o k u >

11

= GO T O < wyrażenie ste- rująoe>| GOTO < wyrażenie sterujące >

4 . 3 . 2 . Przykłady

GO TO E3

GOTO WARIANT [,N-l]

GOTO DROGA [iF T LESS O THEN N ELSE N+l]

GO TO IF AB LESS C THEN E3 ELSE

Q [IF W NOTGHEATER O THEN 9 ELS3 N]

4

.

3

.

3

. Znaozenie

Instru k cja skoku przezywa naturalny porzą­

dek wykonywania in s t r u k c ji, zgodny z porząd­

kiem, w jakim je nap isan o. Instru k oja skoku wyznacza swój następnik przez wartość wyraże­

nia sterującego. Tak więo następną wykonywaną » instrukoją będzie t a , d la której wspomniana wartość je s t etykietą.

4

.

3

.

4

. Ograniczenie

W związku z tym, że etykiety są. z natury lokalne, żadna instrukoja skoku nie może pro­

wadzić z zewnątrz bloku do jego wnętrza. I n ­ strukcja skoku może jednak prowadzić z zew­

nątrz do in 3 tru k o ji zło ż o n e j.

4

.

3

.

5

. Skok przy nieokreślonym przełączeniu J e ż e li wyrażenie sterujące jes t przełącze­

niem o nieokreślonej w artości, to instru kcja skoku jest równoważna in s t ru k c ji p u s te j.

(47)

ALO 4-8

4 . 4 . Instrukcje puste 4 . 4 . 1 . Składnia

< instrukcja p u s ta > tta < p u s te >

4 . 4 . 2 . Przykład

Łi B E G I N ...j AIiFAl END

4 . 4 . 3 . Znaczenie

Instrukoja pusta n ie powoduje wykonania żadnej czynnośoi. Uożna się n ią posłużyć w oe- lu umieszozenia dodatkowej etykiety w progra­

mie .

4 . 5 . Instrukcje'warunkowe 4 . 5 . 1 . Składnia

< instrukoja warunkowa niepełna> t

1

= < warunek >

< instrukoja bezwarunkowa>

< instrukcja warunkowa)

11

= < instrukcja warun­

kowa niepełna>|< instrukoja warunkowa niepeł­

n a ) ELSE < instx’ukcja>|< warunek) <insti\iko ja cyklu>|<etykieta> ! < instrukoja warunkowa)

4 v 5 .2 . Przykłady

IF X GHEATER 0 THEN Ni= N+1 IF V GEEATEH U THEN Et Qt= N+M

ELSE GO TO R

IF S LESS O OR P NOTGHEATER Q THEN AA! BEGIN

IF Q LESS V THEN Al* V /S ELSE Y t= 2 * A

(48)

ALG 4-9

END

ELSE IF V GREATER S THEN A := V - Q ELSE IF T GREATER S - 1 THEN

GO TO SA1

4 .5 .3 « Znaczenie

Instru kcje warunkowe powodują pominięcie lub wykonanie pewnyoh in s tru k c ji zależnie od aktualnych wartośoi określonyoh wyrażeń boo- lowaklch.

4 .

5

.

3

.

1

. I n s t r u k c j a w a r u n k o ­ w a n i e p e ł n a

Inatrukoja bezwarunkowa występująoa w in ­ strukcji warunkowej niepełnej będzie wykona­

na, j e ż e l i wyrażenie boolowskle stanowiące część warunku ma wartość TRUEj w przypadku przeciwnym instru kcja ta zostanie pominięta i dalsze d z ia ła n ie rozpooznle się od następ- - nej in s t r u k c ji.

4 . 5 . 3 . 2 . I n s t r u k o j e w a r u n k o - w e

Zgodnie ze składnią możliwe są dwa różne rodzaje ina tru k cji warunkowych. Można je z i l u ­ strować następującymi przykładami!

IF B1 THEN 11 ELSE IF B2 THEN 12 ELSE I3t Il­

oraz

IF B1 THEN I I ELSE I ? B2 THEN 12

ELSE IF B3 THEN I3ł 14

(49)

ALG 4-10

B 1, B2 i BJ są tu wyrażeniami boolowskimi, 1 1 , 12 i 15 są instrukcjami bezwarunkowymi, a 1 4 - instrukoją następującą po instrukoji warunko­

w e j.

Wykonanie instruko ji warunkowej opiszemy następująco« wartośoi wyrażeń boolowskioh wys­

tępu jąoyoh w warunkaoh oblicza się kolejno od lewego do prawego, aż do zn alezienia wartości THUE; następnie wykonuje s ię instrukoję bezwa­

runkową napisaną bezpośrednio po tym wyraże­

n iu ; je ż e l i ta instrukcja nie określa sama swo­

jego następnika, to będzie nim 1 4 , t j . instruk­

cja następująoa po pełnej instru koji warunko­

w ej; tak więc działanie ogranicznika ELSE pole­

ga na tym, że na następnik in s t ru k o ji, po któ­

rej stoi ELSE, wyznaoza on instrukcję napisaną po pełnej instruko ji warunkowej.

Konstrukcja

ELSE < instrukcja bezwarunkowa»

jest równoważna konstrukcji

ELSE IF TRUE THEN < instrukoja bezwarun­

kowa >

W przypadku instru koji warunkowej drugiego ro dzaju, gdy żadne z wyrażeń boolowskioh wys- tępująoyoh w warunkaoh nie ma wartośoi THUE, wówczas wynik wykonania takiej instru ko ji wa­

runkowej sprowadza się jedynie do efektów, spowodowanyoh obliczaniem wyrażeń boolcw- skich,

Do dalszych wyjaśnień m oi. być pożyteczny schemat«

IF B1 THEH 11 ELSE I J B2 THEN 12 ELSE 1 3 ; 14

B1 ma wartość FALSE B2 ma wartość FALSE

(50)

ALG 4-11

4 . 5 . 4 . Skok do wnętrza in s t ru k c ji warunkowej

Wynik wykonania in s t ru k c ji skoku, prowadzą­

cej do wnętrza in s tru k o ji warunkowej, wypływa z wyjaśnionego wyżej d z ia ł a n ia ogranicznika ELSE.

4 . 6 . Instru kcje cyklu 4 . 6 . 1 . Składnia

< element l is t y oyklu >-j i= <wyrażenie arytme­

tyczne)!« wy rażenie arytmetyozne> STEP

< wyrażenie arytmetyozne > UHTIL < wyrażenie arytmetyczne» | «wyrażenie arytmetyczne) WHILE < wyrażenie boolowskie)

< l i s t a c y k lu ) n = < element l i s t y cyklu >|

< l is t a qyklu>, < element list y cyklti»

< warunek cykluł!t= FOR < zm ienna) ¡=< lista oyklu > DO

< instrukoja cyklu■> s »= < warunek oy klu )

< in s t r u k c ja ) k e t y k i e t a ) t < instrukoja cyklu >

4 . 6 . 2 . Przykłady

FOR Qs=» 1 STEP S UHTIL N DO A [q] := B [q] FOR Ki= 1 , V 1 * 2 WHILE V1 LESS N DO

FOR J*=» I+ G , L , 1 STEP 1 UNTIL N , C+D DO A [K , j] t= B [K , j]

4 . 6 . 3 . Znaczenie

Warunek oyklu powoduje kolejne wykonanie naatępująoej po nim in s t ru k o ji I (p a t r z punkt 4 , 1 , 3 ) zero lub więoej r a z y . Ponadto warunek

oyklu przypisuje sterowanej przez siebie zmiennej kolejne w a rto ś ci.

(51)

ALG 4-12

Proces ten można wyjaśnić za pomocą nastę­

pującego schematu:

in i c j a l i z a c j a ;

sprawdzenia; Instruk cja I ; przesun ięcia; nastgpnlk l is t a cyklu wyczarpana

W powyższym echomacie słowo " i n i c j a l i z a c j a "

oznacza wykonanie pierwszego przypisania zgod­

n ie z warunkiem cyklu. "P rze s u n ię cie" oznacza następne przypisanie według tego warunku.

"Sprawdzenie’ oznacza badan ie, czy wykonano os­

tatnie przypisanie« je ż e li tak, to będzie wy­

konany następnik in stru kc ji cykluj w przypad­

ku przeciwnym wykonuje s ię instrukcję napisa­

ną po warunku oyklu.

4 . 6 . 4 . Elementy list y cyklu

Lista cyklu jest regułą, według której otrzymuje się w artości, przypisywane kolejno zmiennej sterowanej przez warunek cyklu. War­

tości te otrzymuje się z kolejnych: elementów listy cyklu. Ciąg wartości generowany przez każdy z trzech- składniowo możliwych rodzajów elementów list y cyklu oraz odpowiadające mu wykonania in stru kc ji cyklu - określają nastę­

pujące reguły«

4 . 6 . 4 . 1 . W y r a ż e n i e a r y t m e ­ t y c z n e

Element tego rodzaju daje tylko jedną war­

tość, mianowicie Wartość wyrażenia arytmetycz­

nego, obliczoną bezpośrednio przed odpowiada­

jącym temu elementowi wykonaniem in stru kc ji I .

(52)

ALG 4-13

4 . 6 . 4 . 2 , E l e m e n t p o e t a o l p o b - t ę p u a r y t m e t y o z n e g o

Element postaci A STEP B UNTIL C, gdzie

A,

B i C są wyrażeniami aiytmetyoznymi, określa . taki porządek wykonywania, któiy można za po­

mooą innych in s tru k o ji ALGOLu opisać w sposób następująoy:

V1»= V := Aj V 2 := B{

L 1 : IF (V 1 - C )* SIG N(V2) GREATER O THEN GOTO ELEUENTWTCZERPANOj instru kc ja 1}

V2»= Bj V1»= Vs= V+V2;

GO TO L1j

gdzie V jes t zmienną sterowaną przez waru­

nek cyklu, a etykieta ELEMENTWXCZERPANO prowa­

d zi do o b lic ze n ia następnego elementu l is t y cyklu lub - j e ż e l i rozważany element jes t os­

tatni na l i ś c i e - do następnej in s t r u k c ji pro-'- gramuj V1 i V2 są dodatkowymi zmiennymi robo­

czymi.

4 . 6 . 4 . 3 . E l e m e n t " p o d o z a s g d y "

Wykonanie sterowane przez element list y cyklu postaci E WHIŁE P , gdzie E jest wyraże­

niem arytmetycznym, a P - boolowskim, można ' za pomooą innych in s t ru k o ji ALGOLu opisać w sposób następujący»

L3i V»=E|

IP NOT P THEN GO TO ELEMSNTWYOZERPANO;

(53)

ALG 4-14

instrukcja 1}

GO TO L3t

Oznaczenia - jak w punkcie 4 . 6 . 2 .

4 . 6 . 5 « Końcowa wartość zmiennej sterowanej przez warunek cyklu

Tożsamość zmiennej sterowanej przez warunek oyklu nie jes t ustalana raz na zawsze na po­

czątku każdej aktyw izacji p ę t l i i może zależeć od wyniku obliczenia wyrażeń zmieniająoyeh war­

tość zmiennej indeksowanej, zawartych w in s ­ trukcji sterowanej. Po wyjściu z in s tru k c ji I (j e ż e l i jest ona instrukcją złożoną) za pomooą in stru k c ji skoku, wartość zmiennej sterowanej przez warunek oyklu będzie taka sama, jaka by­

ła bezpośrednio przed wykonaniem in stru kc ji skoku. J e ż e li natomiast wyjście z in s t ru k c ji X było spowodowane wyozerpaniem list y Oyklu, to w przypadku, gdy ostatni element list y cyklu był

(a ) wyrażeniem arytmetycznym, wówczas zmien­

na sterowana ma jego wartość;

(b) elementem postaoi postępu arytmetycznego bądź elementem "podozas g d y ", wówczas

zmienna sterowana ma wartość równą pierw­

s zej wartośoi tej zmiennej powodująoej p rzejś cie do następnej in stru k c ji progra­

mu.

4 . 6 . 6 . Skok do wnętrza in s tru k c ji cyklu

Wynik wykonania in stru kc ji skoku znajdują­

cej się na zewnątrz in s tru k o ji oyklu, a odno-

Cytaty

Powiązane dokumenty

przedm iotów , w ystaw ion ych nadto na d ziałan ie prom ieni słon eczn ych... N astępnie gotuje się go i w celu oczyszczen ia przepuszcza przez

Proszę o zapoznanie się z poniższym procesem technologicznym, przepisać go do zeszytu wraz z rysunkiem. ANALIZA RYSUNKU. a) dobór materiału: pręt Ø10

Standardowe procedury wejścia służą do wprowadzania danych do pamięci maszyny. Każdorazowe wywołanie procedury wejścia w programie /instrukcją procedury lub nazewnikiem

Jeśli w programie głównym chcemy wywołać opisany podprogram; to możemy tego dokonać przez napisanie rozkazu o przykładowej postaci:. (R, S )=TRA!1S (P,Q,

Vow.. Ogólna struktura języka ... Formaliza opisu składni ... Notacja wartości zmiennej. SYMBOLE PODSTAWOWE ... Znaki specjalne ... ytos adresów rozkazów... Konwencja

ZOO2_U03 dokonać wyboru strategii doskonalenia zwierząt, wykorzystując informacje genetyczne w ocenie wartości hodowlanej i selekcji; ocenić efektywność pracy hodowlanej;

- W cyklu współczesnym wyróżnia się dwie fazy: ożywienie ( Expansion) i recesję*(Contraction)..  Charakteryzuje się asymetrią rozwoju,

Wstawienie kodu nowej metody dodaj_tytul oraz metody main testującej działanie wykonanego przypadku użycia.. Java, Zofia