Το Στέκι των Πληροφορικών

Γενικό Λύκειο => Γ΄ Λυκείου => Μήνυμα ξεκίνησε από: SPY στις 11 Οκτ 2015, 03:38:42 ΜΜ

Τίτλος: Λάθος στο βιβλίο μαθητή;
Αποστολή από: SPY στις 11 Οκτ 2015, 03:38:42 ΜΜ
Συνάδελφοι γειά σας.

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

Στον πίνακα της σελίδας 91 στην "αύξηση i" του μετρητή της ΓΙΑ αναγράφεται ως αριθμός πράξεων το 5 (5 αυξήσεις).
Όμως η αύξηση είναι η εντολή i <-- i+1 που περιέχει 2 βασικές πράξεις μια πρόσθεση και μια εκχώρηση.
Έτσι οι 5 αυξήσεις θα δίνουν αριθμό πράξεων 10. Σωστά;

Τι λέτε;
Η ίδια λογική υπάρχει και σε αντίστοιχο παράδειγμα στο τετράδιο μαθητή.
Τίτλος: Απ: Λάθος στο βιβλίο μαθητή;
Αποστολή από: petrosp13 στις 11 Οκτ 2015, 06:17:36 ΜΜ
Πολύ πρόχειρα γραμμένο (και) το συγκεκριμένο κεφάλαιο..
Τίτλος: Απ: Λάθος στο βιβλίο μαθητή;
Αποστολή από: Diotima στις 11 Οκτ 2015, 07:52:47 ΜΜ
Δε θα έπρεπε να υπάρχει ένας γενικός κανόνας που να μας λέει πώς μετριούνται οι πράξεις; Θα προσπαθούμε μια ζωή να βγάλουμε τους γενικούς κανόνες από τα παραδείγματα ενώ το σωστό είναι το αντίθετο; Είναι δυνατόν δύο-τρία παραδείγματα να καλύπτουν όλες τι περιπτώσεις; (Το ίδιο έχει γίνει και στο κεφάλαιο 10 σχετικά με τη χρήση διαδικασίας και συνάρτησης).

Στην εκχώρηση y <-- 4*x θα μετρήσω 2 πράξεις με βάση το παράδειγμα, στην εκχώρηση y <-- x+x+x+x πόσες πράξεις θα μετρήσω, 4;
Αν ισχύει, αυτό σημαίνει ότι το πρώτο εκτελείται πιο γρήγορα από το δεύτερο;

Στον έλεγχο της συνθήκης x > y θα μετρήσω 1 πράξη με βάση το παράδειγμα, ενώ στον έλεγχο x-y > 0 θα μετρήσω 2 πράξεις;
Τίτλος: Απ: Λάθος στο βιβλίο μαθητή;
Αποστολή από: SPY στις 12 Οκτ 2015, 12:07:06 ΠΜ
Παράθεση από: petrosp13 στις 11 Οκτ 2015, 06:17:36 ΜΜ
Πολύ πρόχειρα γραμμένο (και) το συγκεκριμένο κεφάλαιο..
Προχειρότητα ετών 16!
Τίτλος: Λάθος στο βιβλίο μαθητή;
Αποστολή από: SPY στις 12 Οκτ 2015, 12:14:52 ΠΜ
Παράθεση από: Diotima στις 11 Οκτ 2015, 07:52:47 ΜΜ
....
Στην εκχώρηση y <-- 4*x θα μετρήσω 2 πράξεις με βάση το παράδειγμα, στην εκχώρηση y <-- x+x+x+x πόσες πράξεις θα μετρήσω, 4;
Σωστά.
Παράθεση από: Diotima στις 11 Οκτ 2015, 07:52:47 ΜΜ
Αν ισχύει, αυτό σημαίνει ότι το πρώτο εκτελείται πιο γρήγορα από το δεύτερο;
Όχι. Οι βασικές πράξεις δεν έχουν ίδιο χρόνο εκτέλεσης.
Παράθεση από: Diotima στις 11 Οκτ 2015, 07:52:47 ΜΜ
Στον έλεγχο της συνθήκης x > y θα μετρήσω 1 πράξη με βάση το παράδειγμα, ενώ στον έλεγχο x-y > 0 θα μετρήσω 2 πράξεις;
Κι αυτό σωστό.
Τίτλος: Απ: Λάθος στο βιβλίο μαθητή;
Αποστολή από: Diotima στις 12 Οκτ 2015, 01:29:07 ΜΜ
Παράθεση από: SPY στις 12 Οκτ 2015, 12:14:52 ΠΜ
Όχι. Οι βασικές πράξεις δεν έχουν ίδιο χρόνο εκτέλεσης.
Συμφωνώ απόλυτα, αλλά παρακάτω στον πίνακα 5.2 (σελ. 91) θεωρεί ως χρόνο εκτέλεσης του αλγορίθμου τον αριθμό των πράξεων σε μs και για κάθε πράξη, ανεξάρτητα από το είδος της, έχει υπολογίσει 1 μs.
(Έχω κάνει μια ανάλυση για το πως βγαίνουν οι χρόνοι μετρώντας το πλήθος των πράξεων εδώ: https://alkisg.mysch.gr/steki/index.php?topic=6275.150 και έχω εντοπίσει κάποια λαθάκια).
Αυτό μπορεί να δημιουργήσει λάθος κατανόηση σχετικά με το χρόνο εκτέλεσης των βασικών πράξεων και σε μια θεωρητική ερώτηση να απαντήσει κάποιος λάθος.
Οπότε πρέπει να τονιστεί ότι γίνεται απλώς μια σύμβαση να θεωρούμε στον πίνακα 5.2 ότι για κάθε πράξη χρειάζεται 1 μs γιατί θέλουμε να μελετήσουμε την αύξηση των πράξεων σε σχέση με το πλήθος των επαναλήψεων που εκτελούνται και όχι να μετρήσουμε πραγματικούς χρόνους εκτέλεσης.
Τίτλος: Απ: Λάθος στο βιβλίο μαθητή;
Αποστολή από: Rathaniel στις 12 Οκτ 2015, 03:10:58 ΜΜ
Υπάρχει και άσκηση στο τέτράδιο μαθητή που δημιουργεί τα ίδια ερωτήματα για την μέτρηση πράξεων.
Προφανώς χρειάζονται διευκρινίσεις.
Τίτλος: Απ: Λάθος στο βιβλίο μαθητή;
Αποστολή από: gthal στις 11 Νοε 2015, 11:49:59 ΠΜ
Παράθεση από: SPY στις 11 Οκτ 2015, 03:38:42 ΜΜ
Συνάδελφοι γειά σας.

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

Στον πίνακα της σελίδας 91 στην "αύξηση i" του μετρητή της ΓΙΑ αναγράφεται ως αριθμός πράξεων το 5 (5 αυξήσεις).
Όμως η αύξηση είναι η εντολή i <-- i+1 που περιέχει 2 βασικές πράξεις μια πρόσθεση και μια εκχώρηση.
Έτσι οι 5 αυξήσεις θα δίνουν αριθμό πράξεων 10. Σωστά;

Τι λέτε;
Η ίδια λογική υπάρχει και σε αντίστοιχο παράδειγμα στο τετράδιο μαθητή.
Για να επιστρέψουμε στο αρχικό ερώτημα, πιστεύω κι εγώ ότι είναι λάθος του βιβλίου.
Το ζήτημα είναι, πώς θα το διδάξουμε εμείς ? ? ?
Τίτλος: Απ: Λάθος στο βιβλίο μαθητή;
Αποστολή από: gthal στις 11 Νοε 2015, 08:14:46 ΜΜ
Βλέπω και σε άλλα κείμενα περί επίδοσης αλγορίθμου, ότι η αύξηση ενός μετρητή (κατά 1 μόνο? ή οσοδήποτε? ) θεωρείται ως μία πράξη... δεν καταλαβαίνω γιατί...
όπως δεν καταλαβαίνω γιατί πχ μια πρόσθεση και ένας πολ/σμος θεωρούνται ισοδύναμες ως μία πράξη η καθεμιά
Υπάρχει κανένας συνάδελφος που έχει την καλοσύνη να τα εξηγήσει αυτά?
Τίτλος: Απ: Λάθος στο βιβλίο μαθητή;
Αποστολή από: petrosp13 στις 11 Νοε 2015, 09:02:11 ΜΜ
Η πολυπλοκότητα μπήκε στην ύλη χωρίς να έχουν αποσαφηνιστεί ούτε τα στοιχειώδη..
Τίτλος: Απ: Λάθος στο βιβλίο μαθητή;
Αποστολή από: bugman στις 11 Νοε 2015, 09:30:18 ΜΜ
Απορία:
Πώς η αύξηση της μεταβλητής στη  Για να θεωρείται μια πράξη, αφού συνάμα πρέπει να ελέγχεται το όριο και σε επιτυχία (εντός ορίου) να υπάρχει διακλάδωση στην πρώτη εντολή μετά τη Για.
Τίτλος: Απ: Λάθος στο βιβλίο μαθητή;
Αποστολή από: itt στις 12 Νοε 2015, 08:04:43 ΠΜ
Παράθεση από: bugman στις 11 Νοε 2015, 09:30:18 ΜΜ
Απορία:
Πώς η αύξηση της μεταβλητής στη  Για να θεωρείται μια πράξη, αφού συνάμα πρέπει να ελέγχεται το όριο και σε επιτυχία (εντός ορίου) να υπάρχει διακλάδωση στην πρώτη εντολή μετά τη Για.

Επειδή η αύξηση μιας μεταβλητής είναι η αύξηση μιας μεταβλητής. Τo bound check και το αν θα κάνεις branch, είναι άλλες διακριτές πράξεις. Προφανώς και χρησιμοποιούμε τη λέξη "πράξη" με μια σχετική ελευθερία σε αυτή τη συζήτηση.
Τίτλος: Απ: Λάθος στο βιβλίο μαθητή;
Αποστολή από: bugman στις 12 Νοε 2015, 04:17:41 ΜΜ
Πάντως έχει σημασία που τη βρίσκει την μεταβλητή. Σε χαμηλό επίπεδο μπορεί να είναι σε κσταχωρητή, ή στη στοίβα επιστροφής, ή κάπου στη μνήμη με διεύθυνση έμμεση ή απόλυτη, ή με προσαύξηση διαστήματος offset. Δηλαδή μια αύξηση μεταβλητής σκέτο...δεν μας λέει πολλά πράγματα. Δεν υπάρχει κανόνας που να λέει ότι η μεταβλητή στο Για είναι επακριβώς ίδια με οποιαδήποτε άλλη. Κοινές ιδιότητες θα βρεθούν. Μπορεί κανείς να αλλάξει την μεταβλητή εντός της Για, με συνέπεια να αλλάξουν τα προκαθορισμένα βήματα;
Τίτλος: Απ: Λάθος στο βιβλίο μαθητή;
Αποστολή από: Rathaniel στις 12 Νοε 2015, 08:37:29 ΜΜ
Παράθεση από: bugman στις 12 Νοε 2015, 04:17:41 ΜΜ
Πάντως έχει σημασία που τη βρίσκει την μεταβλητή. Σε χαμηλό επίπεδο μπορεί να είναι σε κσταχωρητή, ή στη στοίβα επιστροφής, ή κάπου στη μνήμη με διεύθυνση έμμεση ή απόλυτη, ή με προσαύξηση διαστήματος offset. Δηλαδή μια αύξηση μεταβλητής σκέτο...δεν μας λέει πολλά πράγματα. Δεν υπάρχει κανόνας που να λέει ότι η μεταβλητή στο Για είναι επακριβώς ίδια με οποιαδήποτε άλλη. Κοινές ιδιότητες θα βρεθούν. Μπορεί κανείς να αλλάξει την μεταβλητή εντός της Για, με συνέπεια να αλλάξουν τα προκαθορισμένα βήματα;
Ξεφύγαμε.....
Τίτλος: Απ: Λάθος στο βιβλίο μαθητή;
Αποστολή από: itt στις 12 Νοε 2015, 09:59:56 ΜΜ
Παράθεση από: bugman στις 12 Νοε 2015, 04:17:41 ΜΜ
Πάντως έχει σημασία που τη βρίσκει την μεταβλητή. Σε χαμηλό επίπεδο μπορεί να είναι σε κσταχωρητή, ή στη στοίβα επιστροφής, ή κάπου στη μνήμη με διεύθυνση έμμεση ή απόλυτη, ή με προσαύξηση διαστήματος offset. Δηλαδή μια αύξηση μεταβλητής σκέτο...δεν μας λέει πολλά πράγματα. Δεν υπάρχει κανόνας που να λέει ότι η μεταβλητή στο Για είναι επακριβώς ίδια με οποιαδήποτε άλλη. Κοινές ιδιότητες θα βρεθούν. Μπορεί κανείς να αλλάξει την μεταβλητή εντός της Για, με συνέπεια να αλλάξουν τα προκαθορισμένα βήματα;

Δεν έχει σημασία που είναι η μεταβλητή και πώς κάνεις increment τη μεταβλητή, όταν κάνεις μια τέτοια ανάλυση μπορείς να τα αγνοήσεις παντελώς.
Τίτλος: Απ: Λάθος στο βιβλίο μαθητή;
Αποστολή από: gthal στις 12 Νοε 2015, 10:47:10 ΜΜ
Παράθεση από: itt στις 12 Νοε 2015, 09:59:56 ΜΜ
Δεν έχει σημασία που είναι η μεταβλητή και πώς κάνεις increment τη μεταβλητή, όταν κάνεις μια τέτοια ανάλυση μπορείς να τα αγνοήσεις παντελώς.
Αυτό δεν το καταλαβαίνω ούτε εγώ, γιατί μπορούμε να τα αγνοήσουμε αυτά? (ίσως δεν μπορώ να ξεφύγω από την έννοια κύκλος μηχανής)
Αφού προσπαθούμε να έχουμε μια εκτίμηση για το χρόνο εκτέλεσης, δεν είναι αυθαίρετο να θεωρούμε ότι μια πρόσθεση και ένας πολ/σμός θα χρειαστούν τον ίδιο χρόνο? ή μια "Εμφάνισε" και μια πρόσθεση ?  Χάνω κάτι από το νόημα της ανάλυσης?

Αλλά και να δεχθώ ότι θα τα υπολογίζω με αυτές τις απλουστευμένες παραδοχές (έτσι κι αλλιώς απλουστεύουν τα πράγματα)
η αρχική απορία παραμένει:
γιατί η εντολή  i <- i + c  , όπου c σταθερή, δεν αποτελεί 2 πράξεις αλλά μία ??
Τίτλος: Απ: Λάθος στο βιβλίο μαθητή;
Αποστολή από: bugman στις 13 Νοε 2015, 02:44:17 ΠΜ
Το ότι η C είναι σταθερή, δεν σημαίνει ότι δεν είναι αριθμός που περιέχεται κάπου στη μνήμη. Αν η πράξη είναι
Ι+=Σταθερά τότε θα μιλάμε για μια πράξη "πρόσθεσε στο Ι τη Σταθερά". Η Ι=Ι+Σταθερή έχει δυο βήματα "δώσε στην Ι το αποτέλεσμα της έκφρασης που ακολουθεί, πρόσθεσε Ι και Σταθερά". Αν ο μεταφραστής είναι "έξυπνος" θα μπορούσε το δεύτερο να το κάνει σαν το πρώτο. Υποτίθεται όμως ότι στην ΓΙΑ δεν γράφεται η εντολή από τον χρήστη (στη C όντως γράφεται), άρα θα χρησιμοποιεί την πρώτη περίπτωση με μια πράξη. Τώρα η πράξη μπορεί να χρειάζεται Ν κύκλους μηχανής. Αυτό το δεχόμαστε ως δεδομένο.

Μια ιδέα εδώ για hardware πολλαπλασιαστή:
http://www.mirrorservice.org/sites/www.bitsavers.org/pdf/ti/_dataBooks/1984_The_TTL_Data_Book_Vol_1.pdf
θα βρει κανείς με την αναζήτηση το 4-BIT BY 4-BIT BINARY MULTIPLIERS, όπου ένα τσιπάκι ΤΤL  παίρνει 4 και 4 Bit και δίνει άμεσα τον πολλαπλασιασμό σε 8 bit.

To Pdf το βρήκα στους εξωτερικούς συνδέσμους του https://en.wikipedia.org/wiki/List_of_7400_series_integrated_circuits
Θα ήταν ωραίο να έβλεπαν δυο τρεις σελίδες τα παιδιά με τσιπάκια διάφορα!
Τίτλος: Απ: Λάθος στο βιβλίο μαθητή;
Αποστολή από: itt στις 13 Νοε 2015, 09:33:55 ΠΜ
Παράθεση από: gthal στις 12 Νοε 2015, 10:47:10 ΜΜ
Αυτό δεν το καταλαβαίνω ούτε εγώ, γιατί μπορούμε να τα αγνοήσουμε αυτά? (ίσως δεν μπορώ να ξεφύγω από την έννοια κύκλος μηχανής)
Αφού προσπαθούμε να έχουμε μια εκτίμηση για το χρόνο εκτέλεσης, δεν είναι αυθαίρετο να θεωρούμε ότι μια πρόσθεση και ένας πολ/σμός θα χρειαστούν τον ίδιο χρόνο? ή μια "Εμφάνισε" και μια πρόσθεση ?  Χάνω κάτι από το νόημα της ανάλυσης?

Το ίδιο αυθαίρετο με το να πεις ότι ο πολ/σμος χρειάζεται Χ cycles και η πρόσθεση Υ cycles. Αυτά είναι λεπτομέρειες του ISA. Εμένα μου φαίνεται οτι μαθηματικά σε ενδιαφέρει η ασυμπτωτική συμπεριφορά του αλγόριθμου που εξετάζεις. Αν θεωρήσεις την πρόσθεση, την αφαίρεση, τον πολ/σμό ακόμα και την Εμφάνισε ως στοιχειώδη πράξεις, αρχίζεις και ασχολείσαι με το αν κάνεις  n2 πράξεις vs n πράξεις, αντί να μπλέξεις με το τι latency έχει η πρόσθεση.


Παράθεση από: gthal στις 12 Νοε 2015, 10:47:10 ΜΜ
Αλλά και να δεχθώ ότι θα τα υπολογίζω με αυτές τις απλουστευμένες παραδοχές (έτσι κι αλλιώς απλουστεύουν τα πράγματα)
η αρχική απορία παραμένει:
γιατί η εντολή  i <- i + c  , όπου c σταθερή, δεν αποτελεί 2 πράξεις αλλά μία ??

Συμφωνώ μαζί σου ότι είναι δύο πράξεις αυτό που έγραψες πάντως.
Τίτλος: Απ: Λάθος στο βιβλίο μαθητή;
Αποστολή από: gthal στις 14 Νοε 2015, 02:45:09 ΜΜ
Χαίρομαι που συμφωνούμε...
αν και είδα και σε άλλη βιβλιογραφία την αύξηση του μετρητή να την υπολογίζουν ως μία πράξη και λέω μήπως υπάρχει κάποιος λάκκος...
Άντε τώρα να δούμε αν θα το διδάξουμε όπως νομίζουμε εμείς ή όπως είναι στο βιβλίο...
Τίτλος: Απ: Λάθος στο βιβλίο μαθητή;
Αποστολή από: gthal στις 14 Νοε 2015, 02:46:50 ΜΜ
Παράθεση από: bugman στις 13 Νοε 2015, 02:44:17 ΠΜ
Θα ήταν ωραίο να έβλεπαν δυο τρεις σελίδες τα παιδιά με τσιπάκια διάφορα!
Χα! Δεν έχεις ιδέα πόσο απουσιάζει το ενδιαφέρον από τους μαθητές, όχι μόνο για κάτι έξτρα αλλά και για τα ίδια αυτά που ανγακάζονται να μάθουν γιατί θα εξεταστούν :(   εξαιρούνται κάποιοι ελάχιστοι, μια στο τόσο, που έχουν προσωπικό ενδιαφέρον για το αντικείμενο (δεν ξέρω αν συναντώνται περισσότεροι τέτοιοι στα σχολεία και απλά δεν έρχονται στα φροντιστήρια γιατί δεν το έχουν ανάγκη... οπότε σχολικοί και φροντιστηριακοί καθηγητές ίσως δουλεύουμε πάνω σε διαφορετικά δείγματα :( )
Αλλά εδώ που τα λέμε ούτε το χρόνο έχουν... ούτε και ο καθηγητής. Δεν μπορώ να με φανταστώ να διαθέτω ούτε 3 λεπτά για κάτι εκτός ύλης - παρά μόνο αν το ζητήσουν οι ίδιοι. Έχω φάει την απογοήτευση στη μάπα από τα πρώτα χρόνια, όπου τους εξηγούσα (ή πρόσθετα στις σημειώσεις μου) κάποια πράγματα με απλά λόγια για να καταλάβουν (και να μην παπαγαλίσουν) ζητήματα που το βιβλίο ανέφερε ως θεωρία χωρίς κανένα έρεισμα (πχ την ολίσθιση, ως ένα τυχαίο από τα πολλά παραδείγματα) και ελάχιστοι τα άκουγαν και κανείς - μα κανείς δεν τα διάβαζε :(
Και επειδή δεν έχω εκφραστεί ακόμα για την καινούρια ύλη, και αυτή η κουβέντα μου άνοιξε την όρεξη καθώς συνδέεται αναπόφευκτα και δεν θέλω να μακρηγορήσω σ' αυτό το topic, θα αναπτύξω σε κάποιο άλλο thread σύντομα... ;)