Build all apps from Markdown content; Compose Desktop replaces GTK on Linux and Windows

- content/ + scripts/build-content.py produce content.json for every app
- stable lesson IDs with one-time progress migration (Swift, Kotlin)
- shared answer-check tests (tests/answers.json) for Kotlin and Swift
- android/desktop: Compose app with updater, speech and GTK progress import
- CI packages AppImage and Windows zip with ProGuard, runs the tests

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
pepaskopec-blip 2026-10-09 20:40:37 +02:00
commit c3bc32113b
964 changed files with 57285 additions and 1156 deletions

View file

@ -0,0 +1,6 @@
---
nazev: Divisibility and primes
popis: Highest common factor, lowest common multiple and factorisation.
nazev_cviceni: Practice
nadpis_kvizu: Divisibility and primes
---

View file

@ -0,0 +1,59 @@
---
id: matematika-1-delitelnost-a-prvocisla
puvodni: mat.1
nazev: Dělitelnost a prvočísla
popis: Největší společný dělitel, násobek a rozklad.
nazev_cviceni: Příklady
nadpis_kvizu: Dělitelnost a prvočísla
---
# Výklad
## Čísla, která dělí beze zbytku
*Dělitel*
- Dělitel čísla a je celé číslo, kterým a dělí beze zbytku.
- Číslo 12 má dělitele 1, 2, 3, 4, 6 a 12, tedy šest dělitelů.
- Prvočíslo nelze rozložit na součin dvou menších celých čísel větších než 1.
- Jednička prvočíslo není.
> Tip: prvočíslo má právě dva dělitele, jedničku a sebe.
## Společný dělitel a násobek
*NSD a NSN*
- Největší společný dělitel je největší číslo, které dělí obě čísla.
- NSD(24, 36) = 12.
- Nejmenší společný násobek je nejmenší kladné číslo, které je násobkem obou.
- NSN(6, 8) = 24.
> Tip: NSD · NSN dvou čísel je jejich součin.
## Součin mocnin prvočísel
*Rozklad*
- Každé celé číslo větší než 1 má jediný rozklad na prvočísla.
- 72 = 2³ · 3².
- V NSD se bere nižší exponent, v NSN vyšší.
- Rozklad usnadní krácení zlomků i hledání společného jmenovatele.
> Tip: společné prvočinitele berte v nejmenší mocnině pro NSD.
# Příklady
## Jaký je největší společný dělitel čísel 24 a 36?
= num:12
> Společní dělitelé jsou 1, 2, 3, 4, 6 a 12. Výsledek je 12.
## Jaký je nejmenší společný násobek čísel 6 a 8?
= num:24
> Násobky 6 jsou 6, 12, 18, 24, … a 24 je první z nich dělitelné osmi. Výsledek je 24.
## Spočítejte 2³ · 3².
= num:72
> 8 · 9 = 72. Výsledek je 72.
## Kolik kladných dělitelů má číslo 12?
= num:6
> Jsou to 1, 2, 3, 4, 6 a 12. Výsledek je 6.

View file

@ -0,0 +1,6 @@
---
nazev: Powers and roots
popis: Powers with the same base and the square root.
nazev_cviceni: Practice
nadpis_kvizu: Powers and roots
---

View file

@ -0,0 +1,59 @@
---
id: matematika-1-mocniny-a-odmocniny
puvodni: mat.2
nazev: Mocniny a odmocniny
popis: Mocniny se stejným základem a druhá odmocnina.
nazev_cviceni: Příklady
nadpis_kvizu: Mocniny a odmocniny
---
# Výklad
## Opakované násobení
*Mocnina*
- 2⁵ = 2 · 2 · 2 · 2 · 2 = 32.
- 10³ = 1000, tři nuly za jedničkou.
- Každé číslo na první je ono samo a a⁰ = 1 pro a ≠ 0.
- Záporný exponent znamená převrácenou hodnotu mocniny.
> Tip: aⁿ je a násobené sebou n-krát.
## Stejný základ
*Pravidla*
- aᵐ · aⁿ = aᵐ⁺ⁿ.
- aᵐ : aⁿ = aᵐ⁻ⁿ pro a ≠ 0.
- (a · b)ⁿ = aⁿ · bⁿ.
- (2³)² = 2⁶ = 64.
> Tip: (aᵐ)ⁿ = aᵐ·ⁿ.
## Druhá odmocnina
*Odmocnina*
- √81 = 9, protože 9² = 81.
- √0 = 0 a √1 = 1.
- Ze záporného čísla se v reálných číslech druhá odmocnina nedělá.
- √(a²) = |a|, ne vždy a.
> Tip: √a je nezáporné číslo, jehož druhá mocnina je a.
# Příklady
## Spočítejte 2⁵.
= num:32
> Pět dvojkových činitelů je 32. Výsledek je 32.
## Spočítejte 10³.
= num:1000
> 10 · 10 · 10 = 1000. Výsledek je 1000.
## Spočítejte √81.
= num:9
> 9 · 9 = 81. Výsledek je 9.
## Spočítejte (2³)².
= num:64
> (8)² = 64, nebo 2⁶ = 64. Výsledek je 64.

View file

@ -0,0 +1,6 @@
---
nazev: Algebraic expressions
popis: Substitution, the square of a sum and a difference of squares.
nazev_cviceni: Practice
nadpis_kvizu: Algebraic expressions
---

View file

@ -0,0 +1,59 @@
---
id: matematika-1-algebraicke-vyrazy
puvodni: mat.3
nazev: Algebraické výrazy
popis: Dosazení, druhá mocnina součtu a rozklad rozdílu čtverců.
nazev_cviceni: Příklady
nadpis_kvizu: Algebraické výrazy
---
# Výklad
## Písmeno je číslo
*Dosazení*
- Do výrazu se za proměnnou dosadí dané číslo.
- 2(x + 3) při x = 4 je 2 · 7 = 14.
- 3x − 2x + 5 se nejdřív sloučí na x + 5.
- Při x = 2 je x + 5 = 7.
> Tip: nejdřív závorky, potom mocniny a násobení.
## Druhá mocnina dvojčlenu
*Vzorce*
- (a + b)² = a² + 2ab + b².
- (a − b)² = a² − 2ab + b².
- a² − b² = (a − b)(a + b).
- Pro a = 3 a b = 1 je (a + b)² = 16.
> Tip: (a + b)² není a² + b².
## Rozdíl čtverců
*Zkrácení*
- x² − 9 = (x − 3)(x + 3).
- (x² − 9)/(x − 3) = x + 3 pro x ≠ 3.
- Při x = 5 je hodnota 8.
- Dosazení x = 3 by dělilo nulou, výraz tam není definován.
> Tip: krátit lze jen pro x, která nejsou kořenem jmenovatele.
# Příklady
## Do výrazu 2(x + 3) dosažte x = 4.
= num:14
> 2 · (4 + 3) = 14. Výsledek je 14.
## Do výrazu (a + b)² dosažte a = 3 a b = 1.
= num:16
> 4² = 16. Rozepsáno 9 + 6 + 1 = 16. Výsledek je 16.
## Do výrazu 3x − 2x + 5 dosažte x = 2.
= num:7
> Výraz je x + 5, při x = 2 je 7. Výsledek je 7.
## Do výrazu (x² − 9)/(x − 3) dosažte x = 5.
= num:8
> Pro x ≠ 3 je výraz roven x + 3, tedy 8. Výsledek je 8.

View file

@ -0,0 +1,6 @@
---
nazev: Linear equations
popis: Equations with a coefficient, a bracket and a fraction.
nazev_cviceni: Practice
nadpis_kvizu: Linear equations
---

View file

@ -0,0 +1,59 @@
---
id: matematika-1-linearni-rovnice-s-upravami
puvodni: mat.4
nazev: Lineární rovnice s úpravami
popis: Rovnice s koeficientem, závorkou a zlomkem.
nazev_cviceni: Příklady
nadpis_kvizu: Lineární rovnice s úpravami
---
# Výklad
## Neznámé na jednu stranu
*Převod*
- 2x + 1 = 9 se odečtením jedné změní na 2x = 8.
- x = 4.
- Členy s x patří obvykle vlevo, čísla vpravo.
- Po každé úpravě zůstává rovnost zachovaná.
> Tip: člen s x se převádí s opačným znaménkem.
## Stejný člen vlevo i vpravo
*Obě strany*
- 5x − 2x = 9 + 3.
- 3x = 12 a x = 4.
- Zkouška: levá strana 5 · 4 − 3 = 17, pravá 8 + 9 = 17.
- Když koeficient u x vyjde 0, rovnice buď nemá řešení, nebo jich má nekonečně mnoho.
> Tip: 5x − 3 = 2x + 9 se zbaví 2x odečtením.
## Nejdřív roznásobit
*Závorka a zlomek*
- x/2 + 1 = 5 dá x/2 = 4, tedy x = 8.
- 3(x − 2) = 12 se vydělí třemi: x − 2 = 4.
- Nebo se závorka roznásobí: 3x − 6 = 12.
- Obě cesty dají x = 6.
> Tip: x/2 + 1 = 5 se nejdřív zbaví jedničky.
# Příklady
## Vyřešte 2x + 1 = 9. Napište x.
= num:4
> 2x = 8, takže x = 4. Výsledek je 4.
## Vyřešte 5x − 3 = 2x + 9. Napište x.
= num:4
> 3x = 12, takže x = 4. Výsledek je 4.
## Vyřešte x/2 + 1 = 5. Napište x.
= num:8
> x/2 = 4, takže x = 8. Výsledek je 8.
## Vyřešte 3(x − 2) = 12. Napište x.
= num:6
> x − 2 = 4, takže x = 6. Výsledek je 6.

View file

@ -0,0 +1,6 @@
---
nazev: Word problems
popis: Distance, joint work, a mixture and a discount.
nazev_cviceni: Practice
nadpis_kvizu: Word problems
---

View file

@ -0,0 +1,59 @@
---
id: matematika-1-slovni-ulohy
puvodni: mat.5
nazev: Slovní úlohy
popis: Dráha, společná práce, směs a sleva.
nazev_cviceni: Příklady
nadpis_kvizu: Slovní úlohy
---
# Výklad
## Rychlost krát čas
*Dráha*
- Při stálé rychlosti je dráha s = v · t.
- 60 km/h po dobu 2,5 h urazí 150 km.
- 2,5 h je dvě a půl hodiny, ne dvě hodiny a padesát minut.
- Z dráhy a času se rychlost dopočítá jako s/t.
> Tip: jednotky času a rychlosti musí patřit k sobě.
## Sčítají se výkony, ne časy
*Práce a směs*
- První pracovník udělá za hodinu 1/6 práce, druhý 1/3.
- Společně udělají 1/6 + 2/6 = 1/2 práce za hodinu, tedy celou za 2 hodiny.
- U směsi se sčítá množství čisté látky.
- 2 kg dvacetiprocentní a 3 kg desetiprocentní směsi obsahují 0,4 + 0,3 = 0,7 kg, tedy 14 %.
> Tip: kdo práci udělá za 3 hodiny, udělá za hodinu třetinu.
## Nová cena je část základu
*Sleva*
- Když je nová cena 160 a sleva byla 20 %, je 160 rovno 80 % původní ceny.
- Původní cena je 160 / 0,8 = 200.
- Sleva v korunách je pak 40.
- Nepleťte si slevu 20 % s tím, že se k nové ceně přičte 20 %.
> Tip: po slevě 20 % zbývá 80 % původní ceny.
# Příklady
## Auto jede 2,5 hodiny rychlostí 60 km/h. Kolik kilometrů ujede?
= num:150
> s = v · t = 60 · 2,5 = 150. Výsledek je 150.
## První pracovník práci udělá za 6 hodin, druhý za 3 hodiny. Za kolik hodin ji udělají společně?
= num:2
> Za hodinu spolu udělají 1/2 práce, celou tedy za 2 hodiny. Výsledek je 2.
## Smíchají se 2 kg směsi s 20 % látky a 3 kg směsi s 10 % látky. Kolik procent látky má směs? Napište jen číslo.
= num:14
> Čisté látky je 0,7 kg z 5 kg, tedy 14 %. Výsledek je 14.
## Po slevě 20 % stojí zboží 160. Jaká byla původní cena?
= num:200
> 160 je 80 % původní ceny, základ je 200. Výsledek je 200.

View file

@ -0,0 +1,6 @@
---
nazev: Plane figures
popis: Angles of a triangle, the exterior angle and a regular polygon.
nazev_cviceni: Practice
nadpis_kvizu: Plane figures
---

View file

@ -0,0 +1,59 @@
---
id: matematika-1-planimetrie
puvodni: mat.6
nazev: Planimetrie
popis: Úhly trojúhelníku, vnější úhel a pravidelný mnohoúhelník.
nazev_cviceni: Příklady
nadpis_kvizu: Planimetrie
---
# Výklad
## Součet 180°
*Trojúhelník*
- Součet vnitřních úhlů každého trojúhelníku je 180°.
- V rovnoramenném trojúhelníku jsou úhly při základně shodné.
- Když jsou úhly při základně 70°, je úhel proti základně 40°.
- Rovnostranný trojúhelník má všechny strany shodné a každý úhel 60°.
> Tip: rovnoramenný trojúhelník má dvě ramena a dva úhly u základny shodné.
## Součet dvou vzdálených vnitřních
*Vnější úhel*
- Vnější úhel vznikne prodloužením jedné strany.
- Je roven součtu dvou vnitřních úhlů, které s ním nesousedí.
- Vnitřní úhly 40° a 60° dávají vnější úhel 100° u zbývajícího vrcholu.
- Součet vnějšího úhlu a přilehlého vnitřního je 180°.
> Tip: vnější úhel a sousední vnitřní úhel dávají 180°.
## Pravidelný šestiúhelník
*Mnohoúhelník*
- Trojúhelník má součet 180°, čtyřúhelník 360°.
- Obecný vzorec je (n − 2) · 180°.
- Pravidelný mnohoúhelník má všechny strany i úhly shodné.
- Pravidelný šestiúhelník má vnitřní úhel 720° / 6 = 120°.
> Tip: součet vnitřních úhlů n-úhelníku je (n − 2) · 180°.
# Příklady
## Vnější úhel trojúhelníku je součet vnitřních úhlů 40° a 60°. Jak je velký ve stupních?
= num:100
> Vnější úhel se rovná součtu dvou nesousedních vnitřních úhlů: 100°. Výsledek je 100.
## Rovnoramenný trojúhelník má úhly při základně 70°. Jak velký je úhel proti základně?
= num:40
> 180° − 140° = 40°. Výsledek je 40.
## Rovnostranný trojúhelník má stranu 6. Jaký je jeho obvod?
= num:18
> Tři shodné strany: 3 · 6 = 18. Výsledek je 18.
## Jak velký je jeden vnitřní úhel pravidelného šestiúhelníku ve stupních?
= num:120
> Součet je (6 − 2) · 180° = 720° a jeden úhel je 120°. Výsledek je 120.

View file

@ -0,0 +1,6 @@
---
nazev: Perimeter and area
popis: The circle, the trapezium and Pythagoras.
nazev_cviceni: Practice
nadpis_kvizu: Perimeter and area
---

View file

@ -0,0 +1,59 @@
---
id: matematika-1-obvody-a-obsahy
puvodni: mat.7
nazev: Obvody a obsahy
popis: Kružnice, lichoběžník a Pythagorova věta.
nazev_cviceni: Příklady
nadpis_kvizu: Obvody a obsahy
---
# Výklad
## Obvod a obsah
*Kružnice*
- Kružnice s poloměrem r má obvod 2πr.
- Obsah kruhu je πr².
- Pro r = 7 je obvod 14π.
- Pro r = 3 je obsah 9π.
> Tip: u výsledku s π nechte π ve výrazu a pište ho jako pi.
## Dvě základny a výška
*Lichoběžník*
- Lichoběžník má právě jednu dvojici rovnoběžných stran, základny a a c.
- Obsah je (a + c) · v / 2.
- Základny 4 a 6 a výška 3 dávají obsah 15.
- Výška je kolmá vzdálenost základen.
> Tip: obsah je průměr základen krát výška.
## Pravoúhlý trojúhelník
*Pythagoras*
- V pravoúhlém trojúhelníku je a² + b² = c².
- c je přepona, a a b jsou odvěsny.
- Trojúhelník 5, 12, 13 je pravoúhlý, protože 25 + 144 = 169.
- Přepona je 13.
> Tip: přepona je nejdelší strana a leží proti pravému úhlu.
# Příklady
## Jaký je obvod kružnice s poloměrem 7? Nechte výsledek v násobcích π.
= num:14*pi
> Obvod je 2πr = 14π. Výsledek je 14π.
## Jaký je obsah kruhu s poloměrem 3? Nechte výsledek v násobcích π.
= num:9*pi
> Obsah je πr² = 9π. Výsledek je 9π.
## Lichoběžník má základny 4 a 6 a výšku 3. Jaký je jeho obsah?
= num:15
> (4 + 6) · 3 / 2 = 15. Výsledek je 15.
## Pravoúhlý trojúhelník má odvěsny 5 a 12. Jak dlouhá je přepona?
= num:13
> 5² + 12² = 25 + 144 = 169 = 13². Výsledek je 13.

View file

@ -0,0 +1,6 @@
---
nazev: Constructing a triangle
popis: The distance between points and a triangle given by three sides.
nazev_cviceni: Practice
nadpis_kvizu: Constructing a triangle
---

View file

@ -0,0 +1,59 @@
---
id: matematika-1-konstrukce-trojuhelniku
puvodni: mat.8
nazev: Konstrukce trojúhelníku
popis: Vzdálenost bodů a trojúhelník daný třemi stranami.
nazev_cviceni: Příklady
nadpis_kvizu: Konstrukce trojúhelníku
---
# Výklad
## Vzdálenost na mřížce
*Body*
- Bod v rovině má souřadnice [x; y].
- Vzdálenost [x₁; y₁] a [x₂; y₂] je √((x₂ − x₁)² + (y₂ − y₁)²).
- A = [1; 1] a B = [5; 1] mají vzdálenost 4.
- Osa y na naší mřížce míří nahoru.
> Tip: u svislé nebo vodorovné úsečky stačí rozdíl souřadnic.
## Trojúhelník ze tří stran
*SSS*
- Konstrukce SSS použije tři strany.
- Z bodu A se rýsuje kružnice o poloměru |AC|, z bodu B o poloměru |BC|.
- Kružnice se protnou ve dvou bodech, pokud trojúhelník existuje.
- Trojúhelníková nerovnost: součet dvou stran je větší než třetí.
> Tip: třetí vrchol je průsečík dvou kružnic.
## Strany 4, 3 a 5
*Příklad*
- A = [1; 1], B = [5; 1], takže |AB| = 4.
- Hledáme C tak, aby |AC| = 3 a |BC| = 5.
- Na mřížce od 0 do 10 a od 0 do 8 leží jen C = [1; 4].
- Druhý průsečík [1; −2] je pod mřížkou.
> Tip: 3² + 4² = 5², pravý úhel je u bodu A.
# Příklady
## Jaká je vzdálenost bodů A = [1; 1] a B = [5; 1]?
= num:4
> Body mají stejné y, vzdálenost je 5 − 1 = 4. Výsledek je 4.
## Jaký je obsah pravoúhlého trojúhelníku s odvěsnami 3 a 4?
= num:6
> Obsah je (3 · 4) / 2 = 6. Výsledek je 6.
## Jaký je obvod trojúhelníku se stranami 3, 4 a 5?
= num:12
> 3 + 4 + 5 = 12. Výsledek je 12.
## A = [1; 1] a B = [5; 1] jsou dané. Zakreslete C, pro které je |AC| = 3 a |BC| = 5.
= points:1,4;fix:1,1;fix:5,1
> Kružnice se na mřížce protnou v [1; 4]. Bod [1; −2] už na ní není.