Zdravím, potřeboval bych pomoci s naprogramováním klasické křižovatky v programu Logo!Soft
Zde je přesné znění zadání :
Světelná křižovatka
- 1 vstup (zapnutí semaforů)
- 12 výstupů
Klasická křížová křižovatka se čtyřmi semafory. Při vypnutém stavu blikají
oranžová světla. V zapnutém stavu se cyklicky spouští sekvence na jednotlivých
semaforech.
jsem s tím v koncích :(
předem děkuji za pomoc
Fórum › Delphi
Klasická křižovatka v Logo!Soft
Co to je? To se roztrhl pytel s lidma, co začínají dělat Logo! ? :-) Jen čistě technický etail, tohle nepatří do sekce delphi.
To Syntax : No, to je sice pěkné, že si v koncích, ale s čím přesně jsi v koncích? Máš aspoň pravdivostní tabulku? A nebo karnafovu mapu? Či už nějaký začátek programu?
To Syntax : Já osobně bych Ti doporučil následující:
Nejdříve si vytvořit pravdivostní tabulku pro jednotlivá světla (každý semafór má 3 a máš 4 semafóry, což znamená minimálně 12 výstupů), což je poměrně jednoduchá záležitost.
Současně by sis měl určit jednotlivé časovače pro každé světlo, takže budeš potřebovat 12+4 časovačů (12 pro zapnutý stav, 4 pro vypnutý čas) a nebo to zvládneš napsat tak, že použiješ pouze 12 časovačů. A k nim budeš potřebovat jednak určit čas po kterou světlo bude svítit, dále taky čas mezi rožnutím červené na jednom semafóru a rožnutím zelené na druhém semafóru.
Akorát je zde otázka, jaký to bude typ křižovatky, jestli ten, kde se zelená "točí dokola", nebo ten typ, kde je zelená současně na protějších směrech? -> podle toho je taky potřeba upravit pravdivostní tabulku a počet časovačů.
Pokud si správně určíš tabulku a redukuješ podmínky pomocí karnafovy mapy, tak se už dá program napsat během pár hodin.
To Syntax : Nebo víš co zkus, vykašli se na pravdivostní tabulku, vykašli na na karnafovu mapu a podívej se na to úplně normálně logicky...
Úplně normálně popiš, jak se chová semafór... nijak odborně, prostě jako každý laik. Já už mám nějakou praxi, co se týká skládání podobných zařízení, takže já už nepotřebuji nic z toho, ale rovnou píšu program, protože si to dokážu představit v hlavě, jak by se to přesně mělo chovat... ale jako začátečníkovi bych Ti doporučil se na to podívat jako úplně normální člověk...
Prostě semafór, když je vypnutý, tak bliká oranžovou. Najednou se zapne a co se děje? Nejdříve se samozřejmě rozsvítí červená na všech stranách... potom na některé straně musí semafór začít. Zhasne červenou a rozsvítí oranžovou. Po ní následuje zelená. A potom je postup opačný, rozsvítí se zase oranžová, a pak červená. Potom chvilku počká, aby mohlo projet poslední auto a postup opakuje na další straně. A takhle neustále krouží dokola... a tímto jsem úplně prostými slovy vyjádřil, jak se má chovat program. Teď už jen zvýbá si to přebrat a zapsat...
Pokud Tě ani tohle nenakopne, tak už fakt nevím...
Pokud Tě ani tohle nenakopne, tak už fakt nevím...
ja viem! odist zo skoly, a zacat makat... nic v zlom... ale..
To marioff : Akorát by mě zajímalo, jestli to ale je na mě? ;-)
To Syntax : Hlavní je, že to nějak funguje...
No, ono to taky šlo řešit složitěji :-)) Takhle jsem to napsal já, program se chová trochu jinak než Tvůj, ale stále splňuje zadání, navíc já ovládám každou stranu zvlášť, zatímco Ty ovládáš dvě protější strany, atd. ;-)
To Syntax : Jen pro doplnění, ohledně toho mého "složitějšího" programu, jeho chování je následující:
- Jakmile je semafór vypnut, tak bliká oranžové světlo s intervalem 1s pro zapnutí i vypnutí
- po zapnutí semafóru probíhá takzvaná resetovací sekvence, kdy je na všech stranách rožnuté červené světlo po dobu 10s
- po této resetovací sekvenci žačíná cyklus, který postupně zapíná jednotlivé větve (strany)
- každá větev má následující kroky:
1> Za 2s zhasne červené světlo a rožne se oranžové
2> Za 15s zhasne oranžové a rožne se zelené
3> Za 15s zhasne zelené a rožne se oranžové
4> Za 15s zhasne oranžové a rožne červené
5> 10s čeká, a pak aktivuje další větev (stranu) semafóru
- Takto postupuje po všech větvích, pokud větev není aktivní, tak svítí červené světlo
- jakmile projde všechny větve, restartuje cyklus a postup se neustále opakuje
To Syntax : Nerad Ti to říkám, ale dal jsem si tu práci a přepsal jsem Tvůj program a máš tam docela zajímavé chování světel.
Teda, nechtěl bych se na té Tvé křižovatce ocitnout... protože v jednu chvíli tam jedna strana má zelenou, druhé tam pro jistotu nesvítí nic... jindy tam na jedné větvi svítí současně červená s oranžovou a druhé větvi svítí oranžová... a následně to přeskočí tak, že jedné větvi svítí zelená a červená současně, aspoň, že na druhé větvi svítí červená... :-))
To DragonBehemont : OMLUVA! Funguje Ti to správně, akorát, když jsem to schéme přepisoval do softu, tak se mi tam na jednom generátoru pulsů udělal invertor. Všiml jsem si toho až teďkom, takže se omlouvám, funguje Ti to správně :-( :-( :-(
Přidej příspěvek
Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku
×Vložení zdrojáku
×Vložení obrázku
×Vložení videa
Uživatelé prohlížející si toto vlákno
Podobná vlákna
Křižovatka dle zadání v Logo! Soft — založil NeoMartin
Logo soft - načerpávání — založil Fredy.00
Logo soft - výtah — založil Flurry
Logo soft světlo — založil Fredy.00