Ατέρμων Βρόγχος - Λογικό ή Αντικανονικού

Ξεκίνησε από FirstMay, 02 Μαΐου 2023, 12:19:19 ΠΜ

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

dimitrios67

Παράθεση από: Κανένας στις 04 Μαΐου 2023, 07:16:24 ΜΜΥπάρχει αναφορά σχετικά με την υπερχείλιση στο πράσινο βιβλίο σελ. 233, αλλά κυρίως την έχουν δει στο εργαστήριο.
Η υπερχείληση (overflow) που αναφερεται στην σελίδα 233, θα γίνει στην  περίπτωση (π.χ.) όπου θα προσπαθήσουμε να αποθηκεύσουμε έναν πολύ μεγάλο αριθμό σε μεταβλητή ακέραια και δεν θα "χωράει".
Σε ατέρμονα βρόχο (infinite loop) δεν υπάρχει περίπτωση να έχουμε overflow. 'Οταν ο μετρητής θα φτάσει στο max_int (π.χ.), τοτε θα συνεχίσει από το min_int κλπ.
Δοκιμασα σε Γλωσσομαθεια, όπου δινει 64bits στον ακεραιο,
αρα max_int = 9,223,372,036,854,775,807 , το οποίο βεβαια, δεν εχει μεγαλη σημασια για το θεμα μας.

George Eco

Παράθεση από: dimitrios67 στις 04 Μαΐου 2023, 08:37:27 ΜΜΗ υπερχείληση (overflow) που αναφερεται στην σελίδα 233, θα γίνει στην  περίπτωση (π.χ.) όπου θα προσπαθήσουμε να αποθηκεύσουμε έναν πολύ μεγάλο αριθμό σε μεταβλητή ακέραια και δεν θα "χωράει".
Σε ατέρμονα βρόχο (infinite loop) δεν υπάρχει περίπτωση να έχουμε overflow. 'Οταν ο μετρητής θα φτάσει στο max_int (π.χ.), τοτε θα συνεχίσει από το min_int κλπ.
Δοκιμασα σε Γλωσσομαθεια, όπου δινει 64bits στον ακεραιο,
αρα max_int = 9,223,372,036,854,775,807 , το οποίο βεβαια, δεν εχει μεγαλη σημασια για το θεμα μας.
Η ΓΛΩΣΣΑ δεν έχει max_int.
Τρέχει στο μυαλό μας ως θεωρητική γλώσσα. 
Καταλήγουμε ωστόσο στο ίδιο συμπέρασμα.

Κανένας

Παράθεση από: dimitrios67 στις 04 Μαΐου 2023, 08:37:27 ΜΜΗ υπερχείληση (overflow) που αναφερεται στην σελίδα 233, θα γίνει στην  περίπτωση (π.χ.) όπου θα προσπαθήσουμε να αποθηκεύσουμε έναν πολύ μεγάλο αριθμό σε μεταβλητή ακέραια και δεν θα "χωράει".
Σε ατέρμονα βρόχο (infinite loop) δεν υπάρχει περίπτωση να έχουμε overflow. 'Οταν ο μετρητής θα φτάσει στο max_int (π.χ.), τοτε θα συνεχίσει από το min_int κλπ.
Δοκιμασα σε Γλωσσομαθεια, όπου δινει 64bits στον ακεραιο,
αρα max_int = 9,223,372,036,854,775,807 , το οποίο βεβαια, δεν εχει μεγαλη σημασια για το θεμα μας.
Δημήτριε εδώ;
ΠΡΟΓΡΑΜΜΑ ΥΠΕΡΧΕΙΛΙΣΗ
ΜΕΤΑΒΛΗΤΕΣ
  ΑΚΕΡΑΙΕΣ: Ν,Α
ΑΡΧΗ
  Ν <-- 10
  Α <-- 10
  ΟΣΟ Α>0 ΕΠΑΝΑΛΑΒΕ
    Α <-- Α^Ν
    ΓΡΑΨΕ Α
  ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
ΤΕΛΟΣ_ΠΡΟΓΡΑΜΜΑΤΟΣ 
 
Νικηφόρος Μανδηλαράς
ΓΕΛ Νάξου "Μανώλης Γλέζος"
https://blogs.sch.gr/nobody/

George Eco

Παράθεση από: Κανένας στις 04 Μαΐου 2023, 09:54:07 ΜΜΔημήτριε εδώ;
ΠΡΟΓΡΑΜΜΑ ΥΠΕΡΧΕΙΛΙΣΗ
ΜΕΤΑΒΛΗΤΕΣ
  ΑΚΕΡΑΙΕΣ: Ν,Α
ΑΡΧΗ
  Ν <-- 10
  Α <-- 10
  ΟΣΟ Α>0 ΕΠΑΝΑΛΑΒΕ
    Α <-- Α^Ν
    ΓΡΑΨΕ Α
  ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
ΤΕΛΟΣ_ΠΡΟΓΡΑΜΜΑΤΟΣ 
 

Ισχύουν πάλι όσα προανάφερα.
Στη ΓΛΩΣΣΑ δε θα έχουμε overflow, επειδή είναι θεωρητική, ακριβώς για τον ίδιο λόγο που λέμε πως έχει άπειρη ακρίβεια ψηφίων. Είναι ΘΕΩΡΗΤΙΚΗ. Δεν υπάρχει διερμηνευτής ή μεταγλωττιστής. Το ότι έχουμε αυτά τα προγράμματα που έχουμε για να μας βοηθούν, είναι ευγενικές πρωτοβουλίες, αλλά στις Πανελλήνιες εξετάζεται το μάθημα βάσει του βιβλίου κι όχι του εκάστοτε διερμηνευτή.

Και χειρότερο να το κάνεις....

ΠΡΟΓΡΑΜΜΑ ΚΑΜΙΑ_ΥΠΕΡΧΕΙΛΙΣΗ
ΜΕΤΑΒΛΗΤΕΣ
  ΠΡΑΓΜΑΤΙΚΕΣ: Α
ΑΡΧΗ
  Α <- 10.0
  ΟΣΟ Α>0.0 ΕΠΑΝΑΛΑΒΕ
    Α <- Α^Α
    ΓΡΑΨΕ Α
  ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
ΤΕΛΟΣ_ΠΡΟΓΡΑΜΜΑΤΟΣ

Καμία υπερχείλιση δε θα γίνει. Γιατί δεν εκτελείται σε Η/Υ αλλά στον ανθρώπινο νου. Κι εγώ δεν ήξερα αυτή τη λεπτομέρεια. Οι διερμηνευτές είναι ευγενικές πρωτοβουλίες συναδέλφων. Το μάθημα ήρθε χωρίς τέτοια προγράμματα. Η ΓΛΩΣΣΑ εκτελείται στο ανθρώπινο μυαλό.
Τώρα να μου πεις για οποιαδήποτε άλλη γλώσσα προγραμματισμού, που έχει compiler που την ορίζει ρητά, να πω πως έχετε 100% δίκιο. Αλλά αυτά λέμε τόσα χρόνια. Άλλο η πραγματικότητα κι άλλο τα πλαίσια του μαθήματος.

Κανένας

Παράθεση από: George Eco στις 04 Μαΐου 2023, 10:13:10 ΜΜΙσχύουν πάλι όσα προανάφερα.
Στη ΓΛΩΣΣΑ δε θα έχουμε overflow, επειδή είναι θεωρητική, ακριβώς για τον ίδιο λόγο που λέμε πως έχει άπειρη ακρίβεια ψηφίων. Είναι ΘΕΩΡΗΤΙΚΗ. Δεν υπάρχει διερμηνευτής ή μεταγλωττιστής. Το ότι έχουμε αυτά τα προγράμματα που έχουμε για να μας βοηθούν, είναι ευγενικές πρωτοβουλίες, αλλά στις Πανελλήνιες εξετάζεται το μάθημα βάσει του βιβλίου κι όχι του εκάστοτε διερμηνευτή.

Και χειρότερο να το κάνεις....

ΠΡΟΓΡΑΜΜΑ ΚΑΜΙΑ_ΥΠΕΡΧΕΙΛΙΣΗ
ΜΕΤΑΒΛΗΤΕΣ
  ΠΡΑΓΜΑΤΙΚΕΣ: Α
ΑΡΧΗ
  Α <- 10.0
  ΟΣΟ Α>0.0 ΕΠΑΝΑΛΑΒΕ
    Α <- Α^Α
    ΓΡΑΨΕ Α
  ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
ΤΕΛΟΣ_ΠΡΟΓΡΑΜΜΑΤΟΣ

Καμία υπερχείλιση δε θα γίνει. Γιατί δεν εκτελείται σε Η/Υ αλλά στον ανθρώπινο νου. Κι εγώ δεν ήξερα αυτή τη λεπτομέρεια. Οι διερμηνευτές είναι ευγενικές πρωτοβουλίες συναδέλφων. Το μάθημα ήρθε χωρίς τέτοια προγράμματα. Η ΓΛΩΣΣΑ εκτελείται στο ανθρώπινο μυαλό.
Τώρα να μου πεις για οποιαδήποτε άλλη γλώσσα προγραμματισμού, που έχει compiler που την ορίζει ρητά, να πω πως έχετε 100% δίκιο. Αλλά αυτά λέμε τόσα χρόνια. Άλλο η πραγματικότητα κι άλλο τα πλαίσια του μαθήματος.
Νομίζω πρέπει να δεχτούμε ότι ακόμη και με τη 'ΓΛΩΣΣΑ' γράφουμε προγράμματα
για να εκτελεστούν σε μηχανή (υπολογιστή). Δηλαδή έχουμε φραγμένα αριθμητικά σύνολα.

Στο Πράσινο Βιβλίο σελ. 128:

Στην πραγματικότητα τα δεδομένα καταχωρούνται στη μνήμη του υπολογιστή καταλαμβάνοντας συγκεκριμένο αριθμό θέσεων (bytes).
Ανάλογα με τον τύπο του δεδομένου και το διατιθέμενο αριθμό bytes ποικίλλει και το εύρος τιμών που μπορούν να λάβουν.
Έτσι στον υπολογιστή διαθέτουμε ένα υποσύνολο ακεραίων ή πραγματικών αριθμών. Συνήθεις τύποι δεδομένων στις διάφορες γλώσσες προγραμματισμού είναι ο ακέραιος (integer) σε 1, 2 ή 4 bytes και ο πραγματικός (real) σε 4 ή 8 bytes.
Νικηφόρος Μανδηλαράς
ΓΕΛ Νάξου "Μανώλης Γλέζος"
https://blogs.sch.gr/nobody/

alkisg

Σε ένα ερωτηματολόγιο πρόπερσι, είχα την παρακάτω ερώτηση:

question7.png

Λιγότερο από το 5% των συναδέλφων υποστήριξε ότι η ΓΛΩΣΣΑ έχει άπειρη ακρίβεια.
Αυτό είναι λογικό όταν μιλάμε για προγραμματισμό, αφού κανένας ψηφιακός υπολογιστής δεν μπορεί να χωρέσει ούτε έναν αριθμό με "άπειρα ψηφία".

Εντωμεταξύ αν γίνει overflow και σταματήσει η εκτέλεση του προγράμματος τότε δεν είναι πια "ατέρμων βρόχος".
Είναι "λογικό λάθος" με "αντικανονικό τερματισμό της εκτέλεσης". Οι κατηγορίες αυτές δεν είναι διακριτές, υπάρχει επικάλυψη.

Αντίθετα, σε γλώσσες όπου το overflow δεν προκαλεί τερματισμό της εκτέλεσης, τότε το λάθος εκεί είναι μόνο λογικό. Δηλαδή το ίδιο ακριβώς πρόγραμμα, σε μια γλώσσα μπορεί να ανήκει σε δύο κατηγορίες, και σε άλλη γλώσσα μόνο σε μία κατηγορία.

Για τη ΓΛΩΣΣΑ δεν υπάρχει επίσημη διευκρίνηση, οπότε το λάθος είναι σίγουρα λογικό. Το αν ταυτόχρονα είναι και αντικανονικού τερματισμού δεν πρέπει να ερωτηθεί.

(Να πω επίσης ότι σε ένα πρόγραμμα τύπου "υλοποίηση ρολογιού" που έχει επίτηδες άπειρο loop, εκεί δεν είναι ούτε καν λογικό λάθος, αλλά ΟΚ αυτό εμείς τάχα μου δεν το θεωρούμε καν αλγόριθμο, αλλά "υπολογιστική διαδικασία", ενώ αν του βάλουμε κι ένα κουμπί "exit", τότε ξαφνικά γίνεται αλγόριθμος! Όμως αυτό είναι άλλη συζήτηση! :D)

George Eco

#21
Παράθεση από: Κανένας στις 04 Μαΐου 2023, 11:02:26 ΜΜΝομίζω πρέπει να δεχτούμε ότι ακόμη και με τη 'ΓΛΩΣΣΑ' γράφουμε προγράμματα
για να εκτελεστούν σε μηχανή (υπολογιστή). Δηλαδή έχουμε φραγμένα αριθμητικά σύνολα.
Στο Πράσινο Βιβλίο σελ. 128:
Στην πραγματικότητα τα δεδομένα καταχωρούνται στη μνήμη του υπολογιστή....

Κι εδώ είναι το πρόβλημα συνάδελφε. Δε μου λέει κανείς ρητά πως πρέπει να το δεχτώ ότι με τη 'ΓΛΩΣΣΑ' γράφουμε προγράμματα για να εκτελεστούν σε μηχανή, γιατί είναι μία γλώσσα που δε τη νοιάζουν τα τεχνικά χαρακτηριστικά της, με στόχο να εστιάσει στη διδασκαλία, αλλά με αποτέλεσμα αυτή η παράλειψη να γίνεται τροχοπέδη στη μάθηση. Γιατί δεν υπάρχουν ρητά φράγματα.
( Σελ 139 του πράσινου βιβλίου (πρόην 127) Ενότητα 8.1 )

Δε λες κάτι παράλογο. Το μάθημα είναι στημένο παράλογα.

Παραθέτω ακριβώς το ίδιο που παράθεσες.
Στην πραγματικότητα τα δεδομένα καταχωρούνται στη μνήμη του υπολογιστή....
Στη πραγματικότητα. Στα πλαίσια του μάθήματος τι γίνεται όμως;
Αν μου βρεις άνω και κάτω φράγμα ακεραίων και πραγματικών στη ΓΛΩΣΣΑ μέσα στο βιβλίο θα κάνω party.




alkisg Δηλαδή πριν από το διερμηνευτή και το μεταγλωττιστή της ΓΛΩΣΣΑΣ, το 2001 για παράδειγμα, που δεν υπήρχαν, που θα εκτελείτο η ΓΛΩΣΣΑ; Στον ανθρώπινο νου δεν εκτελείτο; Και δεν έχουν αλλάξει και πολλά από τότε, πέραν του... αρχικού σχήματος του βιβλίου.


Πολύ μου αρέσει αυτό στο ερωτηματολόγιό σου σαν επιχείρημα.
Αν έχει άπειρη ακρίβεια η ΓΛΩΣΣΑ, ένας κανονικός υπολογισμός που οδηγεί σε άρρητο θα ήταν ατέρμων βρόχος.
Ενδιαφέρον επιχείρημα ειλικρινά. Με προβληματίζει.

Όμως, τελικά τι ακρίβεια έχει για τις Πανελλήνιες η ΓΛΩΣΣΑ;
Ποιο είναι το άνω και κάτω φράγμα της; Δε μας λέει πουθενά.

Για πείτε μου:
Να γράψετε πρόγραμμα σε ΓΛΩΣΣΑ που θα δέχεται 300 τιμές και θα εμφανίζει τη μέγιστη.


Θα αρχικοποιούσατε τη μέγιστη με -1 * 10 ^ 1000 ή όχι; Εγώ το θεωρώ επιστημονικό σφάλμα αυτό.
Θεωρητικά αφού δεν υπάρχει κάτω φράγμα μπορώ να εισάγω τιμές μικρότερες του -1 * 10 ^ 1000 και να οδηγηθώ σε λογικό σφάλμα με μέγιστο στο τέλος το -1 * 10 ^ 1000, που δεν εισήγαγε ποτέ του ο χρήστης ως τιμή, αφου μπορώ να βάλω 300 τιμές μικρότερες αυτής.

Εναλλακτικά, όπως πολλοί συνηθίζουμε, θα αποφύγουμε το πρόβλημα με τη κλασσική μέθοδο...



ΔΙΑΒΑΣΕ χ
μέγιστο <- χ
ΓΙΑ ι ΑΠΟ 2 ΜΕΧΡΙ 300
  ΔΙΑΒΑΣΕ χ
  ΑΝ μέγιστο < χ ΤΟΤΕ
    μέγιστο <- χ
  ΤΕΛΟΣ_ΑΝ
ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ



Γιατί να διαλέξουμε όμως τη δεύτερη λύση έναντι της πρώτης, αν η ακρίβεια είναι διακριτή κι υπάρχουν φράγματα;
Ας αρχικοποιήσουμε βάσει των φραγμάτων.
Οκ!
Και ποια ακριβώς είναι αυτά τα φράγματα;;;
Κι ΕΔΩ το χάνουμε.  Γιατί η ΓΛΩΣΣΑ δεν έχει ορισμένα φράγματα τιμών, γιατί ακριβώς αποφεύγει αυτά τα τεχνικά θέματα.
(Σελ 127 του πράσινου βιβλίου)
Το βλέπουμε όλοι το φαύλο κύκλο έτσι;

Εγώ έχω καταλήξει στο (φιλοσοφικό) συμπέρασμα πως η ακρίβεια της ΓΛΩΣΣΑΣ είναι απεριόριστη αλλά και πεπερασμένη ταυτόχρονα, όσο παράδοξο κι αν ακούγεται. Μετά τη γάτα, έχουμε και τα φράγματα του Σρόντιγκερ, είναι και δεν είναι εκεί.
Τρίτη επιλογή του ερωτηματολογίου του Άλκη στην ουσία.  Κυνηγάμε τον ίσκιο μας. Ας το διευκρινίσουν επιτέλους μαζί με τόσα άλλα.

Μέχρι τότε, καλό είναι να αποφεύγουμε τα θέματα hot potatoes από τη μία, αλλά απ' την άλλη καλό είναι το ΙΕΠ να ενημερωθεί κάπως για τέτοιες ασάφειες ώστε να βγουν οδηγίες που θα μας θωρακίσουν για το μέλλον.

Υ.Γ.:
Άλκη, θυμάμαι σε άλλο thread παλιότερα, είχε γίνει μια αναφορά ( όχι από εσένα ) στο θέμα πως η ΓΛΩΣΣΑ είναι ορισμένη επί χάρτου και σχεδιάστηκε για να εκτελείται στο νου των παιδιών. Κάτι τέτοιο είχε ειπωθεί. Αυτό ισχύει όντως ή ήταν αλλιώς τα πράγματα; Μιλάμε για τις αρχές του μαθήματος.

ApoAntonis

Είναι απαράδεκτο (εννοώντας ότι είναι γνωστό) να μιλάμε για over/under flow. Το δυαδικό το οποίο εξηγεί το βιβλίο στην σελίδα 48 γράφει ότι γράφει, εννοώντας ότι πάντα η ολίσθηση λειτουργεί σωστά. Ισοδυναμεί. Οι τεχνικές λεπτομέρειες δεν μας απασχολούν.
Υπάρχει οξύμωρο σχήμα με αυτά που γράφονται εδώ στις απαντήσεις.


(εντωμεταξύ, υπερχείλιση και υπερχείλιση μεταβλητών είναι κάτι το οποίο το εξηγώ, εκεί που με παίρνει, μπράβο μου και συγχαρητήρια αλλά είναι εκτός ύλης)
Το βιβλίο μιλάει και για βιβλιοθήκες, σημαίνει ότι διδάσκονται οι βιβλιοθήκες;

Όταν ο άσσος γίνεται εκχώρηση σε πραγματική μεταβλητή "λέμε" ότι είναι 1.0.
Από που βγήκε αυτό; Ποιός είπε ότι η αναπαράσταση του μηδενικού δεκαδικού μέρους είναι ένα ωραίο και στρογγυλό ένα μηδενικό; Εκτός και αν το πιστεύουμε κιόλας. 
Ποιός μας λέει μετά αν πάρουμε ακέραιο μέρος πραγματικού ότι χωράει πάντα σε ακέραιο;

Παράθεση από: akalest0s στις 02 Μαΐου 2023, 12:17:23 ΜΜΣηκώνει κουβέντα, ελπίζω μην το δούμε σε εξετάσεις.

ναι καλά, στο Α4 πέρσι "...να τυπώνει το γινόμενο και τον μέσο όρο τους"
στον κώδικα γράφει: ΓΡΑΨΕ ΜΟ, ΓΙΝ
χωρίς αυτό να έχει θεωρηθεί λογικό λάθος.
Και βέβαια θυμόμαστε πόσο γνωστό θεωρήθηκε ότι η προσθήκη κόμβου πρέπει να γίνεται ως φύλλο.

Παράθεση από: alkisg στις 04 Μαΐου 2023, 11:25:29 ΜΜΣε ένα ερωτηματολόγιο πρόπερσι, είχα την παρακάτω ερώτηση:


Λιγότερο από το 5% των συναδέλφων υποστήριξε ότι η ΓΛΩΣΣΑ έχει άπειρη ακρίβεια.
Αυτό είναι λογικό όταν μιλάμε για προγραμματισμό, αφού κανένας ψηφιακός υπολογιστής δεν μπορεί να χωρέσει ούτε έναν αριθμό με "άπειρα ψηφία".


Με συγχωρείς αλλά εδώ ενυπάρχουν κάποια ζητήματα. Η ερώτηση θεωρώ δεν είναι καλώς τεθειμένη.
Το 1/3 δεν έχει άπειρο πλήθος ψηφίων στην κλασματική του αναπαράσταση. Το πηλίκο έχει άπειρα δεκαδικά ψηφία, τα οποία όμως δεν χρειάζεται να αναπαρασταθούν για να βρεθεί το πλήθος τους. Στο πρώτο υπόλοιπο βρίσκεται η απάντηση. Ο αριθμός 0,3 άπειρα περιοδικός είναι αριθμός με άπειρα δεκαδικά ψηφία. Αλλά δεν χρειάζεσαι (πάντα) άπειρα ψηφία για να αναπαραστήσεις άπειρου μήκους αριθμούς. Ειδικά στην τρίτη επιλογή μου φαίνεται πολύ μεγάλο το ποσοστό της. Είναι σχεδόν σίγουρο εδώ ότι κάτι δεν έχει πάει καλά.

alkisg

#23
@ApoAntonis, η ερώτηση είναι, τι θα κάνει η παρακάτω εντολή:

ΓΡΑΨΕ ΠλήθοςΔεκαδικώνΨηφίων(1/3)

Δηλαδή περνάμε στη συνάρτηση την έκφραση 1/3 και τυπώνουμε στην οθόνη το αποτέλεσμα.
Προφανώς ο οποιοσδήποτε διερμηνευτής ή μεταφραστής της ΓΛΩΣΣΑΣ θα κάνει την πράξη 1/3 πριν περάσει την παράμετρο στην συνάρτηση.
Εσύ αυτό που λες είναι ότι μας ενδιαφέρει η εσωτερική αναπαράσταση του 1/3 ή γενικότερα των πραγματικών αριθμών στον συγκεκριμένο Η/Υ που εκτελείται αυτός ο διερμηνευτής.
Εγώ λέω ότι δεν μας ενδιαφέρει η εσωτερική αναπαράσταση και γι' αυτό δεν είναι μέρος της ερώτησης.

Ένας αριθμός μπορεί να έχει άπειρα ψηφία σε ένα σύστημα αρίθμησης και πεπερασμένα σε άλλο. Π.χ. το 1/3 στο τριαδικό σύστημα είναι 0.1, με ένα μόνο ψηφίο μετά την υποδιαστολή. Ή το 0.1 στο δεκαδικό είναι 0.00011001100110011... στο δυαδικό, με άπειρα ψηφία.

Άρα όταν ζητάμε από τη ΓΛΩΣΣΑ πράξεις στο δεκαδικό σύστημα, είναι ξεχωριστή ερώτηση από την εσωτερική αναπαράσταση στο δυαδικό ή τριαδικό ή οποιοδήποτε σύστημα χρησιμοποιεί το harware. Ο ίδιος αριθμός μπορεί να έχει άπειρα ψηφία στο δεκαδικό (=software) αλλά πεπερασμένα στο σύστημα που χρησιμοποιεί ο Η/Υ (=hardware), ή ανάποδα.

Δηλαδή η ερώτησή σου είναι πιο πολύ προς το hardware (=οπότε πρέπει να επιλέξεις κατάλληλο παράδειγμα αριθμού που δεν αναπαρίσταται στη συγκεκριμένη αρχιτεκτονική) ενώ εμένα προς το software (υποχρεώνω μετατροπή σε άπειρα ψηφία δεκαδικού αδιαφορώντας για την αναπαράσταση της αρχιτεκτονικής). Και οι  δύο είναι valid ερωτήσεις, αλλά ξεχωριστές.

George Eco

#24
@alkisg πολύ μου αρέσουν τα επιχειρήματά σου και συμφωνώ μαζί σου. Κοίτα που έχω κολλήσει όμως εγώ.

ΑΕΠΠ Ενότητα 8.1:
Η σύγκριση μεταξύ δύο αριθμών...

Η παραπάνω παράγραφος που ξεκινά έτσι καταλήγει πως υπάρχουν άπειρα δεκαδικά στο αποτέλεσμα.
Με άλλα λόγια μας λέει το ίδιο το βιβλίο πως:
ΑΠΟΤΕΛΕΣΜΑ ΜΕ ΑΠΕΙΡΑ ΔΕΚΑΔΙΚΑ ΨΗΦΙΑ ΘΑ ΕΠΙΣΤΡΑΦΕΙ
και όλη η φύση ησυχάζει, άρα τι; Τελείωσε κι ο αλγόριθμος λογικά ε;
Δηλαδή μας λέει πως στα πλαίσια του μαθήματος, σε αυτή τη φάση μόνο, το μη πεπερασμένο είναι πεπερασμένο.
Δηλαδή οριοθέτηση, αλλά και μη οριοθέτηση.
Τι κάνει και δε κάνει νιαου νιαου στα κεραμίδια; Η γάτα του Σρέντινγκερ
Οπότε ορίστε τα τεχνικά όρια-του-Σρέντινγκερ στη ΓΛΩΣΣΑ. Υπάρχουν και δεν υπάρχουν ταυτόχρονα.
Το μάθημα έχει στηθεί παράλογα.
Αφού έχω άπειρη RAM και άπειρο μήκος λέξης, μπορώ να το εφαρμόσω αβίαστα και σε ακεραίους.

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

Παράθεση από: FirstMay στις 02 Μαΐου 2023, 12:19:19 ΠΜΚαλησπέρα,
Ο ατέρμων βρόχος κατά τη γνώμη σας είναι λογικό λάθος ή αντικανονικού τερματισμού;
Αν ερωτηθώ από μαθητή που θα έχει δει τα όσα προανέφερα, τι απαντώ;

Για αυτό ακριβώς το λόγο, κάποιες φράσεις μου στα παιδιά τις προλογίζω λίγο όταν το κρίνω απαραίτητο.

Το βιβλίο. Στη σελίδα 139 θα βρείτε τα όσα λέω.
http://ebooks.edu.gr/ebooks/v/pdf/8547/2560/22-0275-01_Anaptyxi-Efarmogon-se-Programmatistiko-Perivallon_G-Lykeiou-SpOikPlir_Vivlio-Mathiti/

Το βιβλίο λοιπόν διαχωρίζει τη πραγματικότητα από το τα πλαίσια του μαθήματος.

Καρκαμάνης Γεώργιος

Σχολικό βιβλίο ΠΛΗΡΟΦΟΡΙΚΗ σελίδα 125 αναφέρει:

Σε μια δομή επανάληψης μπορεί να εμφανιστούν λογικά λάθη που σχετίζονται με:
• τη συνθήκη επανάληψης ή τερματισμού,
• την αρχικοποίηση της συνθήκης,
• την ενημέρωση της συνθήκης εντός του βρόχου επανάληψης,

Ρωτώ, η δημιουργία ενός ατέρμονα  βρόχου εμπίπτει σε μια από τις παραπάνω περιπτώσεις;

George Eco

Παράθεση από: Καρκαμάνης Γεώργιος στις 19 Μαΐου 2023, 11:31:58 ΜΜΣχολικό βιβλίο ΠΛΗΡΟΦΟΡΙΚΗ σελίδα 125 αναφέρει:

Σε μια δομή επανάληψης μπορεί να εμφανιστούν λογικά λάθη που σχετίζονται με:
• τη συνθήκη επανάληψης ή τερματισμού,
• την αρχικοποίηση της συνθήκης,
• την ενημέρωση της συνθήκης εντός του βρόχου επανάληψης,

Ρωτώ, η δημιουργία ενός ατέρμονα  βρόχου εμπίπτει σε μια από τις παραπάνω περιπτώσεις;


Ναι ναι και ναι.

α <- 1
ΟΣΟ α <> 100 ΕΠΑΝΑΛΑΒΕ
  ΓΡΑΨΕ α
  α <- α + 10
ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ


α <- 101
ΟΣΟ α <> 100 ΕΠΑΝΑΛΑΒΕ
  ΓΡΑΨΕ α
  α <- α + 1
ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ


α <- 1
ΟΣΟ α <> 100 ΕΠΑΝΑΛΑΒΕ
  ΓΡΑΨΕ α
ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ

Ωστόσο παραμένει το παράδοξο που δικαίως έθιξε ο Άλκης.

akalest0s

Παράθεση από: Καρκαμάνης Γεώργιος στις 19 Μαΐου 2023, 11:31:58 ΜΜΣχολικό βιβλίο ΠΛΗΡΟΦΟΡΙΚΗ σελίδα 125 αναφέρει:
(...)

Ρωτώ, η δημιουργία ενός ατέρμονα  βρόχου εμπίπτει σε μια από τις παραπάνω περιπτώσεις;


Στην 2η bulletlist της αποσφαλμάτωσης λογικών λαθών της 5.2.2, σελίδα 130, το κριτήριο περατότητας αναφέρεται ρητά.
(Ευκαιρίας δοθείσης.. γιατί έχουμε δύο bulletlists για το ίδιο ουσιαστικά πράγμα;)

Η καλύτερη διατύπωση πάντως είναι:
ΠαράθεσηΓια τη ΓΛΩΣΣΑ δεν υπάρχει επίσημη διευκρίνηση, οπότε το λάθος είναι σίγουρα λογικό. Το αν ταυτόχρονα είναι και αντικανονικού τερματισμού δεν πρέπει να ερωτηθεί. (από Άλκη)


Παράθεση από: ManiacGr στις 04 Μαΐου 2023, 09:13:04 ΠΜΌπως και να έχει, νομίζω και ελπίζω ότι η επιτροπή δεν θα πέσει ποτέ στο λάθος να ζητήσει απάντηση σε κάτι που δεν περιγράφεται ξεκάθαρα στα βιβλία!
Μια σημαντική δουλειά για τους εκάστοτε θεματοδότες, είναι να έχουν εντοπίσει όλες τις ασάφειες του διδακτικού πακέτου, και να βεβαιωθούν ότι δεν παρεισφρήθησαν στα θέματα. Δουλειά οπωσδήποτε δύσκολη.

Επί παραδείγματι, στο συμπληρωματικό μαθητή:
σ. 120: "θα ασχοληθούμε με τον εντοπισμό λογικών λαθών"
σ. 131: 6η περίπτωση, εξετάζει αντικανονικό τερματισμό κατά την αποσφαλμάτωση.. λογικών λαθών
σ. 132: η υπέρβαση ορίων πίνακα αναφέρεται στην bulletlist, άρα εννοείται ως λογικό λάθος; Ή υπονοείται ότι υπάρχουν λογικά λάθη που θα οδηγήσουν σε αντικανονικού τερματισμού; αν ναι, γιατί δεν υπάρχει η ανάλογη αναφορά στη θεωρία; Που θα στηριχθεί ένας μαθητής για να γράψει "το τάδε λάθος είναι λογικό που οδηγεί σε αντικανονικό τερματισμό";

"Abstraction is not the first stage, but the last stage, in a mathematical development." MK
"I don't want to write about a high level thing, unless I fully understand about a low level thing" DK

akalest0s

Κάτι έψαχνα στις οδηγίες υπουργείου του 2022, και έπεσα πάνω σε αυτό:
"Να επισημανθεί ότι υπάρχουν λάθη που έχουν αμφίσημη κατηγοριοποίηση αναλόγως του προγραμματιστικού περιβάλλοντος υλοποίησης."
Ελπίζω να το έχουν αυτή τη φορά υπόψιν τους οι θεματοδότες και να αποφύγουν γκρίζα σημεία που οδηγούν σε ατέρμονες.. συζητήσεις
"Abstraction is not the first stage, but the last stage, in a mathematical development." MK
"I don't want to write about a high level thing, unless I fully understand about a low level thing" DK

nikolasmer

Παράθεση από: alkisg στις 04 Μαΐου 2023, 11:25:29 ΜΜΣε ένα ερωτηματολόγιο πρόπερσι, είχα την παρακάτω ερώτηση:

question7.png

Λιγότερο από το 5% των συναδέλφων υποστήριξε ότι η ΓΛΩΣΣΑ έχει άπειρη ακρίβεια.
Αυτό είναι λογικό όταν μιλάμε για προγραμματισμό, αφού κανένας ψηφιακός υπολογιστής δεν μπορεί να χωρέσει ούτε έναν αριθμό με "άπειρα ψηφία".

Εντωμεταξύ αν γίνει overflow και σταματήσει η εκτέλεση του προγράμματος τότε δεν είναι πια "ατέρμων βρόχος".
Είναι "λογικό λάθος" με "αντικανονικό τερματισμό της εκτέλεσης". Οι κατηγορίες αυτές δεν είναι διακριτές, υπάρχει επικάλυψη.

Αντίθετα, σε γλώσσες όπου το overflow δεν προκαλεί τερματισμό της εκτέλεσης, τότε το λάθος εκεί είναι μόνο λογικό. Δηλαδή το ίδιο ακριβώς πρόγραμμα, σε μια γλώσσα μπορεί να ανήκει σε δύο κατηγορίες, και σε άλλη γλώσσα μόνο σε μία κατηγορία.

Για τη ΓΛΩΣΣΑ δεν υπάρχει επίσημη διευκρίνηση, οπότε το λάθος είναι σίγουρα λογικό. Το αν ταυτόχρονα είναι και αντικανονικού τερματισμού δεν πρέπει να ερωτηθεί.

(Να πω επίσης ότι σε ένα πρόγραμμα τύπου "υλοποίηση ρολογιού" που έχει επίτηδες άπειρο loop, εκεί δεν είναι ούτε καν λογικό λάθος, αλλά ΟΚ αυτό εμείς τάχα μου δεν το θεωρούμε καν αλγόριθμο, αλλά "υπολογιστική διαδικασία", ενώ αν του βάλουμε κι ένα κουμπί "exit", τότε ξαφνικά γίνεται αλγόριθμος! Όμως αυτό είναι άλλη συζήτηση! :D)
τί άλλο είχε το ερωτηματολόγιο;
Μερεντίτης Νικόλαος
Πληροφορικός