Loading presentation...

Present Remotely

Send the link below via email or IM

Copy

Present to your audience

Start remote presentation

  • Invited audience members will follow you as you navigate and present
  • People invited to a presentation do not need a Prezi account
  • This link expires 10 minutes after you close the presentation
  • A maximum of 30 users can follow your presentation
  • Learn more about this feature in our knowledge base article

Do you really want to delete this prezi?

Neither you, nor the coeditors you shared it with will be able to recover it again.

DeleteCancel

Make your likes visible on Facebook?

Connect your Facebook account to Prezi and let your likes appear on your timeline.
You can change this under Settings & Account at any time.

No, thanks

Εισαγωγή στην έννοια του αλγορίθμου και στον προγραμματισμό

Γ' Γυμνασίου - Ενότητα 1
by

Angelos Konstantinidis

on 14 October 2014

Comments (0)

Please log in to add your comment.

Report abuse

Transcript of Εισαγωγή στην έννοια του αλγορίθμου και στον προγραμματισμό

Εισαγωγή στην έννοια του αλγορίθμου και στον προγραμματισμό Η έννοια του προβλήματος αλγόριθμος Υλοποίηση αλγορίθμου με υπολογιστή Παραδείγματα προβλημάτων εύρεση του πιο σύντομου δρόμου
τακτοποίηση της βιβλιοθήκης
εύρεση του εμβαδού ενός τριγώνου "εύκολα" εξοικονόμηση ενέργειας
θεραπεία ασθενειών πιο πολύπλοκα δεν μπορούμε να τα επιλύσουμε πρόβλεψη σεισμών
γήρανση του ανθρώπου άλυτα τετραγωνισμός του κύκλου Πρόβλημα ειναι κάθε ζήτημα που τίθεται προς επίλυση, κάθε κατάσταση που μας απασχολεί και πρέπει να αντιμετωπιστεί. Ορισμός Σημείωση: Η λύση του προβλήματος δεν μας είναι γνωστή ούτε προφανής Πως λύνουμε ένα πρόβλημα
Κατανόηση του προβλήματος
Πιθανόν να χρειαστεί να το αναλύσουμε σε απλούστερα προβλήματα
Προχωρούμε στη λύση του προβλήματος Να καταλάβουμε καλά το περιεχόμενο του προβλήματος
Να διακρίνουμε και να καταγράψουμε τα δεδομένα και τα ζητούμενα
Να προσδιορίσουμε το περιβάλλον/πλαίσιο του προβλήματος Πρόβλημα... Ένας εργάτης χτίζει 1 μέτρο τοίχο σε 2 ώρες. Πότε (σε πόσο χρόνο) θα έχει ολοκληρώσει το χτίσιμο 11 μέτρων; Με τον ίδιο τρόπο θα οργανώσουμε μια σχολική εκδρομή και μια εκδρομή με φίλους; Περιβάλλον του προβλήματος Η διαδικασία μέσω της οποίας βρίσκουμε το ζητούμενο και επιτυγχάνουμε τον επιθυμητό στόχο ονομάζεται επίλυση του προβλήματος. Επιχειρηματίας: Θα συναντήσω μερικούς παιδικούς μου φίλους, μπορείς να αγοράσεις δώρα γι’ αυτούς;
Σύζυγος: Βεβαίως, πες μου όμως μερικά χαρακτηριστικά των φίλων σου για να πάρω τα κατάλληλα δώρα.
Επιχειρηματίας: Ο Γιάννης και η Μαρία είναι παντρεμένοι. Ο Χρήστος είναι αθλητικός τύπος. Η Ελένη είναι προϊσταμένη σε τράπεζα.

Και η σύζυγος αγόρασε…
Ένα ιταλικό βάζο για το Γιάννη και τη Μαρία
Μια ρακέτα του τένις για τον Χρήστο
Ένα σετ γραφείου για την Ελένη Το πρόβλημα της αγοράς των δώρων Λανθασμένη διατύπωση Ο Γιάννης και η Μαρία είναι παντρεμένοι Πρώτη ερμηνεία Δεύτερη ερμηνεία Ο Γιάννης και η Μαρία είναι παντρεμένοι μεταξύ τους Ο Γιάννης είναι παντρεμένος
και
η Μαρία είναι παντρεμένη Η διατύπωση σωστών οδηγιών είναι πολύ σημαντική για την κατανόηση ενός προβλήματος! Σημείωση: πρέπει να βάζουμε με λογική σειρά τις οδηγίες που θα μας οδηγήσουν στη λύση του προβλήματος Αλγόριθμο ονομάζουμε τη σαφή και ακριβή περιγραφή μιας σειράς ξεχωριστών οδηγιών-βημάτων, με σκοπό την επίλυση ενός προβλήματος Ορισμός Πως μαγειρεύω μια μακαρονάδα; Βάλτε τα παρακάτω βήματα σε λογική σειρά! Ανακάτευε τα μακαρόνια για 10 λεπτά.
Περίμενε μέχρι να βράσει το νερό.
Βγάλε τα μακαρόνια από το πακέτο.
Σερβίρισε τα μακαρόνια στο πιάτο.
Βάλε 3 λίτρα νερό σε μία κατσαρόλα χωρητικότητας 4 λίτρων.
Βάλε την κατσαρόλα στο μάτι της κουζίνας, που έχεις ήδη ανάψει.
Άνοιξε το μάτι της κουζίνας στο 2.
Ρίξε κρύο νερό από τη βρύση στα μακαρόνια για 20 δευτερόλεπτα.
Πρόσθεσε στην κατσαρόλα μία κουταλιά της σούπας αλάτι.
Πρόσθεσε σε κάθε πιάτο 3 κουταλιές της σούπας τριμμένο τυρί.
Βάλε τα μακαρόνια στην κατσαρόλα.
Κλείσε το μάτι της κουζίνας που άνοιξες.
Βγάλε την κατσαρόλα από το μάτι της κουζίνας.
Άδειασε τα μακαρόνια από την κατσαρόλα σε ένα σουρωτήρι.
Άφησε για 2 λεπτά τα μακαρόνια να στραγγίξουν. Παράδειγμα αλγορίθμου 1. Άνοιξε το μάτι της κουζίνας στο 2.
2. Βάλε 3 λίτρα νερό σε μία κατσαρόλα χωρητικότητας 4 λίτρων.
3. Βάλε την κατσαρόλα στο μάτι της κουζίνας, που έχεις ήδη ανάψει.
4. Πρόσθεσε στην κατσαρόλα μία κουταλιά της σούπας αλάτι.
5. Περίμενε μέχρι να βράσει το νερό.
6. Βγάλε τα μακαρόνια από το πακέτο.
7. Βάλε τα μακαρόνια στην κατσαρόλα.
8. Ανακάτευε τα μακαρόνια για 10 λεπτά.
9. Κλείσε το μάτι της κουζίνας που άνοιξες.
10. Βγάλε την κατσαρόλα από το μάτι της κουζίνας.
11. Άδειασε τα μακαρόνια από την κατσαρόλα σε ένα σουρωτήρι.
12. Ρίξε κρύο νερό από τη βρύση στα μακαρόνια για 20 δευτερόλεπτα.
13. Άφησε για 2 λεπτά τα μακαρόνια να στραγγίξουν.
14. Σερβίρισε τα μακαρόνια στο πιάτο.
15. Πρόσθεσε σε κάθε πιάτο 3 κουταλιές της σούπας τριμμένο τυρί. Τι θα συμβεί αν ξεχάσουμε την εντολή 9;
Μπορούμε να αντιμεταθέσουμε τις εντολές 7 και 8;
Τι θα συμβεί, αν αντικαταστήσουμε την εντολή στο βήμα 4 με την εντολή «πρόσθεσε αλάτι»;
Αν αντιμεταθέσουμε τις εντολές 1 και 2, θα υπάρξει κάποιο πρόβλημα στον αλγόριθμο; Ιδιότητες αλγορίθμου Δεδομένα προβλήματος είναι τα στοιχεία που μας είναι γνωστά και μπορούν να βοηθήσουν στη λύση του προβλήματος.
Αυτό που ψάχνουμε σε ένα πρόβλημα είναι το ζητούμενο. Η λέξη αλγόριθμος προέρχεται από παράφραση του ονόματος Al Khwarizmi (Αλ Χουαρίζμι, προφορά: http://www.forvo.com/word/al-khwarizmi/), ενός πέρση μαθηματικού που εισήγαγε την έννοια του αλγορίθμου. Πρόβλημα: βοηθήστε το βοσκό να περάσει το ποτάμι! Ένας βοσκός έχει ένα πρόβατο, ένα λύκο και ένα καφάσι με χόρτα στη μία όχθη ενός ποταμού και θέλει να τα περάσει στην απέναντι όχθη χρησιμοποιώντας μία βάρκα. Η βάρκα όμως είναι μικρή και μπορεί να μεταφέρει, εκτός από τον ίδιο, άλλο ένα από τα ζώα ή το καφάσι. Ωστόσο δεν πρέπει να μείνουν μαζί ο λύκος με το πρόβατο και το πρόβατο με τα χόρτα. Μπορείτε να δώσετε οδηγίες για το πώς πρέπει να κάνει τη μεταφορά τους; Πριν προσπαθήσουμε να λύσουμε το πρόβλημα, τι θα λέγατε να:
Κάνουμε μια σχηματική αναπαράσταση;
Κάνουμε ένα πίνακα με τα δεδομένα και το ζητούμενο;
Έτσι θα κατανοήσουμε καλύτερα το πρόβλημα! Αλγόριθμος για τη μεταφορά στην απέναντι όχθη

Βάλε το πρόβατο στη βάρκα.
Πήγαινε στην απέναντι όχθη.
Άφησε το πρόβατο στην όχθη.
Γύρνα πίσω στην αρχική όχθη.
Φόρτωσε το καφάσι με τα χόρτα.
Πήγαινε στην απέναντι όχθη.
Άφησε το καφάσι στην όχθη.
Βάλε το πρόβατο στη βάρκα.
Πήγαινε στην αρχική όχθη.
Άφησε το πρόβατο στην όχθη.
Βάλε το λύκο στη βάρκα.
Πήγαινε στην απέναντι όχθη.
Άφησε το λύκο στην όχθη.
Γύρνα πίσω στην αρχική όχθη.
Βάλε το πρόβατο στη βάρκα
Πήγαινε στην απέναντι όχθη.
Άφησε το πρόβατο στην όχθη. Θέλουμε να περιγράψουμε σε ένα μικρό παιδί πώς θα δημιουργήσει με τις πατούσες του ένα τετράγωνο στην άμμο. Αν το παιδί δε γνωρίζει τι σχήμα θέλουμε να αποτυπωθεί στην άμμο, ποιες είναι οι κατάλληλες οδηγίες που θα του δώσουμε; Πρόβλημα: Δημιουργήστε ένα τετράγωνο Ερωτήσεις κατανόησης Τι είναι τετράγωνο; Πως ορίζεται ως σχήμα; Πως θα μπορούσαμε να το σχηματίσουμε με βήματα στην άμμο; Περπάτησε 5 βήματα μπροστά.
Στρίψε δεξιά κατά ενενήντα μοίρες.
Περπάτησε 5 βήματα μπροστά.
Στρίψε δεξιά κατά ενενήντα μοίρες.
Περπάτησε 5 βήματα μπροστά.
Στρίψε δεξιά κατά ενενήντα μοίρες.
Περπάτησε 5 βήματα μπροστά. κατανόηση σχηματική αναπαράσταση επίλυση Μερικές φορές ένας αλγόριθμος μπορεί να μη μας δώσει τα προσδοκώμενα αποτελέσματα.
Τότε είμαστε υποχρεωμένοι να γυρίσουμε πίσω στις εντολές που δώσαμε και να ελέγξουμε που κάνουμε λάθος. Στη συνέχεια αντικαθιστούμε τις λανθασμένες εντολές με τις σωστές και υλοποιούμε ξανά τον αλγόριθμο.
Αυτή η ανατροφοδοτούμενη μορφή σχεδιασμού μας βοηθάει να καταλάβουμε καλύτερα το πρόβλημα και την επίλυση του. Σύμφωνα με το θρύλο, όταν ο Βράχμα δημιούργησε τον κόσμο, έστησε σε ένα ναό στην πόλη Μπενάρες, 64 δακτυλίδια άνισου μεγέθους όλα περασμένα σένα μπαστούνι έτσι ώστε αν κρατήσουμε το μπαστούνι κατακόρυφα να σχηματίζουν τον γνωστό μας πύργο.
Oι ιερείς του ναού έπρεπε να δουλεύουν μέρα νύχτα, χωρίς σταμάτημα, για να μεταφέρουν τα δακτυλίδια σε ένα άλλο μπαστούνι, χρησιμοποιώντας ένα τρίτο σαν βοηθητικό, έτσι ώστε να μην τοποθετήσουν μεγαλύτερο δακτυλίδι πάνω από μικρότερο και μετακινώντας ένα μόνο δακτυλίδι σε κάθε κίνηση.
Ο θρύλος λεει πως πριν προλάβουν οι ιερείς να μεταφέρουν όλα τα δακτυλίδια στο άλλο μπαστούνι, ο ναός θα καταρρεύσει μέσα στην σκόνη και ο κόσμος θα χαθεί μέσα σε τρομακτικό κρότο βροντής. Κάποτε πρέπει να τελειώνει
Οι εντολές θα πρέπει να έχουν ακρίβεια και σαφήνεια
Οι εντολές θα πρέπει να είναι εκφρασμένες με απλά λόγια Πρόγραμμα είναι η αναπαράσταση ενός αλγορίθμου σε γλώσσα κατανοητή για τον υπολογιστή.
Το πρόγραμμα αποτελείται από μια σειρά εντολών που δίνονται στον υπολογιστή με σκοπό να εκτελέσει μια συγκεκριμένη λειτουργία ή να υπολογίσει ένα επιθυμητό αποτέλεσμα. Τι είναι πρόγραμμα Η διαδικασία σύνταξης (κατασκευής) ενός προγράμματος λέγεται "προγραμματισμός" ενώ τα άτομα που γράφουν και συντάσσουν ένα πρόγραμμα ονομάζονται "προγραμματιστές".

Οι γλώσσες που «καταλαβαίνουν» οι υπολογιστές είναι τεχνητές γλώσσες που ονομάζονται γλώσσες προγραμματισμού.

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

Οι γλώσσες προγραμματισμού έχουν και αυτές το δικό τους λεξιλόγιο και συντακτικό. Αν θέλουμε να προγραμματίζουμε τον υπολογιστή για να εκτελεί πιστά τις λειτουργίες που του ζητάμε πρέπει να μάθουμε μια γλώσσα προγραμματισμού Η λειτουργία του υπολογιστή βασίζεται στην αναπαράσταση δύο ψηφίων: "0" και "1" Ο προγραμματισμός με γλώσσα μηχανής είναι επίπονος, ενώ η γλώσσα μηχανής δεν είναι ενιαία σε όλους τους υπολογιστές μια και κάθε τύπος υπολογιστή (με διαφορετικό επεξεργαστή) έχει τη δική του γλώσσα μηχανής. Γλώσσα Μηχανής
Χαρακτηριστικά Γλωσσών Προγραμματισμού Αλφάβητο
Λεξιλόγιο
Συντακτικό Αλφάβητο: Το σύνολο των χαρακτήρων που χρησιμοποιούνται από τη γλώσσα

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

Συντακτικό: Το σύνολο των κανόνων που πρέπει να ακολουθούμε, για να συνδέουμε λέξεις σε προτάσεις Γλώσσες Προγραμματισμού Οι γλώσσες προγραμματισμού εξελίχθηκαν ώστε να μοιάζουν περισσότερο στη φυσική γλώσσα, οπότε ο προγραμματισμός είναι πολύ πιο εύκολος.
Μερικές γνωστές γλώσσες προγραμματισμού: Java, C, C++, Visual Basic, Pascal, Logo, Prolog, Fortran, PHP, Javascript, Perl, Python, SQL Ολοκληρωμένο προγραμματιστικό περιβάλλον Ένα περιβάλλον προγραμματισμού αποτελείται από διάφορα εργαλεία που βοηθάνε τον προγραμματιστή να γράψει και να διορθώσει το πρόγραμμά του. Τα κύρια εργαλεία είναι:
ένας εξειδικευμένος κειμενογράφος
ένα πρόγραμμα-μεταφραστής Κειμενογράφος: χρησιμεύει για τη σύνταξη και τη διόρθωση του προγράμματος
Μεταφραστής: μετατρέπει τις οδηγίες μας στη μορφή που τις καταλαβαίνει ο επεξεργαστής, δηλαδή σε μια σειρά από 0 και 1 Θέλουμε να μιλήσουμε με έναν Κινέζο, αλλά δεν ξέρουμε κινέζικα, αλλά ούτε και ο Κινέζος γνωρίζει αγγλικά. Ωστόσο, κάποιος (μεταφραστής) που γνωρίζει αγγλικά και κινέζικα μας βοηθά στην επικοινωνία.

Κινέζος: ο υπολογιστής
αγγλικά: η γλώσσα προγραμματισμού
μεταφραστής: το πρόγραμμα που μετατρέπει τις οδηγίες μας (γραμμένες σε μια γλώσσα προγραμματισμού) σε γλώσσα κατανοητή (0 και 1) για τον υπολογιστή

Συμπέρασμα; Οι μεταφραστές χωρίζονται σε δύο κατηγορίες:

Μεταγλωττιστές (compilers): ελέγχουν όλο το πρόγραμμα και μετά το μετατρέπουν όλο σε κατάλληλη σειρά από 0 και 1, ώστε να μπορεί να εκτελεστεί από την Κεντρική Μονάδα Επεξεργασίας του υπολογιστή.
Διερμηνείς (interpreters): ελέγχουν μία οδηγία κάθε φορά, την εκτελούν και μετά ελέγχουν την επόμενη οδηγία. Λάθη Τα λάθη που κάνουμε όταν γράφουμε ένα πρόγραμμα χωρίζονται σε δύο κατηγορίες:

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

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

Για να φτιάξουμε ένα καλό πρόγραμμα θα πρέπει πρώτα να έχουμε σχεδιάσει ένα καλό αλγόριθμο.

Άρα ο ρόλος του ανθρώπου στην επίλυση προβλημάτων με την χρήση υπολογιστή είναι θεμελιώδης. Βασικά σημεία όταν προγραμματίζουμε Στα πρώτα χρόνια των υπολογιστών οι άνθρωποι έπρεπε να χρησιμοποιούν μια γλώσσα που είχε ως αλφάβητο το "0" και "1" (Γλώσσα Μηχανής)
Full transcript