﻿<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xml" href="/cjs/examples.screen.xsl" media="screen"?>
<examples chapter="Čísla" directory="typy/cisla">

    <note>
        Autorem původního zadání i řešení pro Python 2.x u příkladů 1-3, 7, 8 a 10 je Bedřich Košata.
    </note>

<!--
  <example>
    <text>
    </text>
    <hint>
    </hint>
    <solution src="typy/cisla/.py" lang="python" />
  </example>
-->


  <example>
    <text>
      Vypište všechna čísla mezi 2 a 100, která jsou dělitelná buď 3 nebo 7.
    </text>
    <solution src="typy/cisla/01.py" lang="python" />
  </example>

  <example>
    <text>
      Upravte předchozí program, aby vypisoval čísla, která jsou dělitelná 3 nebo 7, ale ne oběma najednou.
    </text>
    <solution src="typy/cisla/02c.py" lang="python" />
    <solution src="typy/cisla/02a.py" lang="python" />
    <solution src="typy/cisla/02b.py" lang="python" />
  </example>

  <example>
    <text>
      Vypište všechna prvočísla mezi 2 a 100. (Použijte lepší algoritmus, než je ve slajdech :)
    </text>
    <solution src="typy/cisla/03a.py" lang="python" />
  </example>

  <example>
    <text>
      „Implementujte“ umocňování celočíselným exponentem, tj. předpokládejte, že nemáte k dispozici operaci <em>umocňování</em> <code>**</code>, ale pouze základní matematické operace <code>+-*/</code>. Zkuste to vyřešit na méně než (n-1) násobení.
    </text>
    <solution src="typy/cisla/04a.py" lang="python" />
    <solution src="typy/cisla/04b.py" lang="python" />
  </example>

  <example>
    <text>
      Spočítejte faktoriál daného čísla.
    </text>
    <solution src="typy/cisla/05.py" lang="python" />
  </example>

  <example>
    <text>
      Vypište daný počet členů Fibonacciho posloupnosti, tj. řady 1, 1, 2, 3, 5, 8...
    </text>
    <solution src="typy/cisla/06a.py" lang="python" />
    <solution src="typy/cisla/06b.py" lang="python" />
  </example>

  <example>
    <text>
      Vyřešte iterací rovnici <code>x<sup>3</sup> - x - 1 = 0</code> s rozumnou přesností.
    </text>
    <solution src="typy/cisla/07.py" lang="python" />
  </example>

  <example>
    <text>
        Vstupní řetězec jedniček a nul představující číslo ve dvojkové soustavě převeďte na číslo v soustavě desítkové.
    </text>
    <hint>
        Jde to buď pomocí vhodného výpočtu nebo si stačí projít seznam vestavěných funkcí.
    </hint>
    <solution src="typy/cisla/08.py" lang="python" />
    <solution src="typy/cisla/08b.py" lang="python" />
  </example>

  <example>
    <text>
        Doplňte předchozí skript o ověření, že vstupní řetězec je opravdu zápis čísla ve dvojkové soustavě.
    </text>
    <solution src="typy/cisla/09.py" lang="python" />
    <solution src="typy/cisla/09b.py" lang="python" />
  </example>

  <example>
    <text>
        Napište opačnou funkci – vstupní číslo v desítkové soustavě převeďte do soustavy dvojkové.
    </text>
    <hint>
      Řešení s výpočtem používá toho, že pro typ <em>int</em> fungují i binární operace. Jako takové ovšem nedokáže převádět necelá čísla. To ovšem nedokáže ale ani příslušná vestavěná funkce (druhé řešení).
    </hint>
    <solution src="typy/cisla/10.py" lang="python" />
    <solution src="typy/cisla/10b.py" lang="python" />
  </example>
  
  <example>
    <text>
        Za pomoci komplexních čísel napište tříparametrický skript, který vrátí souřadnice zadaného bodu v rovině otočené o zadaný úhel kolem počátku.
    </text>
    <solution src="typy/cisla/11.py" lang="python" />
  </example>


</examples>
