Stránka 2 z 2
Napsal: 30 srp 2019, 15:29
od misocko
takto vyzeraju moje arduino zaciatky
Kód: Vybrat vše
int x=0;
int y=0;
void setup()
{
Serial.begin(9600);
}
void loop()
{
x=analogRead(A0);
if (x<101)
{
y=0;
goto tu;
}
if (x<201)
{
y=3;
goto tu;
}
if (x<301)
{
y=6;
goto tu;
}
if (x<601)
{
y=9;
goto tu;
}
if (x<801)
{
y=15;
goto tu;
}
if (x<901)
{
y=18;
goto tu;
}
if (x>900) y=20;
tu:
if (y>10)
{
Serial.println(y);
}
}
Napsal: 30 srp 2019, 15:47
od ZdenekHQ
Funkci goto se nám vždycky snažili vymlátit z hlavy, že odporuje strukturovanýmu programování. Ale jak vidím, je všude...
Napsal: 30 srp 2019, 16:04
od Cowley
Goto zahoď.
Podmínky seřaď sestupně a nech tu hodnotu y průběžně měnit od největší možné po nejmenší.
Na konci ji jenom prověř na větší než 10 a tak pořád dokola.
Napsal: 30 srp 2019, 16:20
od elnovy
misocko jsem ti napsal SZ
dik za funkční program bez keců kolem
Napsal: 30 srp 2019, 22:13
od FHonza
elnovy píše:Jak jsem psal se to C for arduano učim
a není to jen zde možno studovat
Tak to vřele doporučuju si najít jiné IDE, protože "arduiní" je peklo. Chybí snad všechno co dnešní IDE mají, včetně takových maličkostí jako bookmarky. O "našeptávání" ani nemluvě.
No a jestli píšeš pro ESP, tak si najdi multiplatformní, protože záhy budeš taky psát html, javascript.
Napsal: 30 srp 2019, 22:55
od misocko
GOTO je moja "srdcovka". V robote mame manipulatory , u ktorych by som bez GOTO bol strateny, a kedze mna nikto neucil programovanie, tak ani neviem ze ho nemam pouzivat. Veselo ho teda uzivam na manipulatoroch, vo VBA pre excel a prvykrat aj v arduino - aj ked tu som rozmyslal ci to vobec bude rychlejsie ked to pouzijem.
Napsal: 30 srp 2019, 23:07
od Cowley
Misocko: tak to pak jo

Napsal: 30 srp 2019, 23:10
od ZdenekHQ
Pokud nepředáváš nějaké proměnné, ale jen řídíš funkce typu "nahoru dolu", je to vlastně jedno.
Ale jinak je to cesta do pekla.
Napsal: 30 srp 2019, 23:14
od Cowley
Goto Hell

Napsal: 30 srp 2019, 23:21
od ZdenekHQ
Jsem si říkal, že oblíbené linuxové dev/null by šlo povýšit na dev/hell a oni to kupodivu znají. Takže zase žádnej bod.

Napsal: 02 zář 2019, 23:58
od mtajovsky
Misocko, to je ale opravdu začátečnické. Při každé změně limitů se bude přepisovat kód. Tahle konsolovka ukazuje, jak to udělat aby se měnilo jen pole limitů:
Kód: Vybrat vše
// misocko.cpp
#include <stdio.h>
typedef unsigned int word;
static void loop(void);
static word translate(word x);
#define LIMITS_NUM 6
static word table[LIMITS_NUM + 1][2] =
{
{101, 0},
{201, 3},
{301, 6},
{601, 9},
{801, 15},
{901, 18},
{000, 20}
};
int main(int argc, char* argv[])
{
do
{
loop();
}while(true);
return 0;
}
void loop(void)
{
word x;
scanf("%u", &x);
printf("->%u\n", translate(x));
}
word translate(word x)
{
for(unsigned int index = 0; index < LIMITS_NUM; ++index)
{
if(x < table[index][0])
{
return table[index][1];
}
}
return table[LIMITS_NUM][1];
}