Klávesové zkratky na tomto webu - základní
Přeskočit hlavičku portálu

Programujeme pro Psiony, aneb OPL pro začátečníky (3)

aktualizováno 
Třetí pokračování našeho prázdninového rychlokurzu programování v jazyce OPL.

Přehled nejdůležitějších funkcí jazyka OPL

Aritmetické funkce - ABS, IABS (absolutní hodnota), VAL, EVAL (vyhodnotí číslo nebo výraz obsažený v řetězci), FLT (převede celé číslo na reálné), INT, INTF (zaokrouhlí hodnotu na celé číslo), EXP (mocnina čísla e), LN, LOG (přirozený a desítkový logaritmus), SQR (odmocnina), MAX, MIN (nalezení maxima a minima seznamu čísel nebo pole), SUM, MEAN, STD, VAR, (suma, průměr a směrodatná odchylka seznamu čísel nebo pole), RND (pseudonáhodné číslo), UADD, USUB (sčítání a odčítání celých čísel bez znaménka).

Trigonometrické funkce - COS, ACOS, SIN, ASIN, TAN, ATAN (parametr i vrácená hodnota je v radiánech), RAD, DEG (převod ze stupňů na radiány a zpět) a PI (číslo ).

Funkce pro práci s časem a datem - YEAR, MONTH, DAY, HOUR, MINUTE, SECOND (vrací aktuální hodnoty systémového času), DATETOSECS, SECSTODATE (převod data na počet vteřin uplynulých od půlnoci na 1.1.1970), DATIM$ (vrátí datum jako text), DAYS, DAYSTODATE (převod data na počet dnů uplynulých od 1.1.1900 a zpět), DOW, WEEK (číslo dne v týdnu a týdnu v roce), DAYNAME$, MONTH$ (jména dnů v týdnu a jména měsíců).

Řetězcové funkce - FIX$, GEN$, SCI$, NUM$ (převod reálného čísla na řetězec v pevné desetinné čárce, obecném tvaru, vědeckém tvaru nebo zaokrouhlené), HEX$ (převod celého čísla do šestnáctkové soustavy), LEFT$, RIGHT$, MID$ (výběr podřetězců), LEN (délka řetězce), LOC (vyhledání podřetězce), UPPER$, LOWER$ (převod řetězce na velká nebo na malá písmena), REPT$ (vytvoří řetězec z opakujících se znaků), CHR$ (pro převod ASCII hodnoty na kód znaku) a ASC (pro převod opačným směrem).

Pole

Proměnné mohou tvořit jednorozměrná pole - index pole uvádíme v kulatých závorkách; první prvek má index 1. Pole deklarujeme podobně jako samostatné proměnné za klíčovým slovem LOCAL (lokální proměnné) nebo GLOBAL. Při deklaraci řetězců používáme dva indexy oddělené čárkou: první udává počet prvků pole a druhý nejvyšší délku jednotlivého řetězce v poli.

PROC promenne:
  LOCAL a%(10), b(100)
  GLOBAL s$(100), r$(100, 1)
  s$ = "Text"
  r$(1) = "a" : r$(100) = "z"
ENDP

V předchozím příkladu jsme deklarovali lokální celočíselné šestnáctibitové (odlišené znakem procento) pole a% o velikosti 10 prvků a pole reálných čísel b obsahující 100 prvků. Pozor na druhý řádek, kde je uvedena globální deklarace. s$ je řetězcová proměnná, která může mít délku nejvýše 100 znaků. Teprve proměnná r$ označuje pole sta jednoznakových řetězců r$(1)r$(100).

Řídící struktury programu

Klasické větvení programu je možné pomocí klíčových slov IF, ELSEIF, ELSE a ENDIF. Každé z těchto klíčových slov musí být uvedeno na samostatném řádku nebo oddělené dvojtečkou jako samostatný příkaz. Struktura bloku podmínek je následující:

IF podmínka
  příkazy, které budou vykonány, bude-li podmínka platit
ELSEIF podmínka-2
  příkazy, které budou vykonány, bude-li platit podmínka-2
ELSEIF podmínka-3
  příkazy, které budou vykonány, bude-li platit podmínka-3
...
ELSE
  příkazy, které budou vykonány, nebude-li žádná z podmínek splněna
ENDIF

Bloků za ELSEIF může být uveden libovolný počet; tyto bloky však není povinné v podmínce uvádět. Relační operátory v podmínce mohou být =, <>, <, <=, >, >= a mohou být spojeny pomocí logických operátorů AND, OR a NOT a závorek do libovolně složitých podmínek.

Cykly, které jazyk OPL používá, mohou mít podmínku na začátku i na konci. Z obou dvou těchto cyklů je možné vyskočit příkazem BREAK a vynutit si další iteraci pomocí příkazu CONTINUE.

WHILE podmínka
  příkazy, které budu vykonávány, dokud bude podmínka platit
ENDWH

DO
  příkazy, které budu vykonávány, dokud nebude podmínka splněna
UNTIL podmínka

Smyčky WHILE 1 ... ENDWH a DO ... UNTIL 0 jsou nekonečné smyčky, ze kterých musíme - chceme-li je opustit - vyskočit použitím příkazu BREAK.



Nejčtenější

Tak bude vypadat letošní nejlevnější iPhone, zepředu připomíná desítku

Render chystaného LCD iPhonu s 6,1palcovým panelem ve společnosti menšího...

Uvedení nových iPhonů se blíží, jejich oficiální odhalení proběhne už za dva měsíce. Víme, že budou tři a alespoň z...

Blesková krádež. Zloději za 30 sekund vybílili obchod Applu

Blesková krádež v kalifornském Apple Storu

Skupina mužů za méně než minutu vykradla před očima zákazníků i personálu obchod Apple Store v kalifornském Fresnu....



Xiaomi pokračuje v dumpingových akcích. Redmi S2 bude za 300 korun

Nová prodejna mobilů v Olomouci přilákala stovky lidí

Agresivní marketing čínské značky v Česku pokračuje. Xiaomi otevírá třetí obchod a tradičně první den nabízí produkty s...

Novinka za 975 korun nahradí smartphone a nepotřebuje dotykový displej

JioPhone 2

Obyčejné mobily nejsou mrtvé. Právě naopak. Jestliže prodeje smartphonů stagnují, nebo na některých trzích dokonce...

Jeden z nejočekávanějších mobilů roku. Nokia 8110 je chytrá jen trochu

Nokia 8110 4G

Retro model Nokia 8110 4G je možná jedním z nejočekávanějších mobilů letošního roku. V Česku se začal prodávat počátkem...

Další z rubriky

Aplikace ukazovala otravující čísla. Data kradl antivir přímo z mobilů

Škodlivý kód Cooligan napadá zařízení s Androidem 4 a 5

Zajímavý model vymyslelo studio DU. Jedna jejich android aplikace ukazovala, kdo volá, včetně obtěžujících čísel...

K používání aplikace WhatsApp vám nově musí být minimálně 16 let

Whatsapp bude umět zpětně vymazat odeslané zprávy

Chatovací služba WhatsApp mění podmínky používání v Evropské unii. Nově začíná platit, že pro používání služby vám musí...

S těmito aplikacemi se o dovolené neztratíte. Najdou let i levný hotel

Ilustrační snímek

Místo slovníku, mapy a průvodce už řada lidí vyráží na dovolenou na neznámé místo jen se svým telefonem. V mnoha...

Najdete na iDNES.cz