You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
Web-Dev-For-Beginners/translations/cs/2-js-basics/3-making-decisions/assignment.md

6.3 KiB

Rozhodování: Zpracování známek studentů

Cíle učení

V tomto úkolu si procvičíte koncepty rozhodování z této lekce tím, že vytvoříte program, který zpracovává známky studentů z různých systémů hodnocení. Použijete příkazy if...else, operátory porovnání a logické operátory k určení, kteří studenti projdou své kurzy.

Výzva

Pracujete pro školu, která se nedávno sloučila s jinou institucí. Nyní musíte zpracovat známky studentů ze dvou zcela odlišných systémů hodnocení a určit, kteří studenti projdou. To je ideální příležitost procvičit si podmíněnou logiku!

Porozumění systémům hodnocení

První systém hodnocení (Číselný)

  • Známky jsou udělovány jako čísla od 1 do 5
  • Prospěl: 3 a více (3, 4 nebo 5)
  • Neprospěl: Méně než 3 (1 nebo 2)

Druhý systém hodnocení (Písmenové známky)

  • Známky jsou udělovány jako písmena: A, A-, B, B-, C, C-
  • Prospěl: A, A-, B, B-, C, C- (všechny uvedené známky jsou prospěšné)
  • Poznámka: Tento systém neobsahuje neprospěšné známky jako D nebo F

Váš úkol

Na základě následujícího pole allStudents, které reprezentuje všechny studenty a jejich známky, vytvořte nové pole studentsWhoPass, které bude obsahovat všechny studenty, kteří projdou podle jejich příslušných systémů hodnocení.

let allStudents = [
  'A',    // Letter grade - passing
  'B-',   // Letter grade - passing  
  1,      // Numeric grade - failing
  4,      // Numeric grade - passing
  5,      // Numeric grade - passing
  2       // Numeric grade - failing
];

let studentsWhoPass = [];

Postupný přístup

  1. Nastavte smyčku, která projde každou známku v poli allStudents
  2. Zkontrolujte typ známky (je to číslo nebo řetězec?)
  3. Použijte odpovídající pravidla systému hodnocení:
    • Pro čísla: zkontrolujte, zda je známka >= 3
    • Pro řetězce: zkontrolujte, zda je to jedna z platných prospěšných písmenových známek
  4. Přidejte prospěšné známky do pole studentsWhoPass

Užitečné techniky kódu

Použijte tyto koncepty JavaScriptu z lekce:

  • Operátor typeof: typeof grade === 'number' pro kontrolu, zda je známka číselná
  • Operátory porovnání: >= pro porovnání číselných známek
  • Logické operátory: || pro kontrolu více podmínek písmenových známek
  • Příkazy if...else: pro zpracování různých systémů hodnocení
  • Metody pole: .push() pro přidání prospěšných známek do nového pole

Očekávaný výstup

Když spustíte svůj program, pole studentsWhoPass by mělo obsahovat: ['A', 'B-', 4, 5]

Proč tyto známky prošly:

  • 'A' a 'B-' jsou platné písmenové známky (všechny písmenové známky v tomto systému jsou prospěšné)
  • 4 a 5 jsou číselné známky >= 3
  • 1 a 2 neprošly, protože jsou číselné známky < 3

Testování vašeho řešení

Otestujte svůj kód s různými scénáři:

// Test with different grade combinations
let testGrades1 = ['A-', 3, 'C', 1, 'B'];
let testGrades2 = [5, 'A', 2, 'C-', 4];

// Your solution should work with any combination of valid grades

Bonusové výzvy

Jakmile dokončíte základní úkol, zkuste tyto rozšíření:

  1. Přidejte validaci: Zkontrolujte neplatné známky (například záporná čísla nebo neplatná písmena)
  2. Spočítejte statistiky: Vypočítejte, kolik studentů prošlo vs. neprošlo
  3. Konverze známek: Převádějte všechny známky na jednotný číselný systém (A=5, B=4, C=3, atd.)

Hodnotící kritéria

Kritéria Vynikající (4) Dobré (3) Rozvíjející se (2) Začínající (1)
Funkčnost Program správně identifikuje všechny prospěšné známky z obou systémů Program funguje s drobnými problémy nebo okrajovými případy Program částečně funguje, ale má logické chyby Program má významné chyby nebo nefunguje
Struktura kódu Čistý, dobře organizovaný kód s odpovídající logikou if...else Dobrá struktura s vhodnými podmíněnými příkazy Přijatelná struktura s některými organizačními problémy Špatná struktura, obtížně sledovatelná logika
Použití konceptů Efektivní použití operátorů porovnání, logických operátorů a podmíněných příkazů Dobré použití konceptů lekce s drobnými nedostatky Nějaké použití konceptů lekce, ale chybí klíčové prvky Omezené použití konceptů lekce
Řešení problému Jasné pochopení problému a elegantní přístup k řešení Dobrý přístup k řešení problému s pevnou logikou Přiměřené řešení problému s určitým zmatením Nejasný přístup, neprokazuje pochopení

Pokyny k odevzdání

  1. Důkladně otestujte svůj kód s poskytnutými příklady
  2. Přidejte komentáře, které vysvětlují vaši logiku, zejména u podmíněných příkazů
  3. Ověřte, že výstup odpovídá očekávaným výsledkům: ['A', 'B-', 4, 5]
  4. Zvažte okrajové případy, jako jsou prázdná pole nebo neočekávané datové typy

💡 Tip: Začněte jednoduše! Nejprve zajistěte, aby základní funkčnost fungovala, a poté přidejte sofistikovanější funkce. Pamatujte, že cílem je procvičit si logiku rozhodování pomocí nástrojů, které jste se naučili v této lekci.


Prohlášení:
Tento dokument byl přeložen pomocí služby AI pro překlady Co-op Translator. I když se snažíme o přesnost, mějte prosím na paměti, že automatizované překlady mohou obsahovat chyby nebo nepřesnosti. Původní dokument v jeho původním jazyce by měl být považován za autoritativní zdroj. Pro důležité informace se doporučuje profesionální lidský překlad. Neodpovídáme za žádná nedorozumění nebo nesprávné interpretace vyplývající z použití tohoto překladu.