NOVINKA: Získej 40 hodin praktických dovedností s AI – ZDARMA ke každému akreditovanému kurzu!
S účinností od 26. 3. jsme aktualizovali Zásady zpracování osobních údajů – doplnili jsme informace o monitorování telefonických hovorů se zájemci o studium. Ostatní části zůstávají beze změn.

Diskuze: Machr na OOP - Žárovky a zdroj

V předchozím kvízu, Online test znalostí Java, jsme si ověřili nabyté zkušenosti z kurzu.

Aktivity
Avatar
David Hartinger
Vlastník
Avatar
David Hartinger:8.10.2013 11:16

Ahoj kluci, máme tu další pravidelnou minisoutěž o placku a nálepky, tentokrát ke zdokonalení vašeho objektového myšlení.

Napište program, který dostane na vstupu textový soubor. Jeho obsah bude složený z následujících znaků:

Vodiče: ─ │ ┌ ┐ └ ┘ ├ ┤ ┬ ┴ ┼
Žárovky: ○
Zdroj: Z

Obsah souboru reprezentuje jednoduchý elektrický obvod s jedním zdrojem, vodiči a žárovkami. Vaším úkolem je rozsvítit správně zapojené žárovky.

Vstup může vypadat např. takto:

┌─○─┐
└─Z─┘

A výstup:

┌─☼─┐
└─Z─┘

Zadání je zjednodušené, můžete počítat s tím, že:
V obvodu bude vždy jen jeden zdroj
V obvodu nedojde ke zkratu
Do žárovky vždy povedou max. 2 dráty (1 tam a jeden ven). To samé platí pro zdroj

Ukažme si ještě složitější situaci. Vstup:

┌─────┐
○     │
├─○○○─┤
│┌───┬┤
││   │○
Z│   ├┘
└┘   ○

A výstup:

┌─────┐
☼     │
├─☼☼☼─┤
│┌───┬┤
││   │○
Z│   ├┘
└┘   ○

Žárovka se samozřejmě chová jako vodič, pokud je připojena z obou stran k různým pólům zdroje, rozsvítí se. Polarita není důležitá (který pól zdroje jde na který pól žárovky). Určitě budete chtít použít algoritmus záplavy.

Můžete použít libovolný programovací jazyk.

Deadline si dejme v neděli 13.10. v 18:00

Editováno 8.10.2013 11:22
Odpovědět
8.10.2013 11:16
New kid back on the block with a R.I.P
Avatar
next-x
Neregistrovaný
Avatar
next-x:8.10.2013 11:20

David Hartinger smime pouzit i jiny jazyk nez Java? treba C#? :)

 
Nahoru Odpovědět
8.10.2013 11:20
Avatar
David Hartinger
Vlastník
Avatar
Odpovídá na
David Hartinger:8.10.2013 11:22

Vidíš, to jsem zapomněl uvést. Ano, jazyk je libovolný.

Nahoru Odpovědět
8.10.2013 11:22
New kid back on the block with a R.I.P
Avatar
Odpovídá na David Hartinger
Michal Žůrek - misaz:8.10.2013 14:41

No nevím jestli by to splnilo zadání v jazyku který nepodporuje OOP. ;)

 
Nahoru Odpovědět
8.10.2013 14:41
Avatar
martinsakra
Tvůrce
Avatar
martinsakra:8.10.2013 15:11

situace že se etkají dva vodiče s opačnou ppolaritou (bez žárovky) neřeším že?

Nahoru Odpovědět
8.10.2013 15:11
Democracy is two wolves and a lamb voting on what to have for lunch. Liberty is a well-armed lamb contesting the vote.
Avatar
Kit
Tvůrce
Avatar
Odpovídá na Michal Žůrek - misaz
Kit:8.10.2013 15:13

Myslíš si, že se v assembleru nedá psát objektově?

Nahoru Odpovědět
8.10.2013 15:13
Vlastnosti objektů by neměly být veřejné. A to ani prostřednictvím getterů/setterů.
Avatar
Kit
Tvůrce
Avatar
Odpovídá na martinsakra
Kit:8.10.2013 15:14

V tom případě zazáří ten drát :)

Nahoru Odpovědět
8.10.2013 15:14
Vlastnosti objektů by neměly být veřejné. A to ani prostřednictvím getterů/setterů.
Avatar
Panda38
Tvůrce
Avatar
Panda38:8.10.2013 15:18

Jsem zvědavý jestli bude někomu správně fungovat i žárovka ve vyváženém můstku :-):

┌────┐
│  ┌─┴─┐
│  ☼   ☼
Z  ├─○─┤
│  ☼   ☼
│  └─┬─┘
└────┘
Editováno 8.10.2013 15:23
 
Nahoru Odpovědět
8.10.2013 15:18
Avatar
David Hartinger
Vlastník
Avatar
Odpovídá na martinsakra
David Hartinger:8.10.2013 15:19

Neřešíš, psal jsem to v zadání :)

Nahoru Odpovědět
8.10.2013 15:19
New kid back on the block with a R.I.P
Avatar
David Hartinger
Vlastník
Avatar
Odpovídá na Panda38
David Hartinger:8.10.2013 15:24

O této magii jsem ani nevěděl :)

Nahoru Odpovědět
8.10.2013 15:24
New kid back on the block with a R.I.P
Avatar
Odpovídá na David Hartinger
Michael Olšavský:8.10.2013 17:40

Bude ten vstup jako na obrazku přes řádky nebo to muže být v jednom řádku (pr. -[]_º) (teb priklad je jen tak nahozeny. Nema smysl)

 
Nahoru Odpovědět
8.10.2013 17:40
Avatar
David Oczka
Tvůrce
Avatar
David Oczka:8.10.2013 17:53

Kdybych tak měl více času, šel bych do toho také. Vypadá to zajímavě... :) A je to docela i můj obor... :D Něco málo jsem i zkoušel, ale opět to ztroskotalo v mé časové tísni -> Nesnáším protokoly... :@ :D

Hodně zdaru všem... ;)

 
Nahoru Odpovědět
8.10.2013 17:53
Avatar
Jan Vargovský
Tvůrce
Avatar
Odpovídá na David Oczka
Jan Vargovský:8.10.2013 18:35

Protokoly nemá rád nikdo :P hlavně grafy :D

 
Nahoru Odpovědět
8.10.2013 18:35
Avatar
Kit
Tvůrce
Avatar
Odpovídá na Jan Vargovský
Kit:8.10.2013 20:18

Na grafy je dobrý R-project.

Nahoru Odpovědět
8.10.2013 20:18
Vlastnosti objektů by neměly být veřejné. A to ani prostřednictvím getterů/setterů.
Avatar
Odpovídá na David Hartinger
Michael Olšavský:8.10.2013 20:21

Teď koukám, že moje otázka je trochu blbost. Takže s tou se nezabývej. :-D Tohle je úloha skoro na dvě placky :-D Algoritmy a OOP. Schválně kolik lidí se zúčastní.

 
Nahoru Odpovědět
8.10.2013 20:21
Avatar
Jan Vargovský
Tvůrce
Avatar
Odpovídá na Kit
Jan Vargovský:8.10.2013 20:28

Zkusím :) tento rok je konečně můžeme kreslit na PC, ale zkoušeli jsme to jednou a zabralo to asi 10x více času, tak snad ten tvůj sw pomůže :) jde právě o to, že zadáme f-ci, udělat měřítko na každou osu jiné, různé popisky, kóty atd.

Michael Olšavský Já uvidím jak to bude s časem :) ale jako úkol to je zajímavý.

 
Nahoru Odpovědět
8.10.2013 20:28
Avatar

Člen
Avatar
:8.10.2013 20:31

Musí to načítat z txt souboru? Nemůže tam být richtextbox, do kterýho to vložíš?

 
Nahoru Odpovědět
8.10.2013 20:31
Avatar
David Hartinger
Vlastník
Avatar
Odpovídá na
David Hartinger:8.10.2013 20:32

Klidně můžeš.

Nahoru Odpovědět
8.10.2013 20:32
New kid back on the block with a R.I.P
Avatar

Člen
Avatar
Odpovídá na David Hartinger
:8.10.2013 20:32

Dík :)

 
Nahoru Odpovědět
8.10.2013 20:32
Avatar
Kit
Tvůrce
Avatar
Odpovídá na Jan Vargovský
Kit:8.10.2013 20:35

Slyšel jsem o lidech, kteří potřebovali do diplomky několik set grafů. S Excelem neměli šanci to stihnout, protože by se uklikali. S tím R-projectem to zvládli. Chvíli trvá, než se s tím naučíš, ale pak mu už jen vrazíš seznamy hodnot a grafy z toho lezou jak na běžícím pásu.

Diagramy zase kreslím v Graphviz. Zadáš mu jen seznam uzlů a hran. Rozložení na ploše si už udělá sám.

Nahoru Odpovědět
8.10.2013 20:35
Vlastnosti objektů by neměly být veřejné. A to ani prostřednictvím getterů/setterů.
Avatar

Člen
Avatar
Odpovídá na David Hartinger
:8.10.2013 20:41

Tak jsem přišel na to, že je to richtextboxem nad moje síly, takže mám ještě debilnější otázku. Schválíš mi klasický textboxy naskládaný vedle sebe?

 
Nahoru Odpovědět
8.10.2013 20:41
Avatar
Odpovídá na Kit
Michal Žůrek - misaz:8.10.2013 20:46

Proč by se v Excelu uklikali? R-projectu taky musíš říct z čeho to má udělat.

 
Nahoru Odpovědět
8.10.2013 20:46
Avatar
Odpovídá na
Luboš Běhounek Satik:8.10.2013 20:47

dostat text ze souboru do stringu - na to ti staci jeden radek kodu:

string data = File.ReadAllText("soubor.txt");
Nahoru Odpovědět
8.10.2013 20:47
https://www.facebook.com/peasantsandcastles/
Avatar
Kit
Tvůrce
Avatar
Odpovídá na Michal Žůrek - misaz
Kit:8.10.2013 20:49

Pokud máš naměřená data v souborech, tak to v R-projectu není problém ani když jich děláš desítky tisíc či milióny.

Nahoru Odpovědět
8.10.2013 20:49
Vlastnosti objektů by neměly být veřejné. A to ani prostřednictvím getterů/setterů.
Avatar
Martin Konečný (pavelco1998):8.10.2013 20:50

Přijde mi to jako moc hezký nápad. Ale asi se nezapojím. :-(

Nahoru Odpovědět
8.10.2013 20:50
Aktuálně připravuji browser RPG, FB stránka - https://www.facebook.com/AlteiraCZ
Avatar

Člen
Avatar
Odpovídá na Luboš Běhounek Satik
:8.10.2013 20:52

Jo, jenomže problém je pro mě, jak vytáhnout určitej znak. Řekněme, že každej znak má pozici. A já nevím, jak vytáhnout znak na pozici 1,2.

 
Nahoru Odpovědět
8.10.2013 20:52
Avatar
David Dostal
Tvůrce
Avatar
Odpovídá na
David Dostal:8.10.2013 20:58

Tak použij

File.ReadAllLines

Vrátí ti to pole jednotlivých řádků.

Editováno 8.10.2013 20:59
 
Nahoru Odpovědět
8.10.2013 20:58
Avatar
Odpovídá na
Michal Žůrek - misaz:8.10.2013 21:00

Rozdělej si to na řádky. Pak to budeš mít jako pole polí. Jediným rozdílem bude že nebude platit [x][y], ale [y][x].

 
Nahoru Odpovědět
8.10.2013 21:00
Avatar
Petr Nymsa
Tvůrce
Avatar
Odpovídá na Michal Žůrek - misaz
Petr Nymsa:8.10.2013 21:03

Proč by nefungovalo x,y ?

Nahoru Odpovědět
8.10.2013 21:03
Pokrok nezastavíš, neusni a jdi s ním vpřed
Avatar
Odpovídá na Petr Nymsa
Michal Žůrek - misaz:8.10.2013 21:29

x je sloupce a y řádek, on nejprve načítá řádek proto je y první. Tedy to musíš napsat naopak.

Samozřejmně to lze přetočit.

Když na toto pravidlo zapomeneš, tak se pak strašně dlouho můžeš divit proč ti program nefunguje, tak jak si představuješ.

 
Nahoru Odpovědět
8.10.2013 21:29
Avatar
Petr Nymsa
Tvůrce
Avatar
Odpovídá na Michal Žůrek - misaz
Petr Nymsa:8.10.2013 21:34

Ano to vím, také mě to v začátcích hoodně potrápilo :D

Nahoru Odpovědět
8.10.2013 21:34
Pokrok nezastavíš, neusni a jdi s ním vpřed
Avatar
Odpovídá na Petr Nymsa
Michal Žůrek - misaz:8.10.2013 21:44

Já jsem kvůli tomu zahodil pár programů :D

 
Nahoru Odpovědět
8.10.2013 21:44
Avatar
Petr Nymsa
Tvůrce
Avatar
Odpovídá na Michal Žůrek - misaz
Petr Nymsa:8.10.2013 21:54

Já to vždy vyřešil :D ale stalo se mi že za pár dní jsem dělal něco jiného, opět 2D pole a stejná chyba a občas jsem zase si lámal hlavu proč :D ach ty začátky 8-)

Nahoru Odpovědět
8.10.2013 21:54
Pokrok nezastavíš, neusni a jdi s ním vpřed
Avatar
martinsakra
Tvůrce
Avatar
Odpovídá na Petr Nymsa
martinsakra:8.10.2013 22:17

jednoduše když pracuješ s 2d polem a program se chová divně (ne špatně, ne dobře) tak první co zkouším je že vymněním x,y jen kdyby náhodou :D

Editováno 8.10.2013 22:17
Nahoru Odpovědět
8.10.2013 22:17
Democracy is two wolves and a lamb voting on what to have for lunch. Liberty is a well-armed lamb contesting the vote.
Avatar
Kit
Tvůrce
Avatar
Odpovídá na martinsakra
Kit:8.10.2013 22:34

Když pracuji s 2D polem, tak si nejprve napíšu test, který mi ověří, že s tím polem pracuji správně. Pak ho teprve začnu programovat.

Nahoru Odpovědět
8.10.2013 22:34
Vlastnosti objektů by neměly být veřejné. A to ani prostřednictvím getterů/setterů.
Avatar
Odpovídá na David Hartinger
Libor Šimo (libcosenior):9.10.2013 16:17

Ako sa napíše znak svietiacej žiarovky? V ASCII som to nenašiel.

Nahoru Odpovědět
9.10.2013 16:17
Aj tisícmíľová cesta musí začať jednoduchým krokom.
Avatar
David Hartinger
Vlastník
Avatar
Odpovídá na Libor Šimo (libcosenior)
David Hartinger:9.10.2013 16:38

Přeci ho můžeš zkopírovat odtud. Jinak všechny znaky najdeš v mapě znaků (Windows aplikace).

Nahoru Odpovědět
9.10.2013 16:38
New kid back on the block with a R.I.P
Avatar
Panda38
Tvůrce
Avatar
Panda38:9.10.2013 17:53

Soubor musí být v kódu Unicode (tedy 2 bajty na znak) nebo UTF-8, v běžném kódu Windows 1250 tyto znaky nejsou.

 
Nahoru Odpovědět
9.10.2013 17:53
Avatar
martinsakra
Tvůrce
Avatar
Odpovídá na David Hartinger
martinsakra:10.10.2013 22:18

Mam dotaz, v té složitější verzi, svítí žárovky určitě správně? res mě se nelíbí ta jedna nesvítící žárovka a jeden program mi dává za pravdu (což vubec nic neznamená, program není muj, a moje znalosti mají vcelku mezery)

Nahoru Odpovědět
10.10.2013 22:18
Democracy is two wolves and a lamb voting on what to have for lunch. Liberty is a well-armed lamb contesting the vote.
Avatar
Jan Vargovský
Tvůrce
Avatar
Odpovídá na martinsakra
Jan Vargovský:10.10.2013 22:33

Napiš na support toho SW, že tam maj chybu :)

 
Nahoru Odpovědět
10.10.2013 22:33
Avatar
dolakdavid
Člen
Avatar
Odpovídá na martinsakra
dolakdavid:10.10.2013 22:46

Taky jsem na to koukal, myslel jsem že jsem moc zkouřenej..

 
Nahoru Odpovědět
10.10.2013 22:46
Avatar
Panda38
Tvůrce
Avatar
Odpovídá na martinsakra
Panda38:10.10.2013 22:58

Zjevně jim jde zkratová smyčka kolem nějakého dost silného trafa. Čítujou!

 
Nahoru Odpovědět
10.10.2013 22:58
Avatar
Odpovídá na martinsakra
Zdeněk Pavlátka:11.10.2013 7:50

Proud jde cestou menšího odporu, takže když má dvě cesty (drát a žárovka) vybere si drát a žárovka se nerozsvítí.

Nahoru Odpovědět
11.10.2013 7:50
Kolik jazyků umíš, tolikrát jsi programátor.
Avatar
David Hartinger
Vlastník
Avatar
Odpovídá na martinsakra
David Hartinger:11.10.2013 8:35

Je to už nějaký pátek, co jsem zapojoval žárovky, ale IMHO by svítit neměla, už jen proto, že je zkratovaná :)

Nahoru Odpovědět
11.10.2013 8:35
New kid back on the block with a R.I.P
Avatar
Odpovídá na David Hartinger
Michael Olšavský:11.10.2013 17:02

Psal jsi, že ke zkratu nedojde. To znamená, že tento případ řešit nemusíme nebo je to součástí? Jinak souhlasím s Zdeněk Pavlátka, proud si vybere menší odpor. Ale nevím, jestli se tomu říká zkrat...

 
Nahoru Odpovědět
11.10.2013 17:02
Avatar
David Hartinger
Vlastník
Avatar
Odpovídá na Michael Olšavský
David Hartinger:11.10.2013 17:11

Ve zkratu je jen žárovka, ne zdroj.

Nahoru Odpovědět
11.10.2013 17:11
New kid back on the block with a R.I.P
Avatar
Odpovídá na David Hartinger
Zdeněk Pavlátka:11.10.2013 17:18

Žárovka je přemostěná.

Nahoru Odpovědět
11.10.2013 17:18
Kolik jazyků umíš, tolikrát jsi programátor.
Avatar
Neaktivní uživatel:12.10.2013 12:46
┌─┐
│ ○───┐
├─○○○─┤
│┌────┘
Z┘

toto je špatně zadaný vstup?
Prostě žárovky a zdroj mohou mít vodiče jen na protější straně?
Pak by mě zajímalo, jestli mají být spojené ty žárovky nad sebou..

Editováno 12.10.2013 12:47
Nahoru Odpovědět
12.10.2013 12:46
Neaktivní uživatelský účet
Avatar
David Hartinger
Vlastník
Avatar
Odpovídá na Neaktivní uživatel
David Hartinger:12.10.2013 12:55

Jo, bral bych to jako špatně zadané. Z žárovky vždy povede vodič tím samým směrem, jakým přišel, případně bude tím směrem jiná žárovka nebo zdroj.

Nahoru Odpovědět
12.10.2013 12:55
New kid back on the block with a R.I.P
Avatar
Odpovídá na Kit
Michal Žůrek - misaz:13.10.2013 14:45

Však v excelu jsou makra, tísíce a miliony taky nejsou problém.

 
Nahoru Odpovědět
13.10.2013 14:45
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 50 zpráv z 73.