Μεταβλητές Προγράμματος
Πληροφορική (Επαγγελματικό Λύκειο)
Το παρόν τρίωρο σενάριο διδασκαλίας εντάσσεται στο μάθημα «Αρχές Προγραμματισμού Υπολογιστών» της Β’ τάξης, όλων των ειδικοτήτων του τομέα πληροφορικής των ΕΠΑΛ και αναφέρεται στους βασικούς τύπους δεδομένων της γλώσσας προγραμματισμού Pascal και συγκεκριμένα στις δηλώσεις και τη χρήση μεταβλητών. Σύμφωνα με το αναλυτικό πρόγραμμα σπουδών, η υλοποίηση όλων των δομών προγραμματισμού, εκτός από την παράστασή τους με λογικό διάγραμμα και ψευδοκώδικα, θα γίνεται και στο προγραμματιστικό περιβάλλον της γλώσσας προγραμματισμού Pascal.
Στο 1ο μέρος της διδασκαλίας (Φάση 1), μέσω συζήτησης μεταξύ εκπαιδευτικού και μαθητών, θα γίνει διερεύνηση για τις γνώσεις που έχουν οι μαθητές για το θέμα. Με την εισήγηση που θα ακολουθήσει, θα γνωστοποιηθούν οι διδακτικοί στόχοι, θα παρουσιαστεί η θεωρία του μαθήματος και θα επισημανθούν οι παρανοήσεις και τα δυσνόητα σημεία που αναμένεται να συναντήσουν οι μαθητές.
Στο 2ο μέρος της διδασκαλίας (Φάση 2), οι μαθητές, χωρισμένοι σε ομάδες των δύο ατόμων, θα πάρουν ο καθένας ένα φύλλο δραστηριοτήτων. Οι δραστηριότητες με τις οποίες θα ασχοληθούν οι μαθητές καλύπτουν όλους τους διδακτικούς στόχους της διδασκαλίας
Η διδασκαλία θα ολοκληρωθεί στο 3ο μέρος (Φάση 3 και 4), αφιερώνοντας τα τελευταία 25 λεπτά της στην αξιολόγηση και αυτοαξιολόγηση των μαθητών.
Στην επιστήμη των υπολογιστών, μια μεταβλητή δεν είναι τίποτα περισσότερο και τίποτα λιγότερο από μια επώνυμη θέση στη μνήμη, όπου μπορούν να αποθηκευτούν τα δεδομένα των οποίων η τιμή μπορεί να αλλάξει, ανάλογα με τις συνθήκες ή τις πληροφορίες που περνούν στο πρόγραμμα. Συνήθως, ένα πρόγραμμα αποτελείται από τις οδηγίες που λένε στον υπολογιστή τι να κάνει και τα δεδομένα που χρησιμοποιεί το πρόγραμμα όταν βρίσκεται σε λειτουργία.
Κάθε μεταβλητή έχει ένα και μοναδικό όνομα μέσα στο πρόγραμμα με το οποίο αναφερόμαστε σε αυτήν και έναν τύπο δεδομένων. Ορισμένες γλώσσες προγραμματισμού κάνουν διάκριση πεζών – κεφαλαίων (case sensitive) οπότε, για παράδειγμα, άλλο όνομα μεταβλητής είναι το x και άλλο το Χ, ενώ άλλες όχι (case insensitive). Ο τύπος δεδομένων μιας μεταβλητής υποδεικνύει το είδος και το εύρος των τιμών της, όπως π.χ. αν είναι ένας ακέραιος αριθμός (προσημασμένος ή μη προσημασμένος), ένας αριθμός κινητής υποδιαστολής, ένας χαρακτήρας κλπ.
Σε ορισμένες γλώσσες προγραμματισμού (π.χ. Basic) οι μεταβλητές αρχικοποιούνται συνήθως με "0" ή κάποια άλλη προκαθορισμένη τιμή, οι τιμές τους δηλαδή θα πρέπει να παρέχονται από τον χρήστη του προγράμματος ή να προκύπτουν από την επεξεργασία των δεδομένων του, ενώ σε άλλες γλώσσες (π.χ. Pascal) δε συμβαίνει αυτό και η αρχικοποίηση θα πρέπει να γίνει από τον προγραμματιστή. Η μη αρχικοποίηση των μεταβλητών αποτελεί μια συνήθη πηγή σφαλμάτων στον προγραμματισμό, καθώς οι τιμές που βρίσκονται στη μνήμη είναι "σκουπίδια", που μπορούν να έχουν αρνητικές συνέπειες για το πρόγραμμα, παράγοντας απροσδιόριστα αποτελέσματα από την επεξεργασία των δεδομένων.
Οι μεταβλητές μπορούν να αντιπροσωπεύουν αριθμητικές τιμές, λογικές τιμές, χαρακτήρες, σειρές χαρακτήρων ή διευθύνσεις μνήμης. Σε μερικές γλώσσες κάθε είδους δεδομένα μπορούν να αποθηκευτούν σε μια μεταβλητή, ενώ σε άλλες κάθε μεταβλητή δίνεται σε ένα καλά καθορισμένο τύπο από τον προγραμματιστή και μόνο τα δεδομένα από τον σωστό τύπο μπορούν (ή τουλάχιστον πρέπει) να αποθηκεύονται σε αυτή τη θέση.
Οι μεταβλητές παίζουν σημαντικό ρόλο στον προγραμματισμό ηλεκτρονικών υπολογιστών, επειδή επιτρέπουν στους προγραμματιστές να γράφουν ευέλικτα προγράμματα. Αντί της εισαγωγής δεδομένων απευθείας σε ένα πρόγραμμα, ένας προγραμματιστής μπορεί να χρησιμοποιήσει μεταβλητές που αντιπροσωπεύουν τα δεδομένα. Στη συνέχεια, όταν εκτελείται το πρόγραμμα, οι μεταβλητές αντικαθίστανται με πραγματικά δεδομένα.
Ίσως οι μαθητές να είναι ήδη εξοικειωμένοι με τις μεταβλητές που χρησιμοποιούν στα μαθηματικά, οι οποίες εκπροσωπούν άγνωστα ή μη ρητά καθορισμένα πεδία μιας εξίσωσης. Για παράδειγμα, στην εξίσωση y = m * x + b, κάθε αλφαβητικό γράμμα είναι μια μεταβλητή που αντιπροσωπεύει κάτι άγνωστο (m είναι η κλίση της γραμμής, b είναι η y-τομή, το χ είναι οποιαδήποτε αποδεχτή x-τιμή στη λειτουργία του τομέα, και το y είναι οποιαδήποτε αποδεχτή y-τιμή στο φάσμα της συνάρτησης). Στην επιστήμη των υπολογιστών ωστόσο η τιμή μιας μεταβλητής δεν είναι ποτέ κάτι “άγνωστο”, αλλά μάλλον ορίζεται ρητά, αν και μπορεί να αλλάξει με τρόπους που ο δημιουργός του προγράμματος δε μπορεί πάντοτε να προβλέψει. Είναι σημαντικό να θυμόμαστε ότι δεν υπάρχει καμία απολύτως (ή τουλάχιστον πολύ μικρή) σχέση μεταξύ του όρου μεταβλητή, όπως χρησιμοποιείται στα μαθηματικά, και της μεταβλητής ενός προγράμματος υπολογιστή.
Η θέση της μνήμης στην οποία αναφέρεται μια μεταβλητή μπορεί ή δεν μπορεί να έχει χρήσιμα στοιχεία, αλλά συνήθως αυτό δεν συμβαίνει έως ότου αυτή αρχικοποιηθεί. Η διαδικασία της δέσμευσης ενός κομματιού της μνήμης και η ανάθεση ενός ονόματος σε αυτό λέγεται δημιουργία, διάθεση ή δήλωση μεταβλητής. Σε ένα πρόγραμμα, μπορείτε να δείτε μια γραμμή κώδικα όπως αυτή: area := pi * r * r;
Μπορεί να φαίνεται σαν μια μαθηματική εξίσωση, αλλά αυτό είναι κάτι περισσότερο από μια μαθηματική εξίσωση. Είναι μια εντολή στον υπολογιστή για να φέρει τις τιμές από δύο θέσεις μνήμης (pi και r), οι οποίες έχουν απόλυτους "αριθμούς ταυτότητας”, πολλαπλασιάζει τις τιμές αυτές μεταξύ τους και στη συνέχεια αποθηκεύει το αποτέλεσμα στη θέση μνήμης που ονομάζεται area. Είναι πολύ βολικό το γεγονός ότι αυτός ο κώδικας μπορεί να πάρει τη γνώριμη μορφή μιας εξίσωσης, αλλά δεν μπορούμε να επιτρέψουμε την εμφάνισή του να μας ξεγελάσει, διότι δεν καθορίζει μια μαθηματική συνάρτηση. Μάλλον καθορίζει ένα αυστηρό σύνολο οδηγιών που ο υπολογιστής θα ακολουθήσει κατά την εκτέλεση αυτής της γραμμής κώδικα. Ομοίως, οι περισσότερες γλώσσες επιτρέπουν αναθέσεις μεταβλητών, όπως η ακόλουθη: sum := sum + a;
Οι χαρακτήρες “:=” στην Pascal, αντιστοιχούν στην εντολή καταχώρισης τιμής σε μεταβλητή, ενώ σε άλλες γλώσσες προγραμματισμού, όπως η Basic, ο χαρακτήρας αυτός είναι το “=”. Στους αλγόριθμους, είτε αυτοί είναι σε ψευδογλώσσα είτε σε λογικό διάγραμμα, για να μη συγχέεται με το σύμβολο της ισότητας συνηθίζεται η εντολή καταχώρισης να συμβολίζεται με ένα βέλος “<-”, π.χ. X<-X+1.
Πηγές:
webopedia (http://www.webopedia.com/TERM/V/variable.html)
WIKIVERSITY (https://en.wikiversity.org/wiki/Introduction_to_Programming/Variables)
Programming Basics (http://www.programmingbasics.org/en/beginner/gettingstarted.html)
Δημιουργός Σεναρίου: Γεώργιος Βελώνης (Εκπαιδευτικός)