ΕΙΣΑΓΩΓΗ ΣΤΟΝ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ

ΑΕΠΠ — Από την έννοια του προγράμματος στον δομημένο προγραμματισμό (ψευδογλώσσα ΓΛΩΣΣΑ)

ΑΗ έννοια του προγράμματος

Ορισμός

Πρόγραμμα ονομάζεται το σύνολο εντολών, γραμμένων σε μια γλώσσα προγραμματισμού, οι οποίες δίνουν στον υπολογιστή τα βήματα που πρέπει να εκτελέσει για την επίλυση ενός συγκεκριμένου προβλήματος.

Το πρόγραμμα είναι στην ουσία η κωδικοποίηση ενός αλγορίθμου σε μορφή κατανοητή από τον υπολογιστή (ή από τον μεταγλωττιστή/διερμηνέα που τον μετατρέπει σε εκτελέσιμη μορφή).

Πρόβλημα → Αλγόριθμος (βήματα λύσης) → Πρόγραμμα (κώδικας σε γλώσσα προγραμματισμού) → Εκτέλεση από τον υπολογιστή

Ο υπολογιστής «καταλαβαίνει» μόνο 0 και 1

Ο υπολογιστής, ως ηλεκτρονική μηχανή, δεν αντιλαμβάνεται λέξεις, εικόνες ή ήχους όπως εμείς. Στο εσωτερικό του, κάθε πληροφορία — δεδομένα αλλά και οι ίδιες οι εντολές — αναπαρίσταται τελικά ως ακολουθίες από 0 και 1 (δυαδικό σύστημα), ανάλογα με το αν ένα ηλεκτρικό σήμα υπάρχει ή όχι.

Ο υπολογιστής από μόνος του δεν έχει καμία «εξυπνάδα». Είναι τα προγράμματα που, μεταφράζοντας τη λογική επίλυσης ενός προβλήματος σε τέτοιες ακολουθίες 0 και 1, δίνουν στον υπολογιστή την αίσθηση ότι «σκέφτεται» ή «αποφασίζει» — στην πραγματικότητα απλώς εκτελεί, με τεράστια ταχύτητα, τις εντολές που του έχει δώσει ο προγραμματιστής.

01001000 01000101 01001100 01001100 01001111  →  έτσι «βλέπει» ο υπολογιστής μια λέξη· η «ευφυΐα» βρίσκεται στο πρόγραμμα που την παρήγαγε, όχι στη μηχανή.

Βασικά στοιχεία

  • Πηγαίος κώδικας (source code): το κείμενο του προγράμματος όπως το γράφει ο προγραμματιστής.
  • Μεταγλωττιστής / Διερμηνέας: μετατρέπει τον πηγαίο κώδικα σε εντολές που εκτελεί ο υπολογιστής.
  • Εκτελέσιμο πρόγραμμα: η τελική μορφή που «τρέχει» στον υπολογιστή, δηλαδή σε 0 και 1.

Στάδια αντιμετώπισης ενός προβλήματος

1. Κατανόηση προβλήματος
2. Ανάπτυξη αλγορίθμου
3. Μετατροπή αλγορίθμου σε πρόγραμμα
  • Κατανόηση του προβλήματος: προσδιορισμός δεδομένων εισόδου, ζητούμενων αποτελεσμάτων και των σχέσεων μεταξύ τους.
  • Ανάπτυξη αλγορίθμου: σχεδίαση των βημάτων που οδηγούν στη λύση, ανεξάρτητα από γλώσσα προγραμματισμού.
  • Μετατροπή του αλγορίθμου σε πρόγραμμα: κωδικοποίηση των βημάτων σε μια γλώσσα προγραμματισμού (π.χ. στην ψευδογλώσσα ΓΛΩΣΣΑ του μαθήματος ΑΕΠΠ), ώστε να μπορεί τελικά να εκτελεστεί από υπολογιστή.

ΒΙεραρχική σχεδίαση προγράμματος

Τι είναι

Η ιεραρχική σχεδίαση (top-down design) είναι μια τεχνική σχεδίασης προγράμματος κατά την οποία ένα σύνθετο πρόβλημα αναλύεται σταδιακά από το γενικό στο ειδικό: ξεκινάμε από τον γενικό στόχο του προγράμματος και τον χωρίζουμε σε μικρότερα, απλούστερα υποπροβλήματα, τα οποία αναλύονται περαιτέρω όσο χρειάζεται.

Το αποτέλεσμα απεικονίζεται συχνά με ένα δομικό διάγραμμα (διάγραμμα ιεραρχίας).

Κύριο Πρόγραμμα
Υποπρόγραμμα 1
Υποπρόγραμμα 2
Υποπρόγραμμα 3
Ενέργεια 2.1
Ενέργεια 2.2

Πλεονεκτήματα

  • Απλοποιεί την αντιμετώπιση ενός περίπλοκου προβλήματος.
  • Κάνει πιο εύκολο τον εντοπισμό και τη διόρθωση λαθών.
  • Επιτρέπει την ανάθεση διαφορετικών τμημάτων σε διαφορετικά μέλη μιας ομάδας.
  • Βοηθά στην καλύτερη κατανόηση και τεκμηρίωση του προγράμματος.

ΓΤμηματικός προγραμματισμός

Τι είναι

Ο τμηματικός προγραμματισμός (modular programming) είναι η τεχνική κατά την οποία το πρόγραμμα χωρίζεται σε ανεξάρτητα, αυτοτελή τμήματα — τα υποπρογράμματα (διαδικασίες και συναρτήσεις) — καθένα από τα οποία εκτελεί μια συγκεκριμένη, καλά ορισμένη εργασία.

Είναι η φυσική συνέχεια της ιεραρχικής σχεδίασης: κάθε «κουτί» του διαγράμματος ιεραρχίας μπορεί να υλοποιηθεί ως ξεχωριστό υποπρόγραμμα (module).

Module ΑΕίσοδος δεδομένων
Module ΒΕπεξεργασία
Module ΓΈλεγχος
Module ΔΈξοδος αποτελεσμάτων

Πλεονεκτήματα

  • Επαναχρησιμοποίηση κώδικα — το ίδιο υποπρόγραμμα καλείται όσες φορές χρειάζεται.
  • Ευκολότερος έλεγχος και εντοπισμός σφαλμάτων, αφού κάθε τμήμα ελέγχεται ξεχωριστά.
  • Παράλληλη ανάπτυξη από διαφορετικά μέλη μιας ομάδας προγραμματιστών.
  • Ευκολότερη συντήρηση — μια αλλαγή αφορά μόνο το σχετικό module.
  • Μείωση της συνολικής πολυπλοκότητας του προγράμματος.

ΔΔομημένος προγραμματισμός

Τι είναι

Ο δομημένος προγραμματισμός είναι η τεχνική γραφής προγραμμάτων χρησιμοποιώντας αποκλειστικά τρεις βασικές δομές ελέγχου της ροής εκτέλεσης, αποφεύγοντας άναρχα άλματα (όπως η εντολή GOTO) που δυσκολεύουν την κατανόηση του κώδικα.

Κάθε δομή έχει ένα σημείο εισόδου και ένα σημείο εξόδου, γεγονός που κάνει τη ροή του προγράμματος εύκολα κατανοητή.

1. Ακολουθία

Εντολή 1 Εντολή 2 Εντολή 3

Οι εντολές εκτελούνται η μία μετά την άλλη.

2. Επιλογή

Συνθήκη; Ναι Όχι Εντολή Α Εντολή Β

Ανάλογα με μια συνθήκη, εκτελείται η μία ή η άλλη εντολή.

3. Επανάληψη

Εντολή Συνθήκη;

Μια εντολή (ή ομάδα εντολών) επαναλαμβάνεται όσο ισχύει μια συνθήκη.

Γιατί είναι σημαντικός

  • Κάνει τον κώδικα πιο ευανάγνωστο και κατανοητό.
  • Διευκολύνει τον έλεγχο ορθότητας του προγράμματος.
  • Κάνει ευκολότερη τη συντήρηση και την τροποποίηση του κώδικα.
  • Αποφεύγει τον «κώδικα-σπαγγέτι» που προκαλούν τα ανεξέλεγκτα άλματα (GOTO).