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 (5)

aktualizováno 
Dokončení našeho prázdninového rychlokurzu programování v jazyce OPL.

Úvod do jazyka OPL 5/5


Procedury s návratem hodnot

Podobně jako funkce v jazyce C nebo v Pascalu mohou i procedury jazyka OPL vracet číselné nebo řetězcové hodnoty. Aby mohla procedura vracet hodnotu, musíme udělat dvě změny: ke jménu procedury - ale před dvojtečku - doplnit znak označující typ vrácené hodnoty (podobně jako u proměnných). Neuvedeme-li žádný znak označující typ výsledku, může procedura vracet reálné číslo. Ve zdrojovém textu procedury pak použijeme klíčové slovo RETURN, za kterým uvedeme hodnotu, která bude při skončení procedury vrácena.

PROC hlavni:
  LOCAL cislo$(20), upravene$(20)
  WHILE 1
    PRINT "Zadejte telefonní číslo:";
    INPUT cislo$
    IF LEN(cislo$) = 0
      BREAK
    ENDIF
    upravene$ = UpravCislo$:(cislo$, "605")
    PRINT "Číslo v mezinárodním formátu je "; upravene$
  ENDWH
ENDP

PROC UpravCislo$:(cislo$, prefix$)
  IF MID$(cislo$, 1, 1) = "+"
    RETURN cislo$
  ELSEIF MID$(cislo$, 1, 1) = "0"
    RETURN "+420" + RIGHT$(cislo$, LEN(cislo$)-1)
  ELSE
    RETURN "+420" + prefix$ + cislo$
  ENDIF
ENDP

Parametry ani návratové hodnoty nemohou být pole. Pokud nepoužijeme příkaz RETURN, budou procedury vracející numerické hodnoty vracet číslo 0 a procedury vracející řetězcové hodnoty budou vracet prázdný řetězec "".

Ke komunikaci s procedurami, které voláme, můžeme použít i globální proměnné (definované pomocí GLOBAL) - hodnoty uložíme do vhodných globálních proměnných a vrátíme příznak úspěchu:

PROC hlavni:
  GLOBAL gVysledek%(100), gVysledekDelka%
  IF NastavVysledek%: > 0
    REM -- použij pole gVysledek%(1..gVysledekDelka%)
  ENDIF
ENDP

PROC NastavVysledek%:
  gVysledekDelka% = 0
  REM -- naplň pole gVysledek%() ... --
  RETURN gVysledekDelka%
ENDP

Základní uživatelské rozhraní - vstup a výstup

Již jsme uvedli příkaz INPUT, který slouží ke vstupu textové nebo numerické proměnné, a příkaz GET, který čeká na stisk klávesy a použijeme-li přiřazení a%=GET, vrátí její hodnotu jako číslo. Podobně funguje i GET$, který se odlišuje jen tím, že jako výslednou hodnotu vrací jednoznakový řetězec. Podobně jako dvojice GET a GET$ funguje i dvojice příkazů KEY a KEY$ s jedinou výjimkou - tyto příkazy nečekají na stisk kávesy. Pokud žádná klávesa nebyla stisknuta, tak tyto příkazy vrací nulu, respektive prázdný řetězec.

Příkaz EDIT, za kterým následuje řetězcová proměnná, dovoluje editovat (měnit) text v této proměnné jako v následujícím příkladu, ve kterém také vyzkoušíme použití klíčového slova KEY:

PROC edit:
  LOCAL t$(30), i%, ii%, j$(4)
  t$="Toto je tekzt"
  PRINT "Opravte text: ";
  EDIT t$
  PRINT "Opravený text je ", t$
  i%=1
  j$="\|/—"
  DO
    AT 1,3 : PRINT MID$(j$, i%, 1);
    ii%=ii%+1
    IF ii%=50 : i%=i%+1 : ii% = 0 : ENDIF
    IF i% > 4 : i% = 1 : ENDIF
  UNTIL KEY <> 0
ENDP

Pro výstup textu slouží příkaz PRINT, za kterým následuje seznam proměnných, čísel a řetězců, které budou zobrazeny, oddělených středníky nebo čárkami. Podobně jako v jazyce BASIC ukončíme-li příkaz PRINT středníkem, tak na konci tisku neprovede přesun na nový řádek a další text je zobrazen na tom samém řádku. Příkazem AT můžeme zadat číslo řádku a sloupce, na kterém bude následující příkaz PRINT zobrazovat text. Příkaz CLS smaže obsah displeje.

Další zajímavé příkazy

Popis základů jazyka OPL si doplníme o několik zajímavých příkazů, které je možné použít. Příkaz OFF vypne Psion na stanovený počet vteřin, příkaz PAUSE pozastaví program na dobu udanou ve dvacetinách vteřiny a příkaz BEEP delka%, vyska% slouží ke generování tónu stanovené délky ve 1/32 vteřiny a výšky v Hz.

K nastavení generátoru pseudonáhodných čísel na počáteční hodnotu slouží příkaz RANDOMIZE. Často jsou v této hodnotě použity rychle se měnící časové proměnné (MINUTE, SECOND). Pseudonáhodná čísla (v rozsahu <0-1)) jsou vyzvedávána funkcí RND, výraz INT(RND*p%+1) generuje náhodné číslo od 1 do p%.


Nyní již máte určitý přehled o základech použití jazyka OPL. Tento stručný článek nemohl suplovat referenční příručku jazyka, která je zdarma dostupná na internetu na adrese www.symbian.com v sekci věnované vývojářům software. V příští sérii článků, která vyjde po prázdninách, budeme již psát o komplikovanějších tématech - o grafice a o uživatelském rozhraní.



Témata: software, Symbian

Nejčtenější

Vytrolil T-Mobile, koupil doménu z reklamy a přesměroval ji na konkurenci

T-Mobile Hotel Růženka

Nová reklamní kampaň T-Mobilu se odehrává ve smyšleném horském hotelu Růženka. Ovšem když zkusíte doménu...

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 kouzlí s neomezeným tarifem. Nestojí ani 500 korun

Vodafone nabízí ve svém e-shopu speciální neomezený tarif.

Pokud jste si chtěli pořídit neomezený tarif od Vodafonu, museli jste dosud počítat s měsíčním poplatkem ve výši...

Vše, co od smartphonu očekáváte, jen za 6 000. Test Honor 9 Lite

Honor 9 Lite

Honor 9 Lite je žhavou novinkou na českém trhu a také je potenciálním prodejním hitem. Smartphone s moderními funkcemi...

Huawei nehraje fér. Neprodávaná novinka má přes sto falešných recenzí

Huawei Mate 10 Pro

Huawei se snaží protlačit na obrovský americký trh. Ovšem proti jsou operátoři. Ve volném prodeji pak čínský gigant...

Další z rubriky

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

Záchranku volejte přes aplikaci. Pomoc je rychlejší než při volání na 155

Simulovaná dopravní nehoda jako praktická ukázka fungování mobilní aplikace...

„Záchranná služba, tísňová linka, dobrý den,“ ohlašuje se operátorka volajícímu, který se stal svědkem dopravní nehody....

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