<html>
<body>
<h2>JavaScript Fibonacci sequence with recursion</h2>
<p id="demo"></p>
<script>
<!-- ten javascript se muzes presunout i sem -->
</script>
</body>
</html>
/* Definice funkce pro výpočet n-tého prvku Fibonacciho posloupnosti */
function fibx(n) {
/* Následující [if] přeskoč a vrať se k němu později, vážně, kašli na to. */
/*
* Poznámka: V počítačích nepočítáme od 1, ale od 0 (od nuly).
*
* IF je podmínka. Když vypočítáváme první dva prvky Fibonacciho posloupnosti,
* nemáme dostatek předchozích prvků pro výpočet aktuálního prvku, viz níže,
* já říkal, že na to máš zatím kašlat.
*
* Vytvoříme hodnoty prvního a druhého prvku
* (v počítačích počítáme od nuly, takže jsou to prvky s pořadovými čísly 0 a 1)
* na 0 a 1, což je právě hodnota [en].
*
*/
if(n<=1) {
return n;
}
/* Poznámka: Slovo return vrací výsledek výpočtu jakožto výsledek funkce */
/*
* Pro každý [entý] prvek platí, že jeho hodnota je součet hodnot dvou předchozích,
* tedy n-1 a n-2.
* Takže funkce pro výpočet [entého] prvku zavolá funkci (zavolá sama sebe) pro výpočet
* n-1 prvku a n-2 prvku:
*
*/
return fibx(n-1) + fibx(n-2);
/* Poznámka: Slovo return vrací výsledek výpočtu jakožto výsledek funkce */
};
/* Poznámka: Slovo var definuje proměnnou, tj. úložiště dat: */
/* Do proměnné text budeme ukládat finální výsledek v čitelné textové podobě: */
var text = "";
/*
* Proměnná i bude počítat, kolikátý prvek Fibonacciho posloupnosti zobrazujeme.
* Proměnná i je jako počítadlo kroků při výletu nebo pochodu.
*
*/
var i;
/*
* Tohle je cyklus. Běhá dokola jako křeček v kolečku.
* Náš cyklus proběhne 20 krát a proměnná i bude mít postupně hodnoty od 0 do 19.
*
*/
for (i = 0; i < 20; i++) {
/* Ve složených závorkách je, co se má při každém průběhu (pro každé nové i) provést: */
/*
* Stručně: do výsledného textu přidáme hodnotu [ítého] prvku Fibonacciho posloupnosti.
*
* Podrobněji:
* výraz (fráze) fibx(i) spustí (říká se zavolá) výše uvedenou funkci fibx(n)
* s hodnotou i (počítadlo kroků v kolečku).
*
* výraz (fráze) "<br>" vytvoří text, který zalomí řádek (break-line, pamatuješ z HTML).
* operátor + (plus) spojí číselný výsledek výpočtu Fibonacciho posloupnosti a text BR zalomení řádku.
* operátor += přidá číslo (fib) spojené (+) se zalomením řádku (br) do proměnné text.
*/
text += fibx(i) + "<br>";
}
/* Když proběhne celé kolečko výše, vypíšeme výsledek na obrazovku: */
/*
* Principem příkazu níže se nemusíš zabývat, stručně:
* Protože pracujeme v JavaScriptovém programu internetového www prohlížeče,
* máme k dispozici proměnnou, která obsahuje celý webový "dokument" (opravdu).
* Ve webovém dokumentu chceme najít prvek s identifikátorem "demo" a do něj
* vložit textovou podobu našeho výpočtu, který jsme provedli výše.
*
*/
document.getElementById("demo").innerHTML = text;
Output
This bin was created anonymously and its free preview time has expired (learn why). — Get a free unrestricted account
Dismiss xKeyboard Shortcuts
Shortcut | Action |
---|---|
ctrl + [num] | Toggle nth panel |
ctrl + 0 | Close focused panel |
ctrl + enter | Re-render output. If console visible: run JS in console |
Ctrl + l | Clear the console |
ctrl + / | Toggle comment on selected lines |
ctrl + ] | Indents selected lines |
ctrl + [ | Unindents selected lines |
tab | Code complete & Emmet expand |
ctrl + shift + L | Beautify code in active panel |
ctrl + s | Save & lock current Bin from further changes |
ctrl + shift + s | Open the share options |
ctrl + y | Archive Bin |
Complete list of JS Bin shortcuts |
JS Bin URLs
URL | Action |
---|---|
/ | Show the full rendered output. This content will update in real time as it's updated from the /edit url. |
/edit | Edit the current bin |
/watch | Follow a Code Casting session |
/embed | Create an embeddable version of the bin |
/latest | Load the very latest bin (/latest goes in place of the revision) |
/[username]/last | View the last edited bin for this user |
/[username]/last/edit | Edit the last edited bin for this user |
/[username]/last/watch | Follow the Code Casting session for the latest bin for this user |
/quiet | Remove analytics and edit button from rendered output |
.js | Load only the JavaScript for a bin |
.css | Load only the CSS for a bin |
Except for username prefixed urls, the url may start with http://jsbin.com/abc and the url fragments can be added to the url to view it differently. |