Αρχές Προγραμματισμού Βασικές έννοιες προγραμματισμού

Αλγόριθμοι

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

  • Είσοδος (input). Καμία, μία ή περισσότερες τιμές δεδομένων πρέπει να δίνονται ως είσοδοι στον αλγόριθμο. Η περίπτωση που δεν δίνονται τιμές δεδομένων εμφανίζεται, όταν ο αλγόριθμος δημιουργεί και επεξεργάζεται κάποιες πρωτογενείς τιμές με τη βοήθεια συναρτήσεων παραγωγής τυχαίων αριθμών ή με τη βοήθεια άλλων απλών εντολών.
  • Έξοδος (output). Ο αλγόριθμος πρέπει να δημιουργεί τουλάχιστον μία τιμή δεδομένων ως αποτέλεσμα προς το χρήστη ή προς έναν άλλο αλγόριθμο.
  • Καθοριστικότητα (definiteness). Κάθε εντολή πρέπει να καθορίζεται χωρίς καμία αμφιβολία για τον τρόπο εκτέλεσής της. Λόγου χάριν, μία εντολή διαίρεσης πρέπει να θεωρεί και την περίπτωση, όπου ο διαιρέτης λαμβάνει μηδενική τιμή.
  • Περατότητα (finiteness). Ο αλγόριθμος να τελειώνει μετά από πεπερασμένα βήματα εκτέλεσης των εντολών του. Μία διαδικασία που δεν τελειώνει μετά από ένα συγκεκριμένο αριθμό βημάτων δεν αποτελεί αλγόριθμο, αλλά λέγεται απλά υπολογιστική διαδικασία (computational procedure).
  • Αποτελεσματικότητα (effectiveness). Κάθε μεμονωμένη εντολή του αλγορίθμου να είναι απλή. Αυτό σημαίνει ότι μία εντολή δεν αρκεί να έχει ορισθεί, αλλά πρέπει να είναι και εκτελέσιμη.

Στη βιβλιογραφία συναντώνται διάφοροι τρόποι αναπαράστασης ενός αλγορίθμου:

  • με ελεύθερο κείμενο (free text), που αποτελεί τον πιο ανεπεξέργαστο και αδόμητο τρόπο παρουσίασης αλγορίθμου. Έτσι εγκυμονεί τον κίνδυνο ότι μπορεί εύκολα να οδηγήσει σε μη εκτελέσιμη παρουσίαση παραβιάζοντας το τελευταίο χαρακτηριστικό των αλγορίθμων, δηλαδή την αποτελεσματικότητα.
  • με διαγραμματικές τεχνικές (diagramming techniques), που συνιστούν ένα γραφικό τρόπο παρουσίασης του αλγορίθμου. Από τις διάφορες διαγραμματικές τεχνικές που έχουν επινοηθεί, η πιο παλιά και η πιο γνωστή ίσως, είναι το διάγραμμα ροής (flow chart). Ωστόσο η χρήση διαγραμμάτων ροής για την παρουσίαση αλγορίθμων δεν αποτελεί την καλύτερη λύση, γι' αυτό και εμφανίζονται όλο και σπανιότερα στη βιβλιογραφία και στην πράξη.
  • με φυσική γλώσσα (natural language) κατά βήματα. Στην περίπτωση αυτή χρειάζεται προσοχή, γιατί μπορεί να παραβιασθεί το τρίτο βασικό χαρακτηριστικό ενός αλγορίθμου, όπως προσδιορίσθηκε προηγουμένως, δηλαδή το κριτήριο του καθορισμού.
  • με κωδικοποίηση (coding), δηλαδή με ένα πρόγραμμα που όταν εκτελεσθεί θα δώσει τα ίδια αποτελέσματα με τον αλγόριθμο.

Για να μπορέσουμε να συντάξουμε έναν αλγόριθμο σε μορφή κώδικα, οποιαδήποτε γλώσσα και αν χρησιμοποιήσουμε απαραίτητα είναι οι σταθερές, οι μεταβλητές, οι τελεστές και οι εκφράσεις. Αναλυτικά,

  • Σταθερές (constands). Με τον όρο αυτό αναφερόμαστε σε προκαθορισμένες τιμές που παραμένουν αμετάβλητες σε όλη τη διάρκεια της εκτέλεσης ενός αλγορίθμου. Οι σταθερές διακρίνονται σε αριθμητικές, π.χ. 123, +5, -1,25 αλφαριθμητικές π.χ. "Τιμή", "Κατάσταση αποτελεσμάτων" λογικές που είναι ακριβώς δύο, Αληθής και Ψευδής
  • Μεταβλητές (variables). Μια μεταβλητή είναι ένα γλωσσικό αντικείμενο, που χρησιμοποιείται για να παραστήσει ένα στοιχείο δεδομένου. Στη μεταβλητή εκχωρείται μια τιμή, η οποία μπορεί να αλλάζει κατά τη διάρκεια εκτέλεσης του αλγορίθμου. Ανάλογα με το είδος της τιμής που μπορούν να λάβουν, οι μεταβλητές διακρίνονται σε αριθμητικές, αλφαριθμητικές και λογικές.
  • Τελεστές (operators). Πρόκειται για τα γνωστά σύμβολα που χρησιμοποιούνται στις διάφορες πράξεις. Οι τελεστές διακρίνονται σε αριθμητικούς, λογικούς και συγκριτικούς.
  • Εκφράσεις (expressions). Οι εκφράσεις διαμορφώνονται από τους τελεστέους (operands), που είναι σταθερές και μεταβλητές και από τους τελεστές. Η διεργασία αποτίμησης μιας έκφρασης συνίσταται στην απόδοση τιμών στις μεταβλητές και στην εκτέλεση των πράξεων. Η τελική τιμή μιας έκφρασης εξαρτάται από την ιεραρχία των πράξεων και τη χρήση των παρενθέσεων. Μια έκφραση μπορεί να αποτελείται από μια μόνο μεταβλητή ή σταθερά μέχρι μια πολύπλοκη μαθηματική παράσταση.
Στα παραδείγματα που ακολουθούν για την κωδικοποίηση έχει χρησιμοποιηθεί ψευδογλώσσα.

Αλγοριθμικές Δομές

Α.Δομή ακολουθίας

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

Παράδειγμα 1: Να διαβασθούν δύο αριθμοί, να υπολογισθεί και να εκτυπωθεί το άθροισμα τους.

Αλγόριθμος Παράδειγμα_1

Διάβασε α

Διάβασε b

Εκτύπωσε c

Τέλος Παράδειγμα_1

Ένας αλγόριθμος αρχίζει πάντα με τη λέξη «Αλγόριθμος» συνοδευόμενη με το όνομα του αλγορίθμου και τελειώνει με τη λέξη «Τέλος » συνοδευόμενη επίσης με το όνομα του αλγορίθμου

Η πρώτη ενέργεια που γίνεται, είναι η εισαγωγή των δεδομένων. Αυτό επιτυγχάνεται με τη χρήση του ρήματος «Διαβάζω»

Η λέξη «Διάβασε» συνοδεύεται με το όνομα μιας ή περισσοτέρων μεταβλητών, όπως ή a και εννοείται ότι μετά την ολοκλήρωση της ενέργειας αυτής, η μεταβλητή θα έχει λάβει κάποια αριθμητική τιμή ως περιεχόμενο

Κάθε μια λέξη της χρησιμοποιούμενης ψευδογλώσσας, που προσδιορίζει μια σαφή ενέργεια, θα αποκαλείται στο εξής εντολή. Όλες οι εντολές σε έναν αλγόριθμο αποτυπώνονται με διαφορετικό χρώμα από το όνομα του αλγορίθμου και τις διάφορες σταθερές και μεταβλητές. Η γενική μορφή της εντολής είναι : και η λειτουργία της είναι «γίνονται οι πράξεις στην έκφραση και το αποτέλεσμα αποδίδεται, μεταβιβάζεται, εκχωρείται στη μεταβλητή». Στο παράδειγμα μας μετά την ανάγνωση των τιμών των μεταβλητών α και b γίνεται ο υπολογισμός του αθροίσματος με την εντολή : . Η εντολή αυτή αποκαλείται εντολή εκχώρησης τιμής.Στην εντολή αυτή χρησιμοποιείται το αριστερό βέλος, προκειμένου να δείχνει την φορά της εκχώρησης.

Ο αλγόριθμος ολοκληρώνεται με την εντολή «Εκτύπωσε», που αποτυπώνει το τελικό αποτέλεσμα στον εκτυπωτή.

Β.Δομή επιλογής

H διαδικασία της επιλογής περιλαμβάνει τον έλεγχο κάποιας συνθήκης που μπορεί να έχει δύο τιμές (Αληθής ή Ψευδής) και ακολουθεί η απόφαση εκτέλεσης κάποιας ενέργειας με βάση την τιμή της λογικής αυτής συνθήκης.

Στην παράσταση αλγορίθμων με ψευδογλώσσα η γενική μορφή της δομής επιλογής είναι:

Αν συνθήκη τότε

      εντολή ή εντολές

αλλιώς

      εντολή ή εντολές

Τέλος_αν

Ανάλογα με τον αλγόριθμο που πρέπει να υλοποιηθεί κάποια τμήματα της δομής επιλογής μπορούν να παραληφθούν.

Παράδειγμα 2. Να διαβαστεί ένας αριθμός και να εκτυπωθεί η απόλυτη τιμή του.

Αλγόριθμος Παράδειγμα_2

Διάβασε

Αν τότε

Εκτύπωσε

Τέλος Παράδειγμα_2

Στο παραπάνω παράδειγμα η επιλογή υλοποιείται με την εντολή Αν...τότε. Η σύνταξη της εντολής είναι:

Αν συνθήκη τότε εντολή

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

Στην εντολή Αν...τότε είναι πιθανό, όταν ισχύει η συνθήκη, να απαιτείται η εκτέλεση περισσότερων από μία εντολές. Στην περίπτωση αυτή οι διαδοχικές εντολές γράφονται από κάτω και σε εσοχή, ενώ το σχήμα επιλογής κλείνει με τη λέξη Τέλος_αν.

Π.χ

Αν συνθήκη τότε

εντολή_1

εντολή_2

...

εντολή_ν

Τέλος_αν

Αν συνθήκη τότε

εντολή_1

αλλιώς

εντολή_2

...

εντολή_ν

Τέλος_αν

Παράδειγμα 3. Να διαβασθούν δύο αριθμοί και σε περίπτωση που ο πρώτος αριθμός είναι μικρότερος του δεύτερου, να υπολογισθεί και να εκτυπωθεί το άθροισμα τους, διαφορετικά να υπολογισθεί και να εκτυπωθεί η διαφορά τους.

Αλγόριθμος Παράδειγμα_3

Διάβασε

Αντότε

αλλιώς

Τέλος_αν

Εκτύπωσε c

Τέλος Παράδειγμα_3

Γ.Δομή επανάληψης

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

 Όσο συνθήκη επανάλαβε

εντολές

Τέλος_επανάληψης

Η λειτουργία της εντολής είναι η εξής: Επαναλαμβάνεται η εκτέλεση των εντολών, όσο η συνθήκη είναι αληθής. Όταν η συνθήκη γίνει ψευδής, τότε ο αλγόριθμος συνεχίζεται με την εντολή που ακολουθεί το Τέλος_επανάληψης. Το τμήμα του αλγορίθμου που επαναλαμβάνεται, δηλαδή από την εντολή Όσο μέχρι την εντολή Τέλος_επανάληψης αποκαλείται βρόχος.

Παράδειγμα 4. Να εκτυπωθεί το άθροισμα των ακεραίων αριθμών από το 1 έως το 10.

Αλγόριθμος Παράδειγμα_4

Όσο επανάλαβε

Τέλος_επανάληψης

Εκτύπωσε α

Τέλος Παράδειγμα_4

Όταν ο αριθμός των φορών που θα εκτελεστεί μια επαναληπτική διαδικασία είναι γνωστός εκ των προτέρων, τότε είναι προτιμότερο να χρησιμοποιείται η εντολή

Για μεταβλητή από τ1 μέχρι τ2 με_βήμα β

εντολές

Τέλος_επανάληψης

Η εντολή Για μεταβλητή από τ1 μέχρι τ2 με_βήμα β περιλαμβάνει όλα τα απαιτούμενα στοιχεία για την επανάληψη, δηλαδή το όνομα της μεταβλητής (γράφεται μετά το Για), την αρχική τιμή της (τ1, γράφεται μετά το από), την τελική τιμή (τ2, γράφεται μετά το μέχρι)καθώς και το βήμα με το οποίο αυξάνει η μεταβλητή (β, γράφεται μετά το με_βήμα)

Παρατηρήσεις:

  1. Το βήμα δεν μπορεί να είναι μηδέν, γιατί τότε ο βρόγχος εκτελείται επ’ άπειρον

  2. Το βήμα μπορεί να έχει αρνητική τιμή, αρκεί η τιμή από να είναι μεγαλύτερη από την τιμή μέχρι

  3. Οι τιμές από, μέχρι και βήμα δεν είναι απαραίτητο να είναι ακέραιες. Μπορούν να λάβουν οποιαδήποτε πραγματική τιμή.
Παράδειγμα 5. Το ίδιο παράδειγμα με τη χρήση της εντολής Για...από...μέχρι...με_βήμα...

Αλγόριθμος Παράδειγμα_5

Για ι απο 1 μέχρι 10 με_βήμα 1 επανάλαβε

Τέλος_επανάληψης

Εμφάνισε α

Τέλος Παράδειγμα_5

Παράρτημα: Στοιχεία Ψευδογλώσσας

α)Σταθερές

Αριθμητικές : χρησιμοποιούνται οι αριθμητικοί χαρακτήρες , το +, το – και το κόμμα ως δεκαδικό σημείο,

Αλφαριθμητικές : σχηματίζονται από όλους τους χαρακτήρες εντός διπλών εισαγωγικών,

Λογικές : υπάρχουν δύο, οι Αληθής και Ψευδής.

 β)Τελεστές

Αριθμητικοί : +, -, *, /, ^

Συγκριτικοί : ≤, <, =, ≠, >, ≥

Λογικοί : και (σύζευξη), ή (διάζευξη), όχι (άρνηση)

γ)Εκφράσεις

Σχηματίζονται από σταθερές, μεταβλητές, συναρτήσεις, τελεστές και παρενθέσεις.

δ)Εντολή εκχώρησης

ε)Σχήματα λογικών υποθέσεων.

Γενική μορφή

Αν συνθήκη τότε

εντολή ή εντολές

αλλιώς

εντολή ή εντολές

Τέλος_αν

α μορφή

Αν συνθήκη τότε εντολή

β μορφή

Αν συνθήκη τότε

εντολή_1

εντολή_2

...

εντολή_ν

Τέλος_αν

γ μορφή

Αν συνθήκη τότε

εντολή_1

αλλιώς

εντολή_2

...

εντολή_ν

Τέλος_αν

δ μορφή

Αν συνθήκη_1 τότε

εντολή_1

αλλιώς_αν συνθήκη_2 τότε

εντολή_2

...

αλλιώς_αν συνθήκη_ν τότε

εντολή_ν

Τέλος_αν

στ)Επαναληπτικές διαδικασίες

Όσο συνθήκη επανάλαβε

εντολές

Τέλος_επανάληψης


Για μεταβλητή από τ1 μέχρι τ2 με_βήμα β

εντολές

Τέλος_επανάληψης

ζ)Ρήματα σε προστακτική

Για παράδειγμα, “Διάβασε”, “Γράψε”, “Εκτέλεσε” κ.λ.π.

η)Πρώτη και τελευταία γραμμή

Η πρώτη και η τελευταία γραμμή ενός αλγορίθμου είναι αντίστοιχα Αλγόριθμος <όνομα_αλγορίθμου> και Τέλος <όνομα_αλγορίθμου>