87 s OCR

Transkript

87 s OCR
- Uživatelsk,a
_,
prtručka-
- - ---- - ----- ------- - -- - -- -- -------- - -------- Kapi·t.ola 0 _ Úvod_
0. 0 SWVO NA ÚVOD.
==================
Pascal
.ie
.iazyk
byl
vyŠŠ:f.
proaramovac{
navržen
Unlversity 7.n.ri.ch .
.i'lzvk
Profesorem
pro
\~irthem
Niklausem
.jazvk.'l. bvla uveře.iněna v roce 197 l . Pascal
s:vsternetického nříst. upu k
strukturovaného prop::ramováni..
pouŽÍvat
y
'
soucasne
jazykŮm.
nejen
době
z
Tento
Technical
Jazyk hvl Poimenován Podlo'l znám,l.ho matAmatika
a filoz.ofa sedmnáctého stolet:Í Blaise Pascala .
pro vÝuku
POil~it.{.
obecné
ÓČely
pro
patH
k
Pascal
<• nro Ílvod do
prof.!ramovimí
Během
vÝuky,
\hrthova definice
hvl n av rŽen PředevŠÍm
k:.:-átké doby
ale
•
také
'I I
v
V
se zZ~oal Pascal
běž nó
• 't I
ne.JpouzJ.vane.lsl.m
praxi.
V
'
proa.r~'roovnclm
rozšířil
D:Í.ky relativnl. snadné implementaci se Pasca l
i
na mikropoči.tačích niŽŠÍ tř:Í.cly (bez diskové paměti) a t.ak máte i
vy možnost pracovat na mikropoči tači otmRA s
překladaČem t.ohoto
jazyka.
Tato
verze
.ie
.iednou
z
mintmálnich
implementací
standardn:Í.ch podnro~tramŮ má velikost 4KB.
10KB.
Všechny části
.ii' ~ J Ka .
Blok
editor 4KB a pře~tl.:;,J;;Č
.isou realizovány v .iazvce symbolickÝch adres
mikroprocesoru Z80.
PtekladRČ >!eneru.ie abnolutní, velmi rve hl~ str.o.iov.J. kÓd . Př{kazem
' T' v edi.t.oru
standardni.mi
(Kapi-t.ol~
4)
podprogramy
bo;e nřeloŽ~nÝ pro,~tram nahrát. spolu se
do
soubo r u
na
magnetofon
a
potom
používat zcela samostatné .
Pokud z .i i stíte chyby v Činnosti překladaČe,
na jadnu z následu .iic{ ch adres:
~~ emne
Daniel
U Trojice 23
České Buda.iovic•3 3'1001
Cent rum pro ffilád::J?ť,,
vědu a t .$chniku ÚV Sf~ř'1
sdél te .ie prosim
ho
nám. M. Gorkého 24
Praha 1
1164 7
m.l ROZSAH
PŘÍRUČKY.
=====================
Tento návod neni uČebnicÍ. Pascalu. Jste-li nováček v pro~ramov1mi
v
.iaz~·ce Pascal v:vhlede .ite si ne.iprve ně.i ;,ko u uČebnici Pascalu.
např .
literaturu uvedenou v př{loze F.
Kap i t .o la 1 nbsahu .ie synt.axi a séma nt. i ku ia:>.ykél.
Ka pitola 2 det.ailně popi~u ie r&~mé Předdefinované irlent,ifikátory
Kapitola 3 obsahuje informace o řízeni Činnost.i P.řekladačo
Kap i tol a 4 ukazuje pou~i·tf řf.Hikov.Sho vest.avěného e ditoru
Příloha A obsahu.ie chybová hJ.Ašeni.
Přiloh«
B obsahu.ie seznam rezervovanÝch slov.
Přiloha C obsahuje seznam PředdefinovanÝch iclent.ifikátor&.
p;.:f.loha D obsahu.ie podrobnosti
pro pro.« ramátorv.
kt.eří.
c htě .ií
o
vn i. třní
pracovat
i
repr"''zent.ani
na
firovni
d•~lleŽi té
stro,iového
kÓdu.
P:Hloha E udává některé PřÍkladv pro,gramů v .iazyce Pascal.
0.2 ODLIŠNOSTI JAZYKA.
===~===~==============
2
'l'yp FILE ne nf implementován.
I
T:vp RECORD ne ma
variabHn{ část.
polo~ky
záznamu,
ste.inÝ
identifik;Í.tor
proměnnou.
kontrola
nemaH
Dále p :H
zda
danÝ
lokálni
pro
pol.o Žku
přístupu
záznam
Identifi.kátorv pou~H.é
charakter .
k
tuto
.iako
Nelze tedy použit
záznamu
a
pro
normálnÍ
položkám záznamu není. prováděna
položku
obsahuje.
Pokud
tedy
nap:H .klad nadefinujeme:
TYPE
A
= RECORD
R
REAL
END;
B=
P..ECORD
IL.IFI: INTEGER
END:
VAR
X : A:
pot.om X. R .:le bislo typu real a X. JL a X. JH .isou typu integer.
Toto umoznu .i e v podstatě vyuiH vat možností.
.tzv.
které :i i na k dovolu.ie
'nehlidaná' variabilni bást záznamu.
Procedury a funkce nehohou bÝt předávány :iako parametry .
Příkaz CASE ,je doplněn částí ELSE (ve FEL Pascalu OTHERWISE) .
BázovÝ typ mnoŽiny m&že obsahovat až 256 prvk&.
Řídíci proměnná cyklu FOR musí bÝt nestrukturovaná a nesmÍ to bÝt
paramet-r.
Příkaze!(\ GOTO lza prov&dět skok v :íen n a téže Úrovn i .
Př:í. k az PROGRAM nemá Paramet.ry.
---------------------------- Kapitola 1. Syntaxe a 5e•antika.
1.1 IDENTIFIKÁTOR.
===========~======
v
I
)
··' ·
l ~--· ___ !ČÍslice:< __ __
I
'
P<>ouze
prvnich
znak~
10
Iál.em.. ifikátor:v mohou být
t <.ak~e
slova
- · -· -- --- f
.i e
vvznamnÝch.
z velkÝch n<3bo malÝch p:Í.smen,
identifikátoru
slo~en:v
HELLO, .
identifikátory
Rte zervovaná
I
----
HEI.lo
hello
a
předdefinované
a
.i sou
iden·t i f ilcá to:ry
odlišné.
I
bÝt
mus~
z~ad!.vány velkÝmi plsmeny!
:lJ. 2 CELÉ ČÍSLO BEZ ZNAI':fi~NKA.
============================
v
> :Mslicel
>
I
-- ·--
. ..
1.3 ČÍSLO BEZ ZNAMÉNKA .
=======================
>+
:celé č. bezl
_>:
4
znaménka l _ :_ :> l - ! > :číslice! __V>~Ei
!celé Č. bez:
V>l
:omaménka : >V . >
I
I · -- -
-
- -·-- -
I
t
I
I -- I
,,...
I
..
'
t
I ··---- -· - · - -
I
I_
t
·-
I
I
J
""'
I
I
·'
>:_ >:~t:
____V__>:
hex
I
I
f_ , ___ - - - - - - - --- - - - --- - -
I
.
I
!ČÍslice:
L_l
I
I
I --
-- -- · ·- · · I
Celil čfsla maj{ absolu-tnf hodno'cu menši nebo rovnou 32767 _ Větš{
celá ČÍsla jsou zpracováván« .iako reálná .
Man·tisa
re álnÝch
č{sel
bitová.
23
.ie
P řesno!'1t
reálnÝch ČÍ sel .ie asi 7 platnÝc h míst.
Ne.ivětší
Nemá
zobraziteln~
smysl
re álne čislo
pro s-pecifikaci
čislic v mantise,
.ie 3.4F.3R.
reálnÝch
č{sel
ne.i!1"1enši 5.9E-39.
použi.vat vÍce než
VyŽadu.iete-li pÍ'esnost neuvádě .ite poČátelmí nulv .
také poČÍta .i~ .iako ČÍslice.
méně pÍ'esně,
(zápis adres),
VŠimněte
si,
Napfo.
protože ty se
0.000123456 .ie reprezentováno
než 1.23456E-4.
HexadecimálnÍ
ČÍslice,
7
protože dalŠÍ m:!'.sta .i sou i.~morována.
č{sla
se
pouHva.iÍ
především
při
práci
s
paměti
nebo v návaznosti na programy ve stro.iovém kÓdu.
Že
po
mus í
'#'
bÝt
alespoň
.iedna
hexadecimální
jinak je hlášena chyba Č. 51.
1.4 KONSTANTA BEZ 1.NAMÉNKA.
===========================
--· - - -· - _ ·· ----- .. >:identifikátor konstanty:
..
.
I
..,
>:
>
I
.
ČÍslo bez znaménka
I
I - ·· • ••
: ___ _______ _______ > l
I
1 ..
NIL
! ------ ---·-··---·- ·-· .. __ _____ > ~
I
.I
5
:- - ___ >:- !
v
>:
I
'·
I
znak
I )
I
I
I
-- ' -- '
I
I
I - - - - .. ··· ··- - - - · " -
t
I
' - - - ~ ---·- '
' ·- '
Řetězce nesm{ obsahovat v{ce než 255 z nak~ . TVl' řetězu .ie : ARRAY
[1. . Nl OF CHAR kde N .ie celé Hslo mezi · 1 az 255 vbetně.
Řetě z covÝ liter.!tl nesmi obsaho..:.at z nak NEW .LINE (konec řádk:v) ,
jin a k ,ie vyvolán a ch:vb a b. 68 .
j sou rozšířenou množinou
Pou žívané znaky
ASC I I s 256 prvky . Pro
zachováni kompatibility se standardnÍm Pascalem nen í prázdnÝ znak
r eprezentován ,j a ko ' '·· , ale musi se použit zápis CHR(0).
1. 5 KONSTANTA.
::;::;::========
... .>: identif i kátor konstomt:v :.. ..
>+
I
I
I
t
I
I_ · · - -- - · - - -- - ---·-- ·- -
I
··- ·- ·- ··· ·--·-- - - - •
-------- -- ~ - v -·->!
I
.>
~
I
.>l
·! >-
bislo bez znaménka
I
I
I ·- --- --- - -- ·- ·- -- ···-·--- ·- -- --'- ···· - ·•·,;_ __ '
~ - ---- - > : '!
___v _________>: znak : ___ _____ _______: __ >~'
I
I
I _ I
I
' - -- -1
: ___ > : CHR: __ >! ( : __ > :konstanta: _ _
,I
,I
i
I
,I _ ,I
' - - - -- - '
__
~ - --- -- ~
I
I
,_,
I
>: ) :. ____________________~
I
I
,_,
Nestandardni konstrukce CHR je zařazena pro deklaraci kontrolnÍch
znak~ . Konstanta v závorkách musí bÝt typu
Přiklad: CONST bs:CHR(10);
cr=CHR(13);
6
INTEGER .
1. 6 JEDNODOCHÝ TYP.
===================
)
. .. - -- - - - - - · · · - - - - - - -
I
I
identifik~tor
typu l
>
I
.. I
: ___ > l (: --··· _>:identifikátor:_
' '
I
t --I
'
>l
I
- ------••
O •+
' ' -
I
· ·· - -
'
''R •
-
•
• o
.
'
I
''
I
--------'. '-· --·- -·· ··- ----'
I
' ··
l ___ >:konstanta l __ > l .. : ____ > :konstanta : _____ __ ;
I
I
I
I
f --· - I
I ---- ------· f
Skal.irni. typy
(identifikátor ,
obsahovat víc než 256 prvk&.
I
' - --······
identifikáto.<: , .. ..... )
.. '
nesme.11.
1. 7 TYP.
========
>
__ __________ __ > l.:iednoduchv typl
)
......
I~<
'
'
I
I
I ------- - - ------------------- -- !
: <.. : PACKED l <__
I
I
; ·- - - - - - -- --
J
~ J.illiRAY! __ )!fl
-- --''
_>:.1ednoduchÝl
,_,
' '
typ
_>!1i >~OF !
Il
!typ~>!
__ I,
I.
! ...
--! ' ~ <
7
___ >:oF: _
,I ,I
: ___ >:sET:
I
I
'
·--··- f
I
I
'--------·- '
typl.
I
. - ·--
·- - ----·
_>:soupis poli:·_
l__> lRECORD! ..
I
. >! jednoduchÝ
__
·-·-·- ------'
>!END!
I
I
·-
)
I
'
I
'-- --'
1 ----------'
Konstrukce s klÍČovÝm slovem PACKED .isou v syntaxi povoleny,
ale nema.ii HdnÝ semantickÝ t)činek.
ZákladnÍ typ mnoŽiny smÍ mít
umožňu.ie
až
256
prvků.
naoHklad
definici typu SET OF CHAR).
Jsou př{pustné pole polÍ. pole mnoŽin.
Dva typy ARRAY .isou
zpracovávány
.ie,iich definice vychází
ARRAY.
'!' .
- - .J-
z
téhoŽ
riásledu,i ici
zá?.namv mnoŽin atd.
.iako
pouŽiti
typy
ekvivalentní,
pokud
rezervovaného
slova
N'"EJSOIJ
(ani
shodné
kompatibilní).
TYPE
tablea = ARRAY[l. .100) OF INTii:GER:
ARRAYfl .. 100] OF INTEGER;
Proměnná
typem
definovaná
tablea
ne sml.'
tableb
bÝt
y • v
prJ.ra:;:ena
=
k
proměnné typu tableb.
I
Zhora uvedené
omezenl.
řetězcového typu
Ukazatele
Definice
na
typy,
typu však
sehe sama.
Např.
TYPE
item
= RECORD
value : INTEGER:
next : hi tem
END
link
8
= hitem;
neplat:ť.
pro
speciální
pole
(ARRAY OF CHAR).
které
muŽ.e
nebyly
deklarovánv.
obsahov;,t proměnnou
ne.is0u
ty O ll
dovoleny_
u kazat.el
na
Ukazatele na ukazatele n.;; .i sou p~{pusi-.né.
Ukazatele na t,en samÝ typ .i sou Úi8dněho typu .
Např .
VAR
Hrst
link;
current
i tem;
A
Proměnné
first
a
current
.isou shodného typu.
y
Cot znamená,
ze
mohou bÝt .iedna ke druhé přičleněny, nebo srovnávány .
VariabilnÍ část záznamu neni povolena.
Dva typy záznam
jso u ekvivalentní pouze
tehd~ ,
kdyŽ
je.iich
deklarace vychází z jednoho poufiti slova RECORD.
L 8 SEZUAM POLOŽEK.
===================
! : ~ <..
I
I
' -·'
~
I
-
- -- - - - - - t
I
<______ _
'
I
'- '
___ __ _ ___V__ V_> : identifikáto r! __ !_>:: : _> :t:vp! .
I
I----·-----·- ---·---- -·-· -·- - --··-- ···--··---·--·----·-·
1 .9 PROUĚNNÁ.
== === === =====
> l lden tHikát. or! _><
.
'
'-·-.
)
I
J
___ : _ .. >:identifikátor! >!
>I
>:
) ~vÝraz:
f I
ff'
I
poloŽky
I
I
---·
- --
I
I
I
I
__ t
I
I
-
·- - ·
. :. ! <
I
··'
>!identifikátor POlo~kv!
>!.
>!
I
I
-- ·--- -
)
· · ·-
---- · - -
. -·•
I
l"" I
t ----- ---- - -
I
------ '
-· -- - ·-·--
v
Při specifikaci prvk~ mnohorozměrnÝch poli neni pro;:;ramátor nucen
poufívat
tutéž
formu
NapHklad
dekl!araci .
indexov~
specifikace
.ie
pokud
odkaz~
k
I
y
promenna
jako
deld.a r ovaná
pÍ'i
.iako
ARRAY[ 1 .. 10} OF ARRAY[l .. 101 OF INTEGER . pak pro pl:·ístup k prvku
{1.1) tohoto pole J.ze pouHt bu,'\ .;f1H11 nebo afl,ll .
1..10 FAKTOR.
----------------------.. ..... ···- ··· ...... > !kcnst. bez znam4mka
>
'>! Proménnál
I
-
- - -- ----- I
1
- ------· - - · -- -
>:
_>~vÝraz~
__ >,identifikátor funkce
1
- - - - - - -----·---- I
I
I
1 - - - --
)
-----·I •
1
1 •• 1
--- - · .
1
;, . -· ·--
I
f
I_ --- --- - - - - - ·-- __ .. __ __ --------- - - ----- -
:---- -- ____>:fL _______------ .
,_,
l
10
I
..
'--·
)
I
I
>:
I ___ __ _·--- _____ > : NOT I ____ . __
t
l [I_:_ __
t
1
I ---- I
I~--->
-.... ·-·-- -->:
>lf aktorl
I
1 ------- I
>: vÝraz; ____ >: .. ; ____ __>I vÝraz L
I
I
1 -1
I
I
I
'---- ·
I
I
! _
I
·----- '
I
___V>;] l _ ___ _l
I
A
I
'-1
I
'-·
~
. ~ <..
I
.
'
1.11 ČLEN.
==========
___>I faktor;
>
v
I
t ---
--
•
: - --:faktor:
I
v
I
I
I
I
f ••
f
v
v
!DIVl
IMOD!
'
l
..
<__v__ ---v- -·---- -v-
.v
!ANDI
I
1 -- -
-
'
v
I
'----- •
Do ln:l. hranice mnoŽiny .ie vŽdy 0 a
základniho typu mnohny _ Např.
zRu.iimá
32
ba.it&
.i e.ii vel i kost _i;:; rovna maximu .
SET OF CHAR (mnoŽina znakŮ.) vŽdy
( .ie moŽnÝch 256
orvk~
.ieden bit pro kaŽdÝ
prvek) . Podobně .ie SET OF 0 .. 10 ekvivalentni SET OF 0 .. 2fi5.
1 _12 JEDNODOCEIÝ
VÝRA7. .
======================
...
) I+
I
t
I
I
-
__
I
t - · I
:--------v____ >: Člen: _ ____________·__________________ >
v
v
v..
'---- ·
:__) :- :·-·- ;
:- ~ lORI
· I
t
"
11
,' _
.
I
I
-'
v
l_lblenl<_ V
---
v
I
' -·
===========
>
_____________ __>!jednoduchÝ vÝraz!. __ ______ _ ____ __ ___ ____ -------- ---I
...
I
I . • .:._ __ _ _
- --
- - - -- - - - --- - f
- --------
_,,__
" _ ,_ --- ' -- - ·- o ~o : : < : ' > ' <= ' : >=: : IN:
•,_ •' ----' •' - •o - '- ··
'--'
I
I
I
I
1-
I•
I
I
I
I
..
I
I
I
•
I-- - -- -
t
J ···-
I
-· t - -
_
f
• t
.• .• - - - ·
-----------'•
I
I .
_
I
I
I
I
t
I
I
I _
I
I
f •.
>!.iednoduchÝ vÝraz:
I
'-
··- I .
I
. -- - . .. . ·-- - --
IN.
Použí-v áte-li
I
mus1
jednoduchého• vÝrazu .
typ
bÝt,
Vv Hrnku
množiny
- --·· . ... .. - t
.iako
typ
ar,;:ument .
pro
ste.inÝ
t.voři
cAločise l nv
pouze
operátory
kterry/ .je ty-p. omezen na 0 .. 255 .
MnoŽiny
mohou
bÝt
srovnávánv
u ·k azatele mohou bÝt porovnáv1tny pouze operátorY
>=.
=
<:::,
<>.
a <>.
1_14 SEZNAM PARAMETRŮ.
======================
__ : _>: { :_____ ____ __ __> l identifikátor: _ >: : : : idetifikl!tor: __ :) :
,_,
typu
,._ .. ,. ----:! !:VAR!_!
I
• . ....,,.
I
I
' -- - -- - ---
I
• -
I
I
I
' - -----'' ~
- - - t
I
I
- -- - -- - t
<_---------·· --:
I
----'
I
·'
12
V
Procedu ry a f unkce n emohou b ýt p aranJ81.ry.
1.15 PŘÍKA :l. .
--- --- ---------------> ~celé l:o..
?.nam.Ánka!
he?.
!
'..
:. V
!
p
I
- . ~ ;'
>: ldentif ik.9 tor
proměnné:
>I
I
• -
l
• -'
I
'.
:<
l . . __> i identif ik~tor funkce ! __ _ _ !
I
' - --- ----- ------- ---
--- - ..
> ~(:
____ __ >!identifikátor procedury:
O
I
I- -,-- - -··- ~ -- -- --- - - - ·-- - ---
I
I
V >!vÝraz~
I
I
I ~- I
. . .. 1
l
'·
>; p{· Í kaz l
> iBEGIN l
" ; ENDl
..
!
>:
I
I
·'
I -- -
i . l CASI<~ l .... l vÝl"é<::'. i l Oli' : . ., >:kon stant a l > l
1
; " _ _____
, , ___ ___ _ __ , , _ ,
__I
1
t
•
\""' ...,
._
I.
I
.
-- ''
I
t
I
- --- -
I
'
. I
1 .•
I •
. . I'
I
I
I
I
I __ I
: ____> lliHILE: __ .. > l vÝra.:. l .
I I
I
I
'---·
--- - - -- - ---- I'
>l DO!
L_> lELSEL lpHkazl _> l
..
I
I
I
, _ -·- -- -------'
>:
13
I
, - ·.
I
I
' .. ------- '
'.
>!vÝrazl .
>iUNTILi _
: --· -- >! REPEAT!
I
I
I
, _ --'
I
A
I
I
I
. I
~--· ·-- · I
I - - ---·-·- ·· ·· .. I
I • I
I---'
I
I
I
I - - ---- I
t
> l FORL >: i.dentifikátor l >i : =! >!vÝraz: ' >! DOI'I'N'l'O:.
•
I -
I
- .
I
I, __ _ It
promenne
I
I
I
' -·- ··· ·-
·'
.'
I
I _
>I
- .
O
I .
I- I
>lDO!
I
I
.. -
I
: ___ ______ .>: GOTOl -··
)
.
I
'
I
I
----------·''
I
_
I
I
I
---'
1 • •
___ __ >lcelé č. bez znaménka:
I
.
>I'
I
I - - - - ··-- - - -· _ ·· - _ -- -·· -· ··- - I
I
·- -- · j
CASE: · prázdný pHkaz CAS~ (CASE OF END) neni povolen.
ELSE,' je
vykonán,
kdyŽ
seznamu · (.'konstanta' ) .
nebyl
nalezen,
pak
,je
se
selektor
('vÝraz ' )
Je-li poufit koncovÝ z nak END a
•
I
I
r1.zen~
předáno
na
Příkaz
nenacház:í.
př:Í.kaz
v
za
CASE
selc,ktor
n§ sledu .iici
PO
END.
FOR: Hd:fd ~roménná p~{kazu FOR ne sml.' bÝt st.rukt•n·ovaná a nesmi
bÝt parametrem.
GOTO:
návěští
musÍ bÝt deklarováno v
tomt,éifl blok~>
a
na ste.iné
Úrovni jako GOTO. Návěšt{ se skláda.ii z .iedné ·až btvř ČÍslic .
1.16 BLOK.
==========
>i LAfíET..L...
I
!
·-·-'
'---
. -·
1 • ..
.:
-- --
-·· ---
I
'
;
I
l _l
!< _ __
: ; ~<-- -· -- · A
I
------------ -- ------
I
----- ----------- --- --- '
---
I
•-- '
l _____ >i CúNS'i': _____ >i id"'nt.i Hki;tor l _ ..
I
;
I
' - ---·-'
)
I • • ··---~-- --- - --- I
> ! l-: on statťta :
I .. I
I- I
I
l
;
I
: <__-- -- ---- ----- ~ ---------·· ----------.. -- ----- ·----· -
.
.
.
) '-·I
I- I
I
I
·'
I - --
· · - ·· -
-
•
--I
!
, __,
I
I
.. . !
I
I
I - - I
__ .
I
.
I
I -· I
I
- --- - -
-- 1 -
----
. ..
...
I
,' __ _
>!i.dentiflk~to r !_
>!VAH!
I
I
I
- -
_)
.
'
- -- ,' '
I
I • I
I 1 I
·' -
I
I
:.
I
·-
r
l
I_
I
-- - --- - - - -- - I
• . - - · --· · - -·
.
-'
_! sezna.n'!
l __ > l PROC!WUR.l!: l
':.VP!
I
' ----
:<
! .(
>' .
I
.• I
> ! ide~. t \. .llko\t.o r !
I
,,
param.HtrU ;
'
'
I
' I
1
----- '
: - -····---- - ······-- - -···-- I
_> ! F·ORWAIW! _ - ) I'
> l F'UNC'f ION l _. : ldenJdf i.. k. _ l
,.
I
I
se2.n_am
. l ~ dent.iť ..
typt(
'·
I
' -·
...
I
)
' - -···
'-··
I
I
-'
f -· · · - ·
-''
1 . 1 7 PROGRAt1 .
=============
__> l PHOGRAM: _. >i íden-tifiká t~r l
>: ; l .. _> !blokl _
'' -
16
> :F:ND! _ . >I . ;
;
'
_ ;
------------------ Ka~it~la 2 _ Pfoddefinované identifikátorJ.
2.1 KONSTANTY.
-------------~- · --- -- - --- ---
MAXINT
TRUE. FALSE
Nejvit~{ cel~ hislo. t.j. 32Y67 .
Konstanty typu Boolean.
2.2 TYPY .
=========
INTEGER
REAL
CHAR
BOOLEAN
-MAXINT .. MAXINT
-5.9E-39 a~ 3.4E38
CHRl0) až CHR(255)
('~RUE. FALSF.) . Označ u.ia typ lo~.ickÝch hodnot
2. 3 PROCEDURY A FONKCE.
=======================
VSTUPNÍ A VÝSTUPNÍ PROCEDURY
WRITE
WRITE(a,b.c,d, . . .. )
WRITE (Pl,P2 ... .... Pn):
je ekvivalentní:
BEGIN WRITE lP1):WRITE(P2): ...... WRITE(Pn) END:
Parametry P1.P2, ...... Pn mohou mit následu.iícf. tvary:
(e) nebo
(e:m) nebo
(e:m:n) nebo
{e:m:H)
kde e,m a n ,jsou vÝrazy a H ,ie l i ·terál {kons tanta).
17
ll
e
inte~er :
je typu
pou.Ž i .ieme
(e l
nebo
\a: m).
inte~~:er
iiodnota
-v-ýrazu e .ie Pi~eměněna na znaltovV řet.ěF.ee do plnlm v ~1ozerami. D~lku
!-e t ezce
z·,,ět. Šit.
lze
doolněnim
poČet
specifikn:le
z nak&.
mezer
pou~.1:tím
zleva
vyslanÝch
na
vÝstup.
m.
k teré
.Jestli::\e
m
nopostabuJe oro v:vpsán{ e . nebo neni. pouŽito . .ie e vvvsáno celé s
následnou mezerou
specifikováno
a
rn
délka
jako
i~norováno.
.ie
e
bez
VŠimně te
nás ledné
si.
mezer~· .
Že
je-li
potom
m
žádná
následná mez er a n a vÝstup nepři.ide .
e
int"'i.'~" ~
je typu
p ouŽi.ieme tva r u
V tomto přÍpadé
( 6 :m:H}.
.ie
v:Ýs t.up v hexado ..::d.lúá.;.ni sou st.avě . P l"'o m-:: :1. n ebo m=2 bude hodnota (e
MOD
1 6~ m)
na
vÝ s t;up'; ce l á
'~v stupu
v
hod nota e
v k ládány zleva mezery.
:nu ly
délce m ;;~ r ·a k~.
v
hex.č:decimál ni
Pro m=3 nebo m=4
soustavě.
,je
Pro m>4
na
:jsou
Tam kde .ie to možné budou zleva vkládány
.
WRITE( 102 5 :m: Hl:
m=l
vfs ·L 1.~·p :
0
m=2
m:;3
v:(7 st.up:
01
vÝstup:
0401
m=4
vÝstu p :
0401
m=5
vÝstup:
'
0401
31
e .je typu r eal : ? OuŽijeme tvaru (e),
e
,je přeměněn a na
Formát
je
v
U.?.~cen
znakovÝ
použit im
řetězec
n.
(e : m) nebo (e:m:n). Hodr1ota
reprezentu.ii.ci realné ~Íslo .
Neni-li
n
použito
bude
či.slo
zobrazeno ve vě decké notaci s mantisou a exponentem. Je-li Mslo
zéporúd
bude
zobra.zeno s
znaménkem.
znaménko
'-'
vypsáno
před
mantisou.
,jednim až pěti desetinnÝmi mis ty.
e xpon ent
Č:ť.slo
Minimální šiřka při tomto zobrazeni .ie t.edv 8 znakŮ.
Je-li šířka m< 8 bude na vÝstu]:)u plná šířka l2 . .znakŮ.
bude na vÝstupu .iedno. nebo vÍce d~set..innÝch
mi st,
Pro m>=B
až do maxima
pěti (pro m=12 't . Pro m>12 .i sou před b{slo vkládánv mezery .
PříKlad:
WRITE(-1 . 23E 10:m);
m=7
18
dá:
.ie
vŽdy se
-1.2300E+10
m=B
dá:
m=9
dá:
-1. 23E+10
m=10
dá:
-1. 230E+10
m=ll
m=12
dá:
dá:
-1. 23•ll/2!0E+10
m=13
dá:
Je-li
-1. 2E+l0
-1. 231<X}lt+10
-1 . 23e'OOE+l0
pouŽito
tvaru
tečkou
desetinnou
.iako inte.e:er.
n
ČÍslo
pole budou pÍOed
šířce
le:m:n)
s
Je-li e
bnde
e
desetinnÝmi
doplněny
Přili~
vvpsáno ve
Při
místy.
t.varu
Pro n=0
mezery.
;ie
vel1,é pro vÝstup ve
bude vÝstup udán ve vědecké notaci s
pole,
s
pevnou
dostatečné
e
Hřce
zobrazeno
specifikované
šiřkou
pole m
{viz nahoře) .
Příklad:
WRITE(1E2:6:2)
dá:
100.00
vTRITE(23.455:4:2)
dá:
10121.00
WRITE(23.455:6:1)
2.34550E+01
dá:
WRITE(1E2:8:2)
23.5
dá:
WRITE(23 . 455:4:0)
dá:
23
4)
e
,je typu CHAR nebo ARRAY OF CHAR .
Jsou mohu3
tvary
(e)
nebo
(e:m) a znak. nebo řetězec zn akŮ bude na vÝstupu v minimálnÍ šíři
pole
=
1
(pro
znaky),
nebo
Je-li m dostatečně vel ke,
v
délce
řetězc e
( pro
pole
znakŮ.) .
.i sou zleva dopl ně nnv me zery.
5)
e
.ie typu BOOLF.AN .
bude
TRUE
nebo
Jsou mof.né tvarv
FALSE
v
závlslosti
( e)
na
minimé,ln { Š ÍÍ·i vyst.upnÍho pole 4 nebo 5.
l'IRITELN
1>/RITELNia,b.c .d ,
. .. .
) ; WRITELN
Výstu p y .i sou u končeny znakem konec fádkv.
1-!HI TF:LN (Pl , P 2, ...... Fn) ;
,je ekvivalentn í.:
BEGW \>IRITE (Pl,P2 .. . . . . . Pn);\>iRlTELN F.ND;
CLS
nebo
( ·~: m),
Booleovské
na vÝstupu
hodnot.é
e.
v
C!.S
Procedura CLS smaže obrazovku.
READ
READ(a,b,c.d,
Procedura
prostřednictvím
vv.ií.mkou
přÍstup k
.ie
READ
používána
vvro:vnávac{
pro
dat
vstup
pamét.i . Ta
je
z
zoočátku
klávesnice
Prázdná
(s
znaku NEW LINE). Mus{me brát v Úvahu. Že ,iakÝkoliv
této vyrovnávací paměti .ie prostřednictvím 'textového
okna'
nad
znak:.
KdyŽ
v:vrovnávar-!l. ·oamět{,ie toto
textové
m\Heme
pozorovat vždv
umístěno
okno
nad
. ien
.ieden
znakP.m NEvl LINE,
bude před ukonČenÍm operace Čtenf čten do vyrovnávaci. paměti novÝ
řáde~:
textu z klávesnice .
READ.(!Vl', V2, ..... . Vn); .ie ekvivalentní:
BEGIN . READ(Vl); READCV2);
kde , VL , V2,
...... ; READCVn) END ;
atd. mohou být typu character , string,
integ~r,
nebo
reall..
0
I
P'H.kaz : READ(Vl; ma
mo~né', 4 př{pady:
I
ruzne
6-činky
v
závislosti
na tvou
V.
Jsou
lJ •
V. je • typu. CHAR.
V tomto
p1·i.,adě
READ(V)
Čte
znak
ze vstupnÍ
vyrovnávací. paměti a přiřad{ ho V. KdvŽ :ie textové okno umístěno
na znaku NEW .LINE.
má funkce EOLN hodno tu TRUE ;;
ř!.dek textu z klávesnice .
Pfi
.i e Čten novÝ
náslťldné operaci Čt E<nÍ bude textové
okno . umístěno . na začátek nového řádku.
Důležitá POznámka:
Je-li EOLN :: 'l'RUI!: na poČát~ku proE<ra mu a prvnÍ
READ · ,ie typu CHAR . hude p~ebten;;, hodnota NF.W I,TNF. a n~s]edována
Čtením
nového řádku
z
klávť'!sntc<;<.
Následu .Hd. Čtc,n{
pÍ"iOiine prvni znak nového ř!.dkn za ,,řeJpokl;,du.
tvou
CHAR
Žfl n8 ni pr~zdnÝ.
Viz tané procedura READLN.
21 :
V je typu ARRAY OF Cl-JAR.
l~.etězen znak~1 mŮŽe bÝt čten pouŽi t:fm
P.F.AD jako sériE; znakŮ do délky vymezené řetězcem nebo než EOLN
TRUE.
NenÍ-li ře'i;.ězec
zaplněn
před zplněním celého řetězce)
20
Čtenim
(
kone c
=
l:·ádku byl dosaŽen
bude zbytek řat.ězce zaplněn znaky
'I
. ·,:
l"'(:f(,C~Z C\~.
Poz n~m1~a
v
nro 11 pl at { i. zdA .
typu
,,
int.e!;feT-.
r·ep~cz ~ntu~{c{
cel~
CJ
..
t .omto
;
\'.:
J
'J
pr1.pade
v .
.ie
• o
c-;:,~ma
zr·.a~tu ,
.
SJ.O.
?.nakv HR'w. LINE
jsou p}eskakcv~ny .
Óterd.
čisJ.a
cel6ho
vét.Hho
ne:?.
MAXINT
( 327S7)
vyvolá
chybov.i.
b.J.ášenÍ 'Number too létri?:B' a program bude ukonČen.
Nen{-J.i prvn1.' znak
n~1bo
z naku NEW. LINE ČÍslice
z n<1ménl-~o
( '+ 1
} -' ) ~
nebo
hlá~enÍ
bude . ..r vvo lá no chvbové
1
nebo
Numh-er
cxpected ' a pror.;ra.m bude přerušen.
v
typu
:real .
V
tomi:c
:c~~rprezent.t.l;jÍcÍ :rB.~ ln.é ČÍslo
"ll
.
.i e
so l:.~}; lasu se synt.r:tx i
-pod le 1 . .3.
iako pro c el~ ~{~J.a. prvn1 zn~k
,Je-li
čt.ené
hl~~ena
hí sli cÍ
nebo ~ nam é nk o.
b:f.slo pt~í l :i .S ...,-,~l l·~ G nebo
chvba 'OverflowJ . N8n {-·li
vzn :Lkr1e
; Expon~n-~ t
ctr•.rbr.t
.
ser1.e
~t.· {] i.Š
malé
(vi ~
1 . 3) b ude
'E ' n~sled0v~no znem~n kam nebe
t-=~ x·oe c t ed ' .
·teČka následována cisl:i. e{_ hude ehyb·~v8 hlኝ':l nÍ
de.setinn~J
Nen.Í -l i
} Nurnbe:c e xpected } .
READLN
R.F.ADLN(a ,b . c, d ,
READLN(V1, V2 .. .
, .
'I '. READLN
.ie ekvi valen·t.ní
.. . Vn);
BEGIN READ(Vl,V2, . ..
. . Vn l ; Rl<:i\.DLN END ;
READLN Čte ř.3dek z kláve:,onic EJ clo v vrcvnávaci p amétj . . F.OLN nabude
hodno·tv FALSE po pr·cveden{ ' READI,~r.
'
.
Pok ud rten{ n~sled u.i{c { ~~~ek
' _
pra~~ <:!-fJY
HTI:ADLN mŮŽe
r>l~i
~; puŠt. 8 n :f
b :&-·t. pou:i':it.o k uř G s ko::!,;;ni
nr~".)R'rnri"Hl
1.1~·i .t ~~ n~ prn 6t~0f
--
sla~kv
V \7~·10 l Ét
t.•3dV
·orá .0 d n ého
Čt ·::~ní
řád. ku
do nové
nřit.omn .3h o
řárlky.
t ·vlJU ,,~AR 11a z~~Átk11 nrog~amlJ,
'f0
.-·l e
a le ne n{
21
t0
při.
nutn é .
vs t u pu
.I HTEGF.R
n. eb o
RE A.L
;; {::~ 1. .;~
{ T-· ~-~o t,o ž e
z n aky
tiE\·J Lil'E .~ G O'.l p i!-.ss k c~:t"n~· ·,, .
:-.;
:. ·::...-pu C:·JAR .
".'RiJll C
··;>.U NC( X:RE AL )
náb o rc.vn t~ X TJro X k l ad n é neb o n e;tmen.s J.
•
PŤ ~~h. l a d :
'!'RUNC(-1 . 5) =
TH.UNC( 1.9 )
=
\'
I
1
EOUND
FOC;'-! D(X : REAL )
X ,,. .__ t. J.···pu
.c8~k 1
W TEGE.R
n e(-J<;
i.. n. t ..:;.~:~ E- 1"' a
i·I oťtn ·~Jt.a
J.{CHJND .i t.~
'ne .i bli% š:l '
~ Í sl. o k X ( ~J a ci le s tan~~t l· dn{ch z a a k r·o ul\l.o va cJ { c h pravidel ) .
22
ce l e
Přiklad:
ROUND(-6.51) =
ROUND(-6.5) :
-6
-7
ROUND(23 . 5) :
ROUD(ll. 7)
:
12
ENTIER
ENTIER(X:REAL) : INTEGER
.i e celé Č{slo menší,
X je typu real nebo integer - hodn
nebo rovné X pro všechna X.
PHklad:
ENTIERf-6.5) :
Poznámka:
ENTIF..R
-7
=
ENTIER(11.7)
I
nen1
standardnÍ
ll
Pascalovskou..~ funkd.,
ale
ekvivalentní Basicovske funkci INT.
ORD
ORD(X:skalárnÍ.typ) : INTEGER
X je skalarn{ho typu s vy.i:Í.mkou real. Hodnota ORD .ie celé ČÍslo .
reprezentu.ifc:! poÍ'adÍ hodnoty X v mnohně definu,ifcí typ X.
Příklad:
ORD( 'a')
=
=
ORD( '<i' )
97
64
CHR
CHR(X:INTEGERl : CHAR
X
.ie
typu
inte~~:er .
Hodnotou
CHR
.i e
znak
hodnota X.
Příklad:
CHRf49)
=
'1'
CHRC91)
=
odnovi d;; .i i d
ASCII
, r,
ART'l'METICKÉ ·FUNKCF.
Ar~rnent následu.i!cich funkc:f. musí bÝt
ABS
typu REAL , nebo INTEGER.
ABSIX:TNTEGF.R)
REAI.
ABS(X:REALl
AbsolutnÍ. hodnota X lnapř.
ABS(-4 . 5)
T.NTEGF.R
= 4 . 5).
VÝsled~k .ie ste.iného
typu :iako X.
SQR
SQR(X:REAL) : REAL
Hodnotou .ie X
jako
*
SQR(X:INTEGERl : INTEGF.R
X ·(druhá mocnina
x·tc
VÝsledek .i e ste.iného typu
X.
SQRT
SQRT(X:REAL) : REAL
SQRT(X!INTEGERl : REAL
Druhá odmocnina X. · VÝsledek .ie vŽd\' tvPtt real.
Je-li ar~ument X
záporný, .ie ~tenerováno chvbové hlášen{ 'Maths Call F.rror'.
FRAC
FRAC (X: REA[, l
: REAL
Zlomková část X: FRACIX)
FRACIX:1NTF.GF.Rl : REAL
=X- ENTIERIXl.
PHklad:
FRACI1.5)
=
0.5
FRAC( -1·2 , 56)
=
0 . 44.
SIN
------------------------------------------------------------
SIN(X:REA[,) : REAL
SIN(X: INTEGERl : REAL
Sinus X, kde X :Je v radiánech. VÝsledek .ie vŽdy t:vpu real.
cos
------------------------------------------------------------
COS(X:REALl : RF.AL
COS ( X: UlTEGF.R) : RF. AL
Cosinus X, kde X .ie v radiánech. VÝsledek .ie typu real .
24
TA:.l
COS(l:REAt.) : R.EAL
'ťangens X,
kde X ;\e v rč: d i!.nech. VÝ·sJ.edek v~ cv typu real.
ARC'J'AN
ARCTAN(X:REAL) : RF.AL
REAL
ARCTANCX:INTEGER)
Óhel v radiÁnech. jeho~ tanaens ~e dan' ~{slo X. V~ sle de k ie typu
real .
F.XP
EXP. ( X: REA L ) : REAL
FXP (X: H!TEGEH) : REAL
Ho dnot~ eAX , ~de e
= 2.71828. Vfsledek vldy typu re al.
LN
LN(X :REAL) : REAL
Při rozenÝ
W (X: I N'l'F:GF.R \
logaritmus
vŽdy typu real.
(t ..i.
Je-li
se
X <= 0
REAI,
č{sla
X.
V\>sl.edek :ie
.ie ~<e nerováno hJ.áŠ>'I ni
'Ma t.hs C;, ll
ziúl <'ldem e)
Error'.
DALŠÍ PŘEDDEFINOVANÉ PROCEDURY
NEW
Procedura NEW vytvál'·i pros·tor pro dynamickou proměnnou.
p
.i e
typu ukazatel;
um{s·těné
dynamické
po provedeni NEW(p)
v
'
promenne.
Typ
obsahu.ie p
dynamické
proměnné
Proměnná
adresu nově
.ie
stejný
jako u proměnné p a mŮŽe bÝt libovolného typu.
25
\'
;
viz
Pr:omenne
K nalezeni
pouŽi i~1.
'k
u.k a z:3t.t; J. Ei
1jynam iclc.?
o dka zu
'
I
promenn.e
v
Př ilozť'z E.
P ro
nove
pou .Ž i.t{
pro~toru
u~it~ho
pro
dynamické
v
'
promennG
pouZ:lvejte procedury MARK a RELEASE.
MARK
------------------- ----·-----------·----------------------------ř1ARK
i p:
~-typ)
Uk~zkov:~
·t ah_i:.o
f·:c-oceckron
se
MAR.K.
zruši
?:;to
všechny
.,
proceduru
'
promenne
dynamické
používe.i t.e
ve lmi
c patrn.li.
INLINE
INLINKfc l:I NTEGRR.c2:INTEGRR.c3:INTEGER.
Tato
r,>rocedura
't'l
•
_i azyce
umoznu.1e
strojovÝ k6d 7.80;
hodnoty
( C1 MOD 256.
C2 MOD 256.
.i sou vkládánv do vÝsledného pros<ramu. G-1. C2 ,
celoČÍselné konstanty a
USER
USER(v:INTEGER)
26
miH.e .iich bÝt libovolnÝ
Pascal
C3 MOD 256,
C~
poČet.
atd.
.i sou
USER
je
proc€ldura
s
c A] oČ{ soJ nÝm
.iEldn{m
ar~tum<mtem
kt.erá
V,
vyvolá proP<ram n_a adrese V. Proto7.e Pas()al obs>ihu .ie cel?. (Hsla
formě dvo,ikov~ho rloplhku (viz
pH loha
Vd
.ie nutno adresy větší
D),
nez #7FFF (32767'1 . oznaÓit dpornou hodnotou V. NaJ?Hklad ltC000
.ie
-16384 a tedy USEIH -16384); bude volat adresu #C01210. Pokud se k
odkazu
na
adresu
používá
konstanta,
vhodnějŠÍ
.ie
používat
hexadecimální sous·tavu.
VolanÝ program mus:l. konl:it instrukci RET
(#C9)
a musí zachovat
registr IX.
HALT
HALT
Tato procedura zastaví běh prbii!ramu se z~rávou 'Halt at PC=XXXX
kde
XXXX
je
hexadecimální
adresa.
které ' .ie
na
povel
Soolečně s vÝpisem pÍ'ekladu lze tu-to lnformaci použit
HALT.
k trasováni'.
programu .
POKE
POKE(x:INTEGER.v:typ)
POKll: uloží'. vÝraz V do paměti poč i'. tače poČÍna.ie adresou X.
X ,ie
typu integer a v mŮŽe bÝt libovolného druhu mimo SET.
Příklad:
POKE(#612100, ' A.') umístí
#41 na adresu #61211210.
POKE(-16384,3.6E3) umístí 00 0B 80 70 (v hex. ) od adresy #C000.
TOUT
-----------------------------------------------------------•
TOUT( .imeno: ARRAY [ 1. . 121 OF CHAR , S'fART: INTEGER . SIZE: INTEGER)
TOUT .ie .Proced ura urČen A k, uloŽen{
.iedné proměnné na mP-f pásku .
Prvn{ parametr .i e typu ARRAYf 1 . . n 1 OF CHAR a
dat.
kterÝ
1 .. 12 .
K
má
ná:;wu
bÝt ulo2en.
souboru
se
Veliko s t
pole
aut.omatickl'
n
.ie ,iménem souboru
mus{
pfipo.iu.ie
bÝt v
tvp
mezÍch
. DTA.
Od
adresy STAR'i' .ie uloŽeno SI7.li: bytŮ. Oba t -v-to parametrv .isou typu
integer.
Např{kl.ad k uloŽeni proměnné V na pásku pod .iménem
'VAR' uhjte:
TOUT('VAR',ADDR(V) , SIZEťV))
TIN
-----------------------------------------------------------TIN(jmeno:ARRAY fl .. 121 OF CHAR.START:INTEGF.R)
Tato
procedura
pamoc{
vÝznam.
TOUT .
se
NAME
pouH.vA
.ie
START .ie typu
ke
bten{
st.e .in é:1o
inteP,er.
tvpu
proměnné
.iako
u
z
pásk:v,
TOUT
a
má
uložené
ste.inÝ
Na pásce .ie hledán soubor NAME,
kterÝ· je vlo~en od adresv START . Počet vkládanÝch bytŮ .ie .iiŽ na
pá"sce· (nahráno příkazem TOUT).
OUT•{ Uc: INTEGER, a: INTEGER)
Tato procedura se použ{vá k přimému přÍstupu k v:írstupn:Í.mu portu
zoo, tiez
pou.Žit{ přocedury INLINE.
V·lb~~na · do.
vy~onána.
reP.istru BC,
Hodnot a intege r parame-tru P je
znakovÝ parametr C do r e~?: istru A a
.ie
instrukce assembleru OUT (C),A .
Nap.ř1kla: OUT(l, 'A') dá na vÝstupnÍm portu 1 znak 'A' .
QPEN() :
OPRNQ{jmeno: ARRAYfl .. 121 OF CHAR)
Otav~ vÝstupnÍ soubor s názvem jmeno a typem .DTA . Do souboru se
za.pi'sujie procedurou PUT a PUTBLO'::K, zavře se procedurou CLOSEO .
28!
do
ZapÍŠe
proměnnou v
p;:~mět i .
vÝstupn:ihc
sou bo ru
pro~: er.!u
ve tva1·u ·..~ nit Ťn ( ..re~ rt;;.:~ nt.aco.
Ty p proměnn Éi
·tak ~
r ou
OPE HO
.i a k .ie uloŽena v
nnlže hft. l it o vo ;.nÝ.
FHklad:
Přikaz PUT ( 'ABC' ) zapHe do souboru tři ba :Jty - kbdy znaku A,
B a
c.
PUTBLOCK
PUTBLOCK(START.INTEGER.SIZE:INTEGERl
ZapÍŠe do vÝstupniho souboru otevfeného procedurou OPIWO blok dai
o
d~lce
SIZE z
paměti
od adresy S'rAR'J' (obdoba TOUT\.
CLOSEO
CLOSEO
Zavl.·en:Í. vÝ stupniho souboru c>t.evfen ého procedurou OPENO.
CPENI
OPENI(jmeno : ARRAY[1 .. 12l OF CHAR)
Ote vřenÍ
vstupn:Í.ho
souboru
s
názvem
.imeno.
Ze
s oubo ru
se
Čte
proced urami GE'l' a GE'J'BLOCK, soubor se uzavře p:ro<eeduron CLOSJC:T.
GE1'
GET(v :typ)
1·i aČt.,,
2; e
vs·tupn{ho
>;o uboru
o ·tev±-eného
procedurou
OPE~!I
do
Při klad:
.
Pří.k az
.GE'l'(..-:CHAR)
n.?.Čte
ze
soubon~
.ieden
b.a.it
a
uloži
ho
do
prom'8nne v.
GETBWCK
---------- -- --- ----------- - --------M·--------------------------GETBLOCK(STAR'l': INTEGER, SIZE: INTEGI!:R)
Na čte z-= •; st.n p rd.hc souboru otev:f.eného procedurou OPEN! blok dat o
D.. LŠÍ PŘEDDEF I NOVANÉ li'UNKCE!
HANDOH
P.AHDOH : IW!'EGER
'l' 2to funk c e; ·tvo:l-{ pseudonáhodné či sl o od 0 a 255 včetně.
AČkoli v
j e tat o funkce ·,telmi rychlá, n~dává dobré vÝsl e dky při opakovaném
·>O·WLi.t.i.
v
cyk J. 2ch,
které
ne obsahu.iÍ
vstupnÍ
: ,:-pZ-: 1. v Ýs ledl·.:.y· než umožř,u.ie ·tato fun't<:ce,
operace.
Chcete-li.
pouŽ i jte funkci. RUD.
·poznámka: f unkce P.ANDOM .ie implementována in strukcí LD A. R .
30
Funkce R.ND vytvo}{ pseudon~hodné čislo s
rovnom;3rnÝm rozloŽenÍm
na intervalu -32768 . . 327C7 . Kvalita n~hodnostj .E(enerovanÝch č.i.sul
odpovÍd~ vlastnost.sm ~enerátorů •-:•uŽ{v<tnÝch v interpretech .iazyka
Basic .
succ
SUCC(X:ordin~ln{_tvr.o)
ordinálnÍ. tvp
X m~Ža bÝt .iakéhokOliv skalárnÍho tvpn s vy.i{TJikou real.
Hodnotou
SUCC je nasledovnÍk X.
Příklad:
SUCC( 'A')
::
'B'
socc ( ' 5 , )
::
' 6' .
PRED
PRED(X:ordinálnÍ _typ)
ordinálni .. typ
Podobně .iako u SOCC .ie hodnotou PRED předch~dce
X.
Příklad:
PRED( '.i' )
::
'i'
PRED(TRUEl
=
FALSE
ODD
ODl)( X: TNTF.GF.R l : BOOT.EAN
X .ie t:VPU inte ,zer, hodnotou ODD ,ie 'J'RUE pro X Hché a FALSE pro
sudé X.
ADDR
ADDR(V:typ) : INTEGER
Tat.o 'E unkc ~.:J udává adresu proměnné s identifikátorem V.
PEEK
PEEKlX:INTEGER.T:typ) : typ
PEEK
·rloŽÍ
obsah
libovol,ného typu.
POKE. (opak PEEK)
oamětového
mÍsta
s
adresou
kterÝ: udává parametr T.
X
do
V
I
promenne
V procedur:ách PEEK a
jsou data uváděna ve vnitřní re-prezentaci (viz
pHloha Dl.
NapHklad:
kdyŽ pamět obsahuje od adresy #5000 hodnoty 50 61
73 63 61 6C
(hex.) potom:
WRITElPEEKl#5000.ARRAYfl. .61 OF CHAR)) dava 'Pascal'
WRITE(PEEK(#5000,CHAR)) dava 'P'
WRITECPEEKl#5000,INTEGERl) dava 24912
WRITECPEEKC#5000,REAL) dava
2.46227EŤ29
SlZE
SIZE(V:typ) : INTEGER
Parametrem funkce ,je libovolná proměnná.
VÝsledkem typu integer
je" vel·ikost paměti v bajtech, kterou zau.iima uvedeni~ proměnná.
INP
-----------------------------------------------------------~
INP(X:INTEGER) : CHAR
INP
je používáno k př:l.mému ořístupu k vstupn{mu portu
7.80 bez
použiti procedury INLINE. Hodnota inte~er parametru .ie vložena do
re~istru
BC
a
znakovÝ
vÝsledek
(provádí se instrukce IN A.(C)).
EOF
EOF : BOOLEAN
32
funkce
.ie
potom
VA
st.fadaČi
Funitce lWF n abÝv,;. hodnot.;.· F'ALR1~,
ot.~v~e n
.
I
V fiT. u pnl
soubor pr·ocedul.""Ou OF'ENI ~.~: ~~ toh~-:.to soubo ru .i eště nebv lv n řaČ "'ť.~ nv
vŠf-!Chn y data . V •)statní ch uH Pflrl.ech nabÝvÁ hodnoty TRUE .
GRAFICKÉ PROCEDURY A FUNKCE
MODE
MODE(mod : I NTEGER)
'·
Nastavi grafickÝ m6d podle parametru mod takto :
{Č e rně => ma zání}
mod=0 => AND
{bile => kreslení 1
mod=l => OR
{inverze }
mod=2 => XOR
PLOT
PLOTíx,y:INTF.GER)
Vykreslen i bodu na soufadn i cich fx.vl v nastaveném ~rafickém
módu. Soufadnice [0.01 .i e v levém dolni.m rohu obrazovky.
DRAW
DRAW(xl , yl.x2,y2:INTEGER)
Vykresleni pfimky z bodu [xl,yl) do bodu [x2,y2l .
BOX
BOX(xl,yl,x2.v2:INTEGER)
Vykreslení
rámeČku
s
Úhlopf:ičkou určenou
body [xl,vll a fx2.v21.
33
BOXFC xl. , yl , J(~:, v 7.: INTEGE.R)
Vy1tras l e ni
plného o1x2•-.. c: 1_kll s
~~hl<m1· {Čkou
danou body
ix l. vll a
fx2 .~· 2l.
CIRCI.E
CIRCLRix y.r :I NTEGER l
Vy kras lenÍ
;;n~hd. c c
se st{·edem v bo dě fx , y l a -polomérem r.
FJLL
FILL(x, y :I NTEEER)
Vyplněn i
pl ochy
OhraniČe né
souvi sl<?u
v
carou
a
obsahu.iíoi
bod
(x,yl.
POINT
POIN'l'Cx,vl
BOOI,E AN
Funkce testu.i{ c í rozsvíceni bodu: TRUF.: pokud bod na souřadni c Ích
fx. y) svítL FAT.SE kdvŽ nesvitL
34
=====::========
..
,
Komentář
mu ze
identifikátory
Komentář
'f
I
dalŠ1.ho
s~rii
speciálními
I
znakem
zacl. na
Nenásledu,ie-li
'1'
dvěma
mezi
nebo
znak
nebo
vyhrazenÝmi
symboly
vliechnv
'*l' . .Je-li
nalezF.mo
znakŮ 7ol{c{ch
dvo.íic{
nebo
'f'
.isou
'$'
z nakv
':tl'
vyhlBdf.Jvá
======~=============
-
>1I +1I
I
I
I ·-
I
.
~ -- .> l pfsrneno ! - ·--·- ·--- - -----: -- - - -- ---- ) v_ __
____ ___ ___ -----.>
' '
1 •. 1
! _____ )! - : ___ :
L -
'f I
I
Y.'1.Z€Til.
Implicitn ě :
Ovládá
r. -
v~p is
I
'
-- · • · I
J
'' ·
: <_________ ·-- --- ---·----- ~
,
VVPl.SU
L+
'
ku
B a
C.
'(:j: ' .
aŽ
do
PřE:kladaČ
ieho 6innost, ostatní znaky jsou pfesko~env
3. 2 :ŘÍzE:NÍ PŘEKT.AHO.
- - - - ---- - -
"na
ignorovány
až do '}' nebo '*l'.
.... >: $
ČÍsly,
slovy,
oříloha
viz
'
VYP ~S
U
textu
T-·ro,;>ramu
pouze pfi na lezení c hyby
j
Irnolic:it.ně: 0-lŘídí.
kontrolu
násobeni
ol.·epln;m{ .
děleni
a
přeolněni
Na
celÝch čisel
a
.ie
vŽdy
kontrolováno
všechny aritmetické operace
s
reálnÝmi čisly.
0- kontrola podle O+ neni prováděna
C - test klávesnice
Iruolici tně: C+
Řídi tc.st. klávnsni.ce během prováděn{ stro.iov.f. ho k6du.
C+
oh
stisku STOP s<> hěh oroaramu
kl.~vesnice se prov,rl{
Toho
lze
vvuži-t~
při.
'I
'! •'
~rerust
~e
nn oo~~tb1 v~Ach cvk l~.
ladě ·nl.
pro.e:rarnu.
Nc~ni
zPrÁvou HALT Test
proced1Jr a funkci .
v:1odné
ho
použit
chcete-li rychlÝ běh proaramu.
c-
test klávesnice neni prováděn
S -· kontrola zás0bn:Í.ku
Implicitně:
S+
Ř{di provádění kontroly pfetečeni zÁ sobnÍku.
S+
na
zač~tku
kontrolováno.
dynamické
PC=XXXX'
každého
volání
nedoide-li
prorr. ěnné
r.ebo
a běh p roa1· a rou
k
36
.ie
of
at,
p}epln~n{ .
prof'l:ramu
.ie
.ie oi'·eruŠfln.
rozsah zásobnJ'.ku m1~Ž e do .i { t
s-
funkc•3
zobr ,c,:;wr•o
ke zhrouceni pro,«r;.tmu.
kontrola zásobníku nen{ prov4dP.na
'Out
RAI1
Používá-li pr.- ,cedura ve1.kÝ
A - kontrola index~
Implicitné: A+
Řid{ kontrolu mez{ indexu poli.
A+ je-li index pole př{liŠ velkÝ nebo malÝ .ie ~tenerována zpráva
'Index
too
hig' ,
nebo
'Index
too
běh
low' .
prof(ramu
bude
zastaven.
A- kontrola se neprovád{.
I - porovnáván{ ČÍsel bez znaménka
Implicitně:
I-
KdyŽ se při použit{ 16 bitového dvo.ikového dopl;tku v celoČÍselné
aritmetice
liŠÍ
argumenty o vice
operaci >,<.>= a
porovnáván{.
I+
za.iist{
než MAXINT
k přeplněnf , což vede k
<=
správnÝ
v{7slede k
norovnáváni .
.
( :0 ~ 767)
.
'
docház{
ne ~.pr dv nemu
Ste .in-4
u
vÝsledkct
s ituace
• v
muzn
nastat u aritmetiky reálnÝch čísel kde na ?.ákladě přePlněni do,id·?
k
chybě
li~d.-li
se
argumenty
o
J
v~ce
nHZ
1.4E38:
cca
t.omu
se
vyhnout nelzfl.
I- kontrola vÝsledku porovnáváni nebude prováděna
P - vÝstup na tiskárnu
Implicitně:
PřepÍnaČ
obrazovka
vÝstupu,
na
kterÝ
se
vyŠle
vÝPis
p{·ekladu.
uživána obrazovka .ie pouŽita tisl;árna a naopak.
Byla-li
Tato v olb<1. neni
následována '+' nebo '-'
F - pÍ"eklad ze vstupnÍho soubo ru
37
Překlad
textu
programu
ma~net.ofonu.
z
Znak
F mus{
následovat
název souboru. K · názvu souboru se automaticky připoj{ typ .PAS.
Tato funkce Je uhtel:ná,
-pře.iete-li si vybudovat knihovnu Často
pouŽÍvanÝch
funkcÍ
procedur
a
na
pásce
a
potom
vkládat
do
program&. Je vhodné pouŽÍt k ř{zení listinP-u L-, nebo{ .iinak bude
kompilátor pracovat pomalu.
Příklad:
{$L-,F MATRIX vloŽit textovÝ soubor MATRIX.PASl;
Při tvorbě
současně
v~ak
rozsáhlÝch Pi"Oil'ram& se mŮŽe st,át,
Překládat
možné
pouŽitÍ
Že v pamět.i. nebude
dostatek prof<tor·u pro zdro.iovv text i
proorramv uloŽené
po
stro.iqvý kÓd.
ČÁstech
ni'\
p}..sku
Je
za
'li'' > Tim .ie ponechávlmo mrsohem viafl inÍst.a pro
volhv
stro.iovÝ kÓd .
-------------------~,;._--------------------
Pro
psan1.'
řádkovÝ
opravy
a
editor.
Pro
zdro,iového
zápis
textu
pfikazo
Kapitola
s louži
tohoto
V<"'> ~
4~
ice
i·ádkov:, ho
Edi t.or ..
.:ednoduchÝ
editoru
.ie
využíván obrazovkový edi·tor, kterÝ· .ie součásti o p~3 rabnÍho systému
mikropoMtače ONDRA .
Název klávesy STOP v dalšim t.extu znamená kombi.naci CTRL C.
PHka7. má následu.iid. formát:
C N1. N2. SJ , S2
C
Nl
.i e Příkaz edi. toru (.i eden znak)
N2
.ie ČÍslo
.ie číslo v rozsahu 1 - :32707 včetw~í .
Sl
rozsahu 1 - 3?.767 včetně.
.ie znakovÝ řetězec s maximálnÍ délkou 20 znak&.
S2
.ie znakovÝ řetĚ-zec s maximálni délkou 20 znakŮ .
Ar~umenty
mezery
38
se
jsou
v
oddělujÍ
v
6árkou ( .ie mozno
ignorovány
s
vv .iimkou mezer
uvnit.ř
řet.ězco~.
'S')'
ŽádnÝ
('\'; ~;
·~~
.'l;. a
~.
}-p>.~:. il. O i:.·}7 •
SG
{ Pokud 0\•· Š<.::.!~
":.Jt'-! .1sou
~):r ~umt:::r;t.y
~ ~)v] !'i.z: é) .
Ro-:\n0t...,. N l
tyto
a N2
:i:.;ou po spuštl-.ní rnvnv J.C:} a -~~ s tězce pr.{-t ?..dná . z.~dá n:í. n€~~ {pustného
-p!-{1.{a z c·vÉd·t.>)
řádku,
na pl" . Ii'-17 100. HE LLO bude
it:rnorov.3rlo a zobraz{
Ú8dd~ :l e r11r tno vloht. správ n é, nap ř. F1.100.HELLO .
,P a.t·d.on' bude tahB zobra 8Ell1<"J , pl.. 81tro ČÍ··2.i S2 délku 20 z nakťi: u
řet.€:z ce Si .i sou všechny zna.ky přek.-caču.i :Lc Í poČet 20 i E;norovány .
sa 'Pnxdon? '.
Pi.. í kazy mohou b}. . t vk l ~d~n:;; ·v"e lk?hr.i !!~1 bo malÝmi znaky·.
4.2 PŘÍKAZY RDITORU.
=====================
v
Pokud jB argument v popisu uzavren. symboly
1
<>' mus{ bÝt uveden,
jinak přikaz nebude uroveclen.
VKLÁDÁNÍ TEXTU
Text
lze· do
souboru
vlo!b t
napsánj m
6isla
řádku,
poŽadovaného text.u. obdobně .iako t.<.,mu t:Vvf.. zvvkerr
Zad~nim
samotného
6isla
řádku
bude
f.itdek
•l
m"~,er:v
a
.iaz.o-!•.1'1 Easic.
tohot.o č{sla
z
t<.<x\.~'
vymazán.
I n,m
Zavádi
automatické
čislováni
ř~dkŮ.
poČ:ina.ie
n
s
krokem
m.
Čislováni lze zruŠit ři.dici funkci STOP. Vloženi.m nového řádku se
ruš{ řádek se stejnÝm čislem,
pokud jiŽ existoval.
ČÍslo H.dku větši než 32767 m6d I
VÝPIS
Vytvoři-li
se
se zruš:!..
TEXTU.
L n,m
38
J--' l_'t=.d T,{ m
QOV
~ .i. ;i ·t~:.
::.. :.-::::-- .:-~ .~) :.
, !{' .
'
ry l_
::-. :-_r:
,.
"I
I
neni.
n y·r·J·..us J .
STOP
d0
vrátit
EDITACE 'rEXTU.
·~. e x. t'-~
se
v:~.rsky ...c.nt:l l?Ot.feba někt.. eré
opravám,
D·
l
ř.·ádky o pra-;tiL
I
I
v)rm.sz;aVT..J,.n l.
K
posuncun
<-n . ~. m >
~'nsže. vše chny
«a:<P."Ume1:d;y
řk dky
n e.isou
t e xtového sonboru od n do m. Je--l i
uvede.nv
nen:f.
pf{kaz
proveden.
Pro
rn<n nebo
smazáni
jednoho řá dku zad e .ite m=m.
I-5"
Y.t ,;m.·
·-··------- ---r·- - ----------- - --- ------- ·-- - -- ------------- - ----N~J~ňu je nahradit text řádku m textem z fádku n.
Text na řádku n
Je zachován . pf.:f.kaz t.edy provád:f. přesun ( 'M' ove) textového řádku
da. dali!íi polohy v textovém soub oru . Pro neexistu.i:f.cf n se př:f.kaz
nevykoná.
R- <n.,m>
Přečislu,ie textovÝ soubor s čislem -prvn iho řádku n a s krokem m.
Musi bÝt zadáno r• i. rn; pokud by u řečislován{ vedlo k čislu řádku
vyŠŠimu :než ,ie
F
3:ns?
z ·& stane zachov1mo p{ivodni čislováni.
n,m,f,s
Hledá
ht, ězec
nalezen,
.ie
(
f
'finď)
zobra:?.on
v
I
rozmez1
Í'ádkŮ
odpovida.iic5. textovv
n<x<m.
řádek
řetězec
J e-li
p ře .ide
a
se do
Edit •oÓdu (viz př:f.kaz 'E'). Pot.om m~Že t. e použit pf-1kazv F.dit módu _
k
nRl..szen:i'.
následu.i1.c{ch vÝskvtll
řetězce - f
.i i?.
v
definovaném
ro z sahu fádki'l nebo k .ieho nn.hrazen { i-etězcem s .!'substitue') a k
hledáni da.lš:i'.ho ne .i bliŽi'>iho vÝskvtu f. Rozsah řádku a oba řet kzcE•
.i iŽ mohly být zadány dřive
.iinÝm povelem,
takže
.ie moŽno
zadat
pouze ' F'.
E
n
;
Editace ř ádl-::u n .
::;
ČÍsJ.em
zobrazen.
I
(
do vy r ovnav.:.tcl
Čís l o
-řádku
.ie
zobr a:c~eno
'I'parne·~-:t.
t aké
-con
Je
J.
řitdke m
3.
tJ
' •>
provaaeny
pl:·ejde se
t.ext.ov~~- i·ádek.
{mezer a)
Z d. kohBC
-
p o .:·.nn h:ur ?.; oru rt.r~
násl~:~d.u_i {e {
~t J éd~ -
NelzA p o s unout .
řádku .
B.ACKSPACE -
pos•.:tn k i.tr· Lor,_1 nr.~ 71l"'E:d.,• h o?. :Í.
z.-'": a k
Y.fvik•l . NEll ze ·oosunoni·.
před ~ a~ .3t,:. k řádk <:t.
1AR - posurt kuc zoY Ll n~ n~~ledui{c{. ~oztci ta bul~tor,l.
N1i~ W
LINR
\j ·~ · rrl.VV
ate ne za
v F.e ch
·toho to
(pře d
)
;
I
-:./":/i':'C•V .''l ..::tV3.C i.
,.
zmc;:!.
:car.ně·ti
z
te xtu,
·t .
.i .
L -
'
.
zbvtkn nd ttovan~ho }~dku.
vvn~f;
Edit mbd zŮstává.
kur:;·.or na
začátl:u řáoku.
K - odstranění Znilku na Pozici kurzoru.
Z - vvmazání vŠeah z:nakt'l "d pozice kurzoru (vČ:et.né) aŽ na konec
řádku.
F -
hledán{ ne,ibl:i.Žšiho vÝskvtu řetě:we definovaného dř.fve
novel 'F'
.řádku
(zachovává změny)
iřádku.
(viz
) . Tento doplňkovÝ povel automaticky ukonbÍ editaci na
pokud nenalezne dalšf vÝskyt řetěl'.ce na
Pokud .ie řetězeo z.iiš·~an v ni. .i bliže následu.iicfm řádku (v
ji:iŽ dři ve
specifikovaném rozsahu í-ádkŮ),
.ie do Edit. módu
potom
vlloŽen řádek, ve ht.erém .i e řetězec nalezen. Po Úsně5n.3m v:vhl 0 dán i
j e~: kurzor uml.s těn na začátek í·~dku.
nahrazenÍ
S
nalezeného
I·e c:tězcem 'sub s ti tue'
'
'
.1menova.ne
posledně
I
v k] ád~n{
v}· skytu
i.nal{1~
fetězce
dř{ve
definovanÝm
a potom provedeni donl:hkového povelu 'F' .
od
bv
Po?.i.ce
knr;;-:orD. .
bÝt
T-t:nti:-o
...
/
J
pottZJ.vanv
do·~·) lř~ -~-:ov~ -
m/1d
,::,~
:~; J_·•_nF'; í. Rtisl-::P.m l•lF.\-1 LTN1~ (Ylá"".7 Jat~ clcl hlavni'h<".l mÓd u F di t . s }~ q :c;-.-:o1 .. V::Gl v
po .1'I;O?.e
po
v .s u n11tÍ
PO!'.; .l EJrlrd.ho
mÓdu
P~Tm~t i.
;;. :nahu).
vlc~v0
znak
Po n ~~it.,{
0d
T:'\ H posune hurzor vr.t~~: (·, 1.:-
z.at Í.rn co u0uŽi.. t:Í.
t~ r~ rn ·L o
DJ\ (; f( SPACl ;: v
kur z.o ru
dé:ll ~; {
p~.;loze
t.2lbulátoru a vsune u1r:; z ~: ~:· v.
oosune
kur.zor
na
lcon ec
l. . k dku
a
automa i:i ckv
P :t'Gf.tna
do
Ck.J qJJ.ňkové ho mÓdu I.
G - zm~na znak&.
B!::\ CKSPAC F.
v
tortl"i.:. o
Tento d(~pl ~~ovf t}6d z&st~v~ do sti s~ 11 N~W .LINE.
doplřtkovém
m.~; d u
posun .::.:
h.u:::-zc;r o
.icclrtn uo 2:ici
v].evo.
PŘÍKAZY PRO PP.~CI Sli: SODBOP..Y
P n,m.s
------------------------- ---------· --- -·------- ----- -------- - --
4.2
"
.
~Rá.d k y
v :nter:-valu r:< :<: <7,<
.:u. .d .. omaticky :::; ]~i TJ~):Í :
~)l'"O f·: .ea.m v
P~;.-:;c3. .1~u.
;~, - ~_.')
sou r) c)r , ob~ah u . i E: ;'>·: dv
J e- l i
ji~
v
S 0 \.: ·: ;•:'•J: U
·•.Y"'•u;;·t;=!
Z 3. !-.""~ ·:.s o 't.•·an .i.alto
pam~ti v lo~ e n te xt0v~
n~y~ na~tenf
soubor bude
·' .=;o ubo-c b :.:~de
c:e- -.:. . y·
a
!:": ~.,:i r, ó;.l r c~i! :l. textovÝ
.:.c·· -:;"f ick-i.- 7Y i.akv a kÓd CR f;líDH'> .
pfečí s lo ván
poČi.na ;j e
soubor
~ádkem
61slo 1 s krokem 1 .
PR'[KLAD A SPUŠ'l'ĚNÍ PROGRAMU
C n
Spust:L překlad text.u
V
I
,
POC J. na .1e
řádke m
n.
Nen:L - li n
uvedeno buJe
text překládán poČÍna.ie p :r vnim exi st u.iÍ c Ím ):.. á dkem.
Přek lada Č po spu Štění ,tt en i'-! r u.~e. vÝ-ois v tomto t .varu:
xxxx n.nnn text zd r o .iov~hc ř. .~dku
kde xxxx .ie poÓátedni adresa :st ro.iového překl adu ř-ádku
nnnn .ie bíslo řádku s vvnechan-rhni. oočátebn. Í mi nulami.
Vipi s lze sm~~ovat na t isk ~rn u přÍk az em 'P'
Výpis
lze
kdyko liv
zas't.av i ·t
stiskem
(viz kapito l a 3 ) .
l1EZERY.
S-t.i~kern
STOP
se
vrá'd.te do editoru. s ·cisk9m .iiné k l ~vesy pokra<'::u .iet e ve vÝnisu .
P.l·i z.iiš tění chyby b éhem Překladu s e na obra zovce vy-p{Še hlášenÍ
' *ER.ROR""'
následované
ukaz u .i J. cí
.z a
( !)
symbol ,
kterÝ chybu
ZPl<sobil a. 6islem ch1rby
'viz p~{l oha. A ) . Výpis se za s·tavi.Pokud
s ·t ::.sknete , E' vrc~ -t{ te
c:· -:.. d i toru k opravě řádku zobrazeného na
obra zovc-e . Pok.ud
.S€1
s "c.is kú e t. "·:·
' D'
se
do
edito r u
k
.
\':lnrave
43
tabule ~ )
{nen! miz te v
-Jest.\. 1. ~':<3
2
D0eklad obsahoval chyby,
dota z , "f..:. i. .1 n?'
:yJ
.ii nak bude
...
{
..
l"'"1.Z~ n J.
1
rJa.vraceno
~:·..·i ~,_ t ..:.•'!:."'>.. l .
.)i•e L.) ~·~e n :Ý
F·fe:i:;::i;:.
pro f! l" .:~ m
b :1de
spuštěn .
'J
\1
-
prel ozen
a
po k ud
pl·es Gn u·!~
a le
pauze
t.ehdy,
pokud
·":;rottramv me z itim 7.M;.. !nén.
nt?bYi. r:. >:.x t
od·oovi te
na
'Y '
l~ o ne c
bud e
•1
y
cÍlovÝ
s tB.~ dardnÍch
v
spesne. o b.iev Í se dota z
kÓd
produkcvanÝ'
!) r o cedu r
( z ni č5_
' Ok'l ':
-:>.1·ekladem
překl ad aČ )
a
st and e. rdn.i. prc ce.du:cy a cÍlov{". k Ód bti.dou ~..rvslánv na pásku s názv em
soubot·u
ocJuovÍda .i ícím
p ro.a ram
.íe
Ro z'r.. odn et. e-1 i
'O k ? '
:lin ou
p Í' ed eš lé
' '
mozne
použ{,,at
se P2~o f!r am n a
kl ávesou
než
samost.a·tně,
:ř{:~enÍ
DALŠÍ PŘÍKAZY.
44
•
v
bez
Př eloŽe nÝ
Př i i:.omnost,i
budo
vráceno
do
na dotaz
E!di torl_t,
ne b ot c { lov~m kÓdem neb:vlo uohnuto
mí sta.
B
'"!
re-r.ezce.
c..& s .ku nen ahr á vat odP0"'1ěztt3
! YJ:
k ·te rÝ hude stále f un aov,3·r-..
definic i
z
Vraci ~{zenÍ do operaČnÍho systému .
O n.m
Provádí
zkráceni prog~amu v
symbol,
zhu$těn{
rozšiřené formě
mezer).
paměti
Text
(rezervovaná slova na .i eden
,je Čten do
vyrovnávaci paměti v
a vkládán zpět do souboru ve zkrácené.
s, , d
Změna
znaku
pro
pfo:Í.kazovém řádku.
'S '
.ie
oddělovač
separátorem
definovali
použfvánÝ
k
odd.'!ílovÁnÍ
argument.~
Impli ci tně ,je sepa rátorem č.firka ' . ' .
separát.or.
nrvn:i.
znak
I
mus1
bv-t.
řetězce
pouH.ván
Pokud
d.
i_
v
povelu
v
Po Použit{
-ist.e
_iedno•.x
' S'
specifikace .iiného se-parátoru. SAnarátorem nes m~. 'ovt mazera.
af.
d·:1
--------------------------------- Př{loha A. Chybov~ hlá~e
A.l KÓDY CHYB, GElillROVAtÚ~ PŘJi:KI.ADAČli!M.
======================================
L
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15_~
16.
17.
18 .
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30 .
31.
46
Čislo je př{liŠ vel:l.ké.
Je oČekáván stř3dnik.
NedeklarovanÝ identifikátor.
Je oČekáván identifikátor.
UŽijte'=' miste':=' v deklaraci kongtanty .
Je
očekáváno'='.
TÍmto identifikátorem nemŮŽe zaČlrJat pHkaz.
Je oČekáváno •--•
Je oČekáváno')' ,
ChybnÝ typ.
Je oČekáváno '
Je oČekávim faktor.
Je oČekávána konstanta.
Tento ident.ifikiltor neni konstanta.
Je oČekáváno 'THF.N ' .
Je oČekáváno 'DO' .
Je očekáváno 'TO' nebo ' OOWNTO'.
Je oČekáváno ' ( ' .
Nelze psát tento t y p v Ýrazu.
Je očekáváno 'OF ' .
Je oČekávána '
Je očekávána'·'
Je oČekáváno 'PROGRAM'.
V
I
Je
oČekávána
promenna.
ne bot
parametrem
parametr.
Je oČekáváno 'BEGIN'.
Je očekávána proměnná při voláni READ.
VÝrazy tohoto typu nelze -porovnávat.
Možné typy INTEGER nebo -REAL.
Proměnnou ·tohoto typu nelze čist
Tento identifikátor neni typem.
Je oČekáván ex-ponent. u reálného ČÍsla.
.ie
V
I
t>romenny
32.
~Je O<Seká_y~n skal -i~~~:.~ . ~ :t.ika.l:iv i'l.um-ari·~lt""Ý') výra~.
33.
Prázdné řeAf.,k ~ce ·n ,·j :l:::Qu !A''Y voleny .fpctlZi:)ta CHI-\.(fťj)).
34.
Je očekáv.:m.a · i
35 .
Je o~ekiv,na '1'.
36 .
Index u ARRIW mu si 1::,).-t skalárníhc t.:;;pu.
37.
Je oČekáváno '
Je oČekáw~YlO > j ' , nebo ', ' v deklaraci ARI~AY.
Dol ni mez .ie vétší než ho~i"·ni mez.
Množina .ie pHli~ velká lv{c6 neli 25B p rvk&).
VÝsledek funkce musi bÝt idEm-ti:fiiiáto r typu.
V mn<JŽiné je
V rnno:H ně je oČekáv3no '
' nebo 'l'.
T:~rp -parametru musi být typu identifikiltoru._
.....
Prázdná mnoŽina nesmí bÝt. prvnim faktorem v p:Í-iÍ'azovad.m
3 8.
39.
~~ 0.
4t.
42.
43.
44.
45.
příkazu.
46.
47.
48.
49 .
50.
51.
52 .
53.
54 .
55.
56 .
57 .
58.
59 .
60.
61.
62 .
63.
64 .
67.
68.
69 .
Je o.Č ekáván s kaláx {'rčetn.Š real).
Je očekáván skal ťn· (ni koliv real).
Množiny n<3jsou
sh1Či telné.
porovnán :i. m.uožin ne lze použ:l. ť '< ' a '>' .
'LABE[,',
' VAR-' ,
'T'YPE '
J e očekáváno 'FORWARD ' .,
' CONST'.
n.ebo 'BEGI N' .
Je oČekilvána hexadecimální bíslice.
Není možné POKE mno~in.
Array j e př{liŠ velké (> 64 K).
V definic i RECORD .ie oČekávÁno ' END'
nebo
Je oČekává·n identifikátor pole .
Po ' WITH' .íe oČekávána proměnná.
Proměnná ve 'WITH' musí bvt typu RECORD .
Identifikátor POle nebvl pfiřazen přÍkazu WITR.
Po 'LABEL' .i e oČekáváno celé ČÍslo bez znaménka .
Po 'GOTO' je očekáváno celé ~Íslo bez znaménka.
Toto návěští je na nes~rávné ~~ovni.
Nedeklarované návěští .
Parametrem v S!ZE musí'být proměnn-4.
Pro ukazatele m~Že bÝt použit POUZe test ekvivalence.
, .ie e:m:H
JedinÝ parametr pro tisk celÝch čísel se dvěma
Řetězce nesmí obsahovat k6d "konec řádky".
Parametr u NEW, MARK, nebo RELEASE by měla bÝt proměnná typu
ukazatel .
l{
..
47
P arame ~Jr ~v ADDR mus{
712) •
.} . ~ -- ·._ !.
'
'
"'.?"'l P :!S
U
: .......
:i
' l
.....
rc;,z. sah RAH)
{~ii:i. i'l10
chvb u v-r.?o lává t~ ~1ké DIV.
;.': .
10 . Lin<?. t .oo l on g
11 .
r~~cpone nt.
r
1.
''tl.! 1 •
' rl
pr-'-_._l.s
4 ·r ,... •. ;
I
·. ;.l. v :..t!"'t Y
'·' . ; . ~. "...,.)
ra.:J.'(.3R,
·~ xpected
Tyto chyby- zpŮsobÍ zas1~ave nÍ chodu proť,ramu .
- -- --·- ------- -~ -- --- -------- - ---·- PJ!.1Lloha B . Re:zHrvovaná s lova.
======== ==============
).N ~>
.:; RRAY
BEGIN
DOI#}iTO
!iLSE
:!: ND
CASE
FORWARD
DTV
SOTO
DO
7t.n\·r.:;T ION
H ··~:
CO ti ST
'[F
?-JfYf
UF
OR
):~cc:;.e
: m~'i: AT
szrr
.n·Hi:l.'i.
-;;:
;,\rB~
,,
i:.
,.
' ,i.!:
~\1 1TH
'
Pl'"(':: G
B. 2 SPECIÁI.NÍ SYHBOi.Y.
================:=====
*< I> <=
<>
=
+
(
)
{
}
>=
1
*)
(*
.-
Přiloha C. Předdefinované id~ntifikátory.
CONST
TYPE
MAXINT=32767;
BOOLEAN
=
(FALSE,TRUE):
fRozHřenv soubor znakl"l ASCII):
CHAR
INTEGER
PROCEDURE
= -MAXINT .. MAXINT;
REAL
{ Podmnožina r eÁlnvch Hsel. 17b 1. 31;
WRITE;
WRITELN:
INI.INE;
GET:
OUT;
READ;
NEW:
GETBLOCK;
READLN: PAGE; HALT; USER; POKE;
!1ARK:
CLOSEI;
RF.LEASE:
OPENO;
TIN:
PUT:
TOUT:
PUTBLOCK;
OPEl'<!;
CLOSEO;
MODE: PLOT: DRAW: BOX; BOXF: FILL; CIRCLE;
FUNCTION
ABS;
EOLN;
POINT;
SQR; ODD;
PEEK;
RANDOM;
CHR:
FRAC;
SIN;
SQRT;
COS:
RND;
ORD;
ENTIER;
TAN;
PP.ED:
SUCC;
P.OUND;
ARCTAN ;
INCH; .
TRUNC;
EXP;
LN;
EOF;
ADDR :
SlZE; !NP;
Přiloha D. Rep:razen·tace a uloŽeni
1). 1
iill.PREZF.NTACI!~
DAT.
---------------------
dat .
Znalost
zpasobu
ukládáni
kteří
programátoru,
se
je
V I
snaz1
potřebná
a
sloučit
uhtečná
programy
pro
v
větir;inu
Pascalu
se
stro,iovÝmi proptramy.
Cel~ Hsla
-----------------------------------------------------------Každé celé oislo
;le
uloŽeno
ve
2 bvtBch ve
formě
dvo,ikového
doplňku.
PHklady:
1
'0001
'0100
256
-256
'FFOO
K uchováni celÝch
čísel se standardně použivá rep,istrovÝ pár HL.
Skalární typy
-----------------------------------------------------------Zabiraj{ pouze jeden byte bez · znaménka.
Znaky: 8 bitu, je užito rozšiřeného ASCII.
'E'
145
15B
, [,
Boolean:
ORD(TRUE):1
ORD(FALSE)=0
tedy TRUE .ie reprezentováno 1.
tedy FALSE .i e reprezentov/mo 0.
PřekladaČ použivl!. s tandart.ně rep,istr A.
Reálnl!. čisla
.Je užito podobného tvaru (mantisy.
exponentu
,iako u
vědecké notace. která .ie pouŽita ve dvo ,i kové soustavě.
PHklad:
2
2
1
1
-12.5
50
*
10A0
nebo
* 10A0
1.12JB
nebo
1.12JB
-1 . 25
* 10Al
* 2Al
* 2AI2J
nebo
-25
* 2A-1
standardnÍ
*
-11001B
*
0.1 .. . 1.0
-1.1001B
10~-1
nebo
l/10
2"-1
*
2~3 normalizováno
1/1010B
nynÍ musíme provádět
0.1B/101B
binární děleni . . .
0.0001100
. 101
0 . 100000000000000
101
110
101
112l00
v tomto ~kamhku .ie
101
.HŽ vidět, Že se
z lomek periodicky
opaku.ie .
0.1B/101B = 0.0001100B
:
Jak tedy použít těchto vÝsledk& ke znázornění ČÍsel v počft aÓ i?
Nejprve rezervujeme 4 bajty pro uloŽenÍ k a ždého reálného čísla v
následujÍcÍm formátu :
ZNAMÉNKO
NORMALIZOVANÁ MANTISA
23
22
:!
EXPONENT
7
"'
L
H
E
0
D
cla i; a
bit
re~i :st. r
znam.é nko: znaménko mantisy ;· l=zlrporné, 0=kladnlr.
normalizovaná mantisa: mantisa .ie normalizovaná do tvaru l . xxx;txx
s
horním
bitem
(bit
22)
vŽdy
1
s
v:dirnkou
zobrazenÍ
nuly
(HL=0 , DE=0) .
51
exponent: exponent v binarn{m doplňkovém t.vnru.
Takto:
2
= 0 1000000 00000000 00000000 00000001 tl40.t100.1*00.MH
1
=
0 1000000 00000000 00000000 00000000 it40' lt00. lt00. t!-00
-12 .5
=
1 1100100 00000000 00000000 0000001 1
~F.4,rt00,#00,rt03
0 . 1 = 0 1100110 01100110 01100110 11111100 #66.tt66,tt66,#FC
Uvědomime-l i
si,
Že
El L a
DF.
.isou používány k
ul oŽen i
reálných
6isel, musime čislo do re~istr&. vk li.dat násle dovně:
2
1
-l2 . 5
LD
LD
LD
HL . tt4000
I.D
DE . t1000'2l
I.D
LD
HL ,#E400
DE. #030·!i
HL.li 666 6
LD
DE: iiFC66
LD
0. 1
HI.. , :tt4000
DE ,#0100
Po s l e dni pl· i klad
nám ukaz u.ie,
mohou b~.. t
ne p i--esné;
zlomkem
omezenÝm
s
0. 1
prod
n e mťl. ž e. bý·t
poČ:t. e m
vÝ-po Č t y
::; d -vo :j kov.Ými
přes ně
de s etinnÝch
I
·~.rv _i .it\1.-ř.en.o
z lor!!ky
ct·v·o .ikcrvýrn
'
ffiJ. sT..
ukl ádár.'l do paraéti v po 1·adÍ ED LH.
Záznamy a ~etěz ce
Záznamy
potřebu.1i
steJnÝ
prostor
.iako
.ie
c~l kovÝ
součet.
pamě-f.ového prostoru .i e .iich sloŽek.
Uspo řád áni:
je-li n
=
poČet prvkct pole s
=
rozměr každéhv prvku ,
poto m poČet ba.itct obsazenÝch po l em .ie n*s.
P~. :
ARRAY(1 . . 10) OF INTEGF.R vvŽadu,je 10*2 = 20 ba.it.';
ARRAYf2 . . 12. 1 .. 101 OF CHAR m~ 11*10 : 110 prvkct
a vy~adu.ie t edy 110 ba.it~.
52
MnoŽiny
,i sou ukládánv
prvkŮ obsa.di mnoŽi.na
.iab)
ř e t.é >~c e
bit&;
l!lá-1 i
z.ákladn{
typ n
(n-l)DTV R-1-t ba.i"tt~.
Příklady:
SET OF CHAR obsadÍ ( 256-1 WTV 8+1
=
.32 ba itŮ
SET OF (modra.z.elena . zluta) obsad{ (3-llDJV 8+1
=
1 ba.it.
Ukazatelé
Ukazatelé
zabÍra.j{
2
bajty.
které
obsahu.iÍ
adresu
(v~
formátu
Intel, t.j . spodnÍ byte .ie prvnÍ) proměnné, na kterou ukazu.iÍ.
Do 2 UIU,ÁDÁNÍ PROMĚNNÝCH PŘI "BĚHO PROGRAMU o
=======================================:==
Existu.iÍ 3 moŽnosti .iak .i sou proměnné u l o Ženy při chod•l pro~ramu.
a. Globáln{ proměnné - d e klarovan.!. v hlavn{m prop:ramovém bloku .
b . LokálnÍ proměnné - deklarované ve vnith.!m bloku.
c. P .~ -· ' metry a hodnoty funkcÍ · -
.i sou předávány do a z procedur a
funkci .
GlobÁlni proměnné
Globáln:i".
prorněn n<.!t
jsou ulož eny od v·ccholu
zásobniku proměnnÝch
dolŮ,
napřÍ k lad kdyŽ je zásobrd.l, na adre se $10000 promě nné
V~~
i :
INTEGER;
.i sou:
CHAR;
ch :
x: REAL;
potom:
i
( kter~
zabira
2
bajty)
bude
ulo~eno
na
adres;l.ch
t!B000-2
a
#B000-l, t.j. na adr. #AFFE a #AFFF.
ch ( 1 ba .it) bude uloieno
x
(4
TJ a
adrese #AFFE-1, t . j. na #AFFD.
ba,ity) bude uloŽeno na adresách ltAFF9. #AFFA. #AFFB a #AFFC.
LokálnÍ proměnné
Lokál ni
proménné
ne .i sou
tak
Přistupné
snadno
Přes
zásobnÍk
místo toho .ie re-'!'istr IX nastaven na pob;l.t.ku kaid~ho vni.třniho
bloku tak,
Že (IX-4) ukazu.ie na poČáteční adresu bloku lokálnich
proménnÝch.
Napřiklad:
PROCEDURE
test;
VAR
i,j:
INTEGER;
potom:
i
( integer,
2 ba.i ty) bude
umístěno na
adresách IX-4-2 a
IX-4-1,
tedy IX-6 a IX-5 .
.i bud<= umísténo na adresách TX-8 a IX-7 .
Argumenty a hodnoty funkcí
Hodnoty parametrŮ
č:f.m dřive
54
.isou
zpracovávány
je parametr popsán,
_iako
loki.lni
proměnné
tim vyŠŠÍ adresu má v
tedy
paměti.
Na
rozd{l
od
proměnnÝc h
.ia
ale
pevne•
s·t.anovena
'
• ' r'll •·
ne,Jnl. ZS l
{
n.i ._Ko ~. iv
neivy~~{l adresa jako CIX+2) .
NapHk"lad:
tesH j_: REAL:
PROCEDURE
.i:
INTJ!:GER I;
i)Otom :
... ( um:istěno -prvni) je ·na ad-rúso IX+2
i
,i•:? n a adrese I X+4,
VÝstupnÍ
·tak,
parar:1et ry
jako hodnotové
3
IX+:3.
IX+ 5, IX+6 a IX+7 .
(popsfi.tny
,iako
paramet.ry,
VAR)
s
jsou zpracovávány přesně
v:dimk ou
toho.
Že
jsou vŽdy
uk l ádány do 2 b~·te "' t;d:o 2 byte obsahuj{ a dre su· proměnné.
NapHklad:
PROCEDURE t,est ( i : INTEGER : VA'R x: REAL) ;
potom
je umístěn na adrese IX+2 a IX+3. Zde je adresa, kde
je uloženo x. Hodnota i .ie uloŽena na adrese IX+4 a IX+5.
o dkaz na x
FunkČnÍ hodnoty jsou ukládány nad prvním parametrem v
paměti.
Napřfklad:
FUNCTION test( i: INTEGER): REAL;
potom
i
,je n~ adresách IX+2 a
rezervován na adresách
IX+3 a. prostor pro funkČnÍ hodnotu
je
IX+4, IX+5 , IX+6 a IX+7.
55.
U? -fP:t-c~ram -oro ilustrac i pou~~i tí. 'f TN a. TOUT.
2r;;
P!::'o~ram ':0f":·.vA ř1. v,elmJ
~l 0
seznam. na ;:·.~ s ku .~:t potom .-i e :i zp;n:n8 Čte.
.indno duchV telf:1fonní.
Sfi
n i.kol i v 'SIZE'
.
: - .~
."i 1j •
Numbe x
160
: Ali..R.AY
0 . . 10)
OF CHAR ;
f!:ND :
J.\3 0
.'>c rG c"t.o!-;t : ;\.IlRAY [1. .Si ze) OF CHAR;
2fr:VJ
J : I l\P"fEG:V;R ~ ..
210
2 2.0
En~G H l
24~
fVytvo~ en {
seznamu . . l
250
I·- 1 TO Size DO
260
li'OR
270
RF.GI N
280
WITH Dir-ectory[I) DO
290
300
BEGHl
w'RI'l'E ( 'Prosim .iméno ' \;
310
READLN ;
320
'READ ( Name ) ;
330
WRITELN;
340
WRITE( 'Čislo prosim');
READLN ;
350
360
370
380
390
400
56
READ(Number);
í<JRITELN
END
END;
f1
410 fK ulc~enÍ seznamu na p~sek s e po u fije . . }
430
TOUTI 'Seznam ' , ADDRIDirectory l, SIZECDirectory) I
440
450 {Nové Čtení _-pole zpět následovně .. }
460
470
TIN('Seznam' ,ADDR(Directory))
480
490 {A nynÍ .iiŽ m&žet,e zpracovavat adresář podle přání. ... 1
500 END.
10 { Pro.Etram pro vÝpis znak•~ ~Ádku v obdoceném pořad{ .
20 Ukazu .ie použiti uka zate l(i.
zázn;,mu. H/U~K a RF.LEASE. l
30
40 PROGRAM Reverseline;
50
·fTvoH s trukturu řádk& vÝpisu"}
S0 TYPE elem=RECORD
next:
70
8
"'elem~
0
.ch: CHP,R
90
END;
100
link=~elem:
1L10
V2 0 VAB. prev ,cur, hei:>:
link;
11330
!'A<10 BEG I N
i 50
REPEAT
·iPř i:'ad it VT".::hol l! " he~rJ> .
MARK(heap ) :
prev:=NIL;
1810
1a-10
-fnet:t:o\:a?.u.1e z at.. Ír11 :-tu .; ;.;dno:J p~oměnr1. 0ll.}
WHILE NOT EllLN DO
BEGIN
2fM
NEW( eur);
{vytvořit novÝ dynamickÝ z á:-mam 1
2!'1.·0
READleur~.eh) :
{a přiřadit jeho pole jednomu
curA.next:=prev ;
{tento ukazatel pole adresuje}
prev:=eur
.fpředehozi záznam.}
znaku ze souboru . }
2!20
2!'50
END:
ZH30
2270 {VypÍŠe řádek odzadu prohliženim záznam&
~80 vytvořenÝch pozpátku .}
::290
300
cur::prev ;
3 10
WHILE eur <> NIL DO
320
{ NII, .i e prvni 1
BEGIN
330
WRITE( eurA. ch);
{Vypsat toto pole , t . .j. znak)
340
eur: =eur""'. next.
{Adresovat p:f.edchozi pole. 1
350
END;
360
w'"RI'l'ELN;
370
RELEASE ( he&.p );
fUvoinit Prostor dvnamic ké proCJ'l;~n né.)
280
330
READLN
UNTIL FALSE
t.fl0 END .
10 fPro,t;.r;:;.m ukazu ,lr3 použi..t.Í r,:1 kurzc }
20
30 PROG RPJ-1 Fi\C'!'Cí" ·
40
50 iTGnto ):- r o t? r ~it. po Č{-:. ~ f a l-; to r .i ?~l člsla,
zadané"!ho
60 :o ld áv e sn Jcc 1'; pouŽi dm rl3lmrz,, a 2) p ou ŽitÍm iterace.}
70
SO TYPE
~ -.
HA::INT;
PUS IN'f :
:50 ~ R ok ~ r ~ ivn{ a1.G c ritmus.
1 70 fo'ONCTION
r~FAC(N
l 90
POSIN T ~
V/,f.'
INTEGER:
: POSINT)
2 í10
IF
N> l
;·, 30
2 40
2 50
THEN
F:LSE F:
F:
=
=
rl
:r.
Rl!AC(N·-1)
{RFAC vyvol<ino N
1;
RFi\C : = F
END :
:C 60
270
{I te ra~n{ fe~en{ . l
~~30
?. 90
300
210
320
l~UNC TTON
I'F'AC(N
. - 1;
. - 2 TO N DOF . - F*I;
F
340
FOR I
350
360
IFAC: =F
END;
370
60
INTEGER:
VAR 1. F : ?OSINT;
BEGIN
330
380
POSINT)
BEGI N
{Jednoduch~
smybka . 1
390
REPI!:AT
400
';>.'RI'I'F.( 'Za<:!,-,:\'.:.e ,;;:.>t.0rl u i' T nAbo R\ a č{s) o
410
P.EADLN:
4 20
RF. AD ( HE'l'HOD.
430
IF METHOD ::: 'R'
~1U HBJl;R
' ):
l ;
440
'I'HJ'(;J. wlUTF.:LN!NUMT;Ti:R , ' ! : ' ,RFAC(NlJMDH:R))
450
ELSE WRITEf"iH NUt1BER.'!
460
= '. IFACO!ffiiBER)}
UNTIL NUMBER:0
470 END .
6j
~1cdi f
10 {Program pro demonstraci
•J
I
'
20.
PascalovskÝch
30
Uka:;-.u j .-" PEEK , POKE, ADDR a
PTCln t=-liDYCi!
t kace
pou~it{m
strojov&ho k6du .
~ NLIN E.}
40
f>0 PROGRAl1 di vonu J ·t:?:
ti0
7i3 VAH t' :HEAL ;
80
9'?i FUNC'!' i.On d ivbv2(x:RF.AL):Tl.RAL:
100
.fFunkcA dél("-..{ 2 ..
.. rychle . }
{Ukazuje na exponent u x}
1 4 •.1
po;•:;;: f i . PRTI:D I PEl~ K ( i , <"::! í·IAR) ) ) ;
{Dekrementuje exponent u x .
viz Dodatek 3.1.3.}
l Gí-1
did:JY2: =x
l'/0 END;
1 80
1 80 FUNCTIOtl mu1.tb:,r 2(x:HEAI.l :I{1:AL: {Funkce násobeni 2 ..
. . rychle . 1
~:20
INLiliE:l 'DD. '34, 3 l ;
2:J(~
2~0
{INC (11+3) - e xponent •u x
- v i z Do<iatek 3. 2. l
mn1tbv2 := x
250 F.ND;
:-!fi0
::- ?0 REGTN
280
290
RI!:PEAT
WRTTE('Zadej 6:i'.slo r ');
30Y.l
fNeni
310
zapotřebÍ READLN,
Sekce 2.3.1.
}
320
330
340
350
WRITELN('r děleno dvěma ,je ',divby2(r):7-: 2);
WRITELN('r násobeno dvěma ;je ',multby21r):7:2);
UN'l'IL r=0
360 END.
62
viz
10 {Pro~~ram pro vÝpi!ó t extovÉ. ho souboru n-'3 obrazovků -~
20 PROGP.Al1 vyp :is;
30
40 VAR znak:CHAH ;
50
60 BEGIN
70 OPENI ( 'SOUBO:R ' ) ;
{otevřen{
vstupniho soubo ru SOUBOR.DTA}
80 WHILE NOT EOF DO
90 BEGIN
100
GET{znak);
{načteni znaku ze souboru)
110
WRITE(znak)
fvÝpis znaku na obrazovkul
1212l END;
130 WRITRLN:
{na novÝ Hdekl
140 \<ffiiTELIH 'Konec souboru');
150 END.
---- -- - -- ---- - --- -- -- ·------ --·--· -·-------- P~ {loha ~ Lite rattl ra .
1"11
ti;1}1.-,:c, K . Pro!:framovaci :ia~:vkv. Edic'!:ni středisko ČVUT.
[ 21 Wiirth,
N.
Algori thmus+Data
Structures=Programs.
Hall. Eng lewood Cliffs . Ne w York.
[ 3] lnz th, N. Systematické pr,...grarnovanie. Alfa .
64
Prentice