Prečo vznikol JoPas a komu je určený?

Pretože, v praxi môžu vzniknúť rôzne požiadavky ako vypočítať niektoré mzdové položky, bolo potrebné nájsť spôsob, ktorý by umožňoval užívateľom relatívne jednoducho ale bezpečne definovať postup pri výpočte hodnôt užívateľských položiek.

Pre definovanie spôsobu výpočtu je použitý štrukturovaný programovací jazyk - JoPas -  odvodený od jazyka Pascal. Tento jazyk vám umožní jednoduchým spôsobom pristupovať k hodnotám ostatných mzdových položiek, údajom zamestnanca a údajom pracovného kalendára.

Samotný názov vzorec resp. Hodnota definovaná vzorcom nevystihuje podstatu veci. Pre definovanie spôsobu výpočtu by bolo výstižnejšie pomenovanie makro, tak ako ho poznajú tvorcovia makier v jazyku Visual Basic for Application v systémoch Microsoft Word alebo Microsoft Excel. Názov vzorec bol použitý pre zachovanie kompatibility s verziou programu Mzdy a personalistika určenou pre operačný systém MS-DOS.


Rezervované slová

Súvisiace témy

Slová, ktoré majú svoj presne definovaný význam a nesmú sa použiť pre mená premenných.

begin	Začiatok bloku kódu (ľavá bloková zátvorka).

boolean	Označenie logického dátového typu.

currency	Označenie dátového typu pre reálne čísla.

do	Kľúčové slovo pre záhlavie cyklu while - do.

downto	Kľúčové slovo pre záhlavie cyklu for - to/downto.

end	Koniec bloku kódu (pravá bloková zátvorka).

false	Konštanta typu Boolean (nepravda).

for	Kľúčové slovo pre záhlavie cyklu for - to/downto.

function	Deklarácia funkcie.

if	Vetvenie podľa výsledku vyhodnotenia logického výrazu.

integer	Označenie celočíselného dátového typu.

procedure	Deklarácia procedúry.

string	Označenie dátového typu reťazec.

to	Kľúčové slovo pre záhlavie cyklu for - to/downto.

true	Konštanta typu Boolean (pravda).

var	Záhlavie bloku deklarácia premenných.

while	Kľúčové slovo pre záhlavie cyklu while - do.

write	Štandardná procedúra pre výstup hlásenia.


Dátové typy

Súvisiace témy

Údaje, s ktorými sa v jazyku JoPas pracuje nazývame dáta. Podľa toho, aké údaje obsahujú sa delia nasledovne:

Dátové typy:

Integer	Celé čísla. Príkladom použitia môžu byť údaje reprezentujúce počet pracovných dní, počet vyrobených kusov a pod.

Príklad: 1649

Currency	Mena (reálne číslo s údajom o mene). Údaje tohoto typu môžu reprezentovať sumu peňazí hodinovú prípadne kusovú sadzbu atď.

Príklad: 1579,40

String	Znakové reťazce, zložené z ľubovoľných znakov o maximálnom počte 255 znakov.

Príklad: 'Toto je reťazec znakov'

Boolean	Logické dáta. Údaje tohoto typu môžu ponúknuť jedine dve hodnoty a to buď: pravda (True) alebo nepravda (False). Príkladom použitia je údaj indikujúci či zamestnanec je, alebo nie je invalid, či odpracoval alebo neodpracoval plný počet pracovných dní atď.

Príklad: True


Identifikátory

Ľubovoľná postupnosť maximálne 32 znakov tvorená znakmi a až z, a 0 až 9 začínajúca písmenom. Veľké a malé písmená nie sú rozlišované. Identifikátor jednoznačne odlišuje premennú, funkciu a procedúru od iných premenných, funkcií a procedúr.

Pozri: Rozsah platnosti


Konštanty

Súvisiace témy

Údaje, ktoré predstavujú počiatočné hodnoty premenných alebo figurujú vo výrazoch.

Reťazcová konštanta sa tiež nazýva literál.

Príklady:

158,20	numerická konštanta

'Ján Novák'	reťazcová konštanta


Premenné

Súvisiace témy

Reprezentuje údaj uložený v pamäti počítača. Každá premenná má svoje unikátne meno – identifikátor - ktorým je odlíšená od ostatných premenných a aj procedúr a funkcií. Typ premennej určuje, aké údaje môžu byť uložené v premenných.

Na začiatku má nedefinovanú hodnotu a počas chodu programu môže nadobudnúť rôzne hodnoty v rámci svojho dátového typu. Postup, ktorým premenná nadobúda hodnotu sa nazýva priradenie a je realizovaný priraďovacím príkazom.


Rozsah platnosti premenných

Súvisiace témy

Premenné sú dostupné jedine v tej programovej jednotke, v ktorej boli deklarované a v programových jednotkách jej podriadených. Z hľadiska podriadenej jednotky sú premenné v nej deklarované chápané ako lokálne a premenné deklarované v nadriadenej jednotke ako globálne. Ak je ale v podriadenej programovej jednotke deklarovaná premenná s rovnakým menom ako v nadriadenej jednotke, potom sa chová ako lokálna.

Príklad:

var

  a : boolean;

  s : string;

procedure Výpočet;	// Deklarácia podprogramu typu procedúra

var	// Deklarácia lokálnych premenných

  a : integer;	// Premenná a je deklarovaná ako lokálna

begin	// Začiatok podprogramu

  s := 'Výpočet prebehol…';	// Premenná s je deklarovaná ako globálna - je možné meniť jej hodnotu

end;	// Koniec podprogramu

begin	// Začiatok hlavného programu

  s := 'Výpočet zahájený…';	// Priradenie konštanty do premennej s

  Výpočet;	// Volanie podprogramu

  { Príkazy programu };	// Hodnota premennej s je zmenená podprogramom.

end. 	// Koniec hlavného programu


Výrazy operandy a operátory

Súvisiace témy

Výraz je spôsob zápisu matematických a logických vzťahov a vzorcov do programovacieho jazyka. Pre tvorbu výrazov platia základné matematické pravidlá. Výraz sa skladá z operandov, operátorov a zátvoriek. Výsledkom vyhodnotenia výrazu je hodnota rovnakého typu, akého je výraz.

Operand

Operandom môže byť konštanta, premenná, volanie funkcie, výraz.

Operátor

Operátor je symbol matematickej alebo logickej operácie, ktorá bude s operandy provedena. Delí sa podľa použitia na:

unárne operátory

aritmetické operátory

logické operátory

relačné operátory


Unárne operátory

Súvisiace témy

Operátor	Operácia	Typy operandov	Typ výsledku	Príklad
+ (unárny)	potvrdenie znamienka	integer, currency	integer, currency	+7
– (unárny)	negácia znamienka	integer, currency	integer, currency	-X


Aritmetické operátory

Súvisiace témy

Aritmetické operátory slúžia k zápisu aritmetických operácií s celočíselnými a reálnymi typmi.

Operátor	Operácia	Typy operandov	Typ výsledku	Príklad
+	sčítanie	integer, currency	integer, currency	X + Y
–	odčítanie	integer, currency	integer, currency	Result - 1
*	násobenie	integer, currency	integer, currency	nDnu * nHodin
/	delenie	integer, currency	currency	X / 2

p and n	(kde p a n sú premenné typu Boolean)


Logické operátory

Súvisiace témy

Logické operátory sa používajú v spojitosti s operandami typu Boolean

Operátor	Operácia	Typy operandov	Typ výsledku	Príklad
not	negace	Boolean	Boolean	not C
and	konjunkce (součin)	Boolean	Boolean	D and (Total > 0)
or	disjunkce (součet)	Boolean	Boolean	A or B


Relačné operátory

Súvisiace témy

Relačné operátory sa používajú pri zostavovaní logických výrazov. Vyhodnotením výrazu je hodnota typu Boolean (True alebo False). Najtypickejším uplatnením je porovnávanie.

Operátor	Operácia	Typy operandov	Typ výsledku	Príklad
=	nerovno	Boolean, integer, currency, string	Boolean	I = Max
<>	nerovno	Boolean, integer, currency, string	Boolean	X <> Y
<	menší ako	Boolean, integer, currency, string	Boolean	X < Y
>	väčší ako	Boolean, integer, currency, string	Boolean	Mzda > 0
<=	menší alebo rovný	Boolean, integer, currency, string	Boolean	Cnt <= I
>=	väčší alebo rovný	Boolean, integer, currency, string	Boolean	I >= 1
Vyhodnotením výrazu s relačným operátorom (tzv. relace) je hodnota typu Boolean (True alebo False).


Procedúry a funkcie

Zatiaľ nie je v nápovede implementované. Vyžiadajte si novú verziu nápovedy.


Príkazy

Súvisiace témy

Príkaz je základný lexikálny útvar programovacieho jazyka JoPas. Každý príkaz sa ukončuje bodkočiarkou. Rozlišujeme príkazy:

Jednoduché

prázdny príkaz

príkaz priradenia

volanie procedúry

volanie funkcie

Štrukturované

blok príkazov

podmienený príkaz

príkaz while

príkaz for


Prázdny príkaz

Súvisiace témy

;

môže sa uplatniť v niektorých syntaktických konštrukciách ak nepožadujeme uskutočňovanie žiadnej činnosti.


Príkaz priradenia

Súvisiace témy

Priradenie (priraďovací príkaz, príkaz priradenie) je základným príkazom každého programovacieho jazyka. Slúži k naplneniu premennej vypočítanými údajmi. Tvar príkazu je:

Premenná := Výraz;

Premenná	predstavuje identifikátor premennej deklarovanej v bloku var

a

Výraz	predstavuje výpočet hodnoty, ktorá bude premennej priradená. Obidva (Premenná aj Výraz) musia byť rovnakého dátového typu.

Príklady:

HrubaMzda := ZakladnaMzda + Priplatky - Zrazky;

Adresa1 := Meno + ' ' + Priezvisko;


Blok príkazov

Súvisiace témy

je zvláštny útvar obsahujúci viac ako jeden príkaz v prípade, že je nutné použiť viac príkazov tam, kde syntax jazyka povoľuje len jeden. Blok príkazov začína kľúčovým slovom begin a končí kľúčovým slovom end.

begin

  príkaz 1;

  príkaz 2;

  .

  .

end


Podmienený príkaz

Súvisiace témy

if Výraz (logický) then Príkaz else Príkaz;

Slúži k vetveniu programu na základe podmienky vyjadrenej logickým výrazom. Pri splnení podmienky (ak je výraz vyhodnotený ako True) sa uskutoční príkaz nasledujúci za kľúčovým slovom then, pri nesplnení podmienky (ak je výraz vyhodnotený ako False) sa uskutoční príkaz nasledujúci za kľúčovým slovom else (ak existuje) a pokračuje sa príkazmi nasledujúcimi za príkazom if.

Príklad:

if Pocet > 0 then Priemer := Suma / Pocet

else Write('Priemer nie je definovaný');


Príkaz while

Súvisiace témy

while  logický výraz  do  príkaz;

While (dokiaľ) je príkaz cyklu zaisťujúci opakované uskutočňovanie príkazu (telo cyklu) pokiaľ je hodnota logického výrazu (záhlavie cyklu) rovná True. Ako príkaz môže figurovať samostatný príkaz, alebo blok príkazov. Pokiaľ je výraz v záhlaví vyhodnotený hneď prvýkrát ako False, príkaz sa vôbec neuskutoční a chod programu pokračuje nasledujúcim príkazom.

Príklad:

nFaktorial := 1;

while  n <= 7 do

begin

  nFaktorial := nFaktorial * n;

  n := n + 1;

end;


Príkaz for

Súvisiace témy

for  premenná := výraz1  to  výraz2  do  príkaz;

For je príkaz cyklu s konštantným počtom uskutočnenia príkazu (tela cyklu). Ako telo cyklu môže figurovať samostatný príkaz, alebo blok príkazov. Premenná je celočíselná premenná nazývaná aj riadiaca premenná cyklu. Na začiatku vykonávania príkazu je do riadiacej premennej cyklu uložená hodnota výraz1. Po každom vykonaní tela cyklu je hodnota riadiacej premennej zvýšená o 1. Keď hodnota riadiacej premennej dosiahne hodnotu o 1 vačšiu ako výraz2, príkaz for je ukončený. Telo cyklu je teda vykonané (výraz2 – výraz1) krát. Z uvedeného vyplýva, že hodnota výrazu výraz2 musí byť väčšia nanajvýš rovná hodnote výrazu výraz1. Ak je hodnota výraz1 vačšia ako výraz2 telo cyklu sa nevykonná ani raz.

Príkaz for má aj nasledovný variant:

for  premenná := výraz1  downto  výraz2  do  príkaz;

V tomto prípade je hodnota riadiacej premennej po vykonaní tela cyklu znížená o 1 a teda hodnota výrazu výraz1 musí byť väčšia nanajvýš rovná hodnote výrazu výraz2 aby sa telo cyklu vykonalo aspoň raz.


Premenná Vysledok

Súvisiace témy

Premenná Vysledok je globálna premenná deklarovaná autorom jazyka JoPas nasledovne:

var Vysledok: Currency;

Po vykonaní programu je hodnota tejto premennej uložená do príslušnej položky mzdového číselníka (pre ktorú je vzorec v programe JoPas vytvorený).

Pred začiatkom vykonávania programu je hodnota tejto premennej vynulovaná. V tele programu je potom možné vykonať ľubovoľný výpočet a jeho výsledok priradiť do premennej Vysledok.

Príklad:  Položka č.900 mzdového číselníka má nedefinovaný nasledovný vzorec:

begin

  Vysledok := OdpocetNaZamestnanca / 12;

end.

Hodnota premennej Vysledok bude po vykonaní programu obsahovať 1/12 hodnoty globálnej premennej OdpocetNaZamestnanca. Teda ak hodnota globálnej premennej OdpocetNaZamestnanca je 38760, hodnota premennej Vysledok po vykonaní programu bude 3230. Táto hodnota bude potom nakopírovaná do položky 900 mzdového číselníka.


Globálne premenné

Súvisiace témy

Globálne premenné obsahujú údaje z pracovného kalendára a z parametrov miezd (viď. Nastavenie | Parametre miezd). Pretože JoPas nepozná typ konštanta (tak ako ho pozná Pascal), boli tieto dôležité údaje deklarované ako globálne premenné.

Dôsledok tohto faktu je preto nasledovný: Globálne premenné sa môžu objaviť na ľavej strane priraďovacieho príkazu a prekladač neohlási syntaktickú chybu avšak priradenie spôsobí zmenu hodnoty globálnej premennej, čo zákonite vedie k logickej chybe počas výpočtu.

Hodnoty globálnych parametrov sú inicializované vždy pred začiatkom vyhodnocovania každého programu – vzorca.

VyplatnyRok: integer;

aktuálny výplatný rok, viď. Firma | Voľba spracúvaného obdobia; celočíselná hodnota

VyplatnyMesiac: integer;

aktuálny výplatný mesiaci, viď. Firma | Voľba spracúvaného obdobia; celočíselná hodnota

DniVMesiaci: integer;

počet dní v aktuálnom výplatnom mesiaci; celočíselná hodnota

PracovneDniVMesiaci: integer;

počet pracovných dní v aktuálnom výplatnom mesiaci – údaj z pracovného kalendára; celočíselná hodnota

VolneDniVMesiaci: integer;

počet voľných dní v aktuálnom výplatnom mesiaci – údaj z pracovného kalendára; celočíselná hodnota

SviatkyVMesiaci: integer;

počet sviatkov v aktuálnom výplatnom mesiaci – údaj z pracovného kalendára; celočíselná hodnota

VikendoveDniVMesiaci: integer;

počet sobôt a nedieľ v aktuálnom výplatnom mesiaci; celočíselná hodnota

OdpocetNaZmestnanca: Currency;

odpočítateľná hodnota z daňového základu zamestnanca; ročná čiastka – údaj z parametrov miezd

OdpocetNaManzelku: Currency;

odpočítateľná hodnota z daňového základu zamestnanca na manželku/manžela; ročná čiastka – údaj z parametrov miezd

OdpocetNaDieta: Currency;

odpočítateľná hodnota z daňového základu zamestnanca na dieťa; ročná čiastka – údaj z parametrov miezd

OdpocetNaZPDieta: Currency;

odpočítateľná hodnota z daňového základu zamestnanca na zdtavotne postihnuté dieťa; ročná čiastka – údaj z parametrov miezd

OdpocetNaCiastInvalida: Currency;

odpočítateľná hodnota z daňového základu čiastočne invalidného zamestnanca; ročná čiastka – údaj z parametrov miezd

OdpocetNaPlnehoInvalida: Currency;

odpočítateľná hodnota z daňového základu plne invalidného zamestnanca; ročná čiastka – údaj z parametrov miezd

OdpocetNaDrzitelaPreukazuZTP: Currency;

odpočítateľná hodnota z daňového základu zamestnanca, ktorý je držiteľom preukazu ZŤP; ročná čiastka – údaj z parametrov miezd


Globálne funkcie

Súvisiace témy

Slúži pre prístup k údajom zamestnanca, k položkám mzdového číselníka.

function HodnotaPolozky(CisloPolozky: integer): Currency;

funkcia vráti hodnotu položky mzdy; CisloPolozky udáva číslo položky mzdového číselníka – číslo položky  musí byť menšie ako práve vyhodnocovaná položka, v opačnom prípade spôsobí funkcia run-time error - oznámi neplatný parameter funkcie a ukončí vyhodnotenie JoPas programu

function iUdajZamestnanca(Parameter: string): integer;

funkcia vráti údaj týkajúci sa aktuálneho zamestnanca, Parameter špecifikuje aký údaj bude návratovou hodnotou funkcie, návratová hodnota bude typu integer

Na mieste parametra Parameter môžu byť len nasledovné reťazcové konštanty:

'PocetDetiNaOdpocet'	funkcia vráti počet detí, u ktorých si zamestnanec uplatňuje odpočet z daňového základu

'PocetZPDetiNaOdpocet'	funkcia vráti počet zdravotne postihnutých detí, u ktorých si zamestnanec uplatňuje odpočet z daňového základu

function bUdajZamestnanca(Parameter: string): Boolean;

funkcia vráti údaj týkajúci sa aktuálneho zamestnanca, Parameter špecifikuje aký údaj bude návratovou hodnotou funkcie, návratová hodnota bude typu Boolean

Na mieste parametra Parameter môžu byť len nasledovné reťazcové konštanty:

'JeHlavnyPracPomer'	funkcia vráti True ak je zamestnanec zamestnaný v hlavnom prac. pomere

'SuNakladyNaDopravu'	funkcia vráti True ak zamestnanec dokladoval náklady na dopravu do zamestnania vo výške 200 Sk mesačne

'JeOdpocetNaManzelku'	funkcia vráti True ak si zamestnanec uplatňuje odpočet daňového základu za manžela/manželku

'JeCiastInvalid' 	funkcia vráti True ak je zamestnanec čiastočný invalid

'JePlnyInvalid' 	funkcia vráti True ak je zamestnanec plný invalid

'JeDrzitelPreukazuZTP' 	funkcia vráti True ak je zamestnanec držiteľ preukazu ZŤP

function mUdajZamestnanca(Parameter: string): Currency;

funkcia vráti údaj týkajúci sa aktuálneho zamestnanca, Parameter špecifikuje aký údaj bude návratovou hodnotou funkcie, návratová hodnota bude typu Currency

Na mieste parametra Parameter môžu byť len nasledovné reťazcové konštanty:

'DennyUvazok' 	funkcia vráti denný úväzok zamestnanca

'PercentoOdbory' 	funkcia vráti percento – príspevok na odbory


Štandardné procedúry a funkcie

Súvisiace témy

procedure Write(Text: string);

procedúra zobrazí do dialógového okna text Text

function IntToStr(Number: integer): string;

fukcia prevedie konverziu celočíselnej hodnoty na reťazcovú, je užitočná pri zobrazení celočíselnej hodnoty procedúrou Write

function FloatToStr(Number: Currency): string;

fukcia prevedie konverziu hodnoty typu Currency na reťazcovú, je užitočná pri zobrazení Currency hodnoty procedúrou Write


Štruktúra programu v JoPas

Súvisiace témy

Program v jazyku JoPas má nasledovnú štruktúru:

deklarácia premenných

definícia procedúr a funkcií

telo programu

Prvé dve časti t.j. časť deklarácia premenných a časť definícia procedúr a funkcií sú nepovinné t.j. nemusia sa v každom JoPas programe vyskytovať. Telo programu je povinné t.j. musí byť v každom JoPas programe.

Deklarácia premenných má nasledovný tvar:

var

zoznam premenných : typ;

zoznam premenných : typ;

.

.

.

zoznam premenných : typ ;

Typickým príkladom použitia je uloženie medzivýsledkov pri výpočtoch a tiež sprehľadnenie zápisu.

Ďalším príkladom použitia premenných sú premenné deklarované autorom jazyka. Takéto premenné sú inicializované určitými dôležitými údajmi pred začiatkom vykonávania programu v jazyku JoPas.

Príklady deklarácie premenných:

var

  PocetDniVRoku, Vek, i: integer;

  PriemernyPlat: Currency;

  JeInvalid, MaNarok: Boolean;

Telo programu začína slovom begin. Za ním nasleduje blok príkazov ukončený slovom end a bodkou.

Globálne (alebo programátorom definované) funkcie a premenné slúžia pre prístup k údajom zamestnanca, k hodnotám položiek mzdy, k parametrom miezd a údajom z pracovného kalendára.

Pretože ich “ručné” vkladanie do textu programu by bolo zdĺhavé menu editora vzorca obsahuje príkazy:

Príklady:

Vložiť | Položku mzdového číselníka

Vložiť | Parameter alebo údaj prac. kalendára

Vložiť | Údaje o zamestnancovi


Príklad 1

Odmena ako podiel dosiahnutej tržby u predavačov

Predpokladajme, že jednou zo zložiek mzdy u zamestnancov – predavačov je odmena, ktorej výška je závislá na dosiahnutej tržbe. Výška odmeny je nasledovná:

5 % z dosiahnutej tržby, ak bola dosiahnutá tržba do 10 000 Sk

7 % z dosiahnutej tržby, ak bola dosiahnutá tržba do 20 000 Sk

10 % z dosiahnutej tržby, ak bola dosiahnutá tržba do 30 000 Sk

13 % z dosiahnutej tržby, ak bola dosiahnutá tržba do 40 000 Sk

17 % z dosiahnutej tržby, ak bola dosiahnutá tržba 40 000 Sk a viac

Do mzdového číselníka najprv pridajme položku typu Sadzby a priemery s názvom DOSIAHNUTÁ TRŽBA. Program sám položke priradí číslo, predpokladajme že položka bude mať číslo 108. Do tejto položky vložte hodnotu dosiahnutej tržby pri vystavovaní mzdy zamestnanca.

Do mzdového číselníka teraz pridajme položku typu Príplatky pred zdanením s názvom ODMENA ZA DOSIAHNUTÚ TRŽBU a v nadefinujme vzorec (program). Telo bude uzavreté medzi príkazy begin a end. Pre prístup k položke 108 - DOSIAHNUTÁ TRŽBA použite funkciu HodnotaPolozky, ktorá je deklarovaná nasledovne:

function HodnotaPolozky(CisloPolozky: integer): Currency;

Ako parameter CisloPolozky zadajte hodnotu 108.

Výpočítanú hodnotu napr. 5 % z hodnoty položky 108 - DOSIAHNUTÁ TRŽBA priraďte do premennej výsledok:

Vysledok := 0.05 * HodnotaPolozky(108);

Pre porovnanie hodnoty dosiahnutej tržby s tabuľkovou hodnotou a následný výpočet použijeme 4 navzájom vnorené príkazy if...then...else.

Výsledný program potom vypadá nasledovne:

begin

  if HodnotaPolozky(108) < 10000 then

    Vysledok := 0.05 * HodnotaPolozky(108)

  else if HodnotaPolozky(108) < 20000 then

    Vysledok := 0.07 * HodnotaPolozky(108)

  else if HodnotaPolozky(108) < 30000 then

    Vysledok := 0.10 * HodnotaPolozky(108)

  else if HodnotaPolozky(108) < 40000 then

    Vysledok := 0.13 * HodnotaPolozky(108)

  else

    Vysledok := 0.17 * HodnotaPolozky(108);

end.


Príklad 2

Výpočet odpočítateľnej položky DOPRAVNÉ používanej do 1.1.2000

Nasledovný príklad demonštruje:

deklaráciu a použitie reálnej premennej MesacnyHruby

definovanie funkcie s dvomi parametrami a výsledkom typu integer RokMesiac2Obdobie a jej použitie pre vetvenie výpočtu v závislosti na aktuálnom výplatnom období

použitie globálnych premenných VyplatnyMesiac a VyplatnyRok

použitie globálnych funkcií mUdajZamestnanca a bUdajZamestnanca

var

  MesacnyHruby: Currency;

function RokMesiac2Obdobie(Rok, Mesiac: integer): integer;

begin

  RokMesiac2Obdobie := Rok * 12 + Mesiac;

end;

begin

  Vysledok := 0;

  if RokMesiac2Obdobie(VyplatnyRok, VyplatnyMesiac) < RokMesiac2Obdobie(1999, 4) then

begin

    // tu vypocet dopravneho do 04/1999

    if HodnotaPolozky(0) > 5 then begin

      MesacnyHruby := HodnotaPolozky(104) * mUdajZamestnanca('DennyUvazok') * 21.74;

      if (MesacnyHruby <= 7000) and bUdajZamestnanca('SuNakladyNaDopravu') then

        Vysledok := 700

      else

        Vysledok := 300;

    end;

  end

  else if RokMesiac2Obdobie(VyplatnyRok, VyplatnyMesiac) < RokMesiac2Obdobie(2000,1) then

begin

    // tu vypocet dopravneho od 04/1999 do 01/2000

    if HodnotaPolozky(0) > 5 then begin

      if HodnotaPolozky(700) <= 7000 then begin

        if bUdajZamestnanca('SuNakladyNaDopravu') then

          Vysledok := 800

        else

          Vysledok := 380;

      end

      else

        Vysledok := 300;

    end;

  end;

end.


Volanie procedúry

Zatiaľ nie je v nápovede implementované.


Volanie funkcie

Zatiaľ nie je v nápovede implementované


Príkazy

Prázdny príkaz

Príkaz priraďenie

Blok príkazov

Podmienený príkaz

Príkaz while

Príkaz for

Výrazy, operandy a operátory

Dátové typy, konštanty a premenné

Základné lexikálne jednotky

Štruktúra JoPas programu


Výrazy, operandy a operátory

Výrazy

Unárne operátory

Aritmetické operátory

Logické operátory

Relačné operátory

Príkazy

Dátové typy, konštanty a premenné

Základné lexikálne jednotky

Štruktúra JoPas programu


Datové typy, konštanty a premenné

Dátové typy

Identifikátory

Konštanty

Premenné

Rozsah platnosti premenných

Príkazy

Výrazy, operandy a operátory

Základné lexikálne jednotky

Štruktúra JoPas programu


Základné lexikálne jednotky

Rezervované slová

Dátové typy

Výrazy operandy a operátory

Príkazy

Výrazy, operandy a operátory

Dátové typy, konštanty a premenné

Štruktúra JoPas programu


Štruktúra JoPas programu

Štruktúra programu v JoPas

Premenná Vysledok

Globálne premenné

Globálne funkcie

Štandardné procedúry a funkcie

Príkazy

Výrazy, operandy a operátory

Dátové typy, konštanty a premenné

Základné lexikálne jednotky