Premium

Získejte všechny články mimořádně
jen za 49 Kč/3 měsíce

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

Ukradené auto s AirTagem si našel, ale od policie dostal vynadáno

4. května 2024  7:02

Vyjít ráno před dům a nenajít tam svůj vůz je noční můrou každého majitele. Do takové...

Tento levný tarif T-Mobilu nemá díky ceně na českém trhu konkurenci

8. května 2024

U T-Mobilu jde již o jakousi tradici, že s příchodem nového měsíce obmění svou akviziční nabídku....

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

Továrny na iPhony zejí prázdnotou, Apple z nich utekl

7. května 2024

Čínské továrny Foxconnu, kde se ještě donedávna vyráběly iPhony, nyní připomínají „města duchů“....

Nový vědecký objev zdvojnásobí životnost baterií. Klíč je v nabíjení

4. května 2024

Premium Nový způsob nabíjení lithium-iontových baterií může podle studie německých vědců zdvojnásobit...

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

Umělá inteligence na nových smartphonech od Huaweie svléká lidi

5. května 2024  7:02

Na poli smartphonů je současným trendem implementace umělé inteligence. Ta nabízí stále širší...

Kulturní ikona. Slavná nokia se po 25 letech vrací v novém provedení

10. května 2024  7:02

Zanedlouho se do prodeje dostane reinkarnace legendární nokie, která měla velký podíl na rozvoji...

Měl by to být hit českého trhu. Nadchne foťákem a funkcemi

10. května 2024

Google začíná v Česku prodávat smartphony Pixel. Firma k tomu v Praze uspořádala vlastní akci, na...

O2 arena, jak ji neuvidíte. Tady zařizují, abyste z hokeje poslali fotku

9. května 2024

Už v pátek vypukne v Praze a Ostravě boj o titul hokejového mistra světa. Pražská utkání hostí...

Cenově výhodný Pixel 8a má dobrou výbavu. Hned ho koupíte i v Česku

8. května 2024  7:02

Google představil svůj nový smartphone Pixel 8a. Je to pokračovatel výhodné série smartphonů, u...

Akční letáky
Akční letáky

Všechny akční letáky na jednom místě!

V 59 letech zemřela herečka Simona Postlerová, ještě v sobotu zkoušela

Zemřela divadelní a filmová herečka Simona Postlerová, bylo jí 59 let. Zprávu o úmrtí potvrdil nadační fond Dvojka...

Titěrné sukně i míčky na podpatcích. Zendaya vzkřísila trend tenniscore

S nadsázkou bychom mohli říct, že největší tenisovou událostí tohoto roku je premiéra snímku Rivalové. Aspoň co se módy...

Zpěvačka Tereza Kerndlová měla autonehodu. Poslala vzkaz ze záchranky

Tereza Kerndlová (37) a její manžel René Mayer (53) měli v úterý ráno autonehodu. Na mokré vozovce do nich zezadu...

Kamion před nehodou vůbec nebrzdil, moderní tahač by tragédii zabránil

Policie obvinila řidiče za smrtelnou nehodu na D1. Litevský kamioňák narazil do osobního auta a natlačil ho na tahač s...

První světová válka zničila část Francie natolik, že tu stále řádí smrt

Řídkým rozvolněným lesem pokrytá pahorkatina u francouzského Soissons, Compiégne, Lens či Cambrai přirozeně svádí k...