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.
118 lines
6.3 KiB
118 lines
6.3 KiB
<!--
|
|
CO_OP_TRANSLATOR_METADATA:
|
|
{
|
|
"original_hash": "ffe366b2d1f037b99fbadbe1dc81083d",
|
|
"translation_date": "2025-10-24T20:43:16+00:00",
|
|
"source_file": "2-js-basics/3-making-decisions/assignment.md",
|
|
"language_code": "cs"
|
|
}
|
|
-->
|
|
# 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í.
|
|
|
|
```javascript
|
|
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:
|
|
|
|
```javascript
|
|
// 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](https://github.com/Azure/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. |