Δεν θα διαφωνήσω με αυτά που λέτε. Απλώς είναι η μία πλευρά και η άλλη πλευρά είναι αυτή που λέμε με τον Παναγιώτη. Απλώς το θέμα είχε αυτό το σκεπτικό για αυτό θεωρώ ότι αναφερθήκαμε σε αυτά και όχι σε αυτό που λέτε εσείς.
Βέβαια καλό είναι να ξεκαθαρίσουμε και τις δύο πλευρές μιας που έχουν ξεκαθαριστεί το θέμα των Δεδομένων και των Αποτελεσμάτων πριν από 7 χρόνια στην 6η διημερίδα για την πληροφορική στη Δευτεροβάθμια Εκπαίδευση που διοργάνωσε η ΕΠΥ.
Επιλέγω για τη συζήτηση τον αλγόριθμο της αναζήτησης, όπως και στο σχετικό άρθρο
Αλγόριθμος Σειριακή_Αναζήτηση
Δεδομένα // Ν, πίνακας, ζητούμενο //
βρέθηκε ← ψευδής
θέση ← 0
i ← 1
Όσο (βρέθηκε = ψευδής) και (i ≤ Ν) επανάλαβε
Αν πίνακας[i] = ζητούμενο τότε
βρέθηκε ← αληθής
θέση ← i
αλλιώς
i ← i + 1
Τέλος_αν
Τέλος_επανάληψης
Αποτελέσματα // βρέθηκε, θέση //
Τέλος Σειριακή_Αναζήτηση
Η παραπάνω σειρά ενεργειών είναι αποτελεσματική για οποιοδήποτε τύπο δεδομένων. Ο ίδιος αλγόριθμος μπορεί να χρησιμοποιηθεί για οποιοδήποτε πλήθος στοιχείων, τα οποία μπορεί να είναι είτε αλφαριθμητικά σε περίπτωση αναζήτησης ενός ονόματος μέσα σε πίνακα που περιέχει ονόματα μαθητών, είτε αριθμητικά (ακέραια ή πραγματικά) σε περίπτωση αναζήτησης ενός συγκεκριμένου ποσού μέσα σε πίνακα που περιέχει τιμές προϊόντων.
Δηλωτικές εντολές Δεδομένα και Αποτελέσματα
- Στο παράδειγμα της σειριακής αναζήτησης εμφανίζονται οι δηλωτικές εντολές:
Δεδομένα // Ν, πίνακας, ζητούμενο // και Αποτελέσματα // βρέθηκε, θέση //.
Ποιος είναι ο ρόλος αυτών των εντολών; Ο αλγόριθμος δεν είναι εκτελέσιμος από υπολογιστή. Ωστόσο, κάθε αλγόριθμος χρειάζεται στοιχεία εισόδου, τα οποία ονομάζονται δεδομένα και παράγει στοιχεία εξόδου, τα οποία ονομάζονται αποτελέσματα. Όταν σε ένα πρόβλημα δεν καθορίζεται ο τρόπος εισαγωγής των δεδομένων, τότε ο συγγραφέας δεν χρειάζεται να ασχολείται με αυτόν. Στο πρόβλημα της σειριακής αναζήτησης, ο αλγόριθμος δέχεται το πλήθος των στοιχείων ενός πίνακα, τις τιμές των στοιχείων του και την τιμή που αναζητείται. Έτσι, αν η εκφώνηση προσδιορίζει "Δίνεται μη ταξινομημένος μονοδιάστατος πίνακας, Ν διαφορετικών αριθμητικών στοιχείων. Να αναπτύξετε αλγόριθμο ο οποίος…", τότε πρέπει να χρησιμοποιηθεί η δηλωτική εντολή Δεδομένα για την εισαγωγή αυτών των δεδομένων. Με αυτό τον τρόπο καθορίζεται ότι ο αλγόριθμος λαμβάνει κάποιες τιμές ως στοιχεία εισόδου.
Αν η εκφώνηση του αλγορίθμου, υποδεικνύει τη χρήση της εντολής Δεδομένα, αλλά ο λύτης χρησιμοποιήσει την εντολή Διάβασε, τότε επιλύεται ένα διαφορετικό πρόβλημα, με διαφορετικές απαιτήσεις. Με αυτήν την επιλογή, ελλοχεύει ο κίνδυνος της τροποποίησης του τρόπου εισόδου δεδομένων που έχει επιλεχθεί από το πρόβλημα, αλλά και της αλλοίωσης των στοιχείων που θεωρεί δεδομένα ο αλγόριθμος. - Η χρήση των εντολών Δεδομένα και Αποτελέσματα βοηθάει και ως προς την κατανόηση των αλγορίθμων που καλούνται από άλλο αλγόριθμο. Πράγματι, αν ένας μαθητής έχει κατανοήσει ότι ένας αλγόριθμος δέχεται κάποια δεδομένα και επιστρέφει κάποια αποτελέσματα, τότε είναι εύκολο να κατανοήσει την έννοια των παραμέτρων σε άλλο αλγόριθμο. Ένας αλγόριθμος μπορεί να κληθεί από έναν άλλο αλγόριθμο με χρήση της εντολής Κάλεσε. Η επικοινωνία μεταξύ των δύο αλγορίθμων μπορεί να γίνει με τους επόμενους τρόπους: α) Με μεταβίβαση τιμών, β) Με χρήση καθολικών μεταβλητών, γ) Μεικτός τρόπος
Καταλήγοντας, λοιπόν, οι δύο δηλωτικές εντολές έχουν αξία και για αυτό που αναφέρετε, αλλά και για αυτό που αναπτύσσω παραπάνω.
Όποιος θέλει να δει το άρθρο του 2003, που φαίνεται να παραμένει επίκαιρο, αφού οι άνθρωποι και οι εποχές αλλάζουν, αλλά τα γραπτά μένουν... σας παραπέμπω στο σύνδεσμο
http://sdoukakis.wordpress.com/publications/Θα πω όμως κάτι επιπλέον... Η ανάγκη των δύο εντολών δημιουργήθηκε και από κάτι πιο πρακτικό: Την οικονομία χώρου και χρόνου. Σκεφτείτε να έπρεπε να διαβάσουμε τον πίνακα και να εκτυπώσουμε τον πίνακα. Αντί έξι εντολών χρησιμοποιούνται δύο... και σκεφτείτε το αυτό σε ένα βιβλίο...
ΣΔ