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ší

Nový „levný“ iPhone má být hit. Prodat se ho má 100 milionů

Trojice iPhonů pro rok 2018

Apple chystá na letošní rok tři nové iPhony. Jedním z nich má být levnější model, který nebude mít OLED displej. A...

Nepoužívejte smartphony Huawei a ZTE, varují Američany FBI, CIA i NSA

Huawei Mate 10 Pro bude v USA k dostání u BestBuy

Huawei chtěl letos vzít útokem Spojené státy, a to s pomocí tamních klíčových operátorů. Z možné dohody však nakonec...



Vodafone extrémně vylepšuje rodinné tarify. Zadarmo přidává 8 GB a VDSL

Vodafone (ilustrační fotografie)

Není obvyklé, aby operátor výrazně vylepšil tarif a nesáhl na cenu. V případě inovovaných rodinných tarifů Red+ tomu...

Teď přijde řada na naše peníze. V Číně totiž končí zlaté časy

Xiaomi Mi 6

Čínský trh s chytrými telefony je největší na světě, ale loni se podle všeho dostal do potíží. Po letech růstu přišel...

Lidé si stěžovali na špatný signál. Rušil ho těžař bitcoinů

(Ilustrační snímek)

Newyorští zákazníci amerického operátora T-Mobile si stěžovali na znatelný šum během telefonních hovorů. Ukázalo se, že...

Další z rubriky

Google loni zlikvidoval 700 tisíc aplikací

Mobilní aplikace

Z aplikačního obchodu Google Play bylo loni odstraněno 700 tisíc aplikací, většina zmizela prakticky ihned po umístění...

Bez reklamy ani ránu. Bude už i na Facebook Messengeru v mobilu

Mobilní Messenger projde změnou, k nelibosti uživatelů v něm budou cílené...

Oblíbený mobilní kecálek se brzy promění. Facebook totiž do Messengeru po úspěšném testování implementuje cílené...

Sem chodí smartphony umřít. Aplikaci lze použít jen s vybitou baterií

Die With Me

Aplikace s názvem Umři se mnou má velmi neobvyklé omezení. Nemůžete ji zapnout, pokud máte telefon nabitý víc než na...

Najdete na iDNES.cz