Λύσεις — Κεφάλαιο 5 · Δομές Δεδομένων Ι — Python (σελ. 109) – ΑΡΧΕΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ ΥΠΟΛΟΓΙΣΤΩΝ

Λύσεις — Κεφάλαιο 5 · Δομές Δεδομένων Ι — Python (σελ. 109)

Απαντήσεις στις Ερωτήσεις (στατικές/δυναμικές δομές, βασικές δομές Python, λίστα και μέθοδοι, πλειάδα, λεξικό).


Ερ.1 — Στατική vs δυναμική δομή

Ερώτηση: Ποια η διαφορά μεταξύ μιας στατικής δομής δεδομένων και μιας δυναμικής δομής δεδομένων;

Απάντηση:

  • Στατική: το μέγεθός της καθορίζεται κατά τη συγγραφή του προγράμματος (γνωστό κατά τη μεταγλώττιση) και παραμένει σταθερό κατά την εκτέλεση — δεν μπορούμε να προσθέσουμε ή να αφαιρέσουμε αντικείμενα. Στην Python στατικές δομές είναι οι πλειάδες (tuples).
  • Δυναμική: στηρίζεται στη δυναμική εκχώρηση μνήμης κατά την εκτέλεση και μπορεί να μεταβάλλει το μέγεθός της, προσθέτοντας ή αφαιρώντας αντικείμενα — π.χ. η λίστα της Python.

Σύνοψη: (ενδεικτική) Στατική: σταθερό μέγεθος, καθορισμένο κατά τη συγγραφή του προγράμματος (π.χ. πλειάδα). Δυναμική: μέγεθος που μεταβάλλεται κατά την εκτέλεση με δυναμική εκχώρηση μνήμης (π.χ. λίστα).

Κριτήρια αξιολόγησης:

  • Κριτήριο: σταθερό vs μεταβαλλόμενο μέγεθος.

Ερ.2 — Βασικές δομές της Python

Ερώτηση: Ποιες είναι οι βασικές δομές δεδομένων που υποστηρίζει η γλώσσα προγραμματισμού Python;

Απάντηση:

  • Συμβολοσειρές (str), λίστες (list), πλειάδες (tuple), σύνολα (set) και λεξικά (dictionary).

Σύνοψη: (ενδεικτική) Συμβολοσειρές, λίστες, πλειάδες, σύνολα, λεξικά.

Κριτήρια αξιολόγησης:

  • Κριτήριο: αναφορά λίστας/πλειάδας/λεξικού (+ σύνολα/συμβολοσειρές).

Ερ.3 — Τι είναι η λίστα & πώς ορίζεται

Ερώτηση: Τι είναι η Λίστα στη γλώσσα προγραμματισμού Python και πώς μπορούμε να την ορίσουμε;

Απάντηση:

  • Είναι μια δυναμική, διατεταγμένη, μεταβλητή ακολουθία στοιχείων (κάθε τύπου).
  • Ορίζεται με αγκύλες: L = [10, 20, 30] (ή κενή L = []).
  • Πρόσβαση με δείκτη από το 0: L[0], L[-1], slicing L[1:3].

Σύνοψη: (ενδεικτική) Δυναμική/μεταβλητή διατεταγμένη ακολουθία, ορίζεται με αγκύλες, π.χ. L = [10, 20, 30].

Κριτήρια αξιολόγησης:

  • Κριτήριο: αγκύλες [] + δυναμική/μεταβλητή + δεικτοδότηση από 0.

Ερ.4 — Λειτουργίες/μέθοδοι λίστας

Ερώτηση: Ποιες είναι οι βασικές λειτουργίες-μέθοδοι που μπορούμε να εκτελέσουμε σε μια λίστα;

Απάντηση:

  • append(x): προσθήκη στοιχείου στο τέλος της λίστας.
  • insert(i, x): εισαγωγή του στοιχείου x σε συγκεκριμένη θέση (πριν από το στοιχείο i).
  • pop(i): αφαίρεση του στοιχείου της θέσης i· χωρίς όρισμα, pop() αφαιρεί το τελευταίο στοιχείο.
  • Επιπλέον: len(L) (πλήθος στοιχείων), τελεστής in (έλεγχος ύπαρξης), συνένωση λιστών με +, προσπέλαση με δείκτη/τμήμα (L[0], L[1:3]).

Σύνοψη: (ενδεικτική) append (προσθήκη στο τέλος), insert (εισαγωγή σε θέση), pop (αφαίρεση)· επίσης len, in, +, δεικτοδότηση.

Κριτήρια αξιολόγησης:

  • Κριτήριο: append + insert + pop (και άλλες σωστές λειτουργίες).

Ερ.5 — Πλειάδα & πότε

Ερώτηση: Τι είναι η πλειάδα και πότε τη χρησιμοποιούμε;

Απάντηση:

  • Η πλειάδα (tuple) είναι σύνθετος τύπος του οποίου τα στοιχεία είναι αμετάβλητα (immutable)· μοιάζει με λίστα, π.χ. rec = ('a', 'b', 120, 'r').
  • Τη χρησιμοποιούμε όταν θέλουμε να συγκρατήσουμε μαζί πολλαπλά αντικείμενα, συνήθως τα χαρακτηριστικά μιας οντότητας που δεν μεταβάλλονται (π.χ. στοιχεία ενός υπαλλήλου σε λίστα από πλειάδες).
  • Άλλες εφαρμογές: συναρτήσεις με ορίσματα μεταβλητού μεγέθους και αντιμετάθεση τιμών χωρίς βοηθητική μεταβλητή: a, b = b, a.

Σύνοψη: (ενδεικτική) Αμετάβλητη ακολουθία στοιχείων (tuple)· τη χρησιμοποιούμε για να κρατάμε μαζί πολλαπλά αντικείμενα/χαρακτηριστικά μιας οντότητας που δεν μεταβάλλονται.

Κριτήρια αξιολόγησης:

  • Κριτήριο: αμεταβλητότητα + κατάλληλη χρήση (ομαδοποίηση χαρακτηριστικών που δεν αλλάζουν).

Ερ.6 — Τι είναι το λεξικό

Ερώτηση: Τι είναι το λεξικό;

Απάντηση:

  • Ενσωματωμένη δομή της Python: ένα σύνολο ζευγών κλειδιών-τιμών, όπου κάθε κλειδί εμφανίζεται το πολύ μία φορά· ορίζεται με άγκιστρα: d = {'Α': 2, 'Β': 4}.
  • Μοιάζει με λίστα που έχει ως δείκτες αλφαριθμητικά και όχι ακέραιους: η πρόσβαση γίνεται με το κλειδί (d['Α']), όπως σε τηλεφωνικό κατάλογο βρίσκουμε τα στοιχεία κάποιου από το όνομά του.
  • Λειτουργίες: εκχώρηση d[κλειδί] = τιμή, διαγραφή με del, έλεγχος ύπαρξης με in.

Σύνοψη: (ενδεικτική) Δομή με ζεύγη κλειδί→τιμή, ορίζεται με άγκιστρα· πρόσβαση μέσω μοναδικού κλειδιού.

Κριτήρια αξιολόγησης:

  • Κριτήριο: ζεύγη key:value + πρόσβαση με κλειδί.

ΑΡΧΕΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Η/Υ Β' ΕΠΑΛ - ΣΧΟΛΙΚΟ ΒΙΒΛΙΟ ΜΑΘΗΤΗ (PDF)