Proměnné

Wiring, C++, C, Java, ...
Pravidla fóra
Toto subfórum slouží k řešení obecných otázek kolem programování (konstrukce, knihovny, alokace paměti, ...)
Odpovědět
Axamith
Příspěvky: 538
Registrován: 09 srp 2017, 08:17
Kontaktovat uživatele:

Proměnné

Příspěvek od Axamith » 18 úno 2018, 14:00

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);
}

jankop
Příspěvky: 1057
Registrován: 06 zář 2017, 20:04
Bydliště: Brno
Kontaktovat uživatele:

Re: Proměnné

Příspěvek od jankop » 18 úno 2018, 14:33

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í.

martinius96
Příspěvky: 585
Registrován: 01 srp 2017, 19:29
Bydliště: Poprad
Kontaktovat uživatele:

Re: Proměnné

Příspěvek od martinius96 » 18 úno 2018, 14:40

int y = x * 2; Tu bez int ;)

Axamith
Příspěvky: 538
Registrován: 09 srp 2017, 08:17
Kontaktovat uživatele:

Re: Proměnné

Příspěvek od Axamith » 18 úno 2018, 18:08

Pánové díky, je to základ a pár detailů mi unikalo :-(

Odpovědět

Kdo je online

Uživatelé prohlížející si toto fórum: Žádní registrovaní uživatelé a 4 hosti