Stránka 1 z 1

Proměnné

Napsal: 18 úno 2018, 14:00
od Axamith
Potřeboval bych ujasnit práci s proměnnými. Žil jsem v představě, že pokud nadefinuji proměnnou, následně ji změním (např. výpočtem), tak nový výsledek přepíše původní hodnotu a drží ji do dalšího přepsání nebo nového spuštění programu (reset).
Toto simuluje uvedený kód, definuji proměnné X a Y, hodnotu Y přepíše výpočtem (v setup), vypíše vypočtenou hodnotu, při průchodu smyčkou již na její hodnotu vloží původní definici. Pokud bych chtěl vypočtenou hodnotu udržet v proměnné, musím výpočet vložit do smyčky. Je to tak, nebo mi něco základního uniká?

Kód: Vybrat vše

int x = 20;
int y = 3;
void setup() {
int y = x * 2; 
Serial.begin(9600);
Serial.print("x = ");  
Serial.println(x); 
Serial.print("y = ");  
Serial.println(y);  
}
void loop() {
Serial.print("x = ");  
Serial.println(x); 
Serial.print("y = ");  
Serial.println(y);  
delay(1000);
}

Re: Proměnné

Napsal: 18 úno 2018, 14:33
od jankop
Chápu, venku je hnusně, tak vymýšlíš ptákoviny :D
A je ti samozřejmě jasné, že

Kód: Vybrat vše

int x = 20;
int y = 3;
jsou globální proměnné, protože jsou deklarovány mimo jakoukoliv funkci a mají platnost v celém programu.
A proměnná

Kód: Vybrat vše

int y = x * 2; 
je lokální v rámci funkce setup(), tudíž jinde již neexistuje. Tahle proměnná Y je úplně jiná promněná než ta předchozí.

Re: Proměnné

Napsal: 18 úno 2018, 14:40
od martinius96
int y = x * 2; Tu bez int ;)

Re: Proměnné

Napsal: 18 úno 2018, 18:08
od Axamith
Pánové díky, je to základ a pár detailů mi unikalo :-(