Λύσεις — Κεφάλαιο 2 · Από τον Αλγόριθμο στην Ανάπτυξη Προγράμματος (σελ. 32)
Απαντήσεις στις Ερωτήσεις (μοντέλα καταρράκτη/σπείρας, προγραμματιστικά υποδείγματα, δομημένος & αντικειμενοστρεφής προγραμματισμός, σύγχρονες γλώσσες).
Ερ.1 — Φάσεις μοντέλου καταρράκτη
Ερώτηση: Ποιες είναι οι βασικές φάσεις ανάπτυξης λογισμικού στο μοντέλο του καταρράκτη;
Απάντηση:
-
- Ανάλυση απαιτήσεων (τι πρέπει να κάνει).
-
- Σχεδίαση (πώς — αρχιτεκτονική/δομές).
-
- Υλοποίηση (γράψιμο κώδικα).
-
- Ολοκλήρωση (ένωση τμημάτων & έλεγχος).
-
- Λειτουργία & συντήρηση.
Σύνοψη: (ενδεικτική) Ανάλυση απαιτήσεων → Σχεδίαση → Υλοποίηση → Ολοκλήρωση → Λειτουργία & συντήρηση (διαδοχικές φάσεις).
Κριτήρια αξιολόγησης:
- Κριτήριο: οι 5 φάσεις με σωστή σειρά.
Ερ.2 — Βασικά προγραμματιστικά υποδείγματα
Ερώτηση: Ποια είναι τα βασικά προγραμματιστικά υποδείγματα;
Απάντηση:
- Προστακτικός (imperative): εντολές που αλλάζουν την κατάσταση μεταβλητών (π.χ. C, Pascal) — με ειδική περίπτωση τον δομημένο.
- Δηλωτικός (declarative): περιγραφή του σκοπού — συναρτησιακός (Lisp) & λογικός (Prolog).
- Αντικειμενοστρεφής (OOP): οργάνωση σε αντικείμενα (Java, C++, Python).
Σύνοψη: (ενδεικτική) Προστακτικός (& δομημένος), δηλωτικός (συναρτησιακός/λογικός), αντικειμενοστρεφής.
Κριτήρια αξιολόγησης:
- Κριτήριο: αναφορά προστακτικού/δηλωτικού/αντικειμενοστρεφούς.
Ερ.3 — Χαρακτηριστικά δομημένου προγραμματισμού
Ερώτηση: Ποια είναι τα βασικά χαρακτηριστικά του δομημένου προγραμματισμού;
Απάντηση:
- Χτίζει το πρόγραμμα μόνο με τρεις βασικές δομές: ακολουθία, επιλογή, επανάληψη.
- Αποφεύγει το
goto (που έδινε μη δομημένο «spaghetti» κώδικα).
- Αποτέλεσμα: κώδικας πιο ευανάγνωστος, αξιόπιστος και συντηρήσιμος.
Σύνοψη: (ενδεικτική) Χρήση μόνο ακολουθίας/επιλογής/επανάληψης, χωρίς goto → ευανάγνωστος, αξιόπιστος, συντηρήσιμος κώδικας.
Κριτήρια αξιολόγησης:
- Κριτήριο: οι 3 δομές + αποφυγή goto.
Ερ.4 — Χαρακτηριστικά αντικειμενοστρεφούς
Ερώτηση: Ποια είναι τα βασικά χαρακτηριστικά του αντικειμενοστρεφούς προγραμματισμού;
Απάντηση:
- Οργάνωση σε αντικείμενα (δεδομένα + λειτουργίες) και κλάσεις.
- Ενθυλάκωση (απόκρυψη δεδομένων), κληρονομικότητα (μια κλάση κληρονομεί από άλλη), πολυμορφισμός (ίδια λειτουργία, διαφορετική συμπεριφορά).
Σύνοψη: (ενδεικτική) Αντικείμενα/κλάσεις με ενθυλάκωση, κληρονομικότητα και πολυμορφισμό.
Κριτήρια αξιολόγησης:
- Κριτήριο: αντικείμενα/κλάσεις + ≥2 από ενθυλάκωση/κληρονομικότητα/πολυμορφισμό.
Ερ.5 — Σύγχρονες γλώσσες
Ερώτηση: Αναφέρετε μερικές σύγχρονες γλώσσες προγραμματισμού.
Απάντηση:
- Python (μικτό υπόδειγμα), Java (αντικειμενοστρεφής), C/C++, JavaScript.
- (Κλασικές/ιστορικές: Pascal, C, Fortran, Cobol· δηλωτικές: Lisp, Prolog.)
Σύνοψη: (ενδεικτική) Π.χ. Python, Java, C/C++, JavaScript (κ.ά.).
Κριτήρια αξιολόγησης:
- ΕΝΔΕΙΚΤΙΚΗ: δεκτές διάφορες σύγχρονες γλώσσες. Κριτήριο: ≥3 υπαρκτές γλώσσες.