Είσοδος και Έξοδος

Κάθε εργασία που φέρουν σε πέρας οι υπολογιστές συνιστάται από 3 βασικά σημεία . Ο χρήστης εισαγάγει δεδομένα στον υπολογιστή , ο υπολογιστής τα επεξεργάζεται , και τέλος επιστρέφει το αποτέλεσμα στο χρήστη .

Οι διαδικασίες αυτές καλούνται Είσοδος , Επεξεργασία και Έξοδος (τα 3Ε) . Μέχρι στιγμής στα προγράμματά μας έχουμε χρησιμοποιήσει λίγες εντολές επεξεργασίας (βλ . "Μαθηματικά στην QBASIC") και αρκετές εντολές Εξόδου (δηλ. απεικόνισης δεδομένων στην οθόνη) (βλ. "Η εντολή print" και "Γραφικά στην Qbasic") . Στο άρθρο αυτό θα εξετάσουμε και δύο εντολές εισόδου . Την INPUT και την READ . Πριν από αυτό όμως ας επανέλθουμε λίγο στις μεταβλητές .

Από τα Μαθηματικά ξέρουμε ότι μια μεταβλητή (που συνήθως συμβολίζεται με ένα γράμμα) αντιπροσωπεύει έναν αριθμό . Ο αριθμός αυτός μπορει να αλλάζει , ανάλογα με το Μαθηματικό πρόβλημα που αντιμετωπίζουμε . Στους υπολογιστές η έννοια της μεταβλητής δεν διαφέρει , μόνο που εδώ οι μεταβλητές δεν αντιπροσωπεύουν αριθμούς , αλλά δεδομένα . Τα δεδομένα μπορεί να είναι αριθμοί ή κείμενο .

Μια μεταβλητή στην Qbasic μπορεί να είναι ένα γράμμα , ή μια λέξη , αρκεί να μην είναι ίδια με μια από τις εντολές της Qbasic , οπότε μπορεί να γίνει μπέρδεμα . Ονόματα μεταβλητών μπορεί να αποτελούν οι παρακάτω λέξεις :

onoma_xrhsth$

xronologia_gennishs

hlikia

epwnymo$

foros_eisodhmatos

x

y

...κλπ...

Για να δώσουμε σε μια μεταβλητή μια τιμή , χρησιμοποιούμε τον τελεστή καταχώρησης (=) , που είδαμε στο άρθρο "Μαθηματικά στην Qbasic" . Μερικά παραδείγματα είναι τα παρακάτω .

foros_eisodhmatos = 400000

onoma$ = "Nikos"

Θα έχετε ήδη προσέξει ότι οι μεταβλτές χωρίζονται σε δύο κατηγορίες . Σε αυτές που κρατούν ως δεδομένα κείμενο , και σε αυτές που κρατούν αριθμούς . Οι μεταβλητές κειμένου παίρνουν το σήμα του δολλαρίου ($) στο τέλος τους . Επίσης δώστε προσοχή στο γεγονός ότι τα εισαγωγικά ("") είναι απαραίτητα όταν εισάγουμε κείμενο σε μια μεταβλητή . Τέλος στις μεταβλητές απαγορεύονται τα κενα , οπότε χρησιμοποιείτε το ( _ ) όταν θέλετε να χωρίσετε τις λέξεις .

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

INPUT "Παρακαλώ εισάγετε το όνομά σας " , onoma$

Η παραπάνω εντολή δηλαδή εκτυπώνει στην οθόνη το μήνυμα : "Παρακαλώ εισάγετε το όνομά σας" και περιμένει από τον χρήστη να πληκτρολογήσει το όνομά του . Όταν ο χρήστης πατήσει ENTER , ό,τι έχει πληκτρολογήσει αποθηκεύεται στη μεταβλητή onoma$ . Οπότε το εξής πρόγραμμα :

INPUT "Παρακαλώ εισάγετε το όνομά σας" , name$

PRINT "Hello , " ; name$ ; " , how are you ?"

ζητάει από τον χρήστη το όνομά του και κατόπιν του απευθύνει έναν εξατομικευμένο χαιρετισμό . Ένα άλλο απλό πρόγραμμα αυτού του είδους είναι το παρακάτω .

INPUT "In which year are we ? " , year

INPUT "In which year were you born ?" , born

age = year - born

PRINT "So , you are " ; age ; "years old!"

Αυτό το πρόγραμμα υπολογίζει την ηλικία του χρήστη , με δεδομένα την παρούσα χρονολογία και τη χρονολογία γέννησης του χρήστη . Καλά , δεν κάνει και τίποτα μαγικό , αλλά από την άλλη κανένα πρόγραμμα δεν κάνει μαγικά . Όλα τα προγράμματα έχουν δεδομένα (στην περίπτωσή μας την παρούσα χρονολογία και τη χρονολογία γέννησης του χρήστη) , τα οποία επεξεργάζονται και δίνουν στον χρήστη το αποτέλεσμα της Επεξεργασίας .

Υπάρχει όμως και ένας άλλος τρόπος να εισάγουμε δεδομένα στα προγράμματά μας . Αυτός είναι η εντολή READ . Η εντολή αυτή χρησιμοποιείται ως εξής :

READ όνομα_μεταβλητής

για παράδειγμα

READ hlikia_xrhsth

Το ερώτημα είναι "Που θα βρει ο υπολογιστής τα δεδομένα για να τα βάλει στη συγκεκριμένη μεταβλητή?" . Το πιο πιθανό , αν προσπαθήσετε να χρησιμοποιήσετε την εντολή READ όπως παραπάνω είναι να σας εμφανιστεί ένα μήνυμα "Out of DATA" . Αυτό είναι φυσικό , αφου ζητάμε από τον υπολογιστή να αναθέσει δεδομένα σε μια μεταβλητή , χωρίς να του έχουμε δώσει δεδομένα . Τα δεδομένα (DATA) τα τοποθετούμε συνήθως στο τέλος του προγράμματός μας με την εξής εντολή :

DATA δεδομένα

Για παράδειγμα το παραπάνω πρόγραμμα μπορεί να γραφτεί ως εξής :

READ hlikia_xrhsth

DATA 18

Το αποτέλεσμα του προγράμματος αυτού είναι η μεταβλητή hlikia_xrhsth να πάρει την τιμή 18 .

Ο δεύτερος τρόπος εισαγωγής δεδομένων μπορεί να σας μπερδέψει λίγο στην αρχή , αλλά αργότερα θα μας φανεί ιδιαίτερα χρήσιμος . Μπορείτε να τον αγνοήσετε προς το παρόν .

Άσκηση

Γράψτε ένα πρόγραμμα που ζητάει από τον χρήστη την παρούσα χρονολογία και τη χρονολογία γέννησής του (όπως παραπάνω) και υπολογίζει την ηλικία του σε χρόνια . Κατόπιν να απεικονίζει γραφικά την ηλικία ως ένα ευθύγραμμο τμήμα σε μια κλιμακα από το 0 ως το 120 . Δηλαδή αν η απόσταση από το 0 ως το 120 είναι 120 pixels και η ηλικία είναι 54 , η μπάρα να έχει μήκος 54 pixels .

Η απάντηση βρίσκεται στο αρχείο του κώδικα .

Για οποιαδήποτε απορία , διευκρίνιση ή πρόταση έχετε επικοινωνήστε μαζί μου στο email μου