From 0e1116d969947b2add00dc34fa49a33b18373023 Mon Sep 17 00:00:00 2001 From: pepaskopec-blip Date: Thu, 24 Sep 2026 07:33:50 +0200 Subject: [PATCH] Add integer and real slides to HW data representation. Co-authored-by: Cursor --- src/hw.c | 63 +++++++++++++++++++++++++++++++++++++++++++++++--- src/i18n.c | 4 ++-- src/maturita.h | 2 +- 3 files changed, 63 insertions(+), 6 deletions(-) diff --git a/src/hw.c b/src/hw.c index be01330..974fbb5 100644 --- a/src/hw.c +++ b/src/hw.c @@ -853,7 +853,7 @@ GtkWidget *build_hw_unit2_exercise_page(void) { GtkWidget *build_hw_unit3_page(void) { static const NetSlide slides[HW3_SLIDES] = { { - "1 / 2 • Bit", "Bit – nejmenší jednotka informace", + "1 / 4 • Bit", "Bit – nejmenší jednotka informace", "Bit = binary digit (dvojková číslice)", { "Bit je dvojková číslice – nabývá hodnoty 0 nebo 1.", @@ -863,7 +863,7 @@ GtkWidget *build_hw_unit3_page(void) { }, }, { - "2 / 2 • Byte", "Byte – adresovatelná jednotka paměti", + "2 / 4 • Byte", "Byte – adresovatelná jednotka paměti", "Tip: 1 B = 8 b", { "Byte je nejmenší adresovatelná jednotka paměti.", @@ -873,6 +873,37 @@ GtkWidget *build_hw_unit3_page(void) { NULL, }, }, + { + "3 / 4 • Integer", "Proměnná typu integer (celá čísla)", + "Tip: n bitů → 2ⁿ různých hodnot (např. 0 až 2ⁿ − 1)", + { + "Celá čísla se ukládají binárně v pevné řádové čárce.", + "Mají pevný počet bitů – standardně 16 nebo 32 " + "(tedy 2 nebo 4 byty).", + "Při 16bitovém formátu je 2¹⁶ = 65 536 různých hodnot; " + "u nezáporných čísel interval 0 až 2¹⁶ − 1, tedy 0–65 535.", + "Obecně u n bitů je M = 2ⁿ různých hodnot " + "(u 16 bitů je nejvyšší nezáporné číslo 65 535).", + "Ostatní čísla se do tohoto intervalu převádějí transformací " + "(mapováním na přirozená čísla z daného rozsahu).", + NULL, + }, + }, + { + "4 / 4 • Real", "Proměnná typu real (desetinná čísla)", + "Tip: tvar = mantisa × základ^exponent", + { + "Desetinná čísla se ukládají v pohyblivé řádové čárce " + "ve tvaru mantisa a exponent.", + "Mantisa je normalizovaná tak, že první platná číslice " + "je hned za desetinnou čárkou.", + "Posun řádové čárky vyrovná odpovídající změna exponentu.", + "Standardně zabírá 4 nebo 8 bytů v paměti.", + "Více bytů se používá jen tehdy, když potřebujeme vyšší " + "přesnost výpočtů.", + NULL, + }, + }, }; return build_hw_unit_page(&hw_lessons[2], "hw_unit3", "hw_unit3_sub", @@ -894,13 +925,39 @@ GtkWidget *build_hw_unit3_exercise_page(void) { 4, 0}, {"Kolik bitů má obvykle jeden byte?", {"2", "4", "8", "16"}, 4, 2}, + {"Jak se ukládají celá čísla (integer)?", + {"Jen jako text", + "Binárně v pevné řádové čárce s pevným počtem bitů", + "Jen jako obrázek", + "Jen v pohyblivé řádové čárce bez exponentu"}, + 4, 1}, + {"Kolik různých hodnot má 16bitový nezáporný integer?", + {"256", "1024", "65 536 (0 až 65 535)", "4"}, + 4, 2}, + {"Jak se ukládají desetinná čísla (real)?", + {"Jen jako celá čísla bez tečky", + "V pohyblivé řádové čárce jako mantisa a exponent", + "Jen jako 1 bit", + "Jen jako název souboru"}, + 4, 1}, + {"Co znamená normalizace mantisy?", + {"Že se číslo smaže", + "Že první platná číslice je hned za desetinnou čárkou " + "a exponent se upraví", + "Že se použije jen 1 bit", + "Že se číslo uloží jako text"}, + 4, 1}, }; static const char *hints[] = { "Bit = dvojková číslice, nejmenší jednotka informace", "Bit nabývá hodnoty 0 nebo 1", "Byte = nejmenší adresovatelná jednotka paměti", "1 B = 8 b", + "Integer = pevná řádová čárka, pevný počet bitů (16/32…)", + "16 bitů → 2¹⁶ = 65 536 hodnot (0–65 535 u nezáporných)", + "Real = pohyblivá řádová čárka = mantisa + exponent", + "Normalizace: 1. platná číslice hned za desetinnou čárkou", }; return build_hw_mcq_page(2, "hwunit3", "hw_ex3_title", "hw_quiz3_head", - qs, hints, 4); + qs, hints, 8); } diff --git a/src/i18n.c b/src/i18n.c index 4e632cb..40b328d 100644 --- a/src/i18n.c +++ b/src/i18n.c @@ -536,8 +536,8 @@ const TrEntry tr_ui[] = { {"hw_quiz2_head", "Kvíz k historii počítačů", "Quiz on the history of computers"}, {"hw_unit3", "Zobrazování dat v počítači", "Data representation"}, - {"hw_unit3_sub", "2 snímky o bitu a bytu a pak kvíz.", - "2 slides about bits and bytes, then a quiz."}, + {"hw_unit3_sub", "4 snímky: bit, byte, integer a real – a pak kvíz.", + "4 slides: bit, byte, integer and real – then a quiz."}, {"hw_ex3_title", "Kvíz: zobrazování dat", "Quiz: data representation"}, {"hw_quiz3_head", "Kvíz k zobrazování dat v počítači", diff --git a/src/maturita.h b/src/maturita.h index 6af9a2c..ad011fe 100644 --- a/src/maturita.h +++ b/src/maturita.h @@ -116,7 +116,7 @@ extern char *app_progress_cetba; #define HW_LESSONS 3 #define HW_SLIDES 3 #define HW2_SLIDES 6 -#define HW3_SLIDES 2 +#define HW3_SLIDES 4 typedef enum { THEME_CATPPUCCIN = 0,