Az előadás letöltése folymat van. Kérjük, várjon

Az előadás letöltése folymat van. Kérjük, várjon

Változók.

Hasonló előadás


Az előadások a következő témára: "Változók."— Előadás másolata:

1 Változók

2 Változó A változó egy olyan memórialokáció amelyhez szimbolikus nevet rendeltünk. Ezt a lokációt fel lehet tölteni vagy akár üresen is lehet hagyni. Különféle típusú értékek őrzésére szolgál. A változók azért fontosak mert a program futása közben változtathatjuk a tartalmukat (értéküket). Ezért is viselik a „változó” nevet. Az állandókat (konstansokat) nem lehet változtatni.

3 A változó típusa A változó típusa határozza meg a benne elhelyezendő adat természetét. Úgyszin- tén, a típus határozza meg hogy mennyi memória lesz rezerválva az adott változónak. A C programozási nyelv körülbelül 10 különféle típusú változót ismer.

4 Változótípusok boolean (false or true) – 1 byte
char (az ‘a’-t számként őrzi – ASCII) – 1 byte, signed (-128 : +127), unsigned (0 : 255) byte (8-bit unsigned data, 0 : 255) int (2-bytes, signed : 32767 unsigned 0 : 65535) word ugyanaz mint az unsigned int

5 Változótípusok float (4-bytes signed -3.4028235 E+38 : 3.4028246E+38)
long (4 bytes signed : unsigned 0 : ) float (4-bytes signed E+38 : E+38) double (ugyanaz mint a float, de dupla pontossággal) array – ugyanolyan típusú elemek sorozata melyekhez indekszen keresztül lehet hozzáférni. méret: (elemek száma) x (típus mérete)

6 Változótípusok string – karakterek sorozata, az utolsó a null (ASCII 0). Az első betű kicsi „s”. méret: (elemek száma) x (1 byte) String – adatstruktúra (osztály) amely alkalmas a karakterláncok kezelésére. Az első betű a nagy „S”.

7 Roll-over Ha a változó értékét az adott típusra előrelátott felső határ fölé növeljük, akkor az intervallum elejére fog ugrani. int myInt = 32767; // az int típus // makszimális // értéke myInt = myInt + 1; // ezután a myInt // értéke Ugyanez történik kivonáskor is.

8 Deklaráció és definíció
A deklaráció és a definíció NEM UGYANAZ! A változó deklarációja egy kijelentés amellyel egy azonosítót hozunk létre, és megjelöljük a változó típusát és (néha) dimenzióját. Az azonosító a változó neve, a típust az előző oldalakon ismertettük. A dimenzió a sorozatoknál és a String-eknél fontos.

9 Deklaráció és definíció
A C programozási nyelvben a változót használat előtt muszáj deklarálni. Ha ezt nem tesszük meg, a fordítóprogram mindenképpen hibát fog jelezni.

10 Deklaráció és definíció - példák
bool myVariable; // deklaráció myVariable = true; // definíció értékadással char myChar = ‘U’ // deklaráció és definíció // (az ‘U’=85 ASCII értéke) int ledPin = 8; byte myByte = B10111; // 23 bináris alakban

11 Deklaráció és definíció - példák
long myLong = -123; float myFloat = ; A változó definiálása értékadást jelent egy korábban lefoglalt memórialokációnak az adott változó számára.

12 S.O.S. projekt Hardver: LED az Arduino 12-es lábacskájára kötve 220Ω-os ellenálláson keresztül. Szoftver: program amelyik a LED-et az S. O. S. Morze szimbólumoktól függően villogtatja. S: “ ”, O: “ ”, S: “ ”

13 S.O.S. projekt int ledPin = 12; void setup () {
pinMode(ledPin, OUTPUT); } void loop () { digitalWrite (ledPin, HIGH); delay(200); // dot digitalWrite (ledPin, LOW); delay(200); delay(500); digitalWrite (ledPin, HIGH); delay(500); // dash digitalWrite (ledPin, LOW); delay(500); . }

14 S. O. S. projekt 4 sor állandóan ismétlődik:
HIGH, delay, LOW, delay, … A delay vagy 200ms (dot), vagy 500ms (dash) A kód rövidebb és hatékonyabb lesz ha az állandóan ismétlődő műveletekre függvényt írunk. A függvényt flash-nek fogjuk nevezni, és a duration-nal (időtartam) fogjuk hívni. Az időtartam 200 vagy 500 (milliszekundum).

15 Flash függvény void flash (int duration) {
digitalWrite (ledPin, HIGH); delay (duration); digitalWrite (ledPin, LOW); }

16 Az új loop függvény void loop () {
flash (200); flash (200); flash (200); // S delay (300); flash (500); flash (500); flash (500); // O delay (1000); }

17 A program a flash függvénnyel
int ledPin = 12; void setup () { pinMode (ledPin, OUTPUT); } void loop () { // S flash (200); flash (200); flash (200); delay (300); // O flash (500); flash (500); flash (500); delay (1000); void flash (int duration) { digitalWrite (ledPin, HIGH); delay (duration); digitalWrite (ledPin, LOW); }

18 Ciklusok Utasítások csoportját ismétlik meghatározott számú alkalommal amíg valamilyen feltétel nem teljesül. Az S. O. S. projekt az “S” betű megjelenítéséhez a LED-et csak 3-szor villantotta fel, ezért a programot gyalog is meg lehetett írni. Mit csinálnánk ha a LED-et több 100-szor kellene felvillantani? A program írása eltartana, a program pedig sok memóriát foglalna el. Ilyenkor használjuk a for ciklust.

19 “for” ciklus Akkor használjuk ha előre ismerjük a végrehajtások számát. Szintakszis: for (int i = 0; i < 100; i ++) { flash(200); } Mit kell tenni minden alkalommal miután áthaladunk a cikluson. Ebben az esetben az “i”-t növeljük eggyel. Ciklusban maradás feltétele, “i” kisebb mint 100. Számláló változó deklarációja és a kezdőérték definíciója – 0.

20 “while” ciklus Az előző feladatot while ciklussal is meg lehetett volna valósítani. int i = 0; while (i < 100) { flash(200); i ++; } Ahhoz, hogy a ciklusban maradjunk, a zárójelben lévő kifejezés muszáj hogy igaz (true) legyen, ellenkező esetben a program a kapcsos zárójel utáni utasítással folytatja a végrehajtást. A kapcsos zárójelek közötti utasításokat “blokk”-nak nevezzük.

21 Sorozatok (arrays) A sorozatok több érték őrzésére szolgálnak. Eddig a változók csak egy értéket tartalmaztak (általában int-et). A sorozat olyan változó amelyik több értéket tartalmaz, és ahol mindegyik elemhez hozzáférhetünk a sorszáma alapján. Az elemek számozása (indekszelése) 0-tól kezdődik.

22 Sorozatok Elkészítjük a Morze szimbólumok hosszának listáját (200ms és 500ms). int durations [] = {200, 200, 200, 500, 500, 500, 200, 200, 200}; Ha azonnal definiáljuk a sorozat tartalmát, nem szükséges megadni a sorozat elemeinek számát. Ha nem definiáljuk a tartalmat, akkor int durations [10];

23 Az új loop() void loop () { for (int i = 0; i < 9; i ++)
flash (durations [i]); } delay(1000);

24 Morze átalakító Hardver: ugyanaz mint az előző projektekben.
Szoftver: a Serial Monitor-ba írt szöveget Morze kóddá alakítani, és az Arduino-ra csatlakoztatott LED-en kiírni.

25 Morze átalakító dash (-) = 3 * dot (.) (- és .) közötti szünet =
betűk közötti szünet = = 1 * dash(-) szavak közötti szünet = = 7 * dot(.)

26 Program

27 Program

28 Program


Letölteni ppt "Változók."

Hasonló előadás


Google Hirdetések