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

Druhé pokračování našeho prázdninového rychlokurzu programování v jazyce OPL.

Úvod do jazyka OPL 2/5


Druhy programů v OPL

Z hlediska jejich spouštění můžeme přeložené programy v OPL rozdělit na dva druhy: prvním z nich jsou samostatné přeložené programy, které spouštíme poklepáním na jejich ikonu v adresáři. Programy v OPL můžeme však také doplnit o ikonu a systémové informace a vytvořit tak aplikaci OPL, která se umístí do nabídky Extras.

Z hlediska komunikace s uživatelem (a rostoucí náročnosti na programátora) je možné programy v OPL rozdělit na tři skupiny:

První skupinou jsou jednoduché programy podobné jazyku BASIC používající jednoduchý vstup (příkazy INPUT, EDIT a GET) a výstup (příkazy PRINT, AT, CLS a BEEP). Tyto programy je velmi jednoduché vytvářet, a přesto mohou být velmi užitečné pro různé jednoduché i složitější úlohy.

Druhou skupinou jsou programy používající ke komunikaci s uživatelem základní uživatelské rozhraní EPOC - výzvy (příkaz ALERT), dialogy (definované mezi příkazy dINIT a DIALOG) a uživatelské nabídky - menu (definice pomocí mINIT, použití příkazem MENU). Výhodou oproti první skupině programů je ovládání programu jednotným uživatelským rozhraním, na které je uživatel zvyklý z jiných aplikací.

A konečně skupinu třetí tvoří plnohodnotné událostmi řízené aplikace pro EPOC. Tyto aplikace mohou kromě základního uživatelského rozhraní využívat i ovládání perem, panel nástrojů a podobně. Programování těchto aplikací však vyžaduje detailní znalost některých mechanizmů operačního systému EPOC. Popis těchto mechanizmů a tvorba vlastní aplikace bude součástí jedné z příštích sérií článků.

Proměnné a výrazy

Proměnné v programech v jazyce OPL musíme před použitím deklarovat. Deklarace může být buď lokální (uvozená klíčovým slovem LOCAL) nebo globální (uvozená GLOBAL). Lokální proměnné je možné používat jen v proceduře, ve které jsou definované. Oproti tomu proměnné globální můžeme používat v celém programu nezávisle na procedurách, ve kterých byly definovány.

Jména proměnných mohou být, podobně jako jména procedur, dlouhá nejvýše 32 znaků. Při jejich zápisu nezáleží na tom, zda jejich jména píšeme velkými nebo malými písmeny (kx%, Kx% a KX% onačuje stejnou proměnnou). Proměnná končí znakem, který udává její typ. Proměnné končící znakem '$' obsahují řetězce, proměnné končící znakem '%' obsahují celá 16bitová čísla a proměnné končící znakem '&' obsahují čísla 32bitová.

Pokud jméno proměnné nekončí žádným z těchto speciálních znaků, jedná se o proměnnou obsahující reálné číslo s plovoucí desetinnou čárkou. Proměnné musí být vždy deklarovány (pomocí GLOBAL nebo LOCAL) na začátku procedury před ostatními příkazy.

Použití proměných ukazuje následující jednoduchý program. Dvojtečka od sebe odděluje příkazy, které si přejeme uvést na jednom řádku. Středník na konci příkazu PRINT má stejnou funkci jako v jazyce Basic - potlačí odřádkování. Řetězcová proměnná h$ je deklarována s maximální délkou 100 znaků. Příkaz INPUT (další z dědictví jazyka BASIC) čeká na zadání proměnné z klávesnice.

PROC druha:
  LOCAL a, b
  LOCAL h$(100)
  PRINT "První číslo "; : INPUT a
  PRINT "Druhé číslo "; : INPUT b
  PRINT "Podíl čísel "; a; " a "; b; " je "; a / b
  PRINT "Zadejte text ";
  INPUT h$
  h$ = "Text je """ + h$ + """."
  PRINT h$
  GET
ENDP

Konstantní hodnoty mohou být řetězce v uvozovkách (přejeme-li si uvést uvozovky v řetězci, tak je zdvojíme), celá čísla i čísla s desetinnou čárkou. Příkaz a% = $1A3F přiřadí proměnné a% hodnotu v šestnáctkové soustavě a příkaz a% = %a uloží do proměnné a% hodnotu 97 (ASCII hodnota znaku 'a'). Zatímco konstanta uvozená znakem '$' obsahuje 16bitové číslo v šestnáctkové soustavě, použijeme-li ve výrazu konstantu uvozenou znakem '&' (například příkaz a& = &1234FAB0), uložíme do proměnné 32bitovou šestnáctkovou hodnotu.

V aritmetických výrazech můžeme používat základní operátory (+-*/), kulaté závorky pro vynucení přednosti vyhodnocení výrazů a operátor ** (dvě hvězdičky) pro mocninu. Řetězce můžeme pouze spojovat operátorem '+'. Pro kompletní seznam aritmetických a řetězcových funkcí, které můžete ve svých programech používat, se podívejte do manuálu - některé z nich uvedeme v pokračování.

Po deklaraci mají všecny numerické proměnné hodnotu 0 a řetězcové proměnné obsahují prázdný řetězec (délky 0 znaků). Nejrychlejší jsou výpočty s 16bitovými čísly (označenými znakem '%') a nejpomalejší jsou naopak operace s čísly reálnými a s řetězci.

  • Nejčtenější

V květnu se zřejmě vrátí ikonická Nokia 3210, kdysi to byl přelomový model

24. března 2024  8:01

Současný vlastník značky Nokia na poli mobilních telefonů, firma HMD (Human Mobile Devices –...

Banka spustila mobilní datové balíčky. Funguje to i zákazníkům z Česka

26. března 2024  12:06

Virtuální banka Revolut spouští virtuálního celosvětového operátora. Zákazníci si mohou kupovat...

{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...}

Trvalo to. Nový nejlepší fotomobil světa konečně koupíte i v Česku

26. března 2024  7:02

Konečně nastává situace, že nejlepší fotomobil v žebříčku DxO Mark je dostupný i na našem trhu....

Smartphonům od Googlu raketově rostou prodeje tam, kde kraluje Apple

27. března 2024  7:02

Prodeje smartphonů Pixel od Googlu se mohou pochlubit neskutečným nárůstem prodejů. Tedy prozatím...

{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...}

Pochlubili se, že se pochlubí. Značky ze sebe dělají slibotechny

25. března 2024  7:02

Jedním z trochu nečekaných trendů veletrhu MWC v Barceloně se stala oznámení o tom, že firmy nějaké...

Nová cenově dostupná stylovka vás může dostat na fotbalové Euro

29. března 2024

Vivo má nový smartphone střední třídy, který má velké ambice. Za rozumnou cenu nabídne nejen dobrou...

Toho telefonu je pouze pro Čínu škoda. Udělal by parádu i u nás

28. března 2024  12:06

Xiaomi má nový trhák. Model Civi 4 Pro trhá předprodejní rekordy, ale jen na domácím čínském trhu....

U foťáků se blýská na lepší časy, naznačuje výsledek testu nového xiaomi

28. března 2024  7:02

Čínská značka Xiaomi trochu na poli fotomobilů v uplynulých letech tápala. Ukazuje to mimo jiné...

Kartónek Steva Jobse se vydražil za neuvěřitelnou sumu

28. března 2024

Vizitku slavného ředitele společnosti Apple si někdo pořídil za pořádný balík peněz. Přidanou...

Smoljak nechtěl Sobotu v Jáchymovi. Zničil jsi nám film, řekl mu

Příběh naivního vesnického mladíka Františka, který získá v Praze díky kondiciogramu nejen pracovní místo, ale i...

Rejžo, jdu do naha! Balzerová vzpomínala na nahou scénu v Zlatých úhořích

Eliška Balzerová (74) v 7 pádech Honzy Dědka přiznala, že dodnes neví, ve který den se narodila. Kromě toho, že...

Pliveme vám do piva. Centrum Málagy zaplavily nenávistné vzkazy turistům

Mezi turisticky oblíbené destinace se dlouhá léta řadí i španělská Málaga. Přístavní město na jihu země láká na...

Velikonoce 2024: Na Velký pátek bude otevřeno, v pondělí obchody zavřou

Otevírací doba v obchodech se řídí zákonem, který nařizuje, že obchody s plochou nad 200 čtverečních metrů musí mít...

Kam pro filmy bez Ulož.to? Přinášíme další várku streamovacích služeb do TV

S vhodnou aplikací na vás mohou v televizoru na stisk tlačítka čekat tisíce filmů, seriálů nebo divadelních...