﻿<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xml" href="/cjs/examples.screen.xsl" media="screen"?>
<examples chapter="Seznamy" directory="typy/seznamy">

    <note>
        Autorem původního zadání i řešení pro Python 2.x u příkladů 4-8 je Bedřich Košata.
    </note>

<!--
  <example>
    <text>
    </text>
    <hint>
    </hint>
    <solution src="typy/seznamy/.py" lang="python" />
  </example>
-->


  <example>
    <text>
        Vraťte součet všech prvků v seznamu zadaném jako argument funkce.
    </text>
    <hint>
        Neřešte pomocí funkce <em>sum</em> ^_~
    </hint>
    <solution src="typy/seznamy/secti.py" lang="python" />
  </example>

  <example>
    <text>
        Vypište zadaný seznam v opačném pořadí bez použití metody <em>reverse()</em>.
    </text>
    <solution src="typy/seznamy/otoc.v1.py" lang="python" />
    <solution src="typy/seznamy/otoc.v2.py" lang="python" />
  </example>

  <example>
    <text>
        Předstírejte na chvíli, že neumíte pracovat s výjimkami, a smažte ze seznamu všechny výskyty zadaného prvku.
    </text>
    <hint>
        Zde je řešení vícero. První je klasické a otrocké – prostě si zjistíme, kolikrát můžeme odstranění provést. Druhé slouží k ilustraci velkého chytáku v Python'u – iterátor smyčky <em>for-in</em> se připraví jednou na začátku a pak už se nezmění. Správné řešení pomocí (jiné) smyčky pak ukazuje řešení třetí.
    </hint>
    <solution src="typy/seznamy/promaz.py" lang="python" />
    <solution src="typy/seznamy/promaz_v2a.py" lang="python" />
    <solution src="typy/seznamy/promaz_v2b.py" lang="python" />
    <!--solution src="typy/seznamy/promaz.b.py" lang="python" /-->
  </example>

  <example>
    <text>
        Napište fukci, která bere jako první argument seznam celých čísel <em>xs</em> a jako druhý jedno celé číslo <em>y</em>. Výstupem funkce je seznam <em>ys</em> obsahující ta čísla z <em>xs</em>, která jsou větší než <em>y</em>.<br/>
        Ukázka: <code>f([1,2,3,1,2,1,2,4,6,2], 3) => [4,6]</code>
    </text>
    <solution src="typy/seznamy/01.v0.py" lang="python" />
    <solution src="typy/seznamy/01.v1.py" lang="python" />
  </example>

  <example>
    <text>
        Napište fukci, která bere jako argument seznam celých čísel <em>xs</em> a vrací seznam <em>ys</em>, ve kterém jsou odstraněny všechny duplikáty prvků v seznamu <em>xs</em>.<br/>
        Ukázka: <code>f([1,2,3,1,2,1,2,4,6,2]) => [1,2,3,4,6]</code>
    </text>
    <solution src="typy/seznamy/02.py" lang="python" />
    <solution src="typy/seznamy/02_v2.py" lang="python" />
  </example>

  <example>
    <text>
        Napište fukci, která bere jako první argument seznam celých čísel <em>xs</em> a jako druhý jedno celé číslo <em>y</em>. Výstupem funkce je seznam všech pozic prvku <em>y</em> v seznamu <em>xs</em>.<br/>
        Ukázka: <code>f([1,2,3,1,2,1,2,4,6,2], 2) => [1,4,6,9]</code><br/>
        Ukázka: <code>f([1,2,3,1,2,1,2,4,6,2], 5) => []</code>
    </text>
    <solution src="typy/seznamy/03a.py" lang="python" />
    <solution src="typy/seznamy/03b.py" lang="python" />
    <solution src="typy/seznamy/03c.py" lang="python" />
  </example>

  <example>
    <text>
        Napište fukci, která bere jako argument seznam celých čísel <em>xs</em> a vrací ten prvek, který je jako první roven svému následovníkovi. Neexistuje-li takový prvek, vrací <em>None</em>.<br/>
        Ukázka: <code>f([0,3,4,5,5,4,2,2,4]) => 5</code><br/>
        Ukázka: <code>f([0,3,4,5,4,2,4]) => None</code>
    </text>
    <solution src="typy/seznamy/04a.py" lang="python" />
    <solution src="typy/seznamy/04b.py" lang="python" />
    <solution src="typy/seznamy/04c.py" lang="python" />
  </example>

  <example>
    <text>
        Napište fukci, která bere jako argument seznam celých čísel <em>xs</em> a vrací seznam takových prvků z <em>xs</em>, které jsou rovny svým následovníkům.<br/>
        Ukázka: <code>f([0,3,4,5,5,4,2,2,4]) => [5,2]</code><br/>
        Ukázka: <code>f([0,3,4,5,4,2,4]) => []</code>
    </text>
    <solution src="typy/seznamy/05a.py" lang="python" />
    <solution src="typy/seznamy/05b.py" lang="python" />
    <solution src="typy/seznamy/05c.py" lang="python" />
  </example>


</examples>
