Κεφάλαιο 1ο Public

Κεφάλαιο 1ο

pola k
Course by pola k, updated more than 1 year ago Contributors

Description

αλγόριθμος

Module Information

No tags specified
Τι είναι πρόβλημα ; Πρόβλημα θεωρούμε κάθε ζήτημα που τίθεται προς επίλυση , κάθε κατάσταση που μας απασχολεί και πρέπει να αντιμετωπιστεί .  Η λύση ενός προβλήματος δεν μας είναι γνωστή , ούτε προφανής .  Προβλήματα , αντιμετωπίζουμε καθημερινά όπως :  ποιος είναι ο πιο σύντομος δρόμος για να πάμε στο σχολείο πως να τακτοποιήσουμε τα βιβλία μας στη βιβλιοθήκη  Πολλά προβλήματα, όμως, είναι πιο πολύπλοκα και η επίλυσή τους μας δυσκολεύει ιδιαίτερα  η ρύπανση της ατμόσφαιρας, η εξοικονόμηση ενέργειας, η θεραπεία ορισμένων ασθενειών, η εξερεύνηση του διαστήματος Υπάρχουν επίσης και άλλες κατηγορίες προβλημάτων που: είτε δεν μπορούμε να τα επιλύσουμε με τις μέχρι τώρα γνώσεις μας, όπως η ακριβής πρόβλεψη των σεισμών, η γήρανση του ανθρώπου, η ανακάλυψη εξωγήινων πολιτισμών και η επικοινωνία μαζί τους, είτε έχει αποδειχθεί ότι δεν μπορούμε να τα επιλύσουμε, όπως: ο τετραγωνισμός του κύκλου με κανόνα και διαβήτη ή το ταξίδι στο παρελθόν. Τα προβλήματα που καλούμαστε να επιλύσουμε στο σχολείο είναι συνήθως υπολογιστικά και απαιτούν μια σειρά από λογικές σκέψεις και μαθηματικές πράξεις. ποιο είναι το εμβαδόν ενός τετραγώνου με πλευρά μήκους 10 εκατοστών; Με κριτήριο τη δυνατότητα επίλυσης ενός προβλήματος, διακρίνουμε τρεις κατηγορίες προβλημάτων : Επιλυσιμα, είναι εκείνα τα προβλήματα για τα οποία η λύση τους είναι ήδη γνωστή και έχει διατυπωθεί.  Ανοικτά, ονομάζονται εκείνα τα προβλήματα για τα οποία η λύση τους δεν έχει μεν ακόμα βρεθεί, αλλά παράλληλα δεν έχει αποδειχθεί, ότι δεν επιδέχονται λύση.  Αλυτα, χαρακτηρίζονται εκείνα τα προβλήματα για τα οποία έχουμε φτάσει στην παραδοχή, ότι δεν επιδέχονται λύση.
Show less
No tags specified
Η πρώτη μας ενέργεια για να λύσουμε πιο εύκολα ένα πρόβλημα, είναι η καταγραφή των δεδομένων. Δεδομένα προβλήματος είναι τα στοιχεία που μας είναι γνωστά και μπορούν να μας βοηθήσουν στη λύση του προβλήματος. , Σε κάθε πρόβλημα ψάχνουμε να βρούμε την απάντηση σε μια ερώτηση. Αυτό που ψάχνουμε είναι το ζητούμενο. Η διαδικασία μέσω της οποίας βρίσκουμε το ζητούμενο και επιτυγχάνουμε τον επιθυμητό στόχο ονομάζεται επίλυση προβλήματος. Υπάρχουν προβλήματα, των οποίων τη λύση μπορούμε να περιγράψουμε με ακρίβεια π.χ.: ο υπολογισμός της υποτείνουσας ορθογωνίου τριγώνου Και προβλήματα που δεν έχουν ακριβή λύση π.χ.: η αξιοποίηση του ελεύθερου χρόνου μας. Για παράδειγμα στο επόμενο πρόβλημα ποια είναι τα δεδομένα και ποιο το ζητούμενο ;  Ένας εργάτης χτίζει 1 μέτρο τοίχο σε 2 ώρες. Σε πόσο χρόνο θα έχει ολοκληρώσει το χτίσιμο 11 μέτρων, αν δουλέψει μόνος του;   Τα στάδια αντιμετώπισης ενός προβλήματος είναι τρία : κατανόηση, Πρέπει δηλαδή να καταλάβουμε καλά το περιεχόμενό του, να διακρίνουμε τα δεδομένα που έχουμε στη διάθεσή μας και τα ζητούμενά του. ανάλυση, το πρόβλημα, είναι αναγκαίο να το αναλύσουμε σε απλούστερα προβλήματα. επίλυση, όπου υλοποιείται η λύση του προβλήματος, μέσω της λύσης των επιμέρους προβλημάτων. Η περιγραφή της λύσης ενός προβλήματος, όμως, περιέχει συχνά δυσκολίες. Όταν θέλουμε να δώσουμε οδηγίες σε κάποιον, για να κάνει μια σύνθετη εργασία, διαπιστώνουμε πόσο δύσκολη είναι η διατύπωση σωστών οδηγιών. Προσπαθήστε να δώσετε σε κάποιο συμμαθητή σας σαφείς και ακριβείς οδηγίες, για να μαγειρέψει μια μακαρονάδα .  1. Άνοιξε το μάτι της κουζίνας στο 2. 2. Βάλε 3 λίτρα νερό σε μία κατσαρόλα χωρητικότητας 4 λίτρων. 3. Τοποθέτησε την κατσαρόλα στο μάτι της κουζίνας, που έχεις ήδη ανάψει. 4. Πρόσθεσε στην κατσαρόλα μία κουταλιά του καφέ αλάτι. 5. Περίμενε μέχρι να βράσει το νερό. 6. Βγάλε τα μακαρόνια από το πακέτο. 7. Βάλε τα μακαρόνια στην κατσαρόλα. 8. Ανακάτευε τα μακαρόνια για 10 λεπτά. 9. Κλείσε το μάτι της κουζίνας που άνοιξες. 10. Βγάλε την κατσαρόλα από το μάτι της κουζίνας. 11. Άδειασε τα μακαρόνια από την κατσαρόλα σε ένα σουρωτήρι. 12. Ρίξε κρύο νερό από τη βρύση στα μακαρόνια για 20 δευτερόλεπτα. 13. Άφησε για 2 λεπτά τα μακαρόνια να στραγγίξουν. 14. Σερβίρισε τα μακαρόνια στο πιάτο. 15. Πρόσθεσε σε κάθε πιάτο 3 κουταλιές της σούπας τριμμένο τυρί.   Οι οδηγίες που δίνουμε με λογική σειρά, ώστε να εκτελέσουμε μια εργασία ή να επιλύσουμε ένα πρόβλημα, συνθέτουν έναν Αλγόριθμο.   Αλγόριθμο ονομάζουμε τη σαφή και ακριβή περιγραφή μιας σειράς ξεχωριστών οδηγιών-βημάτων, με σκοπό την επίλυση ενός προβλήματος. Όταν σχεδιάζουμε έναν αλγόριθμο, πρέπει να είμαστε ιδιαίτερα προσεκτικοί, ώστε να βάζουμε με λογική σειρά τις οδηγίες (instructions) που θα μας οδηγήσουν στη λύση του προβλήματός μας.   1. Τι θα συμβεί, αν ξεχάσουμε την οδηγία 9 στον παραπάνω αλγόριθμο; 2. Μπορούμε να αντιμεταθέσουμε τις οδηγίες 7 και 8; 3. Τι θα συμβεί, αν αντικαταστήσουμε την οδηγία στο βήμα 4 με την οδηγία «πρόσθεσε αλάτι»; 4. Αν αντιμεταθέσουμε τις οδηγίες 1 και 2, θα υπάρξει κάποιο πρόβλημα στον αλγόριθμο; Έχουμε μια χελωνίτσα που αγαπά την ζωγραφική: Ποιες οδηγίες πρέπει να της δώσουμε, για να ζωγραφίσει ένα τετράγωνο; Οι διαθέσιμες οδηγίες που μπορούμε να χρησιμοποιήσουμε είναι : δεξιά, αριστερά, πάνω, κάτω και ότι δεν μπορούμε να σηκώσουμε το μολύβι πριν τελειώσει το τετράγωνο. Οι οδηγίες θα μπορούσαν να είναι οι εξής : 1. Τράβηξε μία γραμμή προς τα δεξιά 2. Τράβηξε μια ίδιου μήκους γραμμή προς τα κάτω 3. Τράβηξε μία ίδιου μήκους γραμμή προς τα αριστερά 4. Τράβηξε μία όμοια γραμμή προς τα πάνω Τα βήματα που αποτελούν ένα πρόγραμμα λέγονται εντολές-οδηγίες . Η διαδικασία σύνταξης προγραμμάτων ονομάζεται προγραμματισμός.
Show less
No tags specified
Οι αλγόριθμοι που κατασκευάζουμε πρέπει να πληρούν κάποιες προϋποθέσεις. Πρώτα απ’ όλα, πρέπει να είμαστε σίγουροι ότι, αν υλοποιήσουμε τον αλγόριθμο, κάποτε θα τελειώσει επιτυγχάνοντας τον αρχικό σκοπό. Φανταστείτε να δώσουμε μία εντολή σε ένα δρομέα, να αρχίσει να τρέχει και να μην του πούμε πότε θα σταματήσει. Οι εντολές ενός αλγορίθμου πρέπει να έχουν ακρίβεια και σαφήνεια, ώστε να μην μπερδευτεί αυτός που θα υλοποιήσει τον αλγόριθμο και τις εκτελέσει με λανθασμένο τρόπο. Σε μια συνταγή μαγειρικής, για παράδειγμα, πρέπει να περιγράψουμε ακριβώς την ποσότητα αλατιού που θα ρίξει ο μάγειρας (μία κουταλιά του καφέ, ή 10 γρ.). Τέλος, οι εντολές ενός αλγορίθμου πρέπει να είναι εκφρασμένες με απλά λόγια, ώστε να είναι απόλυτα κατανοητές. 1ο Παράδειγμα: «Έχει κάποιος ένα πρόβατο, ένα λύκο και ένα καφάσι με χόρτα στη μία όχθη ενός ποταμού και θέλει να τα περάσει στην απέναντι όχθη χρησιμοποιώντας μία βάρκα. Η βάρκα όμως είναι μικρή και μπορεί να μεταφέρει, εκτός από τον ίδιο, άλλο ένα από τα ζώα ή το καφάσι. Ωστόσο δεν πρέπει να μείνουν μαζί ο λύκος με το πρόβατο και το πρόβατο με τα χόρτα. Μπορείτε να δώσετε οδηγίες στον βαρκάρη για το πώς πρέπει να κάνει τη μεταφορά τους;» Δεδομένα: 1 πρόβατο, 1 λύκος, 1 καφάσι με χόρτα, μία θέση επιπλέον στη βάρκα, 2 όχθες ποταμού. Πλαίσιο του προβλήματος: Ο λύκος δεν πρέπει να μείνει μαζί με το πρόβατο. Το πρόβατο δεν πρέπει να μείνει μαζί με τα χόρτα. Ζητούμενο: Να περάσει ο λύκος, το πρόβατο και το καφάσι με τα χόρτα στην απέναντι όχθη. Για να κατανοήσουμε καλύτερα το περιβάλλον του προβλήματος, μπορούμε να κάνουμε μια σχηματική αναπαράστασή του στο χαρτί Αρχή του αλγορίθμου 1. Βάλε το πρόβατο στη βάρκα. 2. Πήγαινε στην απέναντι όχθη. 3. Άφησε το πρόβατο στην όχθη. 4. Γύρνα πίσω στην αρχική όχθη. 5. Φόρτωσε το καφάσι με τα χόρτα. 6. Πήγαινε στην απέναντι όχθη. 7. Άφησε το καφάσι στην όχθη. 8. Βάλε το πρόβατο στη βάρκα. 9. Πήγαινε στην αρχική όχθη. 10. Άφησε το πρόβατο στην όχθη. 11. Βάλε το λύκο στη βάρκα. 12. Πήγαινε στην απέναντι όχθη. 13. Άφησε τον λύκο στην όχθη. 14. Γύρνα πίσω στην αρχική όχθη. 15. Βάλε το πρόβατο στη βάρκα 16. Πήγαινε στην απέναντι όχθη. 17. Άφησε το πρόβατο στην όχθη.Τέλος του αλγορίθμου   Ένα πρόγραμμα είναι η αναπαράσταση ενός αλγορίθμου γραμμένη σε γλώσσα κατανοητή για έναν υπολογιστή. Ένα πρόγραμμα, δηλαδή, αποτελείται από μία σειρά εντολών που δίνονται στον υπολογιστή με σκοπό να εκτελέσει κάποια συγκεκριμένη λειτουργία ή να υπολογίσει κάποιο επιθυμητό αποτέλεσμα. Η εργασία σύνταξης των προγραμμάτων ονομάζεται προγραμματισμός, ενώ τα άτομα που γράφουν και συντάσσουν ένα πρόγραμμα ονομάζονται προγραμματιστές.   Όλα τα προγράμματα του υπολογιστή αποτελούνται από ένα πλήθος κατάλληλων εντολών, που είναι γραμμένες σε λογική σειρά.  Κάθε φορά που χρειαζόμαστε ένα πρόγραμμα, για να εκτελέσουμε μια λειτουργία ή να επιλύσουμε κάποιο πρόβλημα, ένα σύνολο εντολών αποθηκεύονται («φορτώνονται») στη μνήμη του υπολογιστή, για να εκτελεστούν στη συνέχεια πιστά από την Κεντρική Μονάδα Επεξεργασίας.
Show less
No tags specified
Γλώσσες Προγραμματισμού  Οι γλώσσες που «καταλαβαίνουν» οι υπολογιστές είναι τεχνητές γλώσσες που ονομάζονται γλώσσες προγραμματισμού. Οι γλώσσες προγραμματισμού χρησιμοποιούνται για την επικοινωνία του ανθρώπου με τη μηχανή, όπως οι φυσικές γλώσσες (ελληνική, αγγλική, γαλλική κ.λπ.) χρησιμοποιούνται για την επικοινωνία μεταξύ των ανθρώπων. Οι γλώσσες προγραμματισμού έχουν κι αυτές το δικό τους λεξιλόγιο και το δικό τους συντακτικό. Χαρακτηριστικά Γλωσσών Προγραμματισμού το αλφάβητο, είναι το σύνολο των χαρακτήρων που χρησιμοποιούνται από τη γλώσσα. το λεξιλόγιο είναι το σύνολο των λέξεων που αναγνωρίζει η γλώσσα και έχουν συγκεκριμένη και μοναδική σημασία. Στις γλώσσες προγραμματισμού το λεξιλόγιο είναι πολύ περιορισμένο το συντακτικό  είναι το σύνολο των κανόνων που πρέπει να ακολουθούμε, για να συνδέουμε λέξεις σε προτάσεις. Σε μια γλώσσα προγραμματισμού η σύνδεση λέξεων δημιουργεί ολοκληρωμένες εντολές προς τον υπολογιστή. Αν δεν ακολουθήσουμε αυστηρά το συντακτικό μιας γλώσσας, είναι αδύνατο για τον υπολογιστή να καταλάβει ποια εντολή του δίνουμε. Κάθε εντολή προκαλεί συγκεκριμένες ενέργειες, αν εκτελεστεί από τον υπολογιστή. Για παράδειγμα, στη γλώσσα Logo η εντολή «ΤΥΠΩΣΕ "Καλημέρα» έχει ως αποτέλεσμα την εμφάνιση της λέξης «Καλημέρα» στην οθόνη του υπολογιστή. Το ολοκληρωμένο προγραμματιστικό περιβάλλον Οι σύγχρονες γλώσσες προγραμματισμού μάς προσφέρουν ένα φιλικό περιβάλλον, έτσι ώστε γρήγορα να αναπτύσσουμε τα προγράμματά μας. Ένα περιβάλλον προγραμματισμού αποτελείται από διάφορα εργαλεία που βοηθάνε τον προγραμματιστή να γράψει και να διορθώσει το πρόγραμμά του. Τα κύρια εργαλεία είναι: ένας εξειδικευμένος κειμενογράφος, που χρησιμεύει για τη σύνταξη και τη διόρθωση του προγράμματος και ένα πρόγραμμα-μεταφραστής που μετατρέπει τις οδηγίες μας στη μορφή που τις καταλαβαίνει ο επεξεργαστής, δηλαδή σε μια σειρά από 0 και 1 Αν θέλουμε να επικοινωνήσουμε με τον υπολογιστή, πρέπει να μάθουμε μία γλώσσα προγραμματισμού με την οποία μπορεί να γίνει η απαραίτητη μετατροπή των οδηγιών μας σε σειρά από 0 και 1 (γλώσσα μηχανής). Αν σε κάποια οδηγία έχουμε κάνει λάθος στο αλφάβητο, στο λεξιλόγιο ή στο συντακτικό τότε το πρόγραμμα που μετατρέπει τις οδηγίες μας σε σειρά από 0 και 1 θα μας δώσει ένα κατάλληλο μήνυμα λάθους, ώστε να μας βοηθήσει να διορθώσουμε το λάθος μας. Τα λάθη αυτά ονομάζονται συντακτικά λάθη. Τα προγράμματα που μετατρέπουν τις οδηγίες μας σε 0 και 1 μπορούν να χωριστούν σε δύο κατηγορίες: στους μεταγλωττιστές , οι οποίοι θα ελέγξουν όλο το πρόγραμμα για συντακτικά λάθη και μετά θα το μετατρέψουν όλο σε μια κατάλληλη σειρά από 0 και 1, ώστε να μπορεί να εκτελεστεί από τον επεξεργαστή του υπολογιστή. στους διερμηνείς οι οποίοι ελέγχουν μία οδηγία κάθε φορά, την εκτελούν και μετά ελέγχουν την επόμενη οδηγία. Η γλώσσα προγραμματισμού Logo, που θα δούμε στο επόμενο κεφάλαιο, χρησιμοποιεί διερμηνέα. Αλγόριθμος --> Πρόγραμμα --> Μετατροπή του προγράμματος σε 0 και 1 ( γλώσσα μηχανής ) --> Εκτέλεση του προγράμματος στη Κ.Μ.Ε.   Ο υπολογιστής εκτελεί πιστά, όποιες συντακτικά ορθές εντολές και αν του δώσουμε. Αν το αποτέλεσμα, που τελικά προκύπτει από την εκτέλεση του προγράμματος, δεν είναι το αναμενόμενο, τότε το πρόβλημα δε βρίσκεται στον τρόπο εκτέλεσης, αλλά στον αλγόριθμο που κατασκευάσαμε για τη λύση του προβλήματός μας. Στην περίπτωση αυτή λέμε ότι έχουμε κάνει ένα λογικό λάθος . Ένα δεύτερο σημείο που πρέπει να γνωρίζουμε, όταν προγραμματίζουμε, είναι ότι για τον υπολογιστή τίποτα δεν είναι αυτονόητο. Ενώ εμείς οι άνθρωποι έχουμε την  ικανότητα να συμπληρώνουμε τις οδηγίες κάποιου με τη λογική και την εμπειρία μας, ο υπολογιστής χρειάζεται να περιγράψουμε με μεγάλη ακρίβεια τις εντολές μας  στον υπολογιστή, για να τις εκτελέσει. Αν, για παράδειγμα, του δώσουμε μία εντολή να υπολογίσει ένα άθροισμα, δεν είναι αυτονόητο ότι θα μας εμφανίσει και το αποτέλεσμα.
Show less
Show full summary Hide full summary