Για να μπορέσουμε να εισάγουμε δεδομένα από το πληκτρολόγιο αλλά και για να εξάγουμε εμφανίσουμε αποτελέσματα στην οθόνη του υπολογιστή χρησιμοποιούμε τις εντολές Εισόδου και Εξόδου αντίστοιχα. Σύνταξη εντολής Παράδειγμα Αποτέλεσμα ΔΕΙΞΕ αριθμός ΔΕΙΞΕ 5 5 ΔΕΙΞΕ παράσταση ΔΕΙΞΕ 3 + 7 10 ΔΕΙΞΕ λέξη ΔΕΙΞΕ ΚΑΛΗΜΕΡΑ ΚΑΛΗΜΕΡΑ ΔΕΙΞΕ [λίστα] ΔΕΙΞΕ [Είμαι καλό παιδί] Είμαι καλό παιδί ΤΥΠΩΣΕ [λίστα] Έχει την ίδια λειτουργία με την ΔΕΙΞΕ αλλά ενεργεί στην επιφάνεια εργασίας. ΦΡΑΣΗ [λίστα] ΦΡΑΣΗ [Είμαι 15 ετών!] Είμαι 15 ετών!] ΑΝΑΚΟΙΝΩΣΗ [μήνυμα] Η εντολή εμφανίζει ένα μήνυμα σε ένα πλαίσιο στην επιφάνεια εργασίας. ΕΡΩΤΗΣΗ [κείμενο ερώτησης] Η εντολή ανοίγει ένα πλαίσιο διαλόγου στην οθόνη και εμφανίζεται το κείμενο ερώτησης που ακολουθεί την εντολή. Το πλαίσιο διαλόγου περιέχει ένα πεδίο όπου μπορούμε να πληκτρολογήσουμε την απάντησή μας, η οποία αποθηκεύεται στην εντολή ΑΠΑΝΤΗΣΗ. ΑΠΑΝΤΗΣΗ Επιστρέφει τα δεδομένα που πληκτρολογήθηκαν κατά την εκτέλεση της τελευταίας εντολής ΕΡΩΤΗΣΗ. ΔΥΝΑΜΗ α β ΔΕΙΞΕ ΔΥΝΑΜΗ 2 7 128 ΤΡΖ αριθμός ΔΕΙΞΕ ΤΡΖ 81 9 Ασκήσεις: 1. Τι εμφανίζει η εντολή: ΑΝΑΚΟΙΝΩΣΗ ΔΥΝΑΜΗ 2 10; 2. Τι εμφανίζει η εντολή: ΔΕΙΞΕ 2 + 5 * 8; 3. Τι εμφανίζει η εντολή: ΑΝΑΚΟΙΝΩΣΗ ΤΡΖ ( 2 * 5); 4. Τι εμφανίζει η εντολή: ΕΡΩΤΗΣΗ [ΠΟΙΑ ΧΡΟΝΙΑ ΓΕΝΝΗΘΗΚΕΣ;] 5. Με ποια εντολή θα εμφανίσετε στην οθόνη την ηλικία σας με βάση την απάντηση που δώσατε στην προηγούμενη ερώτηση; Κ. Χαλκιά 1
Η χελώνα είναι το εργαλείο που θα μας βοηθήσει να προγραμματίσουμε χρησιμοποιώντας τη γλώσσα LOGO. Μετακινώντας τη χελώνα μέσα στην επιφάνεια εργασίας, εκμεταλλευόμαστε το ίχνος της και δημιουργούμε σχέδια και γεωμετρικά σχήματα. Σύνταξη εντολής Αποτέλεσμα ΜΠροστά αριθμός Μετακινεί τη χελώνα μπροστά τόσα pixel όσα δηλώνει ο αριθμός Πισω αριθμός Μετακινεί τη χελώνα πίσω τόσα pixel όσα δηλώνει ο αριθμός ΔΕξιά αριθμός Στρίβει τη χελώνα τόσες μοίρες δεξιά όσες δηλώνει ο αριθμός ΑΡιστερά αριθμός Στρίβει τη χελώνα τόσες μοίρες αριστερά όσες δηλώνει ο αριθμός ΣΤΚ ή ΣΤΥΛΟΚΑΤΩ Αναγκάζει την τρέχουσα χελώνα να αφήνει ίχνος κατά την κίνησή της ΣΤΑ ή ΣΤΥΛΟΑΝΩ Αναγκάζει την τρέχουσα χελώνα να μην αφήνει ίχνος κατά την κίνησή της ΣΒΓ ή ΣΒΗΣΕΓΡΑΦΙΚΑ Σβήνει τα σχήματα που έχουν δημιουργηθεί και επαναφέρει την τρέχουσα χελώνα στο κέντρο με κατεύθυνση προς τα κάτω ΣΒΕ ή ΣΒΗΣΕΕΝΤΟΛΕΣ Καθαρίζει τις εντολές από το κέντρο εντολών ΘΕΣΕΦΝΤ όνομα ή χρώμα Αλλάξει το φόντο στην επιφάνεια εργασίας ΘΕΣΕΦΟΝΤΟ όνομα ή χρώμα ΘΕΣΕΧΡ όνομα ή χρώμα Αλλάξει το χρώμα του ίχνους της χελώνας ΘΕΣΕΧΡΩΜΑ όνομα ή χρώμα ΘΕΣΕΘΕΣΗ [Χ Υ] Μετακινεί τη χελώνα στο σημείο με συντεταγμένες (Χ, Υ) ΓΕΜΙΣΕ Γεμίζει ένα κλειστό σχήμα ή ολόκληρη την οθόνη με το χρώμα που έχει επιλεχθεί με την εντολή ΘΕΣΕΧΡΩΜΑ. Η χελώνα πρέπει να βρίσκεται μέσα στο σχήμα Ασκήσεις: 1. Ζωγραφίστε με τη βοήθεια των εντολών που μάθατε ένα τετράγωνο πλευράς 70 pixel. 2. Ζωγραφίστε με τη βοήθεια των εντολών που μάθατε ένα ορθογώνιο με πλευρές 70 και 250 pixel αντίστοιχα. 3. Ζωγραφίστε με τη βοήθεια των εντολών που μάθατε ένα ισόπλευρο τρίγωνο πλευράς 100 pixel. 4. Ζωγραφίστε με τη βοήθεια των εντολών που μάθατε ένα κανονικό πεντάγωνο πλευράς 150 pixel. 5. Ζωγραφίστε με τη βοήθεια των εντολών που μάθατε ένα κανονικό εξάγωνο πλευράς 250 pixel. Κ. Χαλκιά 2
Στον προγραμματισμό υπάρχουν περιπτώσεις που απαιτείται από τον αλγόριθμό μας η επαναληπτική εκτέλεση ενός συνόλου εντολών. Η δομή επανάληψης υλοποιεί αυτό το προγραμματιστικό σχήμα. Η εντολή επανάληψης στη LOGO συντάσσεται ως εξής: ΕΠΑΝΑΛΑΒΕ αριθμός [λίστα εντολών] Όπου ο αριθμός δηλώνει το πλήθος των επαναλήψεων, δηλαδή πόσες φορές θα εκτελεστούν οι εντολές που περιγράφονται στη λίστα εντολών. ΠΑΡΑΔΕΙΓΜΑΤΑ ΕΠΑΝΑΛΑΒΕ 200 [ΔΕΙΞΕ Γυμνάσιο ] Εμφανίζει στο κέντρο εντολών τη λέξη Γυμνάσιο διακόσιες (200) φορές. ΕΠΑΝΑΛΑΒΕ 200 [ΤΥΠΩΣΕ Γυμνάσιο ] Εμφανίζει στο στην επιφάνεια εργασίας τη λέξη Γυμνάσιο διακόσιες (200) φορές. ΕΠΑΝΑΛΑΒΕ 3 [ΜΠ 100 ΔΕ 120] Σχεδιάζει ένα ισόπλευρο τρίγωνο πλευράς 100 pixel. ΕΠΑΝΑΛΑΒΕ 4 [ΜΠ 100 ΔΕ 90] Σχεδιάζει ένα τετράγωνο πλευράς 100 pixel. ΕΠΑΝΑΛΑΒΕ 5 [ΜΠ 100 ΔΕ 72] Σχεδιάζει ένα κανονικό πεντάγωνο πλευράς 100 pixel. Γενικά, αν θέλω να σχεδιάσω ένα κανονικό πολύγωνο χρησιμοποιώντας την εντολή επανάληψης, επαναλαμβάνω τόσες φορές όσο ο αριθμός των πλευρών του το μήκος σε pixel της κάθε πλευράς και στρίβω τη χελώνα μου τόσες μοίρες όσο η γωνία του πολυγώνου (υπενθύμιση: κεντρική γωνία ν- γώνου = 360/ν γωνία ν-γώνου = 180 κεντρική γωνία). Κατασκευάστε ένα κανονικό 12-γωνο με πλευρά 150 pixel και στη συνέχεια ένα κανονικό 20γωνο με πλευρά 300 pixel. Για να σχεδιάσω ένα κύκλο (προσεγγιστικά) κατασκευάζω ένα σχήμα που έχει 360 πλευρές και κάθε πλευρά έχει διαφορά 1 ο από την άλλη, δηλαδή κατασκευάζω ένα 360 κανονικό πολύγωνο! Εναλλακτικά, για να κατασκευάσω κύκλο χρησιμοποιώ την εξής γενική μορφή επανάληψης: ΕΠΑΝΑΛΑΒΕ Ν [ΜΠ Χ ΔΕ Κ] Όπου Ν * Κ = 360 και Χ είναι το μήκος της πλευράς του προσεγγιστικού πολυγώνου. Αν θέλω να κατασκευάσω μεγαλύτερο ή μικρότερο κύκλο πρέπει ουσιαστικά να κατασκευάσω πολύγωνο με μεγαλύτερη ή μικρότερη πλευρά αντίστοιχα. Πειραματιστείτε κατασκευάζοντας κύκλους με μικρότερη ή μεγαλύτερη πλευρά ή με μικρότερη ή μεγαλύτερη γωνία. Κ. Χαλκιά 3
Παραδείγματα Σχήμα 1 ΕΠΑΝΑΛΑΒΕ 55 [ΕΠΑΝΑΛΑΒΕ 360 [ΜΠ 1 ΔΕ 1] ΔΕ 10] Σχήμα 2 ΕΠΑΝΑΛΑΒΕ 12 [ΕΠΑΝΑΛΑΒΕ 4 [ΜΠ 100 ΔΕ 90] ΔΕ 30] Σχήμα 3 ΕΠΑΝΑΛΑΒΕ 7 [ΜΠ 100 ΔΕ 90 ΕΠΑΝΑΛΑΒΕ 3 [ΜΠ 50 ΔΕ 90] ΠΙ 50 ΔΕ 51] Κύκλος 1 ΕΠΑΝΑΛΑΒΕ 360 [ΜΠ 1 ΔΕ 1] Κύκλος 2 ΕΠΑΝΑΛΑΒΕ 360 [ΜΠ 2 ΔΕ 1] Κύκλος 3 ΕΠΑΝΑΛΑΒΕ 36 [ΜΠ 5 ΔΕ 10] Κύκλος 4 ΕΠΑΝΑΛΑΒΕ 36 [ΜΠ 10 ΔΕ 10] Κύκλος 5 ΕΠΑΝΑΛΑΒΕ 18 [ΜΠ 10 ΔΕ 10 Ημικύκλιο 1 ΕΠΑΝΑΛΑΒΕ 180 [ΜΠ 1 ΔΕ 1] Ημικύκλιο 2 ΕΠΑΝΑΛΑΒΕ 18 [ΜΠ 10 ΔΕ 10] Τεταρτημόριο 1 ΕΠΑΝΑΛΑΒΕ 90 [ΜΠ 1 ΔΕ 1] Τεταρτημόριο 2 ΕΠΑΝΑΛΑΒΕ 9 [ΜΠ 10 ΔΕ 10] Κ. Χαλκιά 4
Συχνά στον προγραμματισμό θέλουμε να εκτελέσουμε ξανά και ξανά ένα σύνολο εντολών, σε διαφορετικά σημεία του προγράμματός μας. Αντί να γράφουμε κάθε φορά τις εντολές αυτές μπορούμε να δημιουργήσουμε μια διαδικασία, στην οποία θα αποδώσουμε ένα όνομα. Η χρήση διαδικασιών: Διευκολύνει την ανάπτυξη του προγράμματος Διευκολύνει την κατανόηση και διόρθωση του προγράμματος Απαιτείται λιγότερος χρόνος και κόπος κατά τη συγγραφή του προγράμματος Επεκτείνει τις δυνατότητες των γλωσσών προγραμματισμού Πως δημιουργώ μια διαδικασία; Στη δεξιά πλευρά του παραθύρου της εφαρμογής υπάρχει η καρτέλα Διαδικασίες. Ο χώρος αυτός υπάρχει για να εισάγουμε τις δικές μας διαδικασίες. Οι διαδικασίες ξενικούν με το για και ακολουθεί το όνομα της διαδικασίας. Κάθε διαδικασία έχει ένα μοναδικό όνομα, το οποίο δεν πρέπει να περιέχει κενά διαστήματα. Οι διαδικασίες μετά τις οδηγίες τελειώνουν πάντα με τη λέξη σε ξεχωριστή γραμμή. Πως θα ορίσω μια απλή διαδικασία; Στην καρτέλα Διαδικασίες γράφω για κενό- όνομα διαδικασίας Αλλάζω γραμμή (πατώντας enter) Γράφω τις εντολές που θέλω να περιέχονται στη διαδικασία (μια εντολή σε κάθε σειρά) Γράφω τη λέξη Για να καλέσω (δηλαδή να ζητήσω την εκτέλεσή της) μια διαδικασία απλώς γράφω το όνομά της στο κέντρο εντολών. Κ. Χαλκιά 5
ΠΑΡΑΔΕΙΓΜΑ Γράψτε τις διαδικασίες που ακολουθούν και δημιουργήστε ένα χωριό! για τετραγωνο ΕΠΑΝΑΛΑΒΕ 4 [ΜΠ 50 ΔΕ 90] για τριγωνο ΕΠΑΝΑΛΑΒΕ 3 [ΜΠ 50 ΔΕ 120] για σπιτι τετραγωνο ΜΠ 50 ΔΕ 30 τριγωνο για κινηση ΣΤΑ ΔΕ 60 ΜΠ 70 ΑΡ 90 ΠΙ 50 ΣΤΚ για χωριο ΣΒΓ ΣΤΑ ΘΕΣΕΘΕΣΗ [0 30] ΣΤΚ ΕΠΑΝΑΛΑΒΕ 6 [σπιτι κινηση ΔΕ 60] ΑΣΚΗΣΗ: Γράψτε τις κατάλληλες διαδικασίες ώστε να δημιουργήσετε ένα λουλούδι. Υπόδειξη: ένα πέταλο είναι η ένωση δύο τεταρτοκύκλιων και ένα λουλούδι αποτελείται από πολλά πέταλα. Το φύλλο του μπορεί να σχεδιαστεί όπως ένα πέταλο. Κ. Χαλκιά 6
Μια μεταβλητή είναι ένας χώρος μνήμης του υπολογιστή που χρησιμοποιείται για να αποθηκεύσουμε και να επεξεργαστούμε δεδομένα κατά τη διάρκεια εκτέλεσης του προγράμματός μας. Κάθε μεταβλητή χαρακτηρίζεται από το όνομά της (που είναι μοναδικό) και από τον τύπο της.! Όταν θέλουμε να χρησιμοποιήσουμε το όνομα μιας μεταβλητής τότε πριν το όνομα βάζουμε το.! Όταν θέλουμε να χρησιμοποιήσουμε την τιμή (δηλαδή το περιεχόμενο) μιας μεταβλητής τότε πριν το όνομα βάζουμε το :. Η γλώσσα LOGO διαθέτει δύο εντολές για να μπορούμε να χρησιμοποιούμε μεταβλητές και να εκχωρούμε (δίνουμε) τιμές σε αυτές. Σύνταξη εντολής Παράδειγμα Αποτέλεσμα ΚΑΝΕ λέξη λέξη ή λίστα ΚΑΝΕ χ 16 Εκχωρεί στη μεταβλητή χ την τιμή 16 ΚΑΝE όνομα Γεώργιος Εκχωρεί στη μεταβλητή όνομα την ΟΝΟΜΑΣΕ λέξη λέξη ή λίστα Την ίδια χρήση με την ΚΑΝΕ τιμή Γεώργιος Τα ίδια αποτελέσματα με την ΚΑΝΕ Όταν θέλουμε να αποδώσουμε έναν αριθμό σε μία μεταβλητή γράφουμε απευθείας τον αριθμό. Όταν θέλουμε να αποδώσουμε μια συμβολοσειρά (string) σε μια μεταβλητή δεν ξεχνάμε να βάλουμε εισαγωγικά ( ). Ασκήσεις 1. Τι θα εμφανίσει η ΔΕΙΞΕ μετά την εκτέλεση των εντολών; ΚΑΝΕ ονομα Δημήτρης ΔΕΙΞΕ :ονομα 2. Τι θα εμφανίσει η ΔΕΙΞΕ μετά την εκτέλεση των εντολών; ΚΑΝΕ x 3 ΔΕΙΞΕ 12 + 5 *(:x) ΔΕΙΞΕ 2 * 5 (:x) * 4 ΚΑΝΕ x 8 ΔΕΙΞΕ 14 + 2 + (:x) /2 Κ. Χαλκιά 7
Μια συνθήκη είναι μια παράσταση που αποτελείται από αριθμούς, λέξεις, λίστες, αριθμητικές πράξεις και από ένα τελεστή σύγκρισης. Όταν υπολογιστεί η συνθήκη δίνει ένα αποτέλεσμα που η τιμή του μπορεί να είναι μόνο ΣΩΣΤΟ ή ΛΑΘΟΣ. Οι τελεστές σύγκρισης στη LOGO είναι οι εξής: ΤΕΛΕΣΤΗΣ ΛΕΙΤΟΥΡΓΙΑ = Επιστρέφει ΣΩΣΤΟ όταν η παράσταση στο αριστερό μέρος είναι ίση με την παράσταση στο δεξιό. > Επιστρέφει ΣΩΣΤΟ όταν η παράσταση στο αριστερό μέρος είναι μεγαλύτερη από την παράσταση στο δεξιό. < Επιστρέφει ΣΩΣΤΟ όταν η παράσταση στο αριστερό μέρος είναι μικρότερη από την παράσταση στο δεξιό. ΙΣΟΥΤΑΙ? Επιστρέφει ΣΩΣΤΟ όταν η πρώτη είσοδος είναι ίση με τη δεύτερη είσοδο. Δεν ξεχωρίζει κεφαλαία ή μικρά γράμματα. ΤΑΥΤΙΖΕΤΑΙ? Επιστρέφει ΣΩΣΤΟ όταν η πρώτη είσοδος είναι ίση με τη δεύτερη είσοδο. Ξεχωρίζει κεφαλαία και μικρά γράμματα. ΜΕΓΑΛΥΤΕΡΟ? Επιστρέφει ΣΩΣΤΟ όταν η πρώτη είσοδος είναι μεγαλύτερη από τη δεύτερη είσοδο. ΜΙΚΡΟΤΕΡΟ? Επιστρέφει ΣΩΣΤΟ όταν η πρώτη είσοδος είναι μικρότερη από τη δεύτερη είσοδο. ΑΡΙΘΜΟΣ? Επιστρέφει ΣΩΣΤΟ αν η είσοδος είναι ένας αριθμός. ΛΕΞΗ? Επιστρέφει ΣΩΣΤΟ αν η είσοδος είναι μια λέξη. ΛΙΣΤΑ? Επιστρέφει ΣΩΣΤΟ αν η είσοδος είναι μια λέξη. ΚΕΝΟ? Επιστρέφει ΣΩΣΤΟ αν η είσοδος είναι κενή. ΑΝΗΚΕΙ? Επιστρέφει ΣΩΣΤΟ αν μία τιμή ανήκει σε μια λίστα τιμών. Η δομή επιλογής επιτρέπει την εκτέλεση ενός συνόλου εντολών με βάση την αλήθεια ή όχι μιας συνθήκης. Η δομή επιλογής στη γλώσσα LOGO συντάσσεται ως εξής: ΑΝ συνθήκη [εντολές] Εκτελεί τις εντολές μόνο αν η συνθήκη επιστρέφει ΣΩΣΤΟ. ΑΝΔΙΑΦΟΡΕΤΙΚΑ συνθήκη [εντολές_1] [εντολές_2] ΤΕΛΟΣ Εκτελεί τις εντολές_1 μόνο αν η συνθήκη επιστρέφει ΣΩΣΤΟ, αλλιώς εκτελεί τις εντολές_2. Κ. Χαλκιά 8
ΠΑΡΑΔΕΙΓΜΑ Η διαδικασία που ακολουθεί διαβάζει δύο αριθμούς και εμφανίζει το πηλίκο τους. Σε περίπτωση που ο διαιρέτης είναι μηδέν εμφανίζει μήνυμα λάθους! ΓΙΑ ΔΙΑΙΡΕΣΗ ΕΡΩΤΗΣΗ [ΔΩΣΕ ΤΟ ΔΙΑΙΡΕΤΕΟ] ΚΑΝΕ A ΑΠΑΝΤΗΣΗ ΕΡΩΤΗΣΗ [ΔΩΣΕ ΤΟ ΔΙΑΙΡΕΤΗ] ΚΑΝΕ Β ΑΠΑΝΤΗΣΗ ΑΝΔΙΑΦΟΡΕΤΙΚΑ :Β = 0 [ΑΝΑΚΟΙΝΣΗ [Η ΔΙΑΙΡΕΣΗ ΕΙΝΑΙ ΑΔΥΝΑΤΗ!!!] [ΑΝΑΚΟΙΝΩΣΗ (ΦΡΑΣΗ [ΤΟ ΠΗΛΙΚΟ ΕΙΝΑΙ: ] :Α / :Β) ] ΤΕΛΟΣ ΤΕΛΟΣ Κ. Χαλκιά 9