"comment":"Trivka, projít string a skippovat duplikáty",
"requires":[],
"position":[
640.2936401367188,
-213.85252380371094
-403.6249237060547,
-350.6728820800781
]
},
{
@ -1112,8 +1109,8 @@
"comment":"Sestavení stromu a vypsání cesty do kořene",
"requires":[],
"position":[
807.9862060546875,
-24.777490615844727
-1327.8906602859497,
244.3093490600586
]
},
{
@ -1124,8 +1121,8 @@
"comment":" Práce s 2d polem",
"requires":[],
"position":[
960.7762451171875,
-208.45751953125
-1148.1920623779297,
-521.2710113525391
]
},
{
@ -1136,8 +1133,8 @@
"comment":" Hledání dvou čísel s co největším rozdílem",
"requires":[],
"position":[
1047.8624877929688,
2.5687755346298218
-9.45107650756836,
388.4032596349716
]
},
{
@ -1148,8 +1145,8 @@
"comment":"Výroba palindromu",
"requires":[],
"position":[
1335.9012451171875,
-74.43122863769531
-512.0505065917969,
-285.66261291503906
]
},
{
@ -1184,8 +1181,8 @@
"comment":" Prefixové součty",
"requires":[],
"position":[
983.1099853515625,
-302.6050109863281
-1140.9943389892578,
-474.1478576660156
]
},
{
@ -1196,8 +1193,8 @@
"comment":"Provházení bludiště",
"requires":[],
"position":[
1138.3812255859375,
-378.9012451171875
-1713.9394073486328,
315.67919158935547
]
},
{
@ -1208,8 +1205,8 @@
"comment":"ProhledávánI grafu",
"requires":[],
"position":[
1306.1600341796875,
-363.9637756347656
-1414.956787109375,
298.2016830444336
]
},
{
@ -1220,8 +1217,8 @@
"comment":"Trivka, práce souřadnicemi",
"requires":[],
"position":[
1238.6287841796875,
-164.0612335205078
-1050.291244506836,
-367.55816745758057
]
},
{
@ -1282,12 +1279,14 @@
{
"id":"31-Z1-1",
"type":"open-data",
"requires":[],
"requires":[
"algoritmy"
],
"comment":"úloha s odčítáním času",
"title":"Zuzka a poník",
"position":[
1255.5751953125,
131.96621704101562
-351.18514251708984,
52.94647216796875
],
"taskReference":"31-Z1-1"
},
@ -1299,8 +1298,8 @@
"label-grafy-pracovni-poznamka"
],
"position":[
-763.1971435546875,
493.9221496582031
-1444.3232421875,
224.83528900146484
],
"taskReference":"31-Z1-2",
"title":"Ukradený jezdec"
@ -1312,8 +1311,8 @@
"comment":"průnik N intervalů (3D na kvádrech)",
"requires":[],
"position":[
978.01123046875,
-112.03751373291016
954.6195068359375,
-144.04727935791016
],
"title":"Průnik kvádrů"
},
@ -1326,8 +1325,8 @@
],
"title":"Piškvorky naslepo",
"position":[
-578.6199951171875,
278.00364685058594
-984.0560913085938,
622.9081573486328
],
"taskReference":"31-Z1-4"
},
@ -1350,8 +1349,8 @@
"comment":"2D pole (simulace tetrisu)",
"requires":[],
"position":[
1333.40625,
-291.3462677001953
-1101.829833984375,
-422.52608489990234
],
"title":"Tetris bez dozoru"
},
@ -1399,8 +1398,8 @@
"label-grafy-pracovni-poznamka"
],
"position":[
-1028.935791015625,
523.2289428710938
-1710.0618896484375,
254.14208221435547
],
"taskReference":"31-Z3-2",
"title":"Zámek obrazovky"
@ -1414,8 +1413,8 @@
"label-grafy"
],
"position":[
-899.0215454101562,
314.04736328125
-1580.1476440429688,
44.96050262451172
],
"taskReference":"31-Z3-3",
"title":"Stáda hrochů"
@ -1439,8 +1438,8 @@
"comment":"sort + průchod pole (nejosamělejší bod na přímce)",
"requires":[],
"position":[
872.5675048828125,
-481.3587646484375
-210.8751163482666,
705.6483154296875
],
"title":"Nejosamělejší kamarád"
},
@ -1754,17 +1753,32 @@
"title":"Petrův zmatený výlet"
},
{
"id":"data",
"id":"algoritmy",
"type":"text",
"comment":"...",
"requires":[
"jak-resit-ulohy"
],
"title":"Data a algoritmy",
"htmlContent":"<h2>Datové struktury</h2><p>V programech potřebujeme nějak reprezentovat data o reálném světě. Paměť počítače je ale jen dlouhá sekvence bytů (malých čísel). Abychom mohli reprezentovat něco komplikovanějšího, skládáme si v paměti <strong>datové struktury.</strong> Technicky je to akorát hromada čísel, kterým přikládáme speciální význam. Pro potřeby programátora je ale často podstatnější ten samotný speciální význam, než hodnota čísel, kterými je zapsán.</p><p>Úlohy, které najdeš dále, se všechny zabývají nějakou datovou strukturou. Jsou uspořádány s rostoucí obtížností a pro pochopení složitějších datových struktur je často potřeba mít vštípené detaily struktury předchozí.</p><h2>Algoritmy</h2><p>Datové struktury jsou nám samotné k ničemu. K jejich smysluplnému využití potřebujeme nějaký důvod. Datovou strukturou jenom reprezentujeme nějaký stav světa. Proto v úlohách najdeš krom datových struktur také využití různých algoritmů - ověřených postupů, jak řešit nějaké druhy problémů.</p>",
"title":"Algoritmy",
"htmlContent":"<h2>Algoritmy</h2><p>Každý program je vlastně popis nějakého pracovního postupu. Té samotné myšlence, oddělené od konkrétního způsobu implementace, říkáme <strong>algoritmus</strong>.</p><p>Algoritmy jsou principy, které zůstávají stejné neustále. Algoritmy vymyšlené před 50 lety jsou často stále to nejlepší, co známe. Často i to nejlepší, co je vůbec možné. Proto dává smysl zabývat se studiem samotných algoritmů. Programovací jazyky se mění. Metoda zápisu toho samého algoritmu často také. Ale základní myšlenka je pořád stejná.</p>",
"position":[
-163,
-83
-283.2298583984375,
-7.579597473144531
]
},
{
"id":"data",
"type":"text",
"comment":"...",
"requires":[
"31-Z1-1",
"29-Z1-2"
],
"title":"Datové struktury",
"htmlContent":"<p>Ruku v ruce s algoritmy jdou data. Nemít data, tak nemáme co počítat, že?</p><h2>Data v počítači</h2><p>Data, nad kterými v programu pracujeme, ukládáme do paměti. Fyzicky je pamět hodně dlouhá posloupnost jedniček a nul – bitů. To je ale nepraktické a tak bity skupinkujeme do bytů – 8 bitů aneb čísel od 0 do 255.</p><p>Takže paměť je jen hodně číslíček za sebou, jak ale tedy vznikají například obrázky, na které na monitoru koukáme? Jak vlastně můžeme reprezentovat větší čísla než 255? Jednou z možností je například zapisovat si jednotlivé cifry velkého čísla. Ještě pak potřebujeme vědět, kolik jich je, ale tuhle informaci si můžeme uložit například na začátek.</p><p>FIXME obrázek</p><p>Právě jsme si popsali, jak z jednoduchých základních kamenů, posloupnosti malých čísel, postavit něco většího. Něco, čemu vznešeně říkáme datová struktura.</p><h2>Datové struktury</h2><p>Datové struktury popisují, jak reprezentovat nějaké komplexní informace z jednodušších bloků (na nejnižší úrovni z posloupnosti čísel). Velmi blízce souvisí s algoritmy. Mnoho algoritmů by nám bez datových struktur bylo k ničemu a naopak mnoho datových struktur by nedávalo smysl bez algoritmů. My si proto budeme povídat o datových strukturách a algoritmech společně.</p><p>Úlohy, které najdeš dále, se zabývají nějakou datovou strukturou nebo algoritmem. Jsou uspořádány s rostoucí obtížností a může se stát, že pro pochopení složitějších úloh je často potřeba mít vštípené detaily struktury předchozí.</p>",
"position":[
-282.6019515991211,
121.71680343151093
]
},
{
@ -1777,8 +1791,8 @@
"title":"Jak řešit úlohy?",
"htmlContent":"",
"position":[
43,
-98
-2.4084014892578125,
-61.00055694580078
]
},
{
@ -1800,8 +1814,8 @@
"title":"Pole",
"rotationAngle":337,
"position":[
-184.5875244140625,
31.301490783691406
-220.3435287475586,
280.00611877441406
]
},
{
@ -1812,8 +1826,8 @@
"title":"2D pole",
"rotationAngle":340,
"position":[
-498.642578125,
140.9576416015625
-904.0786743164062,
485.8621520996094
]
},
{
@ -1824,8 +1838,8 @@
"title":"Grafy",
"rotationAngle":342,
"position":[
-879.3245239257812,
253.7253875732422
-1560.4506225585938,
-15.361473083496094
]
},
{
@ -1838,8 +1852,8 @@
"title":"Grafy, ale neuspořádané",
"htmlContent":"<p>undefined</p>",
"position":[
-916.2467041015625,
398.9772033691406
-1597.372802734375,
129.89034271240234
]
},
{
@ -1850,8 +1864,8 @@
"title":"Textové řetězce",
"rotationAngle":326,
"position":[
-256.3359832763672,
405.51519775390625
-523.4024200439453,
-451.524658203125
]
},
{
@ -1861,8 +1875,8 @@
"requires":[],
"title":"Úvod",
"position":[
42,
-243
-3.4084014892578125,
-206.00055694580078
]
},
{
@ -1873,8 +1887,8 @@
"title":"Želvy",
"rotationAngle":43,
"position":[
205,
407
587.7714233398438,
399.8365783691406
]
},
{
@ -1887,8 +1901,36 @@
"title":"Placeholder pro základní kurz programování",
"htmlContent":"<p>Tady by měl začítat kurz programování. Chceme ze stávajícího kurzu vybrat úlohy a dát je sem. Postupně by asi také bylo fajn to celé rozvinou do větších detailů.</p>",
"position":[
464.3114318847656,
68.15572357177734
249.0419158935547,
81.61006927490234
]
},
{
"id":"Pole",
"type":"text",
"comment":"...",
"requires":[
"data"
],
"title":"Pole",
"htmlContent":"<p>kecy</p>",
"position":[
-275.86041259765625,
333.4576416015625
]
},
{
"id":"pole-s-poradim",
"type":"text",
"comment":"...",
"requires":[
"Pole"
],
"title":"Seřazená pole",
"htmlContent":"<p>undefined</p>",
"position":[
-277.13867950439453,
602.650089263916
]
},
{
@ -1901,8 +1943,22 @@
"title":"Programování",
"htmlContent":"<p>Počítače nemluví lidskou řečí. Aspoň zatím. Pokud jim chceme vysvětlit nějaký komplikovanější problém, potřebujeme mluvit správnou řečí - nějakým <strong>programovacím jazykem.</strong></p><h2>Jaký programovací jazyk použít?</h2><p>Programovacích jazyků je více a každý se hodí na něco jiného. S roustoucími zkušenostmi se pravděpodobně naučíš přecházet mezi několika programovacími jazyky podle toho, jaký problém zrovna řešíš.</p><p>Pro řešení úloh Ti doporučujeme <strong>Python 3</strong>. Pokud se ho chceš naučit, můžeš zkusit projít kurzem, který jsme pro Tebe připravili.</p>",
"position":[
144,
2
93.54621887207031,
15.45430612564087
]
},
{
"id":"slozene-datove-struktury",
"type":"text",
"comment":"...",
"requires":[
"Pole"
],
"title":"Složené datové struktury",
"htmlContent":"<p>kecy</p>",
"position":[
-557.9161376953125,
351.5024108886719
]
},
{
@ -1915,8 +1971,8 @@
"title":"Start",
"htmlContent":"<p>Aktuálně je celý projekt v <strong>BETA režimu</strong>. Pokud najdeš libovolnou chybu nebo pokud Tě napadá, že by se dalo cokoliv vylepšit (a ideálně jak), dej prosím vědět Vaškovi a Standovi. Díky!</p><h2>Vítej v našem novém kurzu!</h2><p>Pokud tě napadá, jak by se tento <strong>projekt mohl jmenovat</strong>, dej nám vědět!</p><h3>Co zde (časem) najdeš?</h3><ul><li>Základní kurz programování (dříve byl samostatně)</li><li>Roztříděné úlohy ze starších ročníků a sérií</li><li>Staré seriály</li><li>…a další úlohy, které jsme odněkud vyhrabali nebo nově vyrobili</li></ul><h3>Co budu mít z toho, že budu úlohy zde řešit?</h3><p>Něco se můžeš naučit a z toho můžeš mít dobrý pocit. Nic jiného teď neslibujeme. Splnit zde úlohu je to samé jako splnit ji ve cvičišti. Navíc ono k úlohám jsou většinou přístupná vzorová řešení, takže soutěžit zde nedává moc smysl.</p><p>Ohledně vzorových řešení – je čistě na Tobě, zda budeš úlohy řešit poctivě, nebo jestli si budeš číst řešení před tím, než vymyslíš něco vlastního. Zabránit Ti v tom nedokážeme a ani nechceme. Pokud se chceš něco naučit, nebo si něco procvičit, tak doporučujeme vzorová řešení otevírat až po vlastním řešení, případně když se zasekneš. Získáš tak z kurzu nejvíce.</p>",