<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>Úvod do programování 1</title>
<link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.4.1/css/bootstrap.min.css" integrity="sha384-Vkoo8x4CGsO3+Hhxv8T/Q5PaXtkKtu6ug5TOeNV6gBiFeWPGFN9MuhOf23Q9Ifjh" crossorigin="anonymous">
.card-header.optional h2:before {
.card-body, button, input {
font-size: 13px !important;
border: 1px solid rgba(0,0,0,.125);
input[type="text"], input[type="number"] {
display: inline-block !important;
input[type="checkbox"], input[type="radio"]
#collapseExercise1 input, #collapseExercise8 input[type="number"], #collapseExercise9 input[type="number"], #collapseExercise10 input[type="number"] {
#collapseExercise2 button {
border: 1px solid #000000;
border: 1px solid #007BFF;
width: calc(100% - 40px);
border: 1px solid #ff4f4f;
<h1>Úvod do programování 1</h1>
<div class="accordion" id="exercises">
<div class="card-header" id="exercise14" data-toggle="collapse" data-target="#collapseExercise14" aria-expanded="true" aria-controls="collapseExercise14">
Příklad 14 – While cyklus
<div id="collapseExercise14" class="collapse" aria-labelledby="exercise16" data-parent="#exercises">
<p><strong>Zadání:</strong> Uživatel do připraveného políčka zadá celé číslo od 1 do 20. Nech počítač hádat toto číslo.
Spočítej, kolik pokusů na uhodnutí potřeboval. Výsledek ulož do proměnné <code>pocetPokusu</code>.</p>
<input type="number" class="form-control" id="exercise14number" min="1" max="20" />
<button class="btn btn-primary mb-2" id="submit14">Hádej!</button>
<div id="error14" class="error hidden">Číslo není celé číslo v rozsahu 1 až 20!</div>
<p>Počet pokusů: <span class="result" id="result14"> </span></p>
<div class="icon">?</div>
Kód pro hádání čísel už jsme napsali. Nový tip od počítače získáš takto:
<p><pre>int tip = Hadej();</pre></p>
Hádání je velmi jednoduché a vlastně hloupé. Počítač jen náhodně generuje číslo od 1 do 20 a klidně se může stát,
že bude opakovaně hádat stejné číslo. Nepamatuje si totiž, co už zkoušel.
<div class="clear"></div>
<div class="card-header" id="exercise15" data-toggle="collapse" data-target="#collapseExercise15" aria-expanded="true" aria-controls="collapseExercise15">
Příklad 15 – While cyklus
<div id="collapseExercise15" class="collapse" aria-labelledby="exercise15" data-parent="#exercises">
<p><strong>Zadání:</strong> Uživatel do připraveného políčka zadá kladné celé číslo.
Spočítej součet všech kladných celých čísel menších než zadané číslo. Výsledek ulož do proměnné <code>vysledek</code>.</p>
<input type="number" class="form-control" id="exercise15number" min="1" />
<button class="btn btn-primary mb-2" id="submit15">Spočítej!</button>
<div id="error15" class="error hidden">Číslo není kladné celé číslo!</div>
<p>Výsledek: <span class="result" id="result15"> </span></p>
<div class="icon">!</div>
Tento příklad už jsme jednou řešili pomocí <code>for</code> cyklu. Každý takový cyklus můžeš napsat i pomocí cyklu <code>while</code>,
i když je primárně určen pro případy, kdy předem neznáš počet opakování.
<div class="clear"></div>
<div class="card-header" id="exercise16" data-toggle="collapse" data-target="#collapseExercise16" aria-expanded="true" aria-controls="collapseExercise16">
Příklad 16 – While cyklus
<div id="collapseExercise16" class="collapse" aria-labelledby="exercise16" data-parent="#exercises">
<p><strong>Zadání:</strong> Uživatel do připraveného políčka zadá kladné celé číslo. Generuj náhodně čísla tak dlouho, dokud jejich součet nebude větší
nebo roven zadanému číslu. Vygenerovaná čísla ukládej do proměnné <code>cisla</code>.</p>
<input type="number" class="form-control" id="exercise16number" min="1" max="100" />
<button class="btn btn-primary mb-2" id="submit16">Generuj!</button>
<div id="error16" class="error hidden">Číslo není kladné celé číslo nebo je větší než 100!</div>
<p>Vygenerovaná čísla: <span class="result" id="result16"> </span></p>
<div class="icon">?</div>
Kód pro generování čísel už je nachystaný. Generuje čísla od 1 do 20. Nové číslo získáš takto:
<pre>int cislo = Generuj();</pre>
<div class="clear"></div>
<div class="icon">?</div>
Proměnná <code>cisla</code> je typu <code>List<int></code> (seznam čísel typu <code>int</code>). Vygenerované číslo přidáš do seznamu takto:
<pre>int cislo = 13;</pre>
<pre>cisla.Add(cislo);</pre>
<div class="clear"></div>
<script src="https://code.jquery.com/jquery-3.4.1.slim.min.js" integrity="sha384-J6qa4849blE2+poT4WnyKhv5vZF5SrPo0iEjwBvKU7imGFAV0wwj1yYfoRSJoZ+n" crossorigin="anonymous"></script>
<script src="https://code.jquery.com/jquery-3.4.1.min.js"></script>
<script src="https://cdn.jsdelivr.net/npm/popper.js@1.16.0/dist/umd/popper.min.js" integrity="sha384-Q6E9RHvbIyZFJoft+2mJbHaEWldlvI9IOYy5n3zV9zzTtmI3UksdQRVvoxMfooAo" crossorigin="anonymous"></script>
<script src="https://stackpath.bootstrapcdn.com/bootstrap/4.4.1/js/bootstrap.min.js" integrity="sha384-wfSDF2E50Y2D1uUdj0O3uMBJnjuUD4Ih7YwaYd1iqfktj0Uod8GCExl3Og8ifwB6" crossorigin="anonymous"></script>
<script type="text/javascript">
document.getElementById(id).classList.remove("hidden");
document.getElementById(id).classList.add("visible");
document.getElementById(id).classList.remove("visible");
document.getElementById(id).classList.add("hidden");
function validateInt(number) {
return number !== "" && number !== undefined && Number.isInteger(Number(number));
function validateNatural(number) {
return validateInt(number) && Number(number) >= 0;
$('#submit14').click(function(){
var number = document.getElementById("exercise14number").value;
var num = Number(number);
if (!validateNatural(number) || num < 1 || num > 20) {
document.getElementById("submit14").disabled = true;
url: '@Url.RouteUrl(new{ action="Priklad14", controller="Home"})',
contentType: "application/json; charset=utf-8",
success: function(response) {
document.getElementById("result14").innerHTML = response;
document.getElementById("submit14").disabled = false;
$('#submit15').click(function(){
var number = document.getElementById("exercise15number").value;
if (!validateNatural(number)) {
document.getElementById("submit15").disabled = true;
url: '@Url.RouteUrl(new{ action="Priklad15", controller="Home"})',
contentType: "application/json; charset=utf-8",
success: function(response) {
document.getElementById("result15").innerHTML = response;
document.getElementById("submit15").disabled = false;
$('#submit16').click(function(){
var number = document.getElementById("exercise16number").value;
if (!validateNatural(number) || Number(number) > 100) {
document.getElementById("submit16").disabled = true;
url: '@Url.RouteUrl(new{ action="Priklad16", controller="Home"})',
contentType: "application/json; charset=utf-8",
success: function(response) {
if (response.length > 0) {
document.getElementById("result16").innerHTML = response;
document.getElementById("submit16").disabled = false;