pinakes

Ξεκίνησε από kiro, 18 Ιαν 2006, 02:39:54 ΜΜ

« προηγούμενο - επόμενο »

kiro


Γεια σας!

Θα ήθελα να ρωτήσω κάτι σχετικά με τους πίνακες. Σε ένα βοήθημα που έχω οποιαδήποτε άσκηση τη λύνει χρησιμοποιώντας για κάθε εντολή ξεχωριστή δομή επανάληψης.
Π.χ.
Να γραφεί ο αλγορι9μοος που διαβάζει έναν πίνακα 100 θέσεων και στη συνέχεια να εμφανίζεται το διπλάσιο του. Σαν λύση δίνει την παρακάτω

Αλγοριθμος Διπλασια_τιμη

Για ι από 1 μέχρι 100
      Εμφανισε ‘Δωσε το στοιχειο’, ι
      Διαβασε Π[ι]
Τελος_επαναληψης
Για ι από 1 μέχρι 100
      Εμφανισε ‘Το’, ι, ΄στοιχειο τοθ πινακα εινια’
      Εμφανισε 2*Π[ι]
Τελος_επαναληψης
Τελος Διπλασια_τιμη

Η στην περίπτωση να διαβάζει έναν πίνακα 1000 θέσεων και στη συνέχεια να υπολογίζει το άθροισμα των στοιχείων τον κάνει πάλι με δυο επαναλήψεις

Αλγοριθμος Αθροισμα
Για ι από 1 μέχρι 1000
      Εμφανισε ‘Δωσε το στοιχειο’, ι
      Διαβασε Π[ι]
Τελος_επαναληψης
Αθρποσμα<- 0
Για ι από 1 μέχρι 1000
      Αθρποσμα<- Αθρποσμα + Π[ι]
Τελος_επαναληψης
Τελος Αθροισμα

Δεν είναι περιττές οι δυο επαναλήψεις κα9ε φορά? Θα ήταν λάθος αν την λύναμε ως

Αλγοριθμος Διπλασια_τιμη
Για ι από 1 μέχρι 100
      Εμφανισε &#8216;Δωσε το στοιχειο&#8217;, ι
      Διαβασε Π[ι]
      Εμφανισε 2*Π[ι]
Τελος_επαναληψης
Τελος Διπλασια_τιμη

Και αντίστοιχα την άλλη

Αλγοριθμος Αθροισμα
Αθρποσμα<- 0
Για ι από 1 μέχρι 1000
      Εμφανισε &#8216;Δωσε το στοιχειο&#8217;, ι
      Διαβασε Π[ι]
      Αθρποσμα<- Αθρποσμα + Π[ι]
Τελος_επαναληψης
Τελος Αθροισμα


P.Tsiotakis

Αγαπητή Όλγα,

ο λόγος που γίνεται αυτό είναι απλός. Θέλουμε να ανεξαρτητοποιήσουμε τα δυο ερωτήματα. Ειδικά στις πρώτες ασκήσεις που λύνουμε με τους μαθητές πρέπει να ξεχωρίσουν στο μυαλό τους την είσοδο των πινάκων και την επεξεργασία τους. Μην λησμονείς οτι η είσοδος των πινάκων θα μπορούσε να πραγματοποιηθεί και με την εντολή Δεδομένα, οπότε θα παρέμενε η επεξεργασία...
Έτσι άλλωστε, λειτουργεί και το θέμα 4 των πανελλαδικών. Εγώ μάλιστα, αποτρέπω τους μαθητές μου από τη χρήση του δεύτερου τρόπου που προτείνεις (και είναι σωστός) για τους λόγους που προανέφερα.

Με εκτίμηση,

EleniK

Όλγα θα συμφωνήσω και εγώ με τον Παναγιώτη. Ο λόγος που διδάσκεις/υλοποιείς αρχικά τους αλγορίθμους σύμφωνα με τον πρώτο τρόπο είναι επειδή παιδαγωγικά είναι καλύτερος, διότι ξεχωρίζει τις μεθοδολογίες. Κάτι απαραίτητα για τους μαθητές, ειδικά για τους πιο αδύναμους.  Όταν αποκτήσουν μια κάποια εμπειρία τότε μπορείς να παρουσιάσεις και εναλλακτικούς τρόπους. Φυσικά αυτό ισχύει όχι μόνο για πίνακες.
Ελένη Κοκκίνου
Καθηγήτρια Πληροφορικής, ΠΕ19

viper

Θα συμφωνήσω εν μέρη με τις παραπάνω παρατηρήσεις και αυτό μέχρι του σημείου που πρέπει οι μαθητές να γεχωρίσουν και να καταλάβουν τις ανεξάρτητες λειτουργίες που αναφέρει η ερώτηση. Όμως από το σημείο της εξικείωσης των μαθητών με τους πίνακες και μέτά μπορούμε να τους δείξουμε ότι με το διάβασμα των στοιχείων του πίνακα μπορούμε να κάνουμε ταυτόχρονα και άλλες επεξεργασίες. Όπως για παράδειγμα διάβασμα στοιχείων και άθροισμα. Νομίζω ότι πρέπει να κατευθύνουμε τη σκέψη στο σωστό στο "μικρό" και στο γρήγορα εκτελέσιμο πρόγραμμα, όσο αυτό είναι δυνατό
Βασίλης

Φίλιππος

Το "μικρό και γρήγορο" δεν είναι πάντα απαραίτητα το "σωστό" στη συγγραφή επαγγελματικών προγραμμάτων.  

Το readability, το reusability και άλλα σχετικά έχουν (και πρέπει να έχουν) μεγαλύτερη σημασία μεσο-μακροπρόθεσμα.  Το hardware είναι πλέον φθηνό οπότε προτιμάτε το καλογραμμένο πρόγραμμα έστω και αν είναι λίγο πιό αργό.

Η "μανία του μικρού και του γρήγορου" οδήγησε σε μεγάλο βαθμό στο πολυσυζητημένο software crisis που πρωτοάρχισε να συζητιέται στις αρχές του '80.  Πλέον είναι κοινή αντίληψη ότι προέχει η σωστή μοντελοποίηση του προβλήματος, η σωστή επιλογή δομών, η σωστή επιλογή ονομάτων κ.ο.κ.

Ο προγραμματιστής οφείλει να γράφει προγράμματα για human processors.  Τα υπόλοιπα τα αναλαμβάνει ο compiler.  Η έμφαση πλεόν είναι στα πρωταρχικά στάδια του κύκλου ζωής, στη σωστή ανάλυση, στη σωστή σχεδίαση και κατ επέκταση και στη σωστή κωδικοποίηση.

Όμοιο προσανατολισμό θα πρέπει να έχουμε από τα πρώτα στάδια της "προετοιμασίας στην αλγοριθμική" και στους νέους (εκκολαπτόμενους ίσως) προγραμματιστές, τους μαθητές μας.