NOVINKA - Online rekvalifikační kurz Python programátor. Oblíbená a studenty ověřená rekvalifikace - nyní i online.
Hledáme nové posily do ITnetwork týmu. Podívej se na volné pozice a přidej se do nejagilnější firmy na trhu - Více informací.

Diskuze: Machr na Algoritmy - Skloňování jmen

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:19.8.2013 18:30

Ahoj programátoři, v týdenní minisoutěži o placku a nálepky si zkusíme naprogramovat české skloňování. Neděste se, nebude to tak složité, jak to zní. Jedná se totiž o skloňování pouze jmen a do 5. pádu. Jelikož je tentokrát spolu s programováním nutné nahlédnout i do pravidel českého pravopisu (což většina ajťáků dělá asi nerada :D), říkali jsme si s Davidem, že k placce přidáme ještě některé z těchto plných her: Dead Space, Crysis 2 Maximum Edition, Medal of Honor, Mirror's Edge. Funkčnost je to jistě zajímavá, představte si, že vaše aplikace česky pozdraví svého uživatele. Nemusí to být dokonalé, uvidíme, jak to půjde. :)

Je možné získat alternativní placku (např. pro C#, Javu nebo PHP).

Čas si dejme do neděle 25.8. do 18:00.

Odpovědět
19.8.2013 18:30
New kid back on the block with a R.I.P
Avatar
Jan Vargovský
Tvůrce
Avatar
Jan Vargovský:19.8.2013 18:33

Někdo objevil hundle bundle co ? :P

 
Nahoru Odpovědět
19.8.2013 18:33
Avatar
Odpovídá na David Hartinger
Michal Žůrek - misaz:19.8.2013 18:34

můj počítač ty hry asi nezvládne

 
Nahoru Odpovědět
19.8.2013 18:34
Avatar
David Hartinger
Vlastník
Avatar
Nahoru Odpovědět
19.8.2013 18:36
New kid back on the block with a R.I.P
Avatar
Honza Bittner
Tvůrce
Avatar
Odpovídá na David Hartinger
Honza Bittner:19.8.2013 18:40

Humble indie bundle ;)

Nahoru Odpovědět
19.8.2013 18:40
FIT ČVUT alumnus :-) Sleduj mě na https://twitter.com/tenhobi a ptej se na cokoli na https://github.com/tenhobi/ama.
Avatar
David Jančík
Vlastník
Avatar
Odpovídá na Jan Vargovský
David Jančík:19.8.2013 18:40

Jsem to koupil kvůli ségře několikrát nějaký to Sims s kamarádkama chce hrát a teď nevím co s těma ostatníma hrama. Nejni to že bych to chtěl nějak zneužívat. Ale pokavad s tím bude mít někdo nějaký problém, tak prostě nic nedostane :P mě je to celkem jedno :)

Nahoru Odpovědět
19.8.2013 18:40
Zapomeň, že je to nemožné a udělej to ;)
Avatar
Odpovídá na David Hartinger
Michal Žůrek - misaz:19.8.2013 18:40

dá se ten algoritmus napsat na 10 řádků s jednou podmínkou?

 
Nahoru Odpovědět
19.8.2013 18:40
Avatar
David Jančík
Vlastník
Avatar
Odpovídá na Michal Žůrek - misaz
David Jančík:19.8.2013 18:42

Nope je to docela komplexní :) Musíš použít slovník českých jmen páč tam jsou vyjímky. A pak to dělat dle koncovek - zjistíš vzor a podle toho skloňuješ. Zdá se to jednoduché ale fakt to nejni tak jednoduché, jsem s tím trápil naši češtinářku :D

Nahoru Odpovědět
19.8.2013 18:42
Zapomeň, že je to nemožné a udělej to ;)
Avatar
David Hartinger
Vlastník
Avatar
Odpovídá na Michal Žůrek - misaz
David Hartinger:19.8.2013 18:44

Tak to asi nedá, je to hlavně podle koncovek.

Nahoru Odpovědět
19.8.2013 18:44
New kid back on the block with a R.I.P
Avatar
David Hartinger
Vlastník
Avatar
Odpovídá na David Jančík
David Hartinger:19.8.2013 18:45

Na výjimky bych se vykašlal, funkční verze podle koncovek bohatě stačí :)

Nahoru Odpovědět
19.8.2013 18:45
New kid back on the block with a R.I.P
Avatar
Honza Bittner
Tvůrce
Avatar
Odpovídá na David Hartinger
Honza Bittner:19.8.2013 18:50

proč nemůžeme naprogramovat anglické skloňování ? :`

Nahoru Odpovědět
19.8.2013 18:50
FIT ČVUT alumnus :-) Sleduj mě na https://twitter.com/tenhobi a ptej se na cokoli na https://github.com/tenhobi/ama.
Avatar
Odpovídá na Honza Bittner
Michal Žůrek - misaz:19.8.2013 18:54

můžeme ale veliký potlesk a placku za něj nesklidíš.

 
Nahoru Odpovědět
19.8.2013 18:54
Avatar
David Jančík
Vlastník
Avatar
Odpovídá na Honza Bittner
David Jančík:19.8.2013 18:55

Páč to by se dalo hodnotit snad jenom to, kdo dokáže "Hello Devbook" napsat ve více programovacích jazycích o.O A to by vyhrál Kit a nic byste s toho neměli :D

Nahoru Odpovědět
19.8.2013 18:55
Zapomeň, že je to nemožné a udělej to ;)
Avatar
Honza Bittner
Tvůrce
Avatar
Honza Bittner:19.8.2013 19:04

Asi nebude vadit když to udělám v jQuery, že ? :)

Nahoru Odpovědět
19.8.2013 19:04
FIT ČVUT alumnus :-) Sleduj mě na https://twitter.com/tenhobi a ptej se na cokoli na https://github.com/tenhobi/ama.
Avatar
Odpovídá na Honza Bittner
Michal Žůrek - misaz:19.8.2013 19:07

ale pak si asi budeš muset vzít placku webdesign. Teda pokud není nějaká nová placka.

 
Nahoru Odpovědět
19.8.2013 19:07
Avatar
David Jančík
Vlastník
Avatar
Odpovídá na Honza Bittner
David Jančík:19.8.2013 19:09

Je to uplně jedno co použiješ :) Jde o ten algoritmus.

Nahoru Odpovědět
19.8.2013 19:09
Zapomeň, že je to nemožné a udělej to ;)
Avatar
Ondrca
Tvůrce
Avatar
Odpovídá na David Hartinger
Ondrca:19.8.2013 19:38

Jak je to s vyjimkami?
Jmeno Zdenek?

Nahoru Odpovědět
19.8.2013 19:38
Zase jsem o něco chytřejší
Avatar
Kit
Tvůrce
Avatar
Odpovídá na Ondrca
Kit:19.8.2013 19:43

... a nyní přichází na řadu Pravidla českého pravopisu :)

Nahoru Odpovědět
19.8.2013 19:43
Vlastnosti objektů by neměly být veřejné. A to ani prostřednictvím getterů/setterů.
Avatar
matyaspoko
Člen
Avatar
matyaspoko:19.8.2013 19:48

Použitím ToCharArray() v C# a dvou switchu to celkem jde

 
Nahoru Odpovědět
19.8.2013 19:48
Avatar
David Hartinger
Vlastník
Avatar
Odpovídá na Kit
David Hartinger:19.8.2013 19:49

Tak jsem tu knihu poprvé v životě otevřel a asi ji hned odnesu do sběru, nenašel jsem to tam :D

Nahoru Odpovědět
19.8.2013 19:49
New kid back on the block with a R.I.P
Avatar
Kit
Tvůrce
Avatar
Odpovídá na David Hartinger
Kit:19.8.2013 19:53

Nemusí být jen ta papírová. V téhle to je:
http://prirucka.ujc.cas.cz/?…

Nahoru Odpovědět
19.8.2013 19:53
Vlastnosti objektů by neměly být veřejné. A to ani prostřednictvím getterů/setterů.
Avatar
David Hartinger
Vlastník
Avatar
Odpovídá na Kit
David Hartinger:19.8.2013 19:57

No to je hrůza :D Mohlo by se zkusit jen rozpoznat podle koncovky vzoru (http://www.uni-regensburg.de/…content.html), třeba by to nějak fungovalo. Vylepšovat se potom dá vždycky, občas se něco vypustí nebo podobně.

Nahoru Odpovědět
19.8.2013 19:57
New kid back on the block with a R.I.P
Avatar
Kit
Tvůrce
Avatar
Odpovídá na David Hartinger
Kit:19.8.2013 20:04

Však je to tam popsáno precizně. Kromě toho vyšší autorita na pravidla českého pravopisu už není.

Nahoru Odpovědět
19.8.2013 20:04
Vlastnosti objektů by neměly být veřejné. A to ani prostřednictvím getterů/setterů.
Avatar
David Hartinger
Vlastník
Avatar
Odpovídá na Kit
David Hartinger:19.8.2013 20:06

Jo, ten web co jsi postnul je dobrý, určitě by to podle toho šlo, mají tam všechno potřebné. Pro potřeby soutěže by to stačilo jen ořezat na základní vzory, aby to fungovalo alespoň ve většině případů. Jsem zvědavý, jestli se to někomu podaří :)

Nahoru Odpovědět
19.8.2013 20:06
New kid back on the block with a R.I.P
Avatar
Ondrca
Tvůrce
Avatar
Odpovídá na David Hartinger
Ondrca:19.8.2013 20:06

<q>Na vyjimky bych se vykaslal funkci verze podle koncovek bohate staci.</q>
A co to teda je za vyjimky? :-)

Nahoru Odpovědět
19.8.2013 20:06
Zase jsem o něco chytřejší
Avatar
Kit
Tvůrce
Avatar
Odpovídá na David Hartinger
Kit:19.8.2013 20:08

Občas ten web používám, když si nejsem jist svým pravopisem a občas se i divím. Samozřejmě mají vždy pravdu :)

Nahoru Odpovědět
19.8.2013 20:08
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 Ondrca
Kit:19.8.2013 20:10

Ty přece nevíš, na jakých jménech se bude testovat tvůj program. Kdo bude mít nejméně chyb, vyhrává.

Nahoru Odpovědět
19.8.2013 20:10
Vlastnosti objektů by neměly být veřejné. A to ani prostřednictvím getterů/setterů.
Avatar
Neaktivní uživatel:19.8.2013 20:28

Na algoritmy jsem vážně příšerný. :D Ve všech z mých návrhů potřebuju minimálně 2.pád nebo rod a vzor. :D No nic, budu zkoušet dál...

Nahoru Odpovědět
19.8.2013 20:28
Neaktivní uživatelský účet
Avatar
David Hartinger
Vlastník
Avatar
David Hartinger:19.8.2013 20:34

Tady jsme našli fungující ukázku do všech pádů i se zdrojákem, ale je to docela šílenost. Jen na zjednodušený 5. pád by to však nemuselo být tak složité. http://www.pteryx.net/sklonovani.html

Nahoru Odpovědět
19.8.2013 20:34
New kid back on the block with a R.I.P
Avatar
Kit
Tvůrce
Avatar
Odpovídá na David Hartinger
Kit:19.8.2013 20:38

Nezvládá to třeba jméno "Franta".

Nahoru Odpovědět
19.8.2013 20:38
Vlastnosti objektů by neměly být veřejné. A to ani prostřednictvím getterů/setterů.
Avatar
David Hartinger
Vlastník
Avatar
Odpovídá na Kit
David Hartinger:19.8.2013 20:39

Mně to napíše Franto, dokonce to umí i Kity.

Nahoru Odpovědět
19.8.2013 20:39
New kid back on the block with a R.I.P
Avatar
Kit
Tvůrce
Avatar
Odpovídá na David Hartinger
Kit:19.8.2013 20:43

5. pád ano, ale třeba 3. a 6. pád Franty je mimo.

No vidíš, přitom spousta lidí nezvládá můj nick skloňovat a počítač to svede :)

Nahoru Odpovědět
19.8.2013 20:43
Vlastnosti objektů by neměly být veřejné. A to ani prostřednictvím getterů/setterů.
Avatar
Jan Vargovský
Tvůrce
Avatar
Odpovídá na David Hartinger
Jan Vargovský:19.8.2013 20:43

To sice jo, ale bere to jako ženský tvar.

EDIT: Áha, fakt bych měl někdy oprášit český jazyk :`

Editováno 19.8.2013 20:44
 
Nahoru Odpovědět
19.8.2013 20:43
Avatar
Odpovídá na Kit
Michal Žůrek - misaz:19.8.2013 20:50

tebe jsem vyskloňoval bez problému.

 
Nahoru Odpovědět
19.8.2013 20:50
Avatar
Ondrca
Tvůrce
Avatar
Odpovídá na Kit
Ondrca:19.8.2013 21:09

No jo - to je pravda, ale také závisí na algorytmech a přehlednosti kódu :).

Editováno 19.8.2013 21:12
Nahoru Odpovědět
19.8.2013 21:09
Zase jsem o něco chytřejší
Avatar
David Jančík
Vlastník
Avatar
David Jančík:19.8.2013 21:52

Málem sem se pos*** have a fun: http://test.sczdavos.eu/Sklonovani.php

Nahoru Odpovědět
19.8.2013 21:52
Zapomeň, že je to nemožné a udělej to ;)
Avatar
David Hynek
Tvůrce
Avatar
David Hynek:19.8.2013 22:07

Už jsem sem dlouho nic nedal...

přidávám i já kousek, k dokonalosti to má daleko, ale jména z kalendáře by to stačit mělo :)

<?php
session_start();
header('Content-type: text/html; charset=utf-8');
mb_internal_encoding("UTF-8");

class Jmeno
{
  private $jmeno1p;
  private $jmeno5p;


  function __construct($vstup)
  {
    $this->jmeno1p = trim($vstup);
    $this->jmeno5p = $this->zavolejJmeno();
  }

  private function zmena($s,$a,$w)
  {
    if($a != 0) return mb_substr($s,0,($a*-1)).$w;
    if($a == 0) return $s.$w;
  }

  private function zavolejJmeno()
  {
  $kon = mb_substr($this->jmeno1p,(mb_strlen($this->jmeno1p)-3),3);
    if(in_array($kon, array("tek"))) return $this->zmena($this->jmeno1p,3,"tku");
    if(in_array($kon, array("něk","nek"))) return $this->zmena($this->jmeno1p,3,"nku");
    if(in_array($kon, array("šek"))) return $this->zmena($this->jmeno1p,3,"šku");
  $ko = mb_substr($this->jmeno1p,(mb_strlen($this->jmeno1p)-2),2);
    if(in_array($ko, array("am","an","id","rt","ín","in","or","án","rd","ír","av","er","on","ém","nt","ít","ip","lf","im","ar","op","ub","ym","al","of","il","ef"))) return $this->zmena($this->jmeno1p,0,"e");
    if(in_array($ko, array("la","na","ta","ra","ea","ka","sa","da","ma","va","ia","za"))) return $this->zmena($this->jmeno1p,1,"o");
    if(in_array($ko, array("eš","ex","ej","is","el","áš","as","ěj","uš","ax","oš"))) return $this->zmena($this->jmeno1p,0,"i");
    if(in_array($ko, array("ie","ce","en","er","ly","ří"))) return $this->jmeno1p;
    if(in_array($ko, array("ik","ch"))) return $this->zmena($this->jmeno1p,0,"u");
    if(in_array($ko, array("ol"))) return zmena($this->jmeno1p,0,"o");
    if(in_array($ko, array("dr"))) return $this->zmena($this->jmeno1p,1,"ře");
    if(in_array($ko, array("ek"))) return $this->zmena($this->jmeno1p,3,"ku");
    if(in_array($ko, array("tr"))) return $this->zmena($this->jmeno1p,2,"tře");
  return $this->jmeno1p;
  }

  function __toString()
  {
    return $this->jmeno5p;
  }

}

$pole = array("Monika","Gábina","Petra","Jakub","Jan","Matouš","Gauner","Svašek");

foreach($pole as $j)
{
  $jmeno = new Jmeno($j);
  echo "($j) Ahoj ".$jmeno."<br />\n";
}
?>
Nahoru Odpovědět
19.8.2013 22:07
Čím víc vím, tím víc věcí nevím.
Avatar
Kit
Tvůrce
Avatar
Odpovídá na David Jančík
Kit:19.8.2013 22:10

Docela to zvládá, ale na mém příjmení (Saels) si vylámal zuby.

Nahoru Odpovědět
19.8.2013 22:10
Vlastnosti objektů by neměly být veřejné. A to ani prostřednictvím getterů/setterů.
Avatar
TomBen
Tvůrce
Avatar
Odpovídá na David Jančík
TomBen:19.8.2013 22:12

Ze tří Krokových dcer to jednu neumí oslovit,
ale jinak dobrý. :-)

Nahoru Odpovědět
19.8.2013 22:12
Za posledních 200 miliónů let se nic zvláštního nestalo, akorát dinosauři vymřeli a opice se naučily programovat.
Avatar
Kit
Tvůrce
Avatar
Odpovídá na TomBen
Kit:19.8.2013 22:21

No jo, ani padouch Dag Badman by nebyl spokojen. A co třeba slečna Winifred? Ta asi dopadla nejhůř :)

Nahoru Odpovědět
19.8.2013 22:21
Vlastnosti objektů by neměly být veřejné. A to ani prostřednictvím getterů/setterů.
Avatar
TomBen
Tvůrce
Avatar
Odpovídá na Kit
TomBen:19.8.2013 22:38

Chudák holka, to si nezasloužila. :D

Nahoru Odpovědět
19.8.2013 22:38
Za posledních 200 miliónů let se nic zvláštního nestalo, akorát dinosauři vymřeli a opice se naučily programovat.
Avatar
TomBen
Tvůrce
Avatar
Odpovídá na Kit
TomBen:19.8.2013 22:46

Vládce Olympu Zeus by se taky podivil.. :-)
Je pravda, že toho jsem ani nečekal, že by to umělo.

Nahoru Odpovědět
19.8.2013 22:46
Za posledních 200 miliónů let se nic zvláštního nestalo, akorát dinosauři vymřeli a opice se naučily programovat.
Avatar
Kit
Tvůrce
Avatar
Odpovídá na TomBen
Kit:19.8.2013 22:58

Také bych se divil, kdyby N!xau prošel.

Nahoru Odpovědět
19.8.2013 22:58
Vlastnosti objektů by neměly být veřejné. A to ani prostřednictvím getterů/setterů.
Avatar
Jan Vargovský
Tvůrce
Avatar
Jan Vargovský:20.8.2013 1:08

Kdyby chtěl někdo testovat :D http://leteckaposta.cz/636397581

 
Nahoru Odpovědět
20.8.2013 1:08
Avatar
Kit
Tvůrce
Avatar
Odpovídá na Jan Vargovský
Kit:20.8.2013 1:16

A co s tím EXE máme dělat?

Nahoru Odpovědět
20.8.2013 1:16
Vlastnosti objektů by neměly být veřejné. A to ani prostřednictvím getterů/setterů.
Avatar
Jan Vargovský
Tvůrce
Avatar
Odpovídá na Kit
Jan Vargovský:20.8.2013 1:18

Linuxáci asi nic :)

Ale chápu, že kdybys nechtěl jen šťourat, tak jsi dost inteligentní nato, abys to otevřel :)

Editováno 20.8.2013 1:20
 
Nahoru Odpovědět
20.8.2013 1:18
Avatar
Odpovídá na Kit
Luboš Běhounek Satik:20.8.2013 1:53

Spustit.
Pokud máš nějaký minoritní systém, kde ti EXE spustit nejde, pak je to tvůj problém :)

Nahoru Odpovědět
20.8.2013 1:53
https://www.facebook.com/peasantsandcastles/
Avatar
Kit
Tvůrce
Avatar
Odpovídá na Luboš Běhounek Satik
Kit:20.8.2013 2:02

Všechno, co má příponu EXE a je neznámého původu, je potenciální malware. Takové programy nespouštím ani ve Wine. Nechápu, jak to můžou spouštět uživatelé Windows jen tak bez zábran a bez ochrany.

Nahoru Odpovědět
20.8.2013 2:02
Vlastnosti objektů by neměly být veřejné. A to ani prostřednictvím getterů/setterů.
Avatar
Odpovídá na Kit
Luboš Běhounek Satik:20.8.2013 2:03

Ne všichni jsou paranoidní.

Nahoru Odpovědět
20.8.2013 2:03
https://www.facebook.com/peasantsandcastles/
Avatar
Kit
Tvůrce
Avatar
Odpovídá na Luboš Běhounek Satik
Kit:20.8.2013 2:05

Vím, že i když budu paranoidní, stejně mě dostanou. A tebe taky.

Nahoru Odpovědět
20.8.2013 2:05
Vlastnosti objektů by neměly být veřejné. A to ani prostřednictvím getterů/setterů.
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 88.