Πέμπτη 17 Απριλίου 2014

Από τον Αριθμό στα Δεδομένα


Πώς από τον αριθμό φθάσαμε στα «δεδομένα» ή data; Σε αυτό το ερώτημα θα προσπαθήσω να απαντήσω.
Στην εκμάθηση των υπολογιστών αυτό που παίζει περισσότερο είναι η πλευρά του δεδομένου και όχι του αποτελέσματος. Το αποτέλεσμα είναι προϊόν επεξεργασίας άρα αποτελεί γνώση της διαδικασίας, άρα γνώση της εισαγωγής δεδομένων. Η πρώτη εργασία κάποιου σε υπολογιστή είναι το data entry, ή πέρασμα δεδομένων.
Στους υπολογιστές υπάρχουν τέσσερις βασικοί διαφορετικοί συμβολισμοί αριθμών ανάλογα με τη χρήση. Η απεικόνισή ενός αριθμού έχει να κάνει και με το είδος του αλλά δεν θα μας απασχολήσει εδώ. Για αυτό το κείμενο η απεικόνισή ενός αριθμού θα είναι μια σειρά συμβόλων (ψηφία και ειδικοί χαρακτήρες), με μια από τις παρακάτω ιδιότητες. Αυτός ο αριθμός μπορεί να δηλώνει ποσότητα «πόσα από ένα είδος», το οποίο μπορεί ή όχι να μεταβληθεί ανάλογα το τι είναι το είδος, ή να δηλώσει όριο «ταβάνι» ή «οροφή» ή «κατώφλι» (τα όρια δεν μεταβάλλονται στη χρήση), ή να δηλώσει δείκτη (π.χ. το στοιχείο 5), ή το επιπλέον (ο σταθερός αριθμός σε έναν μεταβαλλόμενο αριθμό, το λεγόμενο offset).
Θα ξεκινήσω από το τέλος γιατί έχει τη μεγαλύτερη σημασία, και ελάχιστοι το «μαθαίνουν» αφού όλα αυτά μένουν κρυφά μέσα στα προγράμματα «εφαρμογές»
Το «επιπλέον» μας λέει για μια απόσταση όπου αυτή δεν μεταβάλλεται, για έναν άλλο αριθμό που αυτός μεταβάλλεται. Από μόνο του ένα επιπλέον δεν μπορεί να υπάρξει, όμως έχει τη δική του αξία, γιατί βάσει της πρόσθεσης «δείκτη» και «επιπλέον» στρώνουμε τα δεδομένα μας (το οποίο δεν μπορούμε να το αντιληφθούμε άμεσα). Π.χ. σε μια μοτοσυκλέτα υπάρχει μια θέση για τον οδηγό και μια επιπλέον. Η επιπλέον εδώ είναι η δεύτερη θέση, και βγαίνει με τύπο! Αν η 1η θέση είναι του οδηγού και μία θέση επιπλέον υπάρχει για τον συνοδηγό, τότε αυτή η θέση θα είναι η 1+1=2...η δεύτερη. Εδώ προσθέτω το δείκτη (1η θέση) με το επιπλέον (1η ΘΕΣΗ) και λαμβάνω τον δείκτη (2η θέση). Τα«θέση» με μικρά είναι δείκτες. Το «ΘΕΣΗ»είναι το επιπλέον (offset), δεν είναι δείκτης αλλά αν τον προσθέσουμε σε δείκτη τότε προκύπτει δείκτης! Όταν κάποιος στρώνει ένα τραπέζι βάζει σε όλες τις θέσεις από ένα πιάτο (1ος δείκτης) και βάζει αριστερά ένα πιρούνι (1ο επιπλέον) και δεξιά ένα μαχαίρι (2ο επιπλέον). Στο μυαλό του δηλαδή δεν έχει μόνο τη θέση του κάθε πιάτου αλλά και την σχετική θέση του κάθε επιπλέον πράγματος. Το επιπλέον λοιπόν είναι η σχετική θέση, ή δείκτης, αλλά μπορεί να νοηθεί ως μια «σταθερή» απόσταση, και πως θα είναι πάντα εκεί..(δεν αλλάζει). Φυσικά κάποιος αν σερβίρει σούπα θα βάλει άλλο πιάτο και ένα μόνο κουτάλι. Αυτό όμως είναι άλλο σερβίρισμα. Το ότι έχει κοινά στοιχεία δεν μας λέει ότι «αλλάξαμε» το σερβίρισμα «πιάτο με μαχαίρι και πιρούνι». Αν θέλουμε αλλάζουμε σχέδιο πιάτου και μαχαιροπίρουνων και πάλι θα έχουμε το ίδιο σερβίρισμα. Επίσης για εκείνον που «διαφωνεί» με την χρήση των «επιπλέον» θα μπορούσε να δει τον σερβιτόρο να στρώνει το τραπέζι σε τρεις φάσεις, από μια για κάθε είδος, μια για πιάτα, μια για μαχαίρια και μια για πιρούνια, και να πει ότι δεν υπάρχει «επιπλέον». Ακριβώς το λάθος είναι σε αυτό που παραβλέπει...ότι αφού έβαλε ο σερβιτόρος τα πιάτα...όταν πήγε να βάλει τα μαχαίρια δεν τα έριξε πάνω στα πιάτα αλλά τα έβαλε σε απόσταση από τα πιάτα (να το επιπλέον). Όπως και να κάνει κανείς δεν γίνεται να μην χρησιμοποιήσει το επιπλέον σε «ομαδοποιήσεις» δεδομένων.
Σε μια στοίβα πιάτα κάθε πιάτο πάνω από το πρώτο αποτελεί το επιπλέον. Εδώ θα παρουσιάσω το σφάλμα του 1+1. Η πληγή των πληροφορικών είναι το σφάλμα του 1+1. Στο παράδειγμα με την στοίβα, κάθε πιάτο αντιστοιχεί σε ένα δείκτη, και έχουμε δέκα πιάτα. Μπορούμε να ξεκινήσουμε από το 1 ή από το 0, αρκεί να το γνωστοποιήσουμε. Επειδή το παράδειγμα έχει πιάτα, θα πούμε ότι το πιάτο στη βάση της στοίβας είναι το 1 ή πρώτο. Το δέκατο πιάτο θα είναι επιπλέον του πρώτου το ένατο, γιατί το 10ο (δείκτης) είναι το 9ο επιπλέον (1ος δείκτης +9ο επιπλέον =10ος δείκτης). Αν ξεκίναγα με δείκτη 0 τότε το δέκατο πιάτο θα είναι επιπλέον του πρώτου...το όγδοο, στο 1 πήραμε το επιπλέον 9ο, στο λιγότερο θα πάρουμε ακόμα πιο λίγο. Άρα για να λέμε ότι το δέκατο είναι το επιπλέον 10, δοκιμάζουμε το 1+1, αφού το 1 δεν βγήκε, και το προς τα πίσω τα χειροτέρεψε θα πάμε μπροστά! Δηλαδή ότι το πρώτο έχει δείκτη 2. Αλλά έτσι γίνεται το εξής: Δείκτης 2+επιπλέον 10..θα πάρουμε Δείκτη 12...πέσαμε έξω δυο θέσεις που δεν έχουμε πιάτα. Σε καμία περίπτωση δεν βγαίνει επιπλέον δέκα! Για να μιλάμε για το επιπλέον δέκα πρέπει να έχουμε έντεκα πιάτα! Το επιπλέον δέκα είναι το 11ο στη σειρά. Το πρώτο είναι πρώτο ανεξάρτητα το νούμερο του δείκτη του. Το νούμερο του πρώτου είναι απλά σύμβαση, θα το λέγαμε 0 ή 1. Το επιπλέον 0 δείχνει το πρώτο πάντα της ομάδας, και δεν είναι θέμα σύμβασης, είναι ανεξάρτητο από το όποιο νούμερο του δείκτη! Με απλά λόγια το επιπλέον (offset) χρησιμοποιείται ως «σχετική θέση» και «σημαδεύει» την ίδια θέση για οποιοδήποτε ομάδα πληροφορίας ανεξάρτητα από το που είναι το πρώτο μέλος της ομάδας. Αυτή η πρόταση περικλείει τη ιδέα της αρχειοθέτησης στους υπολογιστές. (ειδικά αν σκεφτεί κανείς ότι κάθε πρώτο μέλος βρίσκεται ως το επιπλέον ενός άλλου...και όλα τελικά έχουν μια αρχή...όπως η βάση μιας ρίζας)
Όταν συζητάμε για ποιότητες καμία φορά γίνεται αναφορά με αριθμούς. Π.χ. ξενοδοχείο «5 αστέρων». Ουσιαστικά όμως πρόκειται για δείκτη, που δείχνει σε ένα πίνακα «αστέρων» και αυτός κάπου έχει την ξεχωριστή ένδειξη 5. Άλλο παράδειγμα... στη φράση «έκανε τριπλή τούμπα» δηλώνουμε πλήθος, ποσότητα, ενώ «έκανε την στροφή 3» σημαίνει πέρασε από τη στροφή με δείκτη 3. Η ύπαρξη του δείκτη έρχεται από μια σύμβαση. Κατά τη δική μας σύμβαση έχει έννοια ο δείκτης και μόνο. Πολλές φορές χρησιμοποιούμε αριθμό σειράς. Εδώ τα πράγματα είναι λίγο πιο συγκεχυμένα. Π.χ. για ένα αγοραστή ενός είδους ο αριθμός σειράς δεν του λέει τίποτα, αφού μόνο με το όνομα είδους και εταιρείας παραγωγής είναι ικανοποιημένος, ή ακόμα και με το χρώμα της συσκευασίας, αν μπορεί να παίξει το ρόλο αναγνωριστικού. Αν όμως υπάρξει πρόβλημα με την παρτίδα του εμπορεύματος ο αριθμός σειράς είναι ο δείκτης στην ουσία, απ όπου μπορούν να βρεθούν παρόμοια εμπορεύματα για έλεγχο. Ο αριθμός αυτός δηλαδή παίζει ένα ρόλο αναφοράς μόνο σε ειδική περίπτωση, είναι όμως ένας αριθμός αναφοράς - ταυτότητας. Ξεκάθαρα όμως αυτό που μας κάνει άμεσα να αναγνωρίζουμε κάτι είναι το όνομά του. Ένα όνομα είναι μια συμβολοσειρά χαρακτήρων με περισσότερους χαρακτήρες από έναν αριθμό και με όχι προκαθορισμένο μέγεθος (πλήθος χαρακτήρων). Αν υπολογίσουμε και το διάστημα μέσα στους χαρακτήρες μιας συμβολοσειράς τότε σε μια τέτοια θα μπορούσαμε να βάλουμε ολόκληρη παράγραφο. Αν μάλιστα βάλουμε και έναν ειδικό χαρακτήρα, αυτόν της αλλαγής γραμμής, τότε θα έχουμε πολλές παραγράφους. Οι χαρακτήρες αντιστοιχούν σε δείκτες που δείχνουν στα γράμματα που βλέπουμε (και το διάστημα είναι δείκτης). Ουσιαστικά οι δείκτες είναι σαν τις εντολές...λένε «δες αυτό θέλω» σε ένα πρόγραμμα που ανταποκρίνεται σε αυτό. Έτσι για να ζητήσουμε την αλλαγή γραμμής πρέπει να δώσουμε τον δείκτη που δείχνει την αλλαγή γραμμής.
Εμείς βλέπουμε στην οθόνη μας χαρακτήρες «με τάξη» και έχουν νόημα για μας, ο υπολογιστής βλέπει δείκτες που είναι εντολές για εμφάνιση γραμμάτων. Σε κάθε περίπτωση, ο καθένας, εμείς και ο υπολογιστής, έχει το δικό του πινακάκι ανάγνωσης «δεικτών». Όπως όμως είδαμε παραπάνω η σύμβαση για τους δείκτες είναι δική μας! Εμείς έχουμε δώσει τις γραμματοσειρές στον υπολογιστή! Κάθε δεδομένο λοιπόν που δίνουμε στον υπολογιστή το θέτουμε σε μια σύμβαση και από αυτή βγαίνουν προγράμματα που επεξεργάζονται τα «κατά σύμβαση» δεδομένα. Π.χ. ένας επεξεργαστής κειμένου δεν επεξεργάζεται ένα «οποιοδήποτε» κείμενο, αλλά ένα κείμενο που περιέχεται στη σύμβασή του, μια σύμβαση που έχει υλοποιηθεί με το πρόγραμμα και περιγράφονται στο εγχειρίδιο της βοήθειας. Στη δεκαετία του 1970 δεν υπήρχε το «αυτό που βλέπεις αυτό θα τυπώσεις» στους επεξεργαστές κειμένου. Έφτιαχνες ένα κείμενο αλλά έπαιρνες αυτό που τύπωνες..ανάλογα τον εκτυπωτή που τύπωνες! Ο εκτυπωτής είχε δική του μήτρα χαρακτήρων και τύπωνε τη δική του γραμματοσειρά. Και αυτή είναι η πιο μικρή «διαφορά»!
Συνοψίζοντας τα δεδομένα αποτελούν «εντολές» ως αριθμοί που κατευθύνουν τα προγράμματα όπως ο προγραμματιστής τους έχει αποφασίσει να το κάνει, και το έχει κάνει γνωστό στο χρήστη! Αν δώσουμε λάθος δεδομένα θα πάρουμε λάθος αποτέλεσμα..αφού αυτά θα το κάνουν για μας!

Δεν υπάρχουν σχόλια:

Δημοσίευση σχολίου

You can feel free to write any suggestion, or idea on the subject.