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