Pomoc se výkladem kodu

daton
Příspěvky: 479
Registrován: 16 bře 2013, 16:12

Pomoc se výkladem kodu

Příspěvek od daton » 20 lis 2018, 11:41

Zdravím všechny
potřeboval bych pomoc s výkladem tohoth řádku kodu
jedná se o toto
progress = progress > 100 ? 100 : progress;
progress který je větší než 100 se zapíše do progres ale... nerozumím co je ten otazník a potom progres za :

diky

Uživatelský avatar
fulda
Příspěvky: 652
Registrován: 04 led 2016, 17:18

Re: Pomoc se výkladem kodu

Příspěvek od fulda » 20 lis 2018, 13:12

to je klasická variant na téma: máte rohlíky? tak deset chlebů

znamená to:

to za rovnítkem je výraz, následujícího významu:
pokud je progress > 100 (?), potom přiřaď 100, jinak (:) přiřaď progress

a tento výraz je přiřazen do proměné progress

takže je to omezení na maximálně 100 do progressu
Za pravopisné chyby v této zprávě může moje učitelka češtiny.


daton
Příspěvky: 479
Registrován: 16 bře 2013, 16:12

Re: Pomoc se výkladem kodu

Příspěvek od daton » 20 lis 2018, 15:19

Ahaaaaa super díky za objasnění :-)

Vladimir66
Příspěvky: 262
Registrován: 02 dub 2014, 15:30

Re: Pomoc se výkladem kodu

Příspěvek od Vladimir66 » 20 lis 2018, 19:27

nejak to nechapu..

prvni podminka je jasna. kdyz je progress vetsi nez 100, tak zustane 100.
ale pokud neni vetsi nez 100, proc se přiřazuje znovu do progress, kdyz uz v nem ta hodnota je ?
neprodluzuje to delku strojoveho kodu ?
muze se napsat progress = progress > 100 ? 100 a vynechat tu dvojtecku a druhé přiřazení ?

-V66

Uživatelský avatar
fulda
Příspěvky: 652
Registrován: 04 led 2016, 17:18

Re: Pomoc se výkladem kodu

Příspěvek od fulda » 20 lis 2018, 20:01

to záleží na překladači a hlavně optimalizaci, ale snad i ty nejzákladnější nepřiřazují do sebe.
Bez toho třetího to nejde, to by nebyl ternární výraz :)

Ale dalo by se to zapsat:
if progress>100 {progress = 100}
Za pravopisné chyby v této zprávě může moje učitelka češtiny.

daton
Příspěvky: 479
Registrován: 16 bře 2013, 16:12

Re: Pomoc se výkladem kodu

Příspěvek od daton » 21 lis 2018, 15:19

Mám zde další věc s čím bych potřeboval pomoci má kod

Kód: Vybrat vše

#include <Adafruit_NeoPixel.h>
#ifdef __AVR__
  #include <avr/power.h>
#endif

#define PIN 6

// Parameter 1 = number of pixels in strip
// Parameter 2 = Arduino pin number (most are valid)
// Parameter 3 = pixel type flags, add together as needed:
//   NEO_KHZ800  800 KHz bitstream (most NeoPixel products w/WS2812 LEDs)
//   NEO_KHZ400  400 KHz (classic 'v1' (not v2) FLORA pixels, WS2811 drivers)
//   NEO_GRB     Pixels are wired for GRB bitstream (most NeoPixel products)
//   NEO_RGB     Pixels are wired for RGB bitstream (v1 FLORA pixels, not v2)
//   NEO_RGBW    Pixels are wired for RGBW bitstream (NeoPixel RGBW products)
Adafruit_NeoPixel strip = Adafruit_NeoPixel(60, PIN, NEO_GRB + NEO_KHZ800);

// IMPORTANT: To reduce NeoPixel burnout risk, add 1000 uF capacitor across
// pixel power leads, add 300 - 500 Ohm resistor on first pixel's data input
// and minimize distance between Arduino and first pixel.  Avoid connecting
// on a live circuit...if you must, connect GND first.

void setup() {
  // This is for Trinket 5V 16MHz, you can remove these three lines if you are not using a Trinket
  #if defined (__AVR_ATtiny85__)
    if (F_CPU == 16000000) clock_prescale_set(clock_div_1);
  #endif
  // End of trinket special code


  strip.begin();
  strip.show(); // Initialize all pixels to 'off'
}

void loop() {
 
  colorWipe(strip.Color(125, 0, 0), 4); // Red
  delay (300);
   colorWipe(strip.Color(0, 25, 0), 4); // Green
  delay(500);
  
} 
// Fill the dots one after the other with a color
void colorWipe(uint32_t c, uint8_t wait) {
  for(uint16_t i=0; i<strip.numPixels(); i++) {
    strip.setPixelColor(i, c);
    strip.show();
    delay(wait);
  }
}
Na před před posledním řádku je výraz delay(wait); a s tím wait to neznám a není mi ani jasné jak system pozná kolik milisekund se má zastavit. Klasický delay s milisekundami je jasný, zde jsem hledal proměnnou wait ale nenašel jsem ji repektive je deklarovaná ale není k ní přiřazena hodnota, jaký to má pak význam??? Děkuji za info.

Uživatelský avatar
Dex
Administrátor
Příspěvky: 922
Registrován: 16 úno 2013, 14:26

Re: Pomoc se výkladem kodu

Příspěvek od Dex » 21 lis 2018, 15:59

wait je přece proměnná, která se předává té funkci colorWipe jako druhý parametr ;)
"all your robots are belong to us"
robodoupe.cz | rxd.cz | codetory.cz

daton
Příspěvky: 479
Registrován: 16 bře 2013, 16:12

Re: Pomoc se výkladem kodu

Příspěvek od daton » 21 lis 2018, 18:11

No ja ale nevim kde to číslo vznikne. ???

pgerla
Příspěvky: 349
Registrován: 11 dub 2013, 00:17

Re: Pomoc se výkladem kodu

Příspěvek od pgerla » 21 lis 2018, 19:55

co bylo dřív programátor nebo slepice?
Kde by WAIT asi vznikal?

Jak napsal DEX, je to druhý parametr co příjme funkce colorWipe( první, druhý)

druhý je v příkladu číslice 4

kde se vyskytla 4? Asi byl autor muslim a má 4 ženy.

Odpovědět

Kdo je online

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