top
logo

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

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

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

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

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

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

Εμείς στο μάθημά αυτό, θα ασχοληθούμε με τα υπολογιστικά προβλήματα.

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

Ζητούμενα: Όσα πρέπει να βρούμε

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

Για να επιλύσουμε ένα πρόβλημα, πρέπει να είναι διατυπωμένο σωστά και να το κατανοήσουμε, πρέπει δηλαδή να:

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

Μπορούμε να περιγράψουμε την λύση ενός προβλήματος δίνοντας σαφείς και απλές στην διατύπωσή τους οδηγίες.

ΑΛΓΟΡΙΘΜΟΣ ΠΥΡΓΟΙ ΑΝΟΪ

https://blogs.sch.gr/2epalkardits/files/2020/06/%CE%BF%CE%B4%CE%B7%CE%B3%CE%AF%CE%B5%CF%82-%CE%B2%CE%AE%CE%BC%CE%B1-%CE%B2%CE%AE%CE%BC%CE%B1-%CE%B3%CE%B9%CE%B1-%CF%84%CE%BF%CF%85%CF%82-%CF%80%CF%8D%CF%81%CE%B3%CE%BF%CF%85%CF%82-%CF%84%CE%BF%CF%85-%CE%91%CE%BD%CF%8C%CE%B9.pdf

ΠΑΙΞΤΕ

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

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

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

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

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

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

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

  1. Α. Είσοδος: να παίρνει ως δεδομένα 1 ή περισσότερες τιμές.
  2. Β. Έξοδος: να δίνει τουλάχιστον μία τιμή ως αποτέλεσμα.
  3. Γ. Καθοριστικότητα: κάθε εντολή να έχει απόλυτα καθορισμένο τρόπο εκτέλεσης.
  4. Δ. Περατότητα: Ο αλγόριθμος πρέπει να τελειώνει μετά από συγκεκριμένο αριθμό βημάτων- εντολών
  5. Ε. Αποτελεσματικότητα: κάθε εντολή πρέπει να είναι απλή και να μπορεί να εκτελεστεί

Οπότε:

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

ΔΙΑΓΡΑΜΜΑΤΑ ΡΟΗΣ http://photodentro.edu.gr/aggregator/lo/photodentro-lor-8521-709

ΑΛΓΟΡΙΘΜΟΣ: 6 ΚΕΡΜΑΤΑ, 1 ΚΑΛΠΙΚΟ: http://photodentro.edu.gr/aggregator/search/all?query=%CE%B1%CE%BB%CE%B3%CF%8C%CF%81%CE%B9%CE%B8%CE%BC%CE%BF%CE%B9&ext=All&ugc=1&items_per_page=20

ΑΛΓΟΡΙΘΜΟΣ ΠΥΡΓΟΙ ΑΝΟΪ

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

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

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

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

Προγραμματιστές είναι τα άτομα που γράφουν και συντάσσουν προγράμματα.Όταν εκτελείται ένα πρόγραμμα, οι εντολές του αποθηκεύονται προσωρινά «φορτώνονται» στη μνήμη RAM του υπολογιστή, και εκτελούνται στη συνέχεια από την Κεντρική Μονάδα Επεξεργασίας (Κ.Μ.Ε.).

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

Τεχνητές γλώσσες που χρησιμοποιούνται για την κατασκευή προγραμμάτων. Αποτελούνται από ένα συγκεκριμένο σύνολο εντολών. Οι εντολές αυτές υλοποιούν τρεις βασικές λειτουργίες: Πράξεις, Συγκρίσεις, Αποθήκευση- Φόρτωση Δεδομένων στην Κύρια Μνήμη.

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

Τα χαρακτηριστικά της γλώσσας μηχανής:

  • Οι εντολές της γλώσσας μηχανής παριστάνονται στην «εσωτερική γλώσσα» του υπολογιστή, δηλαδή σε μορφή «0» και «1» (δυαδικό σύστημα). Αυτό έχει τεράστια μειονεκτήματα:
  • Οι εντολές της, υλοποιούν μόνο τις απολύτως βασικές λειτουργίες. Άρα πρέπει να χρησιμοποιήσουμε τεράστιο αριθμό εντολών για να δημιουργήσουμε ακόμα και τα πιο απλά προγράμματα.
  • Κάθε επεξεργαστής έχει διαφορετική γλώσσα μηχανής, που σημαίνει ότι το πρόγραμμα θα πρέπει να γραφεί σε πολλές μορφές προκειμένου να εκτελεστεί από διαφορετικούς υπολογιστές.

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

Όμως είναι η μοναδική γλώσσα που καταλαβαίνει ο επεξεργαστής.

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

Είναι γλώσσες προγραμματισμού που μοιάζουν αρκετά με τις ανθρώπινες γλώσσες πχ. SCRATCH, C++, JAVA,

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

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

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

Αλφάβητο: το σύνολο των χαρακτήρων που χρησιμοποιούνται από την γλώσσα

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

Συντακτικό: οι κανόνες σύνδεσης μεταξύ των λέξεων ώστε να σχηματιστούν προτάσεις- εντολές προς τον υπολογιστή.

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

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

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

Ένα πρόγραμμα μεταφραστής ονομάζεται:

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

Διερμηνέας (interpreter), αν ελέγχει για συντακτικά λάθη και μετατρέπει σε γλώσσα μηχανής μία εντολή κάθε φορά.

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

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

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

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

Αλγόριθμοςà ΠρόγραμμαàΜετατροπή του προγράμματος σε γλώσσα μηχανής (0 και 1)àΕκτέλεση του προγράμματος από την Κ.Μ.Ε.


bottom
top

bottom

Powered by Joomla!. Design by: free joomla 2.5 templates  Valid XHTML and CSS.