Diskuze: Machr na C# .NET - Krátký analyzátor textů

C# .NET .NET (C# a Visual Basic) Machr na C# .NET - Krátký analyzátor textů American English version English version

Avatar
David Čápka
Tým ITnetwork
Avatar
David Čápka:

Ahoj všichni, vítám vás u další minisoutěže, tento týden hrajeme o placku Machr na C# .NET a jako vždy o samolepky. Dnešní zadání bude obzvláště zábavné a speciální, výsledná aplikace se bude totiž hodnotit podle toho, jak je zdrojový kód dlouhý. Vyhrává nejkratší, soutěž je omezena na C# .NET a framework verze 3.5.

Zadání není komplikované, vytvořte analyzátor textových souborů, program si načte soubor z textového souboru vstup.txt (bude ve složce s programem) a analyzuje jeho text. Do konzole vypíše následující údaje:

Řádků: x
Samohlásek: x
Slov: x
Číslic: x
Emailových adres: x
Palindromů: x

Palindrom je slovo, které se čte stejně zleva i zprava, třeba kuk nebo oto. Program ignoruje velikost písmen. Sekvence znaků 2013 jsou 4 číslice.

Všechny programy potom spustím na stejném vstupním textu, abych vyzkoušel, jestli fungují. Dále spočítám počet znaků ve zdrojovém souboru Program.cs (samozřejmě nesmíte používat jinou knihovnu nebo třídu mimo těch v .NETu).

Hint: Používejte ternární operátory, namespace bude zbytečný, některé usingy budou zbytečné, kód pravděpodobně odevzdáte na jednom řádku. Nejdříve si program napište normálně a potom začněte s "kompresí" :)

Počítá se opravdu každý znak, machr, co napíše nejkratší program získává placku a nálepky. Čas máte do neděle 2.6. do 15:00.

Editováno 27.5.2013 18:54
Odpovědět 27.5.2013 16:20
Miluji svou práci a zdejší komunitu, baví mě se rozvíjet, děkuji každému členovi za to, že zde působí.
Avatar
Paradise
Redaktor
Avatar
Paradise:

Hm, tuhle challenge bych mohl zkusit. Dostává se placka i za účast? :D

Editováno 27.5.2013 16:33
 
Nahoru Odpovědět 27.5.2013 16:32
Avatar
Nahoru Odpovědět 27.5.2013 16:56
Nesnáším {}, proto se jim vyhýbám.
Avatar
matesax
Redaktor
Avatar
Odpovídá na David Čápka
matesax:

Cestu k souboru ale mohu dát jako option - CLI?

 
Nahoru Odpovědět 27.5.2013 16:59
Avatar
Kit
Redaktor
Avatar
Odpovídá na David Čápka
Kit:

Ten jeden řádek je omezen na 80 znaků?

Nahoru Odpovědět 27.5.2013 16:59
Vlastnosti objektů by neměly být veřejné. A to ani prostřednictvím getterů/setterů.
Avatar
Kit
Redaktor
Avatar
Odpovídá na matesax
Kit:

Podle mne když to dáš jako vstup ze STDIN, bude to OK. Upřesní sdraco.

Editováno 27.5.2013 17:01
Nahoru Odpovědět 27.5.2013 17:00
Vlastnosti objektů by neměly být veřejné. A to ani prostřednictvím getterů/setterů.
Avatar
Michal Žůrek (misaz):

bude vadit moc, když výsledek okem nepostřehneš? :D

Editováno 27.5.2013 17:08
Nahoru Odpovědět 27.5.2013 17:08
Nesnáším {}, proto se jim vyhýbám.
Avatar
matesax
Redaktor
Avatar
matesax:

To mám jako používat jednopísmenné proměnné? :)

 
Nahoru Odpovědět  +2 27.5.2013 17:08
Avatar
Michal Žůrek (misaz):

Jakými znaky budou odděleny řádky?

A.) \n\r
B.) \n
C.) \r
Nahoru Odpovědět 27.5.2013 17:10
Nesnáším {}, proto se jim vyhýbám.
Avatar
Nahoru Odpovědět 27.5.2013 17:10
Nesnáším {}, proto se jim vyhýbám.
Avatar
Kit
Redaktor
Avatar
Odpovídá na Michal Žůrek (misaz)
Kit:

To tě přece nezajímá, ne? Oddělovače řádků jsou pohlceny během čtení a generovány při výpisu. Nikde jinde se s nimi nepracuje.

Nahoru Odpovědět 27.5.2013 17:19
Vlastnosti objektů by neměly být veřejné. A to ani prostřednictvím getterů/setterů.
Avatar
Odpovídá na Kit
Michal Žůrek (misaz):

No ja to čtu trochu jinak... :)

Nahoru Odpovědět 27.5.2013 17:20
Nesnáším {}, proto se jim vyhýbám.
Avatar
matesax
Redaktor
Avatar
Odpovídá na Kit
matesax:

Když přečtu soubor a dám foreach pro chary, tak tam budou i escape - ne? Takže ty asi nepočítat a toť vše...

 
Nahoru Odpovědět 27.5.2013 17:20
Avatar
Kit
Redaktor
Avatar
Odpovídá na matesax
Kit:

Kde by se tam vzaly escape? Ty přece ve vstupních datech nejsou.

Nahoru Odpovědět 27.5.2013 17:22
Vlastnosti objektů by neměly být veřejné. A to ani prostřednictvím getterů/setterů.
Avatar
matesax
Redaktor
Avatar
Odpovídá na Kit
matesax:

Co se pamatuji, tak jsem takto na escape narazil...

 
Nahoru Odpovědět 27.5.2013 17:23
Avatar
Kit
Redaktor
Avatar
Odpovídá na matesax
Kit:

Co je to za znak, ten tvůj "escape"?

Nahoru Odpovědět 27.5.2013 17:23
Vlastnosti objektů by neměly být veřejné. A to ani prostřednictvím getterů/setterů.
Avatar
matesax
Redaktor
Avatar
matesax:

\ddd

 
Nahoru Odpovědět 27.5.2013 17:26
Avatar
Odpovídá na Kit
Michal Žůrek (misaz):

escape je správně (pokud vím dobře) to "\n" "\r" "\\" atd.

Nahoru Odpovědět 27.5.2013 17:26
Nesnáším {}, proto se jim vyhýbám.
Avatar
Michal Žůrek (misaz):

bere se:

2013

jako jedno číslo nebo 4?

Nahoru Odpovědět 27.5.2013 17:27
Nesnáším {}, proto se jim vyhýbám.
Avatar
matesax
Redaktor
Avatar
Odpovídá na Michal Žůrek (misaz)
matesax:

1 číslo, 4 znaky - o co tu asi jde...

 
Nahoru Odpovědět 27.5.2013 17:28
Avatar
Kit
Redaktor
Avatar
Odpovídá na matesax
Kit:

No a takové přece na vstupu nebudou. Znak \ se dá vyhodnotit jako oddělovač, ddd jako slovo. Ale proč by to tam sdraco dával? V běžném textu se nevyskytují.

Nahoru Odpovědět 27.5.2013 17:29
Vlastnosti objektů by neměly být veřejné. A to ani prostřednictvím getterů/setterů.
Avatar
Kit
Redaktor
Avatar
Odpovídá na Michal Žůrek (misaz)
Kit:

"2013" je jedno číslo, které se skládá ze čtyř číslic: dvojky, nuly, jedničky a trojky.

Nahoru Odpovědět 27.5.2013 17:31
Vlastnosti objektů by neměly být veřejné. A to ani prostřednictvím getterů/setterů.
Avatar
matesax
Redaktor
Avatar
Odpovídá na Kit
matesax:

Kite Kite... :)

foreach(char c in System.IO.File.ReadAllText(args[0]))
{
        if (c == '\n')
                Console.WriteLine("Je tam!");
}

Výstup:

./Praes.exe /mnt/Data/Mono­Projects/Rumdych/Rum­dych/bin/Debug/sou­rce
Je tam!
Je tam!
Je tam!
Je tam!
Je tam!
Je tam!
Je tam!
Je tam!
Je tam!
Je tam!
Je tam!
Je tam!
Je tam!
Je tam!
Je tam!
Je tam!
Je tam!
Je tam!
Je tam!
Je tam!
Je tam!
Je tam!
Je tam!
Je tam!
Je tam!
Je tam!
Je tam!
Je tam!
Je tam!
Je tam!
Je tam!
Je tam!
Je tam!
Je tam!
Je tam!
Je tam!
Je tam!
Je tam!
Je tam!
Je tam!

 
Nahoru Odpovědět 27.5.2013 17:31
Avatar
Kit
Redaktor
Avatar
Odpovídá na matesax
Kit:

Není. Escape znak je reprezentován pouze tím symbolem '\'. To 'n' už není escape znak. Takže v tom souboru je možná znak s ordinální hodnotou 13, což je LF, ale nic to nevypovídá o znaku s ordinální hodnotou 92, což je \.

Zkus si to schválně otestovat na '\\' - tak se v C# dá zapsat backslash, který se nejčastěji používá jako escape znak.

Editováno 27.5.2013 17:39
Nahoru Odpovědět 27.5.2013 17:38
Vlastnosti objektů by neměly být veřejné. A to ani prostřednictvím getterů/setterů.
Avatar
matesax
Redaktor
Avatar
matesax:

David Čápka

Nechceš tam připsat ještě tyto escape? (Zjistit jejich počet.)

 
Nahoru Odpovědět 27.5.2013 17:39
Avatar
matesax
Redaktor
Avatar
Odpovídá na Kit
matesax:

Kdyby to nevzal jako escape, tak by to nezkompiloval - neprošlo by to charem... Rozhodně to nebudu počítat do celkového počtu znaků...

Editováno 27.5.2013 17:42
 
Nahoru Odpovědět 27.5.2013 17:41
Avatar
Kit
Redaktor
Avatar
Odpovídá na matesax
Kit:

Ale ty nemáš za úkol kompilovat vstupní text a převádět escape znaky. Máš kompilovat svůj program v C#, který bude číst vstupní text a vypsat z něj report. Žádné escape znaky v něm přece nebudou.

Escape znaky jsou záležitostí kompilátoru, ale ne tvého programu.

Nahoru Odpovědět 27.5.2013 17:46
Vlastnosti objektů by neměly být veřejné. A to ani prostřednictvím getterů/setterů.
Avatar
matesax
Redaktor
Avatar
Odpovídá na Kit
matesax:

Jasně když mi to tedy očividně escape našlo, tak to budu ignorovat a počítat jako normální znaky...

 
Nahoru Odpovědět 27.5.2013 17:51
Avatar
Kit
Redaktor
Avatar
Odpovídá na matesax
Kit:

Očividně ti to escape znak nenašlo, ale našlo to jen '\n', což není escape znak. To je LF. LF není escape znak, ale netisknutelný znak pro návrat vozíku.

Nahoru Odpovědět 27.5.2013 17:54
Vlastnosti objektů by neměly být veřejné. A to ani prostřednictvím getterů/setterů.
Avatar
Libor Šimo (libcosenior):

'\n' nie je escape znak ale escape seqvencia!

Nahoru Odpovědět  +1 27.5.2013 18:19
Aj tisícmíľová cesta musí začať jednoduchým krokom.
Avatar
David Čápka
Tým ITnetwork
Avatar
David Čápka:

2013 jsou 4 čísla :)

Vstup je na souboru vstup.txt, jak je zadáno.

Nahoru Odpovědět 27.5.2013 18:45
Miluji svou práci a zdejší komunitu, baví mě se rozvíjet, děkuji každému členovi za to, že zde působí.
Avatar
Odpovídá na David Čápka
Michal Maršálek:

To jako "devbook" je sedm slov? :) To je přece to samé.

 
Nahoru Odpovědět  +1 27.5.2013 18:47
Avatar
David Čápka
Tým ITnetwork
Avatar
Odpovídá na Michal Maršálek
David Čápka:

Ono by bylo složité řešit třeba desetinná čísla atd., pokud ti vadí označení číslo, změním ho na číslice. Devbook je 7 znaků.

Nahoru Odpovědět 27.5.2013 18:52
Miluji svou práci a zdejší komunitu, baví mě se rozvíjet, děkuji každému členovi za to, že zde působí.
Avatar
matesax
Redaktor
Avatar
Odpovídá na David Čápka
matesax:

Je tam číslic - takže prostě 0-9 - bez čárek a spol... Ne?

 
Nahoru Odpovědět 27.5.2013 19:02
Avatar
David Čápka
Tým ITnetwork
Avatar
Odpovídá na matesax
David Čápka:

2013 jsou prostě 4 číslice :)

Nahoru Odpovědět 27.5.2013 19:05
Miluji svou práci a zdejší komunitu, baví mě se rozvíjet, děkuji každému členovi za to, že zde působí.
Avatar
matesax
Redaktor
Avatar
Odpovídá na David Čápka
matesax:

256,5

Taktéž - no ne? :)

 
Nahoru Odpovědět 27.5.2013 19:15
Avatar
David Čápka
Tým ITnetwork
Avatar
Nahoru Odpovědět 27.5.2013 19:16
Miluji svou práci a zdejší komunitu, baví mě se rozvíjet, děkuji každému členovi za to, že zde působí.
Avatar
matesax
Redaktor
Avatar
matesax:

Slova musím počítat i s diakritikou? :)

 
Nahoru Odpovědět 27.5.2013 19:35
Avatar
Michal Žůrek (misaz):

zalomení řádku ve zdrojovém kód je za jeden znak nebo za dva?

Nahoru Odpovědět 27.5.2013 19:37
Nesnáším {}, proto se jim vyhýbám.
Avatar
Kit
Redaktor
Avatar
Odpovídá na matesax
Kit:

Jak jinak? "žluťák" je jedno slovo.

Nahoru Odpovědět 27.5.2013 19:38
Vlastnosti objektů by neměly být veřejné. A to ani prostřednictvím getterů/setterů.
Avatar
Kit
Redaktor
Avatar
Odpovídá na Michal Žůrek (misaz)
Kit:

To jsou přece 2 řádky, ale odstavce se běžně nelámou.

Nahoru Odpovědět 27.5.2013 19:42
Vlastnosti objektů by neměly být veřejné. A to ani prostřednictvím getterů/setterů.
Avatar
David Čápka
Tým ITnetwork
Avatar
Odpovídá na Michal Žůrek (misaz)
David Čápka:

Zalomení řádku se nepočítá jako znak.

Nahoru Odpovědět 27.5.2013 19:42
Miluji svou práci a zdejší komunitu, baví mě se rozvíjet, děkuji každému členovi za to, že zde působí.
Avatar
Michal Žůrek (misaz):

Já už mám nějaký paskvil hotový. Dám ho sem až v neděli.

Tentokrát budete mít jednoduché hodnocení :)

Nahoru Odpovědět 27.5.2013 19:52
Nesnáším {}, proto se jim vyhýbám.
Avatar
matesax
Redaktor
Avatar
matesax:

719 znaků je jak moc zlé? :)

 
Nahoru Odpovědět 27.5.2013 20:11
Avatar
matesax
Redaktor
Avatar
 
Nahoru Odpovědět 27.5.2013 20:12
Avatar
matesax
Redaktor
Avatar
matesax:

Nyní mám 571 znaků. Ale jak to má být s výstupním stringem? Bylo by nefér mít kvůli němu více znaků - jaký má tedy mít formát? U mě:

"Celkem:{0}\nSamohlásek:{1}\nŘádků:{2}\nSlov:{3}\nČíslic:{4}\nEmailovýchadres:{5}\nPalindromů:{6}"
 
Nahoru Odpovědět  +1 27.5.2013 20:25
Avatar
Odpovídá na David Čápka
Michael Olšavský:

Počítá se emailová adresa nebo palindrom do kolonky slova? Nebo by tam byly navíc?

 
Nahoru Odpovědět 27.5.2013 20:27
Avatar
Odpovídá na matesax
Michal Žůrek (misaz):

ani ne. Ještě můžeš pár znaků připsat :D To bych totiž prohrál.

Nahoru Odpovědět 27.5.2013 20:27
Nesnáším {}, proto se jim vyhýbám.
Avatar
Nahoru Odpovědět 27.5.2013 20:28
Nesnáším {}, proto se jim vyhýbám.
Avatar
matesax
Redaktor
Avatar
Avatar
Nahoru Odpovědět 27.5.2013 20:34
Nesnáším {}, proto se jim vyhýbám.
Avatar
David Čápka
Tým ITnetwork
Avatar
David Čápka:

Ještě připomenu, že existují regulární výrazy pánové a v C# zrovna hodně mocné :`

Nahoru Odpovědět 27.5.2013 20:59
Miluji svou práci a zdejší komunitu, baví mě se rozvíjet, děkuji každému členovi za to, že zde působí.
Avatar
matesax
Redaktor
Avatar
Odpovídá na Michal Žůrek (misaz)
matesax:

Jé - oni nechců počítat znaky - tak to mám jen 538 znaků! :)

 
Nahoru Odpovědět 27.5.2013 21:06
Avatar
matesax
Redaktor
Avatar
Odpovídá na David Čápka
matesax:

Používám - od začátku...

 
Nahoru Odpovědět 27.5.2013 21:07
Avatar
Michal Žůrek (misaz):

matesax : já to nechápu. Jak jsi to zmenšil na 538? Já mám pořád 648.

Nahoru Odpovědět 27.5.2013 21:31
Nesnáším {}, proto se jim vyhýbám.
Avatar
matesax
Redaktor
Avatar
Odpovídá na Michal Žůrek (misaz)
matesax:

Na to se chci zeptat - jak mám teď publikovat zdroják do soutěže? (Aby nebyl šlohnut...)

Mám tam jeden while a samé regex + 5 jednopísmenných proměnných...

 
Nahoru Odpovědět 27.5.2013 21:37
Avatar
Odpovídá na matesax
Michal Žůrek (misaz):

Pošli to sdracovi do soukromých zpráv a nikdo ti to nešlohne.

Nahoru Odpovědět 27.5.2013 21:41
Nesnáším {}, proto se jim vyhýbám.
Avatar
matesax
Redaktor
Avatar
Odpovídá na Michal Žůrek (misaz)
matesax:

Snažím se to ještě dostat pod 500... :)

 
Nahoru Odpovědět 27.5.2013 21:43
Avatar
Nahoru Odpovědět  +1 27.5.2013 21:48
Nesnáším {}, proto se jim vyhýbám.
Avatar
matesax
Redaktor
Avatar
Odpovídá na Michal Žůrek (misaz)
matesax:

526 - jestli ještě něco osekám... :)

 
Nahoru Odpovědět 27.5.2013 21:55
Avatar
matesax
Redaktor
Avatar
matesax:

518 :)

 
Nahoru Odpovědět 27.5.2013 22:08
Avatar
Kit
Redaktor
Avatar
Odpovídá na matesax
Kit:

Asi se konečně naučím C#, ať můžu zařvat: "Sparta!”

Nebo si snad myslíte, že se na 300 nedostanu? :)

Nahoru Odpovědět  +1 27.5.2013 22:29
Vlastnosti objektů by neměly být veřejné. A to ani prostřednictvím getterů/setterů.
Avatar
Odpovídá na David Čápka
Luboš Běhounek (Satik):

Jak moc spravne to musi byt? :)
Řádků: pocitaji se prazdne radky?
Samohlásek: pocitaji se s hackem, carkou, krouzkem?
Slov: jsou slova vzdy oddelena mezerou? muze se prazdny radek pocitat jako slovo?
Emailových adres: budou vsechny zavinace v dokumentu soucasti emailovych adres?
Palindromů: pocita se diakritika?

Nahoru Odpovědět 28.5.2013 1:32
:)
Avatar
matesax
Redaktor
Avatar
 
Nahoru Odpovědět 28.5.2013 5:53
Avatar
matesax
Redaktor
Avatar
 
Nahoru Odpovědět 28.5.2013 6:17
Avatar
matesax
Redaktor
Avatar
matesax:

459 a nevěřím, že to jde míň... :)

 
Nahoru Odpovědět 28.5.2013 7:17
Avatar
matesax
Redaktor
Avatar
Avatar
matesax
Redaktor
Avatar
Odpovídá na matesax
matesax:

Asi ne - tak bez něj to dá jen 478. :(

 
Nahoru Odpovědět 28.5.2013 15:25
Avatar
matesax
Redaktor
Avatar
matesax:

465 - má to někdo méně? :)

 
Nahoru Odpovědět 28.5.2013 17:27
Avatar
tygr.p
Člen
Avatar
tygr.p:

Také bych se připojil k otázkám Satika :)

Chtěl bych se zeptat na ty samohlásky...

Jaké samohlásky to má počítat? Já znám A E I O U Á É Í Ó Ú AU EU OU

 
Nahoru Odpovědět 28.5.2013 21:49
Avatar
tygr.p
Člen
Avatar
tygr.p:

Zatim jsem se dostal na 557 a za boha to víc dolu nejde :D

 
Nahoru Odpovědět 29.5.2013 0:01
Avatar
matesax
Redaktor
Avatar
Odpovídá na tygr.p
matesax:

Jako veškeré patterny (obecné schéma) a forma výstupního textu by měla být zadaná - to jinak udělat nejde...

Editováno 29.5.2013 6:06
 
Nahoru Odpovědět 29.5.2013 6:05
Avatar
matesax
Redaktor
Avatar
matesax:

http://www.interact-sw.co.uk/…ressiontrees

Func je dokonce ve 3.0? Tak to bude kruté... :)

 
Nahoru Odpovědět 29.5.2013 6:38
Avatar
David Čápka
Tým ITnetwork
Avatar
Odpovídá na Luboš Běhounek (Satik)
David Čápka:

To je otázek :D Kdybych někoho přehlédl, ptejte se prosím znovu.

Řádků: pocitaji se prazdne radky? - ano
Samohlásek: pocitaji se s hackem, carkou, krouzkem? - ano
Slov: jsou slova vzdy oddelena mezerou? - počítej i s čárkou, tečkou nebo vykřičníkem.
Muze se prazdny radek pocitat jako slovo? - ne
Emailových adres: budou vsechny zavinace v dokumentu soucasti emailovych adres? - ne
Palindromů: pocita se diakritika? - Ano, např. "nezařazen"

Víte co? Já vám ten ukázkový text během dneška dodám, ať si to odladíte :)

Nahoru Odpovědět 29.5.2013 9:06
Miluji svou práci a zdejší komunitu, baví mě se rozvíjet, děkuji každému členovi za to, že zde působí.
Avatar
David Čápka
Tým ITnetwork
Avatar
Odpovídá na Michael Olšavský
David Čápka:

Počítá, každá statistika je nezávislá.

Nahoru Odpovědět 29.5.2013 9:07
Miluji svou práci a zdejší komunitu, baví mě se rozvíjet, děkuji každému členovi za to, že zde působí.
Avatar
matesax
Redaktor
Avatar
Odpovídá na David Čápka
matesax:

A výstupní text se počítá? Protože pokud ano, vyházím \n a přeformuluji to... :)

 
Nahoru Odpovědět 29.5.2013 16:43
Avatar
tygr.p
Člen
Avatar
tygr.p:

Podle mě by hlavně výstupní text měl vypadat tak jako ten příklad nahoře :)

 
Nahoru Odpovědět  +1 29.5.2013 16:56
Avatar
matesax
Redaktor
Avatar
matesax:

444 - někdo méně? :)

 
Nahoru Odpovědět 30.5.2013 8:32
Avatar
David Čápka
Tým ITnetwork
Avatar
David Čápka:

Abychom se shodli na tom, zda aplikace funguje korektně, zde je text, na kterém ji budu zkoušet:

Text slouží k vyzkoušení už asi 30. soutěže
v programování, která se zaměřuje na počítání
slov v textu, samohlásek a znaků! Dále zde
naleznete příklady palindromů, jako je třeba
děd, rotor, madam a radar. Zajímavé palindromy
jsou nepochopen a nezařazen, že? Kdybychom
rozříšili definici palindromu, je palindromická
věta třeba: "Ne debile, doma má má máma modely
beden". Takové věty ale rozeznávat nemusíte.
Posledním prvkem jsou emailové adresy, jako třeba
tomas.marny@neznam.cz nebo info@web.cz. Nenechte
se v textu zmást znaky jako @!

Statistiky nemám, jelikož jsem sám program neimplementoval, ale bude bohatě stačit, když se tu spolu dohodnete na výsledku, co vyjde více lidem a bude dávat smysl :)

A pro úplnost dodávám, že nestačí, když výsledný program bude umět vypsat údaje jen přesně o tomto textu :D

Nahoru Odpovědět  +1 30.5.2013 11:41
Miluji svou práci a zdejší komunitu, baví mě se rozvíjet, děkuji každému členovi za to, že zde působí.
Avatar
Sc077y
Redaktor
Avatar
Odpovídá na David Čápka
Sc077y:

Soutěže se sice neúčastním, ale chtěl bych podotknout, že by bylo dobré odpovědět na otázku matesaxe, zda se počítá výstupní text a ujasnit jak má vypadat výstup programu, aby nakonec o výherci nerozhodovalo to, jak hodně, omlouvám se za ten výraz, zprasil výstup programu.

 
Nahoru Odpovědět 30.5.2013 11:54
Avatar
David Čápka
Tým ITnetwork
Avatar
Odpovídá na Sc077y
David Čápka:

Jak má vypadat výstup programu je v zadání. Počítá se délka celého zdrojového kódu, jak je v zadání.

Editováno 30.5.2013 13:40
Nahoru Odpovědět 30.5.2013 13:40
Miluji svou práci a zdejší komunitu, baví mě se rozvíjet, děkuji každému členovi za to, že zde působí.
Avatar
matesax
Redaktor
Avatar
Odpovídá na David Čápka
matesax:

A mezery se počítají také? 444 mám s mezerami - třeba mezi var a názvem proměnné... Jinak mám 428 znaků... Kolik si tedy mám počítat? :) Nějak si pořád nejsem jist, jaké hodnoty jsou správné - mohl by jsi tedy poslat i korektní výsledky? Děkuji.

 
Nahoru Odpovědět 30.5.2013 16:19
Avatar
David Čápka
Tým ITnetwork
Avatar
Odpovídá na matesax
David Čápka:

Počítají se i mezery. Jak jsem psal, hodnoty naměřené nemám, hoď sem kolik ti to vypsalo a někdo to buď potvrdí nebo vyvrátí.

Nahoru Odpovědět 30.5.2013 16:51
Miluji svou práci a zdejší komunitu, baví mě se rozvíjet, děkuji každému členovi za to, že zde působí.
Avatar
matesax
Redaktor
Avatar
Odpovídá na David Čápka
matesax:

Nebyl by alespoň online nástroj na palindromy? (Nechci si moc posouvat historii - abych mohl přecházet mezi verzemi... :) )

 
Nahoru Odpovědět 30.5.2013 16:55
Avatar
tygr.p
Člen
Avatar
tygr.p:

Počítají se písmena jako palindromy? o_O

 
Nahoru Odpovědět 30.5.2013 20:26
Avatar
Petr Nymsa
Redaktor
Avatar
Odpovídá na tygr.p
Petr Nymsa:

ne musí to být minimálně slovo o 3 znacích (podle mě) takže třeba kuk,sus,cuc

Nahoru Odpovědět 30.5.2013 20:29
Pokrok nezastavíš, neusni a jdi s ním vpřed
Avatar
David Čápka
Tým ITnetwork
Avatar
Nahoru Odpovědět 30.5.2013 20:29
Miluji svou práci a zdejší komunitu, baví mě se rozvíjet, děkuji každému členovi za to, že zde působí.
Avatar
tygr.p
Člen
Avatar
tygr.p:

Sem si to myslel :o

 
Nahoru Odpovědět 30.5.2013 22:01
Avatar
matesax
Redaktor
Avatar
matesax:

Máte někdo méně, než 442? :)

 
Nahoru Odpovědět 30.5.2013 22:10
Avatar
matesax
Redaktor
Avatar
Odpovídá na Petr Nymsa
matesax:

Ty znáš slovo o dvou znacích invertně similérní? (Vyjíma citoslovce.)

 
Nahoru Odpovědět 31.5.2013 5:54
Avatar
matesax
Redaktor
Avatar
 
Nahoru Odpovědět 31.5.2013 6:13
Avatar
David Čápka
Tým ITnetwork
Avatar
Odpovídá na matesax
David Čápka:

Obávám se, že nerozumím otázce. Text ber jako slovo. Zadání mi připadá jasné, vlastně nechápu jak se k němu dá vymyslet tolik otázek.

Nahoru Odpovědět 31.5.2013 9:02
Miluji svou práci a zdejší komunitu, baví mě se rozvíjet, děkuji každému členovi za to, že zde působí.
Avatar
Kit
Redaktor
Avatar
Odpovídá na matesax
Kit:

Několik takových slov znám. A nejsou to citoslovce.

Nahoru Odpovědět 31.5.2013 10:17
Vlastnosti objektů by neměly být veřejné. A to ani prostřednictvím getterů/setterů.
Avatar
matesax
Redaktor
Avatar
Odpovídá na David Čápka
matesax:

Text == texT?

Nic, nic - blbost - neřeš... :)

Editováno 31.5.2013 13:52
 
Nahoru Odpovědět 31.5.2013 13:50
Avatar
tygr.p
Člen
Avatar
tygr.p:

Správný výstup bych viděl nějak takto...

Řádků: 12
Samohlásek: 170 //Nepočítáno ou au eu...
Slov: 84
Číslic: 2
Emailových adres: 2
Palindromů: 6

 
Nahoru Odpovědět 31.5.2013 15:37
Avatar
matesax
Redaktor
Avatar
Odpovídá na tygr.p
matesax:

Samohlásek mi vychází 166, ale hlavně slov jen 76. Emaily, @! (či co to tam je) atd. nejsou slova, jen části obsahující znaky s ASCII mezi A-ž...

 
Nahoru Odpovědět 31.5.2013 15:41
Avatar
matesax
Redaktor
Avatar
matesax:

Tak se omlouvám - prostudoval jsem si wiki:

Podle patternu [aeiouáíýyůěé]|ou mi samohlásek vychází 185 po odečtení 5ti ou 180.

http://cs.wikipedia.org/…ohl%C3%A1sky

A dle definice slova by tam mělo být 79 slov.

Editováno 1.6.2013 6:38
 
Nahoru Odpovědět 1.6.2013 6:36
Avatar
David Čápka
Tým ITnetwork
Avatar
David Čápka:

Zde s nejkratším kódem vítězí matesax, který se dostal pod 500 znaků, když bych z kódu odstranil mezery. Prosím o adresu x do PM.

Nahoru Odpovědět 2.6.2013 15:35
Miluji svou práci a zdejší komunitu, baví mě se rozvíjet, děkuji každému členovi za to, že zde působí.
Avatar
Libor Šimo (libcosenior):

Gratulujem matesax-ovi. :)

Nahoru Odpovědět 2.6.2013 17:00
Aj tisícmíľová cesta musí začať jednoduchým krokom.
Avatar
David Dostal
Redaktor
Avatar
Odpovídá na matesax
David Dostal:

Také gratuluji. 442 znaků je opravdu málo. Nechceš sem hodit zdroják? Zkoušel jsem si pro sebe udělat detekci palindromů a zajímalo by mě, jestli jsi to řešil obdobně.

 
Nahoru Odpovědět 2.6.2013 18:37
Avatar
matesax
Redaktor
Avatar
Odpovídá na David Dostal
matesax:

Poslat mohu všechny verze, co si pamatuji. Bohužel ta která splňovala podmínky soutěže nejvíce, měla jen 490 znaků, nebo tak nějak... Protože jsem nepočítal s několika faktory - samohlásky se nedají obejít - jen vypsat, počet řádků se musí brát ze Split - ne z Matches - tak jsem musel přidat začátek - ^ atd. Tudíž nejmenší funkční verze:

using System.Text.RegularExpressions;
using System.Linq;

class M
{
        static void Main(string[]a)
        {
                var s=Regex.Replace(System.IO.File.ReadAllText(a[0]),"[!-/]|ch| @","");

                foreach(string b in s.Split(' ','\n'))
                        s+=(b.Length>1&&b.SequenceEqual(b.Reverse()))?'-':'>';

                foreach(string o in @"Lines/^|\n;Vowels/ou|[aeiouáíýyůěé];Words/-|>;Digits/\d;Emails/\S@;Palindromes/-".Split(';'))
                {
                        var c=o.Split('/');
                        System.Console.Write(c[0]+':'+Regex.Matches(s,c[1]).Count+'\n');
                }
        }
}

439:

using System.Text.RegularExpressions;using System.Linq;using System;class M{static void Main(string[]a){var s=System.IO.File.ReadAllText(a[0]);foreach(string b in s.Split(null))if (b.All(i=>i>43))s+=b.SequenceEqual(b.Reverse())?'-':'>';foreach(string o in @"Řádků/^|\n;Samohlásek/[aeiouáíů];Slov/-|>;Číslic/\d;Emailových adres/\S@;Palindromů/-".Split(';')){var c=o.Split('/');Console.Write("{0}:{1}\n",c[0],Regex.Matches(s,c[1]).Count);};}}
Editováno 2.6.2013 18:54
 
Nahoru Odpovědět  +2 2.6.2013 18:51
Avatar
David Dostal
Redaktor
Avatar
Odpovídá na matesax
David Dostal:

Díky. Já jsem palindromy měl takto:

Regex palindrom = new Regex(@"\b(?<a>\w)+\w?(?<-a>\k<a>)+(?(a)(?!))\b");

(nešlo mi o počet znaků)

Editováno 2.6.2013 19:04
 
Nahoru Odpovědět 2.6.2013 19:03
Avatar
Petr Nymsa
Redaktor
Avatar
Odpovídá na David Dostal
Petr Nymsa:

Hoši, nechcete něco napsat o Regexu ? :)

Nahoru Odpovědět 2.6.2013 19:18
Pokrok nezastavíš, neusni a jdi s ním vpřed
Avatar
David Dostal
Redaktor
Avatar
Odpovídá na Petr Nymsa
David Dostal:

Před prázdninami asi ne, jinak by to neměl být problém. Kdyžtak se připomeň.

 
Nahoru Odpovědět 2.6.2013 19:21
Avatar
johny4300
Člen
Avatar
johny4300:

Hele, když už je konec soutěže může mi někdo říct jaký je regulární výraz pro palindrom?

 
Nahoru Odpovědět 3.6.2013 19:53
Avatar
Odpovídá na matesax
Luboš Běhounek (Satik):

jeste by se to dalo trosku zkratit vyhozenim string[]a

Nahoru Odpovědět 3.6.2013 20:05
:)
Avatar
matesax
Redaktor
Avatar
Odpovídá na Luboš Běhounek (Satik)
matesax:

A jak bych načetl soubor pro parsování??? :)

 
Nahoru Odpovědět 3.6.2013 20:07
Avatar
matesax
Redaktor
Avatar
Odpovídá na johny4300
matesax:

Žádný - nebo mi to alespoň přijde nereálné - já to udělal přes LINQ:

b.Length>1&&b.SequenceEqual(b.Reverse())

Zdroják jsem poslal - proč si jej neprohlédneš?

 
Nahoru Odpovědět 3.6.2013 20:09
Avatar
Odpovídá na matesax
Michal Žůrek (misaz):

Když jsme zkoušel taky jsem použil toto.

Jenomže proti tobě jsem neměl šanci.

Nahoru Odpovědět 3.6.2013 20:14
Nesnáším {}, proto se jim vyhýbám.
Avatar
Odpovídá na matesax
Luboš Běhounek (Satik):

Zadat ho napevno, usetril bys 4 znaky (v zadani bylo vstup.txt) :D

Editováno 3.6.2013 20:44
Nahoru Odpovědět  +1 3.6.2013 20:43
:)
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 112 zpráv z 112.