Logo Κεφάλαιο 6
Εισαγωγή Η γλώσσα LOGO έχει σκοπό να κάνει τη δύναμη των υπολογιστών προσιτή σε όλους. Χρησιμοποιείτε για διδασκαλία παιδιών προσχολικής και σχολικής ηλικίας (π.χ διδασκαλία γεωμετρίας). Η γλώσσα LOGO κάνει χρήση της χελώνας η οποία δείχνει γραφικά στην οθόνη το αποτέλεσμα κάθε εντολής.
Το περιβάλλον της Win-Logo Παράθυρο γραφικών (graphics window): Βρίσκεται η χελώνα (turtle) η οποία σχεδιάζει ανάλογα με τις διαταγές που δίνουμε στο κάτω αριστερό παράθυρο: Παράθυρο εργασίας (work window) Παράθυρο κειμένου (text window): Κάτω δεξιά παράθυρο. Τα αποτελέσματα τα οποία δεν είναι γραφικά αλλά είναι σε μορφή κειμένου εμφανίζονται εδώ. Η χελώνα βρίσκεται στο κέντρο του graphics window.
Το περιβάλλον της Win-Logo
Βασικές Εντολές Οι εντολές γράφονται δίπλα από το ερωτηματικό στο παράθυρο εργασίας και εκτελούνται πατώντας το “Enter”. FD 50 (Forward - H χελώνα να μετακινηθεί 50 μονάδες μπροστά). RT 90 (Right – H χελώνα να κάνει κλίση 90°δεξιά). Mπορούμε να γράψουμε πολλές διαταγές στην ίδια γραμμή. repeat 4 [FD 50 RT 90]: Η εντολή repeat επαναλαμβάνει 4 φορές τις διαταγές που βρίσκονται μέσα στις τετράγωνες αγκύλες. (Σχηματισμός τετραγώνου)
‘Αλλες εντολές BK -n- (BACK): Η χελώνα κινείται πίσω LT -n- (LEFT): Η χελώνα στρέφει αριστερά PD (PENDOWN): Η χελώνα αφήνει ίχνη κατά τη μετακίνησή της PU (PENUP): Η χελώνα δεν αφήνει ίχνη κατά τη μετακίνησή της HOME: Η χελώνα επιστρέφει στην αρχική της θέση (0,0). PENERASE: Όταν η χελώνα μετακινείται σβήνει τα ίχνη που βρίσκονται στην ίδια διεύθυνση. CS (CLEARSCREEN): Το γραφικό παράθυρο καθαρίζει και η χελώνα πηγαίνει στην αρχική της θέση. CT (CLEARTEXT): Καθαρίζει το παράθυρο κειμένου. HIDETURTLE (HT): Η χελώνα κρύβεται. SHOWTURTLE (ST): Η χελώνα εμφανίζεται. STAMP: (Το σχήμα της χελώνας αποτυπώνεται στην οθόνη). Αυτές οι βασικές εντολές μπορούν να συνδυαστούν για το σχηματισμό διαφόρων σχημάτων. Αυτό εξαρτάται από τη φαντασία και το ταλέντο του χρήστη.
Μαθηματικές πράξεις + (πρόσθεση) ή sum - (αφαίρεση) ή difference ∗ (πολλαπλασιασμός) ή product / (διαίρεση) ή division remainder: (Υπόλοιπο) hex: Eπιστρέφει τον αριθμό σε δεκαεξαδική μορφή. ASCII "A : Eπιστρέφει το χαρακτήρα ‘Α’ σε ASCII μορφή (65) print: Eμφανίζει το αποτέλεσμα π.χ. print 20/4
Συναρτήσεις ABS: Absolute value - Απόλυτη τιμή sqrt : Την τετραγωνική ρίζα της γωνίας char: Eπιστρέφει το χαρακτήρα που αντιστοιχεί στο ASCII) print power 2 5 (Υψώνει το 2 στη δύναμη 5) Οι εντολές αυτές λέγονται συναρτήσεις και είναι ενσωματωμένες με τη γλώσσα WIN-LOGO. Αυτές οι συναρτήσεις δέχονται σαν δεδομένα ένα ή δύο ή περισσότερους αριθμούς (ή λέξεις ή λίστες) – τα οποία λέγονται παράμετροι. Μία συνάρτηση επεξεργάζεται αυτές τις παραμέτρους και επιστρέφει κάποιο αποτέλεσμα ανάλογα με τη λειτουργία που έχει προγραμματιστεί να εκτελεί η κάθε συνάρτηση.
Μεταβλητές Μεταβλητή είναι ένα όνομα στο οποίο δίνεται κάποια τιμή. Η τιμή αυτή μπορεί να είναι ένας αριθμός, μία λέξη ή μία λίστα. Χρησιμοποιήουντε για διάφορες μαθηματικές πράξεις. Δίνουμε μία τιμή σε κάποια μεταβλητή, χρησιμοποιούμε την εντολή make. make "x 20 make "y 40 make "z :x+:y print :z Όταν η τιμή είναι λέξη πρέπει να προηγείται από εισαγωγικά make "name "George print :name George Για να πάρει τα περιεχόμενα μιας μεταβλητής πρέπει η μεταβλητή να προηγείται από την άνω κάτω τελεία. Αν όμως βάλω εισαγωγικά πριν από ένα αριθμό, τότε δεν είναι πλέον αριθμός αλλά λέξη (5, 3, 8)
Λίστες Μία μεταβλητή μπορεί να πάρει ως τιμή μία λίστα. Η λίστα είναι ένα σύνολο από λέξεις. Οι λέξεις μίας λίστας πρέπει να εσωκλείονται σε αγκύλες. make "animals [dog cat elephant tiger donkey] print :animals dog cat elephant tiger donkey make "x 408 print first :x 4 print last :animals (τύπωσε το τελευταίο αντικείμενο) donkey print butfirst :animals (Όλα εκτός το πρώτο μπορεί να γραφτεί και ως bf) cat elephant tiger donkey print member? "elephant :animals TRUE Η συνάρτηση member? ελέγχει αν η λέξη elephant βρίσκεται στη λίστα :animals.
Λίστες - Συναρτήσεις Η συνάρτηση empty? ελέγχει αν η λίστα :animals είναι κενή (δεν περιέχει αντικείμενα) και επιστρέφει TRUE ή FALSE ανάλογα. Η συνάρτηση fput (firstput) τοποθετεί τη λέξη σαν πρώτο αντικείμενο στη λίστα (μόνο στην οθόνη). Αν θέλω να τοποθετήσω τη λέξη camel στη λίστα animals πρέπει να δώσω την εντολή make: make "animals fput "camel :animals Η συνάρτηση count επιστρέφει τον αριθμό των αντικειμένων που βρίσκονται στη λίστα animals. Η συνάρτηση removeitem "elephant αφαιρεί από τη λίστα τη λέξη elephant Η συνάρτηση times επιστρέφει έναν αριθμό που αντιστοιχεί στις φορές που βρίσκεται η λέξη dog μέσα στη λίστα animals. Τι γίνεται όμως αν θέλω το 2ο αντικείμενο και δεν υπάρχει η συνάρτηση second για να μας το κάνει; print second :animals
Διαδικασίες (Procedures) (σελ. 116) ? to square > repeat 4 [FD 50 RT 90] > end Αν γράψουμε «square» σχηματίζεται τετράγωνο. Για να δημιουργήσουμε μία διαδικασία αρχίζουμε με την εντολή to και το όνομα της διαδικασίας. Το ερωτηματικό αλλάζει και γίνεται > :οι διαταγές που γράφουμε δεν εκτελούνται. Όταν τελειώσουμε, κλείνουμε με την εντολή end.
Γέμισμα σχήματος με χρώμα H WIN-LOGO μπορεί να ζωγραφίσει με 16 διαφορετικά χρώματα. Το κάθε χρώμα έχει ένα αριθμό όπως: Μαύρο ..1 Μπλε..2 Πράσινο ..3 Κόκκινο ..13 Η εντολή για να αλλάξει το χρώμα της χελώνας είναι setpc 13 (set pen color 13). Για να γεμίσουμε με χρώμα ένα σχήμα πρέπει η περιφέρεια του σχήματος να έχει το ίδιο χρώμα με το χρώμα που θα γεμίσουμε το σχέδιο, και η χελώνα να βρίσκεται μέσα στο σχήμα. Μετά οδηγούμε τη χελώνα μέσα στο τετράγωνο χωρίς να αφήνει ίχνη (pu-penup) και δίνουμε την εντολή FILL για να γεμίσει το σχήμα με χρώμα. Για να γεμίσει το σχήμα πρέπει η εντολή FILL να προηγηθεί από την εντολή PD (pendown).
Παράδειγμα to square :color setpc :color repeat 4 [FD 50 RT 90] PU PD FILL LT 180 LT 90 RT 180 end
‘Ασκηση 1 Σχεδιάστε το σχήμα που θα δημιουργήσουν οι ακόλουθες εντολές της LOGO: (Θεωρείστε ότι αρχικά η χελώνα βλέπει προς τα πάνω) repeat 4 [FD 25 RT 90] PU LT 180 FD 50 PD RT 360 repeat 3 [FD 50 LT 90]
Άσκηση 2 Ο Παρακάτω κώδικας ποιο σχήμα σχεδιάζει; Θεωρήστε ότι αρχικά η χελώνα βλέπει προς τα επάνω. repeat 2 [lt 90 fd 100] lt 90 repeat 2 [ fd 50 lt 90] fd 25
Άσκηση 3 Οι ακόλουθες εντολές τι σχήμα δημιουργούν? Οι ακόλουθες εντολές τι σχήμα δημιουργούν? repeat 6 [FD 50 RT 360/6] repeat 4 [FD 50 RT 360/4] repeat 3 [FD 50 RT 360/3]