Pomoc s algoritmem – Funkcionální programování – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

Pomoc s algoritmem – Funkcionální programování – Fórum – Programujte.comPomoc s algoritmem – Funkcionální programování – Fórum – Programujte.com

 

Balaam0
Návštěvník
31. 3. 2011   #1
-
0
-

Zdravím,

programuji jednu simulaci v Control Webu (do školy) a narazil jsem na jeden problém... Inkrementuji hodnotu x (souřadnice x pro jednu ruku dopravníku), jenže ta hodnota x nesmí přesáhnout dvě mezní hodnoty (nejmenší je 0, největší je třeba 30), jinak mi ruka dopravníku vyjede z obrazovky a to je špatně. Jak mám v programu napsat ono ohraničení osy?

Můj kus kódu je:

if jezdeni then x = x + 1 else x = x - 1; end; (jezdeni je tlacitko, true znamena posun doprava, proto inkrementace, false je posun doleva, proto dekrementace)

jenže když napíšu pod to podmínku if pro ohraničení (if x = 0 then x = 0; end; třeba), tak mi to samozřejmě zruší předchozí if, protože tlačítko ježdění má stále nějakou hodnotu a tak se sice na zlomek vteřiny inkrementace přeruší, ale program jede znova od začátku po 0.3s intervalu a první podmínka je stále platná, čili zpět k inkrementaci. Mohl by mi prosím někdo pomoct s tímto problémem? Pochybuji, že se někdo vyzná v syntaxi, ale stačí slovně, např. "napiš, že když a = b tak c = d" a já si to naprogramuji. Vím, že to musí být jednoduché, ale prostě jsem se zasekl :(.

Děkuji mnohokrát.

Nahlásit jako SPAM
IP: 83.208.175.–
The lesbians next door bought me a rolex for my birthday. I think they misunderstood when I said I wanna watch...
KIIV
~ Moderátor
+43
God of flame
1. 4. 2011   #2
-
0
-

a co: if x < 0 then x = 0 ?

Nahlásit jako SPAM
IP: 62.168.56.–
Program vždy dělá to co naprogramujete, ne to co chcete...
Balaam0
Návštěvník
1. 4. 2011   #3
-
0
-

nikoliv, to by vůbec nepomohlo. Nakonec jsem to vyřešil takto:

if x = 0 or 140 then podminka = 0; end;


if x = 0 then if jezdeni then podminka = 1 else podminka = 0; end; end;
if x = 140 then if jezdeni then podminka = 0 else podminka = 2; end; end;

if podminka = 0 then x = x; end;
if podminka = 1 then x = x + 2; end;
if podminka = 2 then x = x - 2; end;

Teď bohužel narážím na jiný problém (simulace třetího a čtvrtého motoru, s tím mi tady asi stejně nikdo nepomůže). Tyhle simulace jsou příšerné, asi na to nemám hlavu :/

edit: Hotovo... Mmm, pěkný pocit :-)

Nahlásit jako SPAM
IP: 83.208.175.–
The lesbians next door bought me a rolex for my birthday. I think they misunderstood when I said I wanna watch...
aleStefan
~ Anonymní uživatel
4 příspěvky
4. 8. 2011   #4
-
0
-

   

max=30;
min=0;
boolean incr;//Nieco ako jezdeni;

if(x>max&incr){
	x=max
}
elseif(x<min&!incr){
	x=min
}
else{
	if(incr){
		x++;
	}
	else{
		x--;
	}
}

Nahlásit jako SPAM
IP: 213.215.67.–
Zjistit počet nových příspěvků

Přidej příspěvek

Toto téma je starší jak čtvrt roku – přidej svůj příspěvek jen tehdy, máš-li k tématu opravdu co říct!

Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku

×Vložení zdrojáku

×Vložení obrázku

Vložit URL obrázku Vybrat obrázek na disku
Vlož URL adresu obrázku:
Klikni a vyber obrázek z počítače:

×Vložení videa

Aktuálně jsou podporována videa ze serverů YouTube, Vimeo a Dailymotion.
×
 
Podporujeme Gravatara.
Zadej URL adresu Avatara (40 x 40 px) nebo emailovou adresu pro použití Gravatara.
Email nikam neukládáme, po získání Gravatara je zahozen.
-
Pravidla pro psaní příspěvků, používej diakritiku. ENTER pro nový odstavec, SHIFT + ENTER pro nový řádek.
Sledovat nové příspěvky (pouze pro přihlášené)
Sleduj vlákno a v případě přidání nového příspěvku o tom budeš vědět mezi prvními.
Reaguješ na příspěvek:

Uživatelé prohlížející si toto vlákno

Uživatelé on-line: 0 registrovaných, 1 host

 

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032024 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý