|
|
<!--
|
|
|
CO_OP_TRANSLATOR_METADATA:
|
|
|
{
|
|
|
"original_hash": "8abcada0534e0fb3a7556ea3c5a2a8a4",
|
|
|
"translation_date": "2025-10-23T19:56:03+00:00",
|
|
|
"source_file": "2-js-basics/4-arrays-loops/assignment.md",
|
|
|
"language_code": "el"
|
|
|
}
|
|
|
-->
|
|
|
# Εργασία με Πίνακες και Βρόχους
|
|
|
|
|
|
## Οδηγίες
|
|
|
|
|
|
Ολοκληρώστε τις παρακάτω ασκήσεις για να εξασκηθείτε στη χρήση πινάκων και βρόχων. Κάθε άσκηση βασίζεται σε έννοιες από το μάθημα και σας ενθαρρύνει να εφαρμόσετε διαφορετικούς τύπους βρόχων και μεθόδους πινάκων.
|
|
|
|
|
|
### Άσκηση 1: Δημιουργία Μοτίβου Αριθμών
|
|
|
Δημιουργήστε ένα πρόγραμμα που καταγράφει κάθε 3ο αριθμό μεταξύ 1-20 και τον εκτυπώνει στην κονσόλα.
|
|
|
|
|
|
**Απαιτήσεις:**
|
|
|
- Χρησιμοποιήστε έναν βρόχο `for` με προσαρμοσμένη αύξηση
|
|
|
- Εμφανίστε τους αριθμούς σε φιλική προς τον χρήστη μορφή
|
|
|
- Προσθέστε περιγραφικά σχόλια που εξηγούν τη λογική σας
|
|
|
|
|
|
**Αναμενόμενο Αποτέλεσμα:**
|
|
|
```
|
|
|
3, 6, 9, 12, 15, 18
|
|
|
```
|
|
|
|
|
|
> **Συμβουλή:** Τροποποιήστε την έκφραση επανάληψης στον βρόχο `for` για να παραλείψετε αριθμούς.
|
|
|
|
|
|
### Άσκηση 2: Ανάλυση Πίνακα
|
|
|
Δημιουργήστε έναν πίνακα με τουλάχιστον 8 διαφορετικούς αριθμούς και γράψτε συναρτήσεις για την ανάλυση των δεδομένων.
|
|
|
|
|
|
**Απαιτήσεις:**
|
|
|
- Δημιουργήστε έναν πίνακα που ονομάζεται `numbers` με τουλάχιστον 8 τιμές
|
|
|
- Γράψτε μια συνάρτηση `findMaximum()` που επιστρέφει τον μεγαλύτερο αριθμό
|
|
|
- Γράψτε μια συνάρτηση `findMinimum()` που επιστρέφει τον μικρότερο αριθμό
|
|
|
- Γράψτε μια συνάρτηση `calculateSum()` που επιστρέφει το άθροισμα όλων των αριθμών
|
|
|
- Δοκιμάστε κάθε συνάρτηση και εμφανίστε τα αποτελέσματα
|
|
|
|
|
|
**Πρόκληση Bonus:** Δημιουργήστε μια συνάρτηση που βρίσκει τον δεύτερο μεγαλύτερο αριθμό στον πίνακα.
|
|
|
|
|
|
### Άσκηση 3: Επεξεργασία Πίνακα Συμβολοσειρών
|
|
|
Δημιουργήστε έναν πίνακα με τις αγαπημένες σας ταινίες/βιβλία/τραγούδια και εξασκηθείτε σε διαφορετικούς τύπους βρόχων.
|
|
|
|
|
|
**Απαιτήσεις:**
|
|
|
- Δημιουργήστε έναν πίνακα με τουλάχιστον 5 τιμές συμβολοσειρών
|
|
|
- Χρησιμοποιήστε έναν παραδοσιακό βρόχο `for` για να εμφανίσετε τα στοιχεία με αριθμούς (1. Όνομα Στοιχείου)
|
|
|
- Χρησιμοποιήστε έναν βρόχο `for...of` για να εμφανίσετε τα στοιχεία με κεφαλαία γράμματα
|
|
|
- Χρησιμοποιήστε τη μέθοδο `forEach()` για να μετρήσετε και να εμφανίσετε το συνολικό αριθμό χαρακτήρων
|
|
|
|
|
|
**Παράδειγμα Αποτελέσματος:**
|
|
|
```
|
|
|
Traditional for loop:
|
|
|
1. The Matrix
|
|
|
2. Inception
|
|
|
3. Interstellar
|
|
|
|
|
|
For...of loop (uppercase):
|
|
|
THE MATRIX
|
|
|
INCEPTION
|
|
|
INTERSTELLAR
|
|
|
|
|
|
Character count:
|
|
|
Total characters across all titles: 42
|
|
|
```
|
|
|
|
|
|
### Άσκηση 4: Φιλτράρισμα Δεδομένων (Προχωρημένο)
|
|
|
Δημιουργήστε ένα πρόγραμμα που επεξεργάζεται έναν πίνακα αντικειμένων που αντιπροσωπεύουν μαθητές.
|
|
|
|
|
|
**Απαιτήσεις:**
|
|
|
- Δημιουργήστε έναν πίνακα με τουλάχιστον 5 αντικείμενα μαθητών με ιδιότητες: `name`, `age`, `grade`
|
|
|
- Χρησιμοποιήστε βρόχους για να βρείτε μαθητές που είναι 18 ετών ή μεγαλύτεροι
|
|
|
- Υπολογίστε τον μέσο όρο βαθμολογίας όλων των μαθητών
|
|
|
- Δημιουργήστε έναν νέο πίνακα που περιέχει μόνο μαθητές με βαθμολογία πάνω από 85
|
|
|
|
|
|
**Παράδειγμα Δομής:**
|
|
|
```javascript
|
|
|
const students = [
|
|
|
{ name: "Alice", age: 17, grade: 92 },
|
|
|
{ name: "Bob", age: 18, grade: 84 },
|
|
|
// Add more students...
|
|
|
];
|
|
|
```
|
|
|
|
|
|
## Δοκιμή του Κώδικα
|
|
|
|
|
|
Δοκιμάστε τα προγράμματά σας:
|
|
|
1. Εκτελώντας κάθε άσκηση στην κονσόλα του προγράμματος περιήγησης
|
|
|
2. Επαληθεύοντας ότι τα αποτελέσματα ταιριάζουν με τα αναμενόμενα
|
|
|
3. Δοκιμάζοντας με διαφορετικά σύνολα δεδομένων
|
|
|
4. Ελέγχοντας ότι ο κώδικάς σας χειρίζεται ακραίες περιπτώσεις (κενά σύνολα, μεμονωμένα στοιχεία)
|
|
|
|
|
|
## Οδηγίες Υποβολής
|
|
|
|
|
|
Συμπεριλάβετε τα εξής στην υποβολή σας:
|
|
|
- Καλά σχολιασμένο κώδικα JavaScript για κάθε άσκηση
|
|
|
- Στιγμιότυπα οθόνης ή κείμενο αποτελεσμάτων που δείχνουν την εκτέλεση των προγραμμάτων σας
|
|
|
- Σύντομη εξήγηση για τον τύπο βρόχου που επιλέξατε για κάθε εργασία και γιατί
|
|
|
|
|
|
## Κριτήρια Αξιολόγησης
|
|
|
|
|
|
| Κριτήρια | Εξαιρετικό (3 βαθμοί) | Επαρκές (2 βαθμοί) | Χρειάζεται Βελτίωση (1 βαθμός) |
|
|
|
| -------- | --------------------- | ------------------ | ----------------------------- |
|
|
|
| **Λειτουργικότητα** | Όλες οι ασκήσεις ολοκληρώθηκαν σωστά με τις προκλήσεις bonus | Όλες οι απαιτούμενες ασκήσεις λειτουργούν σωστά | Κάποιες ασκήσεις είναι ημιτελείς ή περιέχουν σφάλματα |
|
|
|
| **Ποιότητα Κώδικα** | Καθαρός, καλά οργανωμένος κώδικας με περιγραφικά ονόματα μεταβλητών | Ο κώδικας λειτουργεί αλλά θα μπορούσε να είναι πιο καθαρός | Ο κώδικας είναι ακατάστατος ή δύσκολος στην κατανόηση |
|
|
|
| **Σχόλια** | Πλήρη σχόλια που εξηγούν τη λογική και τις αποφάσεις | Υπάρχουν βασικά σχόλια | Ελάχιστα ή καθόλου σχόλια |
|
|
|
| **Χρήση Βρόχων** | Επιδεικνύει κατανόηση διαφορετικών τύπων βρόχων κατάλληλα | Χρησιμοποιεί σωστά βρόχους αλλά με περιορισμένη ποικιλία | Λανθασμένη ή μη αποδοτική χρήση βρόχων |
|
|
|
| **Δοκιμή** | Αποδεικτικά στοιχεία διεξοδικής δοκιμής με πολλαπλά σενάρια | Βασική δοκιμή αποδεικνύεται | Ελάχιστα αποδεικτικά στοιχεία δοκιμής |
|
|
|
|
|
|
## Ερωτήσεις Αναστοχασμού
|
|
|
|
|
|
Μετά την ολοκλήρωση των ασκήσεων, σκεφτείτε:
|
|
|
1. Ποιος τύπος βρόχου σας φάνηκε πιο φυσικός στη χρήση και γιατί;
|
|
|
2. Ποιες προκλήσεις αντιμετωπίσατε κατά την εργασία με πίνακες;
|
|
|
3. Πώς θα μπορούσαν αυτές οι δεξιότητες να εφαρμοστούν σε πραγματικά έργα ανάπτυξης ιστού;
|
|
|
4. Τι θα κάνατε διαφορετικά αν έπρεπε να βελτιστοποιήσετε τον κώδικα για απόδοση;
|
|
|
|
|
|
---
|
|
|
|
|
|
**Αποποίηση ευθύνης**:
|
|
|
Αυτό το έγγραφο έχει μεταφραστεί χρησιμοποιώντας την υπηρεσία αυτόματης μετάφρασης [Co-op Translator](https://github.com/Azure/co-op-translator). Παρόλο που καταβάλλουμε προσπάθειες για ακρίβεια, παρακαλούμε να έχετε υπόψη ότι οι αυτόματες μεταφράσεις ενδέχεται να περιέχουν λάθη ή ανακρίβειες. Το πρωτότυπο έγγραφο στη μητρική του γλώσσα θα πρέπει να θεωρείται η αυθεντική πηγή. Για κρίσιμες πληροφορίες, συνιστάται επαγγελματική ανθρώπινη μετάφραση. Δεν φέρουμε ευθύνη για τυχόν παρεξηγήσεις ή εσφαλμένες ερμηνείες που προκύπτουν από τη χρήση αυτής της μετάφρασης. |