Άννα, Ανανάς! Εμφώλευση-Στοίβαξη Αν
Εμφώλευση- Στοίβαξη
Οι προϋποθέσεις και οι όροι που θέτουμε είναι πολύ ισχυρά στοιχεία κώδικα σε οποιαδήποτε γλώσσα προγραμματισμού, συμπεριλαμβανομένου του EdScratch. Η χρήση μπλοκ υπό όρους όπως οι δηλώσεις "if" στο EdScratch σας επιτρέπει να γράφετε πολλούς διαφορετικούς τύπους πολύπλοκων προγραμμάτων για το ρομπότ Edison. Στις γλώσσες προγραμματισμού που βασίζονται σε μπλοκ, όπως το EdScratch, η προσθήκη διαδοχικών μπλοκ ονομάζεται μερικές φορές μπλοκ στοίβαξης. Όταν χρησιμοποιείτε πολλούς βρόχους μαζί σε ένα πρόγραμμα τον ένα μετά τον άλλο, μπορείτε να πείτε ότι στοιβάζετε τους βρόχους. Μπορείτε επίσης να στοιβάξετε if και if-else μπλοκ μεταξύ τους και με βρόχους. Ομοίως, ακριβώς όπως μπορείτε να τοποθετήσετε βρόχους τοποθετώντας ένα μπλοκ βρόχου μέσα σε ένα άλλο μπλοκ βρόχου, μπορείτε να εμφωλεύσετε if και if-else μπλοκ μεταξύ τους και με βρόχους επίσης! Όλα τα προγράμματα EdScratch που κάνετε λειτουργούν με τον ίδιο βασικό τρόπο. Το πρόγραμμα λέει στο ρομπότ να ξεκινήσει με το επάνω μπλοκ και στη συνέχεια να κάνει κάθε ενέργεια μία προς μία. Μόλις εκτελεστεί ένα μπλοκ, το πρόγραμμα προχωρά στο επόμενο μπλοκ. Ενώ οι βρόχοι και οι υπό όρους εντολές ελέγχουν τη ροή ενός προγράμματος με επαναλήψεις και διακλαδώσεις, το συνολικό πρόγραμμα εξακολουθεί να ακολουθά ακολουθιακή δομή. Αυτό μπορεί να δημιουργήσει πολλές φορές σύγχυση. Όταν εξετάζετε ένα πρόγραμμα με ένθετους βρόχους και όρους, λάβετε υπόψη ότι αυτή η ακολουθιακή ροή βήμα προς βήμα συμβαίνει πάντα. Το να το θυμάστε αυτό θα σας βοηθήσει να μπορείτε να παρακολουθείστε βήμα-βήμα τι συμβαίνει σε ένα πρόγραμμα. Παράδειγμα
1. Εάν εκτελέσετε το πρόγραμμα 1 αλλά ποτέ δεν πατήσετε το κυκλικό κουμπί, τι θα συμβεί; Γιατί? 1. Εάν εκτελέσετε το πρόγραμμα 2 αλλά ποτέ δεν πατήσετε το στρόγγυλο κουμπί, τι θα συμβεί; Γιατί? Προσοχή εδώ έχουμε ένα if μέσα σε άλλο if. Ωστόσο σύμφωνα με την ερώτηση δεν εκπληρώνεται ο όρος του πρώτου if οπότε και παραβλέπεται όλο το εσωτερικό του εκτελώντας ακολουθιακά μόνο το beep.
Ας Θυμηθούμε
Ας εξετάσουμε προσεκτικά ένα πρόγραμμα που έχουμε δει.
Αυτό θα συμβεί καθώς δεν εκπληρώνεται ποτέ η συνθήκη διακλάδωσης προς την εμπρόσθια κίνηση και έτσι οδηγούμαστε συνεχώς στην else διακλάδωση.
Η Δημιουργία του προγράμματος
2. Αν εκτελέσετε το πρόγραμμα 2, τι πρέπει να κάνετε για να κάνετε το ρομπότ να οδηγήσει προς τα πίσω? Γιατί?
........Ας το κρατήσουμε για την άσκηση 1 της εβδομάδας.