Κατηγορία: Εισαγωγή στην Έννοια του Αλγορίθμου και στον Προγραμματισμό

Εισαγωγή στην Έννοια του Αλγορίθμου και στον Προγραμματισμό

 

Η έννοια του προβλήματος

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

Η λύση ενός προβλήματος δεν μας είναι γνωστή, ούτε προφανής.

 

Κατηγορίες προβλημάτων:

  • Υπολογιστικά προβλήματα: απαιτούν μία σειρά από λογικές σκέψεις και μαθηματικές πράξεις. Στην κατηγορία αυτή εντάσσονται τα προβλήματα της Φυσικής, των Μαθηματικών, καθώς και τα καθημερινά προβλήματα, π.χ. ποιος είναι ο συντομότερος δρόμος για να πάω σχολείο, πως θα οργανώσω μία εκδρομή, ποιος είναι ο μέσος όρος της βαθμολογίας μου, τι διαστάσεις πρέπει να έχει το γραφείο που θα αγοράσω;
  • Προβλήματα που δεν μπορούμε να τα επιλύσουμε με τις μέχρι τώρα γνώσεις μας, όπως η ακριβής πρόβλεψη των σεισμών, η γήρανση του ανθρώπου, η ανακάλυψη εξωγήινων πολιτισμών και η επικοινωνία μαζί τους.
  • Άλυτα Προβλήματα: έχει αποδειχθεί ότι δεν μπορούμε να τα επιλύσουμε, όπως: ο τετραγωνισμός του κύκλου με κανόνα και διαβήτη ή το ταξίδι στο παρελθόν.

 

Δεδομένα προβλήματος: είναι τα στοιχεία που μας είναι γνωστά και βοηθούν στην επίλυση του προβλήματος.

 Σε κάθε πρόβλημα ψάχνουμε να βρούμε την απάντηση σε μια ερώτηση. Αυτό που ψάχνουμε είναι το ζητούμενο.

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

Για να επιλύσουμε ένα πρόβλημα, πρέπει:

  • Να το κατανοήσουμε. Πρέπει δηλαδή να καταλάβουμε καλά το περιεχόμενο του, να διακρίνουμε τα δεδομένα που έχουμε στη διάθεσή μας και τα ζητούμενά του.
  • Να προσδιορίσουμε το περιβάλλον ή το πλαίσιο στο οποίο εντάσσεται.
  • Για να μπορέσουμε να επιλύσουμε ένα σύνθετο πρόβλημα, είναι αναγκαίο να το αναλύσουμε σε απλούστερα προβλήματα :

Διαδικασία επίλυσης προβλήματος:

Καταγραφή δεδοµένων    →  ∆ιαδικασία λύσης (επεξεργασία)    → Ζητούμενο

 

 

Τι είναι Αλγόριθμος

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

Ιδιαίτερα σημαντική είναι η σωστή/λογική σειρά με την οποία θα διατυπωθούν οι οδηγίες.

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

 

 

Ιδιότητες ενός Αλγορίθμου

Τα βήματα που αποτελούν έναν αλγόριθμο, ονομάζονται οδηγίες ή εντολές.

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

Οι αλγόριθμοι που υλοποιούμε πρέπει να πληρούν κάποιες προϋποθέσεις. Οι εντολές του αλγορίθμου πρέπει να:

  • Πρέπει να είναι πεπερασμένες σε αριθμό, δηλαδή ο αλγόριθμος πρέπει κάποτε να τελειώσει επιτυγχάνοντας τον αρχικό του σκοπό
  • Έχουν ακρίβεια και σαφήνεια
  • Είναι εκφρασμένες με απλά λόγια ώστε να είναι απόλυτα κατανοητές

 

 

 

Υλοποίηση Αλγορίθμου με Υπολογιστή, Προγραμματισμός

Ένα πρόγραμμα είναι η αναπαράσταση ενός αλγορίθμου, σε γλώσσα κατανοητή για έναν υπολογιστή.

Ένα πρόγραμμα, δηλαδή, αποτελείται από μία σειρά εντολών, σε συγκεκριμένη λογική σειρά που δίνονται στον υπολογιστή με σκοπό να εκτελέσει κάποια συγκεκριμένη λειτουργία ή να υπολογίσει κάποιο επιθυμητό αποτέλεσμα.

Προγραμματισμός είναι η διαδικασία σύνταξης προγραμμάτων.

Προγραμματιστές είναι τα άτομα που γράφουν και συντάσσουν προγράμματα.

 

 

Γλώσσες Προγραμματισμού

Φυσικές γλώσσες (Ελληνική, Αγγλική κ.λπ.) είναι οι γλώσσες που χρησιμοποιούν οι άνθρωποι για να επικοινωνήσουν μεταξύ τους.

Γλώσσες προγραµµατισµού είναι οι τεχνητές γλώσσες που χρησιμοποιούνται για να επικοινωνήσουν οι άνθρωποι µε τους υπολογιστές και τις οποίες «καταλαβαίνουν» οι υπολογιστές.

 

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

Γλώσσες υψηλού επιπέδου

Είναι γλώσσες προγραμματισμού που μοιάζουν αρκετά με τις ανθρώπινες γλώσσες.

Λύνουν τα προβλήματα της γλώσσας μηχανής:

  • Ένας αλγόριθμος μετατρέπεται εύκολα σε πρόγραμμα
  • Υλοποιούν σύνθετες αλγοριθμικές δομές και μπορούμε να κατασκευάσουμε δύσκολα προγράμματα
  • Είναι ανεξάρτητες από τον τύπο του επεξεργαστή.

Μερικές γνωστές γλώσσες προγραμματισμού είναι η Python, η Visual Basic, η Logo, η Pascal, η C++, η Java και άλλες.

 

 

Χαρακτηριστικά των γλωσσών προγραμματισμού

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

 

Το ολοκληρωμένο προγραμματιστικό περιβάλλον

Ένα περιβάλλον προγραμματισμού αποτελείται από διάφορα εργαλεία που βοηθάνε τον προγραμματιστή να γράψει και να διορθώσει τα προγράμματα του.

Τα εργαλεία αυτά είναι:

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

Τα προγράµµατα μεταφραστές μπορούν να χωριστούν σε δύο κατηγορίες:

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

Αντίθετα οι διερμηνείς (interpreters) ελέγχουν μία οδηγία κάθε φορά, την εκτελούν και μετά ελέγχουν την επόμενη οδηγία. Η γλώσσα προγραμματισμού Logo χρησιμοποιεί διερμηνέα.

 

 

Λάθη κατά τον προγραμματισμό

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

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

 

Στάδια κατά την εκτέλεση ενός αλγορίθμου από την Κ.Μ.Ε. του υπολογιστή