<< Části programu | NXC základy | Řídící struktury >>

Proměnné

Deklarace proměnných

  • proměnné jsou deklarovány typem proměnné (klíčové slovo) a názvem (identifikátorem) proměnné,
  • při deklaraci je možné provést inicializaci proměnné přiřazením hodnoty
  • Příklady deklarace proměnné
int x;          // deklarace x
bool y,z;       // deklarace y a z
long a=1,b;     // deklarace a a b, inicializace a s hodnotou 1
float f=1.15, g; // deklarace f a g, inicializace f
string zprava = "Stiskni tlačítko!";

Lokální a globální proměnné

int x;          // x - globální proměnná
task main()
{
    int y;      // y - lokální proměnná pro main
    x = y;      // ok
    {           // začátek příkazové  struktury
        int z;  // z - lokální deklarace ve struktuře
        y = z;  // ok 
    }
    y = z;      // chyba - z je mimo strukturu
}
task foo()
{
    x = 1;     // ok
    y = 2;     // chyba - y není globální proměnná
}

Typy dat

Jednoduché datové typy

TypPopisRozsahPaměť
boollogický typtrue / false8 bitů
bytecelé číslo0 až 2558 bitů
charznakznaky ASCII8 bitů
intcelé číslo-32 768 až +32 76816 bitů
unsigned intkladné celé číslo0 - 65 53516 bitů
longrozšířené celé čislo-2 147 483 648 až 2 147 483 64832 bitů
floatdesetinné číslopřesnost přibližně 7 des. míst32 bitů

Strukturované datové typy

TypPopisRozsah
stringřetězecskupina znaků ASCII
arraypole proměnnýchskupina dat stejného typu
structuživatelská strukturaskupina dat různých typů

Speciální datové typy

TypPopisRozsah
mutexspeciální proměnnářídí přístup k prostředkům použitým ve více ulohách

Pole proměnných

  • stejná deklarace jako u běžné proměnné
  • za názvem proměnné se připojuje dvojice hranatých závorek.
  • připojením druhé dvojice hranatých závorek bude vytvořeno dvojrozměrné pole
  • NXC podporuje max. čtyřrozměrné pole
  • prvky pole jsou číslovány od nuly.
int pole[];          //vytvoří pole s nula prvky typu int
int pole2[] [];      //vytvoří pole dvou dimenzí s nula prvky typu int
int pole3[5];        //vytvoří pole s pěti prvky, výchozí hodnotou jsou nuly
int pole4[]={1, 7, 3, 1, 4, 1}; //vytvoří pole výčtem hodnot
pole[0]=12;          //přiřadí na nultou pozici hodnotu
pole[1]=2;           //přiřadí na pozici s číslem 1 hodnotu

Struktury proměnných - struct

  • užívatelem definované složené typy
  • využití pro sdružení souvisejících dat ve složitějších programech
  • obdoba typu record v Pascalu nebo struct v jazyce C

Definice typu struct

struct auta
{
  string typ_vozu;
  int rok_vyroby;
};
struct lide
{
  string jmeno;
  int vek;
  auta auto ;
};
lide prvniOsoba; //Definice proměnné
  • prvky strukturovaného typu jsou přístupné pomocí tečkové notace
  prvniOsoba.vek = 40;
  auto.typ_vozu = "honda";
  auto.rok_vyroby = 1996;

Mutex