Premium

Získejte všechny články
jen za 89 Kč/měsíc

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

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

Spotem s Trojanem na horách operátor popudil Poláky. Nerozuměli nadsázce

21. dubna 2024  8:01

Po dvojici Vojtěch Kotek a Lukáš Pavlásek, k níž později přibyl Jakub Kohák, vsadil T-Mobile ve...

Je to už spíš foťák s mobilem a opravdu se povedl. Test Xiaomi 14 Ultra

21. dubna 2024

Prémiový smartphone Xiaomi 14 Ultra působí mezi současnou nabídkou mobilů jako unikát. Jaký jiný...

{NADPIS reklamního článku dlouhý přes dva řádky}

{POPISEK reklamního článku, také dlouhý přes dva a možná dokonce až tři řádky, končící na tři tečky...}

Toto zařízení mělo nahradit mobily. V recenzích se mu vysmáli

23. dubna 2024

Novinka s názvem Humane AI Pin se zdála být převratným zařízením. V mnoha ohledech měla nahradit...

Vodafone měl výpadek, někteří zákazníci se nemohli dovolat

25. dubna 2024  10:03,  aktualizováno  10:15

Síť mobilního operátora Vodafone postihl ráno výpadek. Týkal se části zákazníků, kteří se nemohli...

{NADPIS reklamního článku dlouhý přes dva řádky}

{POPISEK reklamního článku, také dlouhý přes dva a možná dokonce až tři řádky, končící na tři tečky...}

Operátoři zahušťují pokrytí Česka signálem 5G. Máte ho doma? Podívejte se

20. dubna 2024

Premium V červenci to budou již čtyři roky, co byla v Česku spuštěna první komerční 5G síť. Zatímco v...

Dětem neprodáváme. Britské děti si dost možná už smartphone nekoupí

27. dubna 2024

Premium Britští ministři zvažují přijetí zákona, který by omezoval prodej smartphonů. Jsou totiž...

Váš iPhone může být hacknut, varuje Apple uživatele v desítkách zemích

27. dubna 2024

Jednotlivci z řad uživatelů iPhonů z více než devadesáti zemí světa obdrželi ve středu 10. dubna od...

Úřad chce zatočit se spoofingem. Podezřelé hovory operátoři nespojí

26. dubna 2024  16:02

Český telekomunikační úřad (ČTÚ) vydal novelu všeobecného opatření, která stanovuje nové podmínky,...

Hlasujte o nejlepší sportovní fotku. Vyberete tak vítěze smartphonu vivo

26. dubna 2024

Soutěž o úplnou novinku, smartphone vivo V40 SE s bohatou výbavou nebo podepsaný dres...

Bývalý fitness trenér Kavalír zrušil asistovanou sebevraždu, manželka je těhotná

Bývalý fitness trenér Jan Kavalír (33) trpí osmým rokem amyotrofickou laterální sklerózou. 19. dubna tohoto roku měl ve...

Herečka Hunter Schaferová potvrdila románek se španělskou zpěvačkou

Americká herečka Hunter Schaferová potvrdila domněnky mnoha jejích fanoušků. A to sice, že před pěti lety opravdu...

Tenistka Markéta Vondroušová se po necelých dvou letech manželství rozvádí

Sedmá hráčka světa a aktuální vítězka nejprestižnějšího turnaje světa Wimbledonu, tenistka Markéta Vondroušová (24), se...

Horňáci versus dolňáci. Víme, čemu muži dávají přednost, a je to překvapení

Ženské tělo je pro muže celkově velmi atraktivní a nabízí jejich očím mnoho zajímavých partií. Největší pozornosti se...

Za vytlačení z linky do Brna musí Student Agency zaplatit náhradu 21 milionů

Společnost Student Agency provozující autobusy a vlaky pod označením RegioJet musí zaplatit bývalému konkurentovi 21...