280 likes | 417 Views
Програмски језик Parallaxis (2). Потпрограми општег типа. Функцијски потпрограми. Потпрограми општег типа. PROCEDURE Ime_pp(deklaracija argumenata); --- deklaracija lokalnih promenljivih BEGIN --- telo potprograma END Ime_pp;. Потпрограми општег типа.
E N D
Програмски језик Parallaxis (2) Потпрограми општег типа. Функцијски потпрограми.
Потпрограми општег типа PROCEDURE Ime_pp(deklaracija argumenata); --- deklaracija lokalnih promenljivih BEGIN --- telo potprograma END Ime_pp;
Потпрограми општег типа • При декларацији аргумената за сваки аргумент се наводи: • кључна реч VAR за позив по референци, • име аргумента, • знак ‘:’ и • тип аргумента. • Декларације аргумената одвајају се знаком ‘;’.
Потпрограми општег типа • У језику Parallaxis постоји 28 стандардних потпрограма општег типа. • Користићемо следеће ознаке ord – набројиви, изведени и целобројни типови података; elem – тип елемента скупа; skup – тип SET OF elem; niz – променљиве типа ARRAY OF char.
Потпрограми општег типа • DEC(SCALAR VAR x: ord) • DEC(VECTOR VAR x: ord) Умањује вредност променљиве x за 1 или додељује променљивој вредност њеног непосредног претходника.
Потпрограми општег типа • DEC(SCALARVARx:ord;SCALAR n:INTEGER) • DEC(VECTOR VARx:ord;VECTOR n:INTEGER) Умањује вредност променљиве x за n или додељује променљивој вредност њеног n-тог претходника.
Потпрограми општег типа • INC(SCALAR VAR x: ord) • INC(VECTOR VAR x: ord) Увећава вредност променљиве x за 1 или додељује променљивој вредност њеног непосредног следбеника.
Потпрограми општег типа • INC(SCALARVARx:ord;SCALAR n:INTEGER) • INC(VECTOR VARx:ord;VECTOR n:INTEGER) Увећава вредност променљиве x за n или додељује променљивој вредност њеног n-тог следбеника.
Потпрограми општег типа • EXCL(SCALARVARx:skup;SCALAR y:elem) • EXCL(VECTOR VARx:skup;SCALAR y:elem)) Уклања елемент y из скупа x.
Потпрограми општег типа • INCL(SCALARVARx:skup;SCALAR y:elem) • INCL(VECTOR VARx:skup;SCALAR y:elem) Уводи елемент y у скуп x.
Потпрограми општег типа • Write(SCALAR c:char) Знак c се шаље на активни излазни канал.
Потпрограми општег типа • WriteInt(SCALAR i:INTEGER;SCALAR n:CARDINAL) Слање целог броја i на активни излазни канал са записом од n знакова. • WriteCard(SCALAR i,n:CARDINAL) • WriteReal(SCALAR r:REAL;SCALAR n:CARDINAL) • WriteFixPt(SCALAR r:REAL;SCALAR n,p:CARDINAL) • WriteBool(SCALAR b:BOOLEAN) • WriteString(SCALAR s:niz) • Writeln
Потпрограми општег типа • Read(SCALAR VAR c:CHAR) • ReadInt(SCALAR VAR i:INTEGER) • ReadCard(SCALAR VAR c:CARDINAL) • ReadReal(SCALAR VAR r:REAL) • ReadBool(SCALAR VAR b:BOOLEAN) • ReadString(SCALAR VAR s:niz)
Потпрограми општег типа • OpenInput(SCALAR s:niz) • OpenOutput(SCALAR s:niz) • CloseInput • CloseOutput
Функцијски потпрограми PROCEDURE Ime_pp(dekl_arg): dekl_rez; --- deklaracija lokalnih promenljivih BEGIN --- telo potprograma RETURN(rezultat); END Ime_pp;
Функцијски потпрограми • Декларација аргумената је иста као и код потпрограма општег типа осим што не постоји кључна реч VAR. • У декларацији резултата наводи се да ли је резултат скаларни или векторски, као и тип резултата. • Аргумент наредбе RETURN је излазни аргумент потпрограма и може бити променљива или израз.
Функцијски потпрограми • У програмском језику Parallaxis постоје 32 стандардна функцијска потпрограма. • Осим раније коришћених ознака користићемо и: tip – име типа податка port – име порта
Функцијски потпрограми • COS(SCALAR r:REAL):SCALAR REAL; • COS(VECTOR r:REAL):VECTOR REAL; • SIN(SCALAR r:REAL):SCALAR REAL; • SIN(VECTOR r:REAL):VECTOR REAL; • TAN(SCALAR r:REAL):SCALAR REAL; • TAN(VECTOR r:REAL):VECTOR REAL; • ARCSIN(SCALAR r:REAL):SCALAR REAL; • ARCSIN(VECTOR r:REAL):VECTOR REAL; • ARCCOS(SCALAR r:REAL):SCALAR REAL; • ARCCOS(VECTOR r:REAL):VECTOR REAL;
Функцијски потпрограми • ARCTAN(SCALAR r:REAL):SCALAR REAL; • ARCTAN(VECTOR r:REAL):VECTOR REAL; у опсегу [-/2, +/2] • ARCTAN2(SCALAR r1,r2:REAL):SCALAR REAL; • ARCTAN2(VECTOR r1,r2:REAL):VECTOR REAL; arctg(r1/r2) [-, +]
Функцијски потпрограми • EXP(SCALAR r:REAL):SCALAR REAL; • EXP(VECTOR r:REAL):VECTOR REAL; • LN(SCALAR r:REAL):SCALAR REAL; • LN(VECTOR r:REAL):VECTOR REAL; • SQRT(SCALAR r:REAL):SCALAR REAL; • SQRT(VECTOR r:REAL):VECTOR REAL;
Функцијски потпрограми • ABS(SCALAR x:INTEGER):SCALAR CARDINAL; • ABS(VECTORx:INTEGER):VECTORCARDINAL; • ABS(SCALAR x:REAL):SCALAR REAL; • ABS(VECTORx:REAL):VECTORREAL; • FLOAT(SCALAR i:INTEGER):SCALAR REAL; • FLOAT(VECTORi:INTEGER):VECTOR REAL; • TRUNC(SCALAR r:REAL):SCALAR INTEGER; • TRUNC(VECTOR r:REAL):VECTORINTEGER;
Функцијски потпрограми • CAP(SCALAR c:CHAR):SCALAR CHAR; • CAP(VECTORc:CHAR):VECTORCHAR; Претвара знак у велико слово. • CHR(SCALAR i:INTEGER):SCALAR CHAR; • CHR(VECTOR i:INTEGER):VECTOR CHAR; • ORD(SCALAR i:ord):SCALAR INTEGER; • ORD(VECTOR i:ord):VECTOR INTEGER; • ORD(SCALAR i:CHAR):SCALAR INTEGER; • ORD(VECTOR i:CHAR):VECTOR INTEGER;
Функцијски потпрограми • EVEN(SCALAR i:INTEGER):SCALAR BOOLEAN; • EVEN(VECTOR i:INTEGER):VECTOR BOOLEAN; • ODD(SCALAR i:INTEGER):SCALAR BOOLEAN; • ODD(VECTOR i:INTEGER):VECTOR BOOLEAN; • MAX(TIP ord):SCALAR ord; Највећи елемент који припада типу ord. • MIN(TIP ord):SCALAR ord; Најмањи елемент који припада типу ord.
Функцијски потпрограми • SIZE(SCALAR x:TIP):SCALAR INTEGER; • SIZE(VECTOR x:TIP):VECTOR INTEGER; Враћа број меморијских локација које заузима променљива x.
Функцијски потпрограми • STRCMP(SCALAR s1,s2:niz):SCALAR INTEGER; • STRCMP(VECTOR s1,s2:niz):VECTOR INTEGER; Пореди знаковне низове s1 и s2; резултат поређења је +1, 0 или -1 у зависности од тога да ли је низ s1 у лексикографском смислу већи, једнак или мањи од низа s2. • STREQ(SCALAR s1,s2:niz):SCALAR BOOLEAN; • STREQ(VECTOR s1,s2:niz):VECTOR BOOLEAN; Пореди знаковне низове s1 и s2; враћа TRUE ако је s1 у лексикографском смислу већи од низа s2; иначе FALSE.
Функцијски потпрограми • SBRANDOM():SCALAR BOOLEAN; • VBRANDOM():VECTOR BOOLEAN; • SCRANDOM():SCALAR CHAR; • VCRANDOM():VECTOR CHAR; • SIRANDOM():SCALAR INTEGER; • VIRANDOM():VECTOR INTEGER; • SRRANDOM():SCALAR REAL; • VRRANDOM():VECTOR REAL;
Функцијски потпрограми • VAL(TIP ord;SCALAR n:INTEGER):SCALAR ord; • VAL(TIP CHAR;SCALAR n:INTEGER):SCALAR CHAR; • VAL(TIP ord;VECTOR n:INTEGER):VECTOR ord; • VAL(TIP CHAR;VECTOR n:INTEGER):VECTOR ord; Преводи цео број nу одговарајући елемент редног типа. Важи ORD(VAL(ord,n)) = n VAL(CHAR,n) = CHAR(n)
Функцијски потпрограми • IN_Connected(PORT ul_port):VECTOR BOOLEAN; • OUT_Connected(PORT izl_port):VECTOR BOOLEAN; • IN_LineConnected(PORT izl_port,ul_port):VECTOR BOOLEAN; • OUT_LineConnected(PORT izl_port,ul_port):VECTOR BOOLEAN;