Αποστολέας Θέμα: Υπολογισμός χρόνου εκτέλεσης (υπολογισμός αριθμού πράξεων των εντολών)  (Αναγνώστηκε 27427 φορές)

ΣΧΟΙΝΑΣ ΚΩΣΤΑΣ

  • Δεινόσαυρος
  • *****
  • Μηνύματα: 142
Θέλω την γνώμη και τα σχόλια σας(αν είναι σωστή)η προτεινόμενη παρακάτω λύση σχετικά με τον υπολογισμό των πράξεων που αντιστοιχούν στον παρακάτω αλγόριθμο

 
Αλγόριθμος υπολογισμός_αριθμού_πράξεων
i←1
Όσο i< 100 επανάλαβε
   y←i * 2
   Εμφάνισε y
   i←i + 1
Τέλος_επανάληψης
Τέλος υπολογισμός_αριθμού_πράξεων

ΛΥΣΗ


Για την εκχώρηση i←1  Μία πράξη (1)
Για την εντολή  Όσο i< 100 αντιστοιχούν 100 πράξεις για τον έλεγχο του i (100)
Για την εντολή  y←i * 2    αντιστοιχούν 2 Χ 99 πράξεις  δηλαδή (μία για τον τελεστή του πολλαπλασισμού και μία για την εκχώρηση (198)
Για την εντολή  Εμφάνισε y αντιστοιχούν 1 Χ 99 πράξεις (99)
Για την εντολή αύξηση του i  i←i + 1 αντιστοιχούν 2 Χ 99 πράξεις (198)

Συνεπώς το σύνολο πράξεων  είναι 596  συνολικά πράξεις
« Τελευταία τροποποίηση: 28 Δεκ 2015, 08:29:32 μμ από ΣΧΟΙΝΑΣ ΚΩΣΤΑΣ »
Καθηγητής πληροφορικής ΠΕ20

echaralampidou

  • Νέος
  • *
  • Μηνύματα: 2
Καλησπέρα και καλή χρονιά!

Το παραπάνω παράδειγμα έχει ληφθεί από το βοήθημα-ΒΙΒΛΟ του Γ. Καρκαμάνη, ωστόσο ως αποτέλεσμα δίνει 496 και όχι 596.
Συμφωνώ με την πρότασή σας και θεωρώ πως πρόκειται για τυπογραφικό λάθος.

tsirkasg

  • Νέος
  • *
  • Μηνύματα: 2
έχω μια απορία για το θέμα.
στο σχολικό λεχει παράδειγμα με ΓΙΑ.
Ας πούμε για παράδειγμα:
Για i απο 1 μεχρι 2

Αναθέτει 1 βασική πράξη στην εκχώρηση i<-1
Αναθέτει 3 πράξεις στον έλεγχο. 2 αληθης και 1 ψευδής
Αναθέτει 2 πράξεις στην αύξηση.
Θεωρώ ότι είναι λαθος. Πρέπει η αύξηση να είναι : όσες φορές γίνει η επανάληψη Χ 2. Γιατί είναι ι<-ι+1 . Δεν γίνεται αύξηση χωρίς εκχώρηση στη μνήμη.
Έχει κανείς άποψη;
φιλικά Τσιρκας Γ.

tsirkasg

  • Νέος
  • *
  • Μηνύματα: 2
τοδα καπου οτι ανοιξε σαν θεμα επομένως κοιταζω εκει

SPY

  • Βετεράνος
  • ****
  • Μηνύματα: 61
  • Γράψτε το προσωπικό σας σλόγκαν!
έχω μια απορία για το θέμα.
στο σχολικό λεχει παράδειγμα με ΓΙΑ.
Ας πούμε για παράδειγμα:
Για i απο 1 μεχρι 2

Αναθέτει 1 βασική πράξη στην εκχώρηση i<-1
Αναθέτει 3 πράξεις στον έλεγχο. 2 αληθης και 1 ψευδής
Αναθέτει 2 πράξεις στην αύξηση.
Θεωρώ ότι είναι λαθος. Πρέπει η αύξηση να είναι : όσες φορές γίνει η επανάληψη Χ 2. Γιατί είναι ι<-ι+1 . Δεν γίνεται αύξηση χωρίς εκχώρηση στη μνήμη.

Έχει κανείς άποψη;
φιλικά Τσιρκας Γ.

Το θέμα με είχε απασχολήσει και παλαιότερα. Υπάρχει και σχετική συζήτηση.
Στις οδηγίες του Δεκεμβρίου δεν έγινε καμία αναφορά.
Σκέπτομαι μήπως η μεταβολή της τιμής του μετρητή γίνεται με μια πράξη σε καταχωρητή της ΚΜΕ (στιλ ολίσθηση).
Μπορεί να είναι και χαζομάρα αυτό. Αν κάποιος γνωρίζει περισσότερα ας μας διαφωτίσει.
Πάντως κάτι πρέπει να λέμε στα παιδιά....

SPY

  • Βετεράνος
  • ****
  • Μηνύματα: 61
  • Γράψτε το προσωπικό σας σλόγκαν!
Το παραπάνω παράδειγμα έχει ληφθεί από το βοήθημα-ΒΙΒΛΟ του Γ. Καρκαμάνη, ωστόσο ως αποτέλεσμα δίνει 496 και όχι 596.
Συμφωνώ με την πρότασή σας και θεωρώ πως πρόκειται για τυπογραφικό λάθος.

ΒΙΒΛΙΟ εννοείς ή ΒΙΒΛΟ;;; "Πιστεύω εις έναν Καρκαμάνη, αναπτυξοπατέρα παντοκράτορα...."   :) Αστειεύομαι.

GB

  • Θαμώνας
  • ***
  • Μηνύματα: 23
Καλημέρα συνάδελφοι. Αν μπορεί κάποιος να μου απαντήσει σε μια απορία που παρατήρησα σε έναν αλγόριθμο.

Έχουμε την εντολή
Διάβασε α, β

και τις εντολές
Διάβασε α
Διάβασε β

Έχουν διαφορά στον χρόνο εκτέλεσης ή είναι ο ίδιος? Δηλαδή 2 μικροδευτερόλεπτα?

petrosp13

  • Ομάδα Νέου Λυκείου
  • *
  • Μηνύματα: 2219
Για το μάθημα μας ή γενικότερα;
Παπαδόπουλος Πέτρος
Καθηγητής Πληροφορικής

GB

  • Θαμώνας
  • ***
  • Μηνύματα: 23
Για το μάθημά μας Πέτρο.

petrosp13

  • Ομάδα Νέου Λυκείου
  • *
  • Μηνύματα: 2219
Φαντάζομαι ότι είναι το ίδιο
Γιατί μόνο με την φαντασία θα μείνουμε σε αυτό το κεφάλαιο
Παπαδόπουλος Πέτρος
Καθηγητής Πληροφορικής

odysseas

  • Ομάδα διαγωνισμάτων 2011
  • *
  • Μηνύματα: 842
Στα παραδείγματα του διδακτικού πακέτου φροντίζουν να γράφουν ξεχωριστά τις ΔΙΑΒΑΣΕ, ώστε να τις μετράνε σαν ξεχωριστές στοιχειώδεις πράξεις. Δεν θυμάμαι να έχω δει παράδειγμα στο οποίο να διαβάζονται περισσότερες μεταβλητές από την ίδια ΔΙΑΒΑΣΕ και φαντάζομαι ότι από εκεί πηγάζει και η ερώτηση του συναδέλφου.

Αν όντως δεν υπάρχει σχετικό παράδειγμα στο διδακτικό πακέτο ή στις οδηγίες δεν μπορούμε να απαντήσουμε με σαφήνεια στην ερώτηση. Μπορούμε μόνο να πούμε ότι αν τεθεί σχετικό θέμα τότε οι ΔΙΑΒΑΣΕ θα δίνονται ξεχωριστά για να μετράνε ξεχωριστά.

Πάντως, αν σκεφτεί κανείς ότι μια ΔΙΑΒΑΣΕ που διαβάζει k τιμές θα κάνει προσπέλαση σε k θέσεις μνήμης για να τις καταχωρίσει, όντως είναι πιθανότερο να θεωρήσει κανείς ότι μια τέτοια ΔΙΑΒΑΣΕ αντιστοιχεί σε k στοιχειώδεις πράξεις και όχι σε μία.

itt

  • Δεινόσαυρος
  • *****
  • Μηνύματα: 428
  • Real stupidity beats ΑΙ any time
Το θέμα με είχε απασχολήσει και παλαιότερα. Υπάρχει και σχετική συζήτηση.
Στις οδηγίες του Δεκεμβρίου δεν έγινε καμία αναφορά.
Σκέπτομαι μήπως η μεταβολή της τιμής του μετρητή γίνεται με μια πράξη σε καταχωρητή της ΚΜΕ (στιλ ολίσθηση).
Μπορεί να είναι και χαζομάρα αυτό. Αν κάποιος γνωρίζει περισσότερα ας μας διαφωτίσει.
Πάντως κάτι πρέπει να λέμε στα παιδιά....

Δεν νομίζω ότι μπορεί να δωθεί σαφής απάντηση. Γενικά υποθέτω δεν μπορείς να απαντήσεις με το τι θα έκανες στον καταχωρητή (που σημειωτέον, ο compiler μπορεί να μην κάνει spill τον μετρητή εαν μπορεί στατικά να κάνει deduce την αρχική τιμή του και αν ισχούν και κάποιες άλλες συνθήκες), δεδομένου ότι δεν έχουμε ούτε compiler ούτε καταχωρητές.

GB

  • Θαμώνας
  • ***
  • Μηνύματα: 23
Συνάδελφοι κάπου στις συζητήσεις της θεωρίας το πήρε το μάτι μου αλλά δεν μπορώ να το βρω, οπότε ξαναρωτάω. Το σχολικό βιβλίο λέει:

Μία βασική πράξη μπορεί να είναι:
1.   Ανάθεση τιμής,
2.   Σύγκριση μεταξύ δύο μεταβλητών, ή
3.   Οποιαδήποτε αριθμητική πράξη μεταξύ δύο μεταβλητών.


Τις λογικές πράξεις τις υπολογίζουμε ξεχωριστά? Δηλαδή τι κόστος σε πράξεις έχουν οι παρακάτω περιπτώσεις:
Χ >0 Ή Χ = 0  (3 πράξεις)
Χ >=0             (1 πράξη)
Χ >10 ΚΑΙ Υ <= 20   (3 πράξεις)

Είναι σωστοί αυτοί οι υπολογισμοί?


meteo_xampos

  • Ομάδα διαγωνισμάτων 2010
  • *
  • Μηνύματα: 182
Το βιβλίο πάντως στον αλγόριθμο παράδειγμα στο κεφάλαιο 5.1 έχει λάθος σύμφωνα με αυτά που μας λέει για τις πράξεις... η αύξηση του i πρέπει να είναι 2 πράξεις... Δηλαδή και στον αλγόριθμο ταξινόμησης 1 πράξη είναι η αύξηση του μετρητή σε κάθε επανάληψη;;;;

SPY

  • Βετεράνος
  • ****
  • Μηνύματα: 61
  • Γράψτε το προσωπικό σας σλόγκαν!
Συνάδελφοι κάπου στις συζητήσεις της θεωρίας το πήρε το μάτι μου αλλά δεν μπορώ να το βρω, οπότε ξαναρωτάω. Το σχολικό βιβλίο λέει:

Μία βασική πράξη μπορεί να είναι:
1.   Ανάθεση τιμής,
2.   Σύγκριση μεταξύ δύο μεταβλητών, ή
3.   Οποιαδήποτε αριθμητική πράξη μεταξύ δύο μεταβλητών.


Τις λογικές πράξεις τις υπολογίζουμε ξεχωριστά? Δηλαδή τι κόστος σε πράξεις έχουν οι παρακάτω περιπτώσεις:
Χ >0 Ή Χ = 0  (3 πράξεις)
Χ >=0             (1 πράξη)
Χ >10 ΚΑΙ Υ <= 20   (3 πράξεις)

Είναι σωστοί αυτοί οι υπολογισμοί?
Γιατί να μην είναι σωστοί; Λογική πράξη = σύγκριση 2 τιμών (αριθμητικών, αλφαριθμητικών ή λογικών)