KURZ: Datové typy
- Podrobnosti
- PhDr. Tomáš Jakeš, Ph.D.
- Aktualizováno: 01.04.2014
- Zobrazení: 8522
Datový typ je informace pro počítač či řídící jednotku NXT, která udává, jak mají být data uložená v proměnné či konstantě chápána. Všechny datové typy jsou určeny oborem hodnot a výpočetními operacemi, které s nimi lze provádět. Každý z datových typů nabývá také určitého rozsahu hodnot. Tím, že si vytvoříme proměnnou nebo konstantu a přiřadíme jí určitý datový typ také vyjadřujeme, kolik paměťového prostoru bude vyžadovat.
Datové typy nejčastěji používané V PROGRAMOVACÍCH PROSTŘEDÍCH
NXT-G
Datové typy v NXT-G
V programovacím prostředí NXT-G se využívají tři základní datové typy. Jejich volba se provádí při definování proměnné (více o vytváření proměnné v kapitole Vytvoření proměnné či konstanty), kterou nalezneme v horním menu v záložce Edit pod volbou Define Variables. Po zvolení, či vytvoření nové proměnné zde můžeme kromě jména proměnné volit i její datový typ ze tří možností:
- Logic - logický datový typ, který nabývá pouze dvou hodnot True (Pravda) a False (Nepravda).
- Number - datový typ využívaný při práci s číselnými hodnotami.
- Text - datový typ určený pro práci s řetězci znaků.
Datový typ Logic využijeme v situacích, kdy budeme potřebovat jasně určit, zda došlo k vykonání určitému jevu nebo splnění nějaké podmínky. Může se jednat o natočení robota do určité polohy. V této situaci nás bude zajímat pouze to, zda byl tento pohyb vykonán či nikoliv. Návratovou hodnotou tedy bude buď Pravda nebo Nepravda.
V případě, že budeme zpracovávat určitou číselnou hodnotu, pracovat s výstupními hodnotami senzorů vrácenými v podobě čísla nebo provádět například matematické operace, použijeme datový typ Number.
Datový typ Text slouží pro práci s řetězci znaků a využijeme ho nejčastěji v případech, kdy budeme chtít nějakou informaci vypsat na displej. Může se jednat i o číselnou hodnotu, kterou si nejprve převedeme na textové vyjádření a následně vypíšeme.
RobotC
Datové typy v RobotC
V programovacím prostředí RobotC máme k dispozici více datových typů než v NXT-G. Při jejich použití je proto dobré promýšlet, s jak vysokými hodnotami budeme pracovat. Pokud například budeme pracovat s hodnotami od 0 do 100, je zbytečné deklarovat si pro tyto potřeby proměnné, které budou nabývat datového typu Integer. Stačil by nám datový typ Byte, který nabývá rozsahu od -128 do 127.
Ze všech datových typů uvedených v tabulce níže můžeme zmínit čtyři až pět nejpoužívanějších. Jedná se o datový typ integer pro celá čísla, string pro řetězce znaků či logický datový typ boolean. Dále patří mezi často používané datový typ float, který definuje všechna reálná čísla, která jsou také někdy označována jako čísla s pohyblivou řádovou čárkou. Při přiřazování hodnot do proměnné tohoto datového typu musíme dbát na to, abychom číslo zapisovali správně a to s řádovou tečkou namísto čárky. Přehled všech datových typů pro programové prostředí RobotC znázorňuje následující tabulka.
Datový typ | Popis | Příklad | Deklarace v kódu |
Boolean | Logický datový typ nabývající hodnot True a False. | true, false | bool |
Byte | Celá čísla od -128 do 127 | 10, -102 | byte |
Char | Celá čísla od -128 do 127. Jejich hodnota může být vyjádřena pomocí znaku. | 42 = "B" | char |
Float | Reálná čísla (čísla s pohyblivou řádovou čárkou). | -123, 0.56, 3.0, 1000.07 |
float |
Long | Celá čísla od -2,147,483,648 do 2,147,483,647. | -6 521, 258 | long |
Integer | Kladná a záporná celá čísla včetně nuly od -2,147,483,648 do 2,147,483,647. | -25, -1, 0, 15, 269 | int |
Short | Celá čísla od -32,768 do 32,767. | -2586, -6, 15, 6352 | short |
String | Řetězec znaků obsahující čísla, písmena nebo symboly. | priklad23 | string |
Word | Celá čísla od -32,768 do 32,767. | -2586, -6, 15, 6352 | word |
Ubyte | Celá čísla nabývající pouze kladných hodnot od 0 do 255. | 0, 35, 168 | ubyte |
Void | Datový typ, který nemá návratovou hodnotu. | - | void |
Poznámka: datové typy zvýrazněné tučně patří mezi v programování nejčastěji používané.
Datové typy jsou definovány pro každý programovací jazyk a dělí se do několika kategorií. Rozlišujeme datové typy ordinální, což jsou takové, u kterých je jednoznačně určen předchůdce i následovník každé hodnoty a také neordinální, u kterých tomu taky není. Mezi nejčastěji používané ordinální datové typy patří logická hodnota (boolean), celé číslo (integer) a znak (char). Z neordinálních datových typů je jedním z nejčastěji využívaných datový typ definující reálná čísla (real). V programování se ale setkáme i s dalšími datovými typy jako je pole (array) nebo řetězec znaků (string).
Práce s polem
Programovací jazyk RobotC umožňuje díky podobnosti s jazykem C pracovat stejným způsobem s polem. Pole je místo v paměti určené pro objekty, které nabývají stejného datového typu. O jaký typ dat se jedná, je definováno datovým typem pole. Pole mají různou velikost a jejich začátek je označen ukazatelem, narozdíl od konce, který určen není.
Deklarace pole se skládá ze tří částí. Jedná se o datový typ, kterého budou jeho hodnoty nabývat, název pole a jeho rozsah.
Příklad deklarace pole datového typu integer. Pole obsahuje 5 prvků, které jsou definovány v závorce.
int pole[5] = {0,1,2,3,4};
Praktické využití pole si ukážeme na příkladu, ve kterém budeme zaznamenávat hodnoty ze světelného senzoru. Konstrukci programu vidíte níže. Nadeklarovali jsme si pole datového typu integer, které obsahuje 100 prvků. Následně pomocí cyklu for() provádíme zápis do pole po 1 vteřině.
// deklarace senzoru #pragma config(Sensor, S1, light, sensorLightActive) task main() { // deklarace pole (100 prvku) int values[100]; // cyklus pro zaznam 100 hodnot ze senzoru do pole for(int i = 0; i < 100; i++){ values[i] = SensorValue[light]; wait1Msec(1000); } }