6.3 KiB
Podejmowanie decyzji: Procesor ocen uczniów
Cele nauki
W tym zadaniu poćwiczysz koncepcje podejmowania decyzji z tej lekcji, tworząc program przetwarzający oceny uczniów z różnych systemów oceniania. Użyjesz instrukcji if...else, operatorów porównania i operatorów logicznych, aby określić, którzy uczniowie zaliczają swoje kursy.
Wyzwanie
Pracujesz w szkole, która niedawno połączyła się z inną instytucją. Teraz musisz przetworzyć oceny uczniów z dwóch zupełnie różnych systemów oceniania i określić, którzy uczniowie zaliczają. To doskonała okazja do ćwiczenia logiki warunkowej!
Zrozumienie systemów oceniania
Pierwszy system oceniania (numeryczny)
- Oceny są wyrażane liczbami od 1 do 5
- Ocena zaliczająca: 3 i powyżej (3, 4 lub 5)
- Ocena niezaliczająca: poniżej 3 (1 lub 2)
Drugi system oceniania (oceny literowe)
- Oceny używają liter:
A,A-,B,B-,C,C- - Oceny zaliczające:
A,A-,B,B-,C,C-(wszystkie wymienione oceny zaliczają) - Uwaga: Ten system nie zawiera ocen niezaliczających, takich jak
DlubF
Twoje zadanie
Mając podaną tablicę allStudents przedstawiającą wszystkich uczniów i ich oceny, utwórz nową tablicę studentsWhoPass, zawierającą wszystkich uczniów, którzy zaliczają zgodnie z ich odpowiednimi systemami oceniania.
let allStudents = [
'A', // Ocena literowa - zaliczone
'B-', // Ocena literowa - zaliczone
1, // Ocena liczbowa - niezaliczone
4, // Ocena liczbowa - zaliczone
5, // Ocena liczbowa - zaliczone
2 // Ocena liczbowa - niezaliczone
];
let studentsWhoPass = [];
Podejście krok po kroku
- Ustaw pętlę, aby przejść przez każdą ocenę w tablicy
allStudents - Sprawdź typ oceny (czy jest to liczba czy łańcuch znaków?)
- Zastosuj odpowiednie zasady systemu oceniania:
- Dla liczb: sprawdź, czy ocena >= 3
- Dla łańcuchów znaków: sprawdź, czy to jedna z ważnych zaliczających ocen literowych
- Dodaj zaliczające oceny do tablicy
studentsWhoPass
Przydatne techniki kodowania
Użyj tych koncepcji JavaScript z lekcji:
- operator typeof:
typeof grade === 'number'aby sprawdzić, czy to ocena numeryczna - operatory porównania:
>=do porównywania ocen numerycznych - operatory logiczne:
||do sprawdzania wielu warunków oceny literowej - instrukcje if...else: do obsługi różnych systemów oceniania
- metody tablicowe:
.push()do dodawania zaliczających ocen do nowej tablicy
Oczekiwany wynik
Po uruchomieniu programu studentsWhoPass powinno zawierać: ['A', 'B-', 4, 5]
Dlaczego te oceny zaliczają:
'A'i'B-'to ważne oceny literowe (wszystkie oceny literowe w tym systemie zaliczają)4i5to oceny numeryczne >= 31i2nie zaliczają, bo to oceny numeryczne < 3
Testowanie rozwiązania
Testuj swój kod w różnych scenariuszach:
// Testuj z różnymi kombinacjami ocen
let testGrades1 = ['A-', 3, 'C', 1, 'B'];
let testGrades2 = [5, 'A', 2, 'C-', 4];
// Twoje rozwiązanie powinno działać z dowolną kombinacją ważnych ocen
Bonusowe wyzwania
Po ukończeniu podstawowego zadania wypróbuj te rozszerzenia:
- Dodaj walidację: Sprawdź nieprawidłowe oceny (np. liczby ujemne lub niepoprawne litery)
- Zlicz statystyki: Oblicz, ile uczniów zalicza, a ile nie
- Konwersja ocen: Przekonwertuj wszystkie oceny na jeden system numeryczny (A=5, B=4, C=3, itd.)
Kryteria oceny
| Kryterium | Wzorowe (4) | Dobre (3) | Rozwijające się (2) | Początkujące (1) |
|---|---|---|---|---|
| Funkcjonalność | Program poprawnie identyfikuje wszystkie zaliczające oceny z obu systemów | Program działa z drobnymi problemami lub wyjątkami | Program działa częściowo, ale ma błędy logiczne | Program ma poważne błędy lub nie działa |
| Struktura kodu | Czysty, dobrze zorganizowany kod z właściwą logiką if...else | Dobra struktura z odpowiednimi instrukcjami warunkowymi | Akceptowalna struktura z pewnymi problemami organizacyjnymi | Słaba struktura, trudna do zrozumienia logika |
| Użycie koncepcji | Skuteczne wykorzystanie operatorów porównania, operatorów logicznych i instrukcji warunkowych | Dobre użycie koncepcji lekcji z drobnymi lukami | Częściowe użycie koncepcji lekcji, ale brak kluczowych elementów | Ograniczone użycie koncepcji lekcji |
| Rozwiązywanie problemów | Jasne zrozumienie problemu i eleganckie podejście do rozwiązania | Dobre podejście do rozwiązywania problemu z solidną logiką | Wystarczające rozwiązywanie problemów z pewnym zamieszaniem | Niejasne podejście, brak wykazania zrozumienia |
Wytyczne dotyczące przesyłania
- Dokładnie testuj kod z podanymi przykładami
- Dodaj komentarze wyjaśniające logikę, szczególnie instrukcje warunkowe
- Sprawdź, czy wynik odpowiada oczekiwanym rezultatom:
['A', 'B-', 4, 5] - Uwzględnij przypadki brzegowe takie jak puste tablice lub nieoczekiwane typy danych
💡 Przydatna wskazówka: Zacznij prosto! Najpierw uruchom podstawową funkcjonalność, a potem dodaj bardziej zaawansowane funkcje. Pamiętaj, celem jest ćwiczenie logiki podejmowania decyzji przy użyciu narzędzi poznanych w tej lekcji.
Zastrzeżenie:
Niniejszy dokument został przetłumaczony przy użyciu automatycznej usługi tłumaczeniowej AI Co-op Translator. Chociaż dokładamy starań, aby tłumaczenie było jak najbardziej precyzyjne, prosimy mieć na uwadze, że tłumaczenia automatyczne mogą zawierać błędy lub niedokładności. Oryginalny dokument w języku źródłowym należy traktować jako autorytatywne źródło. W przypadku informacji o istotnym znaczeniu zalecamy skorzystanie z profesjonalnego tłumaczenia wykonanego przez człowieka. Nie ponosimy odpowiedzialności za jakiekolwiek nieporozumienia lub błędne interpretacje wynikające z korzystania z tego tłumaczenia.