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/el/2-js-basics/3-making-decisions/assignment.md

118 lines
10 KiB

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

<!--
CO_OP_TRANSLATOR_METADATA:
{
"original_hash": "ffe366b2d1f037b99fbadbe1dc81083d",
"translation_date": "2025-10-23T19:56:45+00:00",
"source_file": "2-js-basics/3-making-decisions/assignment.md",
"language_code": "el"
}
-->
# Λήψη Αποφάσεων: Επεξεργαστής Βαθμολογιών Μαθητών
## Στόχοι Μάθησης
Σε αυτήν την εργασία, θα εξασκηθείτε στις έννοιες λήψης αποφάσεων από αυτό το μάθημα, δημιουργώντας ένα πρόγραμμα που επεξεργάζεται βαθμολογίες μαθητών από διαφορετικά συστήματα βαθμολόγησης. Θα χρησιμοποιήσετε δηλώσεις `if...else`, τελεστές σύγκρισης και λογικούς τελεστές για να καθορίσετε ποιοι μαθητές περνούν τα μαθήματά τους.
## Η Πρόκληση
Εργάζεστε σε ένα σχολείο που πρόσφατα συγχωνεύτηκε με άλλο ίδρυμα. Τώρα πρέπει να επεξεργαστείτε βαθμολογίες μαθητών από δύο εντελώς διαφορετικά συστήματα βαθμολόγησης και να καθορίσετε ποιοι μαθητές περνούν. Αυτή είναι μια τέλεια ευκαιρία για να εξασκηθείτε στη χρήση συνθηκών!
### Κατανόηση των Συστημάτων Βαθμολόγησης
#### Πρώτο Σύστημα Βαθμολόγησης (Αριθμητικό)
- Οι βαθμοί δίνονται ως αριθμοί από 1-5
- **Βαθμός επιτυχίας**: 3 και πάνω (3, 4 ή 5)
- **Βαθμός αποτυχίας**: Κάτω από 3 (1 ή 2)
#### Δεύτερο Σύστημα Βαθμολόγησης (Γράμματα)
- Οι βαθμοί δίνονται με γράμματα: `A`, `A-`, `B`, `B-`, `C`, `C-`
- **Βαθμοί επιτυχίας**: `A`, `A-`, `B`, `B-`, `C`, `C-` (όλοι οι αναφερόμενοι βαθμοί είναι επιτυχείς)
- **Σημείωση**: Αυτό το σύστημα δεν περιλαμβάνει βαθμούς αποτυχίας όπως `D` ή `F`
### Η Αποστολή Σας
Δεδομένου του παρακάτω πίνακα `allStudents` που αντιπροσωπεύει όλους τους μαθητές και τις βαθμολογίες τους, δημιουργήστε έναν νέο πίνακα `studentsWhoPass` που περιέχει όλους τους μαθητές που περνούν σύμφωνα με τα αντίστοιχα συστήματα βαθμολόγησης.
```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 = [];
```
### Βήμα-Βήμα Προσέγγιση
1. **Ρυθμίστε έναν βρόχο** για να περάσετε από κάθε βαθμολογία στον πίνακα `allStudents`
2. **Ελέγξτε τον τύπο της βαθμολογίας** (είναι αριθμός ή συμβολοσειρά;)
3. **Εφαρμόστε τους κατάλληλους κανόνες του συστήματος βαθμολόγησης**:
- Για αριθμούς: ελέγξτε αν η βαθμολογία >= 3
- Για συμβολοσειρές: ελέγξτε αν είναι ένας από τους έγκυρους βαθμούς επιτυχίας με γράμματα
4. **Προσθέστε τις βαθμολογίες επιτυχίας** στον πίνακα `studentsWhoPass`
### Χρήσιμες Τεχνικές Κώδικα
Χρησιμοποιήστε αυτές τις έννοιες της JavaScript από το μάθημα:
- **typeof operator**: `typeof grade === 'number'` για να ελέγξετε αν είναι αριθμητική βαθμολογία
- **Τελεστές σύγκρισης**: `>=` για να συγκρίνετε αριθμητικές βαθμολογίες
- **Λογικοί τελεστές**: `||` για να ελέγξετε πολλαπλές συνθήκες βαθμολογίας με γράμματα
- **if...else statements**: για να χειριστείτε διαφορετικά συστήματα βαθμολόγησης
- **Μέθοδοι πίνακα**: `.push()` για να προσθέσετε βαθμολογίες επιτυχίας στον νέο πίνακα
### Αναμενόμενο Αποτέλεσμα
Όταν εκτελέσετε το πρόγραμμά σας, ο πίνακας `studentsWhoPass` θα πρέπει να περιέχει: `['A', 'B-', 4, 5]`
**Γιατί αυτοί οι βαθμοί περνούν:**
- `'A'` και `'B-'` είναι έγκυροι βαθμοί με γράμματα (όλοι οι βαθμοί με γράμματα σε αυτό το σύστημα είναι επιτυχείς)
- `4` και `5` είναι αριθμητικές βαθμολογίες >= 3
- `1` και `2` αποτυγχάνουν επειδή είναι αριθμητικές βαθμολογίες < 3
## Δοκιμή της Λύσης Σας
Δοκιμάστε τον κώδικά σας με διαφορετικά σενάρια:
```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
```
## Πρόσθετες Προκλήσεις
Αφού ολοκληρώσετε τη βασική εργασία, δοκιμάστε αυτές τις επεκτάσεις:
1. **Προσθέστε επικύρωση**: Ελέγξτε για μη έγκυρες βαθμολογίες (όπως αρνητικούς αριθμούς ή μη έγκυρα γράμματα)
2. **Υπολογίστε στατιστικά**: Υπολογίστε πόσοι μαθητές περνούν έναντι αυτών που αποτυγχάνουν
3. **Μετατροπή βαθμολογιών**: Μετατρέψτε όλες τις βαθμολογίες σε ένα ενιαίο αριθμητικό σύστημα (A=5, B=4, C=3, κ.λπ.)
## Κριτήρια Αξιολόγησης
| Κριτήριο | Εξαιρετικό (4) | Επαρκές (3) | Αναπτυσσόμενο (2) | Αρχικό (1) |
|----------|---------------|----------------|----------------|---------------|
| **Λειτουργικότητα** | Το πρόγραμμα εντοπίζει σωστά όλες τις βαθμολογίες επιτυχίας και από τα δύο συστήματα | Το πρόγραμμα λειτουργεί με μικρά προβλήματα ή περιπτώσεις | Το πρόγραμμα λειτουργεί εν μέρει αλλά έχει λογικά λάθη | Το πρόγραμμα έχει σημαντικά λάθη ή δεν εκτελείται |
| **Δομή Κώδικα** | Καθαρός, καλά οργανωμένος κώδικας με σωστή λογική if...else | Καλή δομή με κατάλληλες δηλώσεις συνθηκών | Αποδεκτή δομή με κάποια οργανωτικά προβλήματα | Κακή δομή, δύσκολο να ακολουθηθεί η λογική |
| **Χρήση Εννοιών** | Αποτελεσματική χρήση τελεστών σύγκρισης, λογικών τελεστών και δηλώσεων συνθηκών | Καλή χρήση των εννοιών του μαθήματος με μικρά κενά | Κάποια χρήση των εννοιών του μαθήματος αλλά λείπουν βασικά στοιχεία | Περιορισμένη χρήση των εννοιών του μαθήματος |
| **Επίλυση Προβλημάτων** | Δείχνει σαφή κατανόηση του προβλήματος και κομψή προσέγγιση λύσης | Καλή προσέγγιση επίλυσης προβλήματος με σταθερή λογική | Επαρκής επίλυση προβλήματος με κάποια σύγχυση | Ασαφής προσέγγιση, δεν δείχνει κατανόηση |
## Οδηγίες Υποβολής
1. **Δοκιμάστε τον κώδικά σας** διεξοδικά με τα παρεχόμενα παραδείγματα
2. **Προσθέστε σχόλια** που εξηγούν τη λογική σας, ειδικά για τις δηλώσεις συνθηκών
3. **Επαληθεύστε ότι το αποτέλεσμα** ταιριάζει με τα αναμενόμενα: `['A', 'B-', 4, 5]`
4. **Σκεφτείτε περιπτώσεις άκρων** όπως κενά arrays ή απροσδόκητους τύπους δεδομένων
> 💡 **Χρήσιμη Συμβουλή**: Ξεκινήστε απλά! Κάντε τη βασική λειτουργικότητα να δουλέψει πρώτα, και μετά προσθέστε πιο εξελιγμένα χαρακτηριστικά. Θυμηθείτε, ο στόχος είναι να εξασκηθείτε στη λογική λήψης αποφάσεων με τα εργαλεία που μάθατε σε αυτό το μάθημα.
---
**Αποποίηση ευθύνης**:
Αυτό το έγγραφο έχει μεταφραστεί χρησιμοποιώντας την υπηρεσία αυτόματης μετάφρασης [Co-op Translator](https://github.com/Azure/co-op-translator). Παρόλο που καταβάλλουμε προσπάθειες για ακρίβεια, παρακαλούμε να έχετε υπόψη ότι οι αυτόματες μεταφράσεις ενδέχεται να περιέχουν λάθη ή ανακρίβειες. Το πρωτότυπο έγγραφο στη μητρική του γλώσσα θα πρέπει να θεωρείται η αυθεντική πηγή. Για κρίσιμες πληροφορίες, συνιστάται επαγγελματική ανθρώπινη μετάφραση. Δεν φέρουμε ευθύνη για τυχόν παρεξηγήσεις ή εσφαλμένες ερμηνείες που προκύπτουν από τη χρήση αυτής της μετάφρασης.