Απορία στην ΓΙΑ

Ξεκίνησε από tkon, 02 Ιουν 2017, 02:33:04 ΜΜ

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

rovan

Απορία. Μπορεί το βήμα να μεταβάλλεται εντός της ΓΙΑ; Δηλαδη μπορούμε να εχουμε
Για Χ από 1 μέχρι 10 με_βημα μ
     Εντολες
    μ<-- μ+1
Τελος_επαναληψης

ikariofil


bugman

Όχι, τα τρία νούμερα, σρχική τιμή, όριο τέλους και βήμα δεν αλλάζουν μέσα στην επανάληψ,η. Ο απαριθμητής όμως μπορεί να αλλάξει, αλλά δεν το κάνουμε. Ο σκοπός είναι να προκαθορίζονται οι επαναλήψεις στη ΓΙΑ. Αν έχουμε μεταβλητή στο βήμα θα πρέπει να δείξουμε ότι δεν θα πάρει τιμή 0 πριν ξεκινήσει η επανάληψη. Αν αλλάζουμε τον απαριθμητή μέσα στην επανάληψη μπορεί να μην τελειώσει ποτέ η επανάληψη. Πχ μια Χ<-Χ+1 κάνει τη Χ να αυξάνει κατά 1 και μετά κατά το βήμα μέσα σε μια Για Χ..... Αν το βήμα είναι το -1 τότε θα έχουμε άπειρες επαναλήψεις. Γενικά αποφεύγουμε την αλλαγή της μεταβλητής της ΓΙΑ μέσα στον σώμα της, για να διατηρούμε αναγνώσιμο το κώδικα. Να δείχνει επακριβώς τι κάνει.

rovan

αυτό υπάρχει κάπου γραμμένο επισήμως ή είναι μια εικασία;

evry

Υπάρχει στις οδηγίες του μαθήματος του 2010 και μετά.

Ωστόσο αν θες να υλοποιήσεις κάτι τέτοιο μπορείς να χρησιμοποιήσεις την Όσο.

Κώδικας: pascal
Ι<-- 1
μ <-- 1
ΟΣΟ Ι<=10 ΕΠΑΝΑΛΑΒΕ
   Εντολές
   Ι <-- Ι + μ
   μ <-- μ + 1
ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ


Γιατί να μπλέξεις με τη Για?
What I cannot create I do not understand -- Richard Feynman
http://evripides.mysch.gr

George Eco

Παράθεση από: tkon στις 02 Ιουν 2017, 02:33:04 ΜΜ
Στην επαναληπτική δομή ΓΙΑ η επαναληπτική διαδικασία δεν ικανοποιεί το κριτήριο της περατότητας μόνο στην περίπτωση που το Βήμα είναι μηδέν
Σωστό ή Λάθος;
Και γιατί;

Σε περίπτωση που το βήμα είναι 0 σίγουρα δεν ικανοποιείται το κριτήριο της περατότητας.
Ωστόσο....

ΠΡΟΓΡΑΜΜΑ ΆτακτοςΠρογραμματιστής
ΜΕΤΑΒΛΗΤΕΣ
  ΑΚΕΡΑΙΕΣ: ι
ΑΡΧΗ
  ΓΙΑ ι ΑΠΟ 1 ΜΕΧΡΙ 100 ΜΕ_ΒΗΜΑ 1
    ΓΡΑΨΕ ι
    ΑΝ ι >= 50 ΤΟΤΕ
       ι <- 1
    ΤΕΛΟΣ_ΑΝ
    ΓΡΑΨΕ "Το ι είναι ίσο με  >>  "
    ΓΡΑΨΕ ι
  ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
ΤΕΛΟΣ_ΠΡΟΓΡΑΜΜΑΤΟΣ ΆτακτοςΠρογραμματιστής


Άρα κατά τη γνώμη μου λάθος. Δεν είναι η μόνη περίπτωση.

Λαμπράκης Μανώλης

Καλημέρα σε όλους

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

George Eco

#37
Παράθεση από: Λαμπράκης Μανώλης στις 13 Αυγ 2019, 10:37:14 ΠΜ
Καλημέρα σε όλους

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

Το γνωρίζω. Λέει πως είναι bad practice, όχι ότι δε γίνεται. Οπότε εδώ θέλω να το ρωτησω. ΣΩΣΤΗ Ή ΛΑΘΟΣ η ερώτηση που βγάζω εγώ λάθος, λόγω αυτής της δυαντότητας;
Εμένα με νοιάζει η απάντηση σε αυτή την ερώτηση. Κάποιοι τη θεωρούν σωστή, κάποιοι τη βγάζουν λάθος, οπότε τι κάνουμε εδώ;


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


evry Η επισύναψή σου το κάνει χειρότερο.   :D   Ισχύει πως το τετράδιο μαθητή δε συμπεριλαμβάνεται στην εξεταστέα ύλη καθόλου, όπως λέει μέσα στην οδηγία;
* odigies_gia_to_mathima_anaptixi_efarmogon_2010.pdf (325.33 KB - έγινε λήψη 41 φορές.)


Δεν αναζητώ την ορθή απάντηση από hobby. Το ψάχνω τόσο γιατί θέλω να είμαι 100% σίγουρος ΓΙΑ ΤΗΝ ΟΡΘΟΤΗΤΑ ΣΤΙΣ ΠΑΝΕΛΛΗΝΙΕΣ ΕΞΕΤΑΣΕΙΣ.
Για εμένα η ορθή απάντηση είναι λάθος. Αλλά δεν είμαι εγώ αυτός που θα διορθώνει γραπτά στις Εξετάσεις και δεν είμαι εγώ αυτός που θα εξετάζεται για να τεκμηριώσει την απάντηση.
Οπότε θέλω να ξέρω, στα πλαίσια του μαθήματος, στα πλαίσια των Εξετάσεων, αυτή η ερώτηση (ξέρω δε πρέπει να πέσει αλλά το 2018 έπεσε αδόμητο διάγραμμα, λέω τώρα...) είναι ΣΩΣΤΗ ή ΛΑΘΟΣ;


Λαμπράκης Μανώλης

Η ταπεινή μου πάντα άποψη, είναι δυστυχώς πως δεν πρέπει να πέσει τέτοιο ερώτημα... Χεχεχε... Δεν τρολαρω, αλλά δυστυχώς έχουν γίνει συζητήσεις και για άλλα τέτοια ερωτήματα που καλώς ή κακώς υπάρχει διαφωνία  για τον τρόπο αντιμετώπισης τους ... Εγώ δεν έχω κανένα απολύτως θέμα με τους μαθητές πάντως, τους εξηγώ πως έχουν τα πράγματα και όλα μια χαρά... Το βιβλίο, αυτό που καταλαβαίνω εγώ πάντα, λέει πως 1) άπειρες επαναλήψεις το ΓΙΑ κάνει με βήμα 0 2) δεν πρέπει να μεταβάλουμε τον μετρητη του, οπότε εγώ προσωπικά είμαι καλυμμένος

George Eco

Παράθεση από: Λαμπράκης Μανώλης στις 13 Αυγ 2019, 05:15:15 ΜΜ
Η ταπεινή μου πάντα άποψη, είναι δυστυχώς πως δεν πρέπει να πέσει τέτοιο ερώτημα... Χεχεχε... Δεν τρολαρω, αλλά δυστυχώς έχουν γίνει συζητήσεις και για άλλα τέτοια ερωτήματα που καλώς ή κακώς υπάρχει διαφωνία  για τον τρόπο αντιμετώπισης τους ... Εγώ δεν έχω κανένα απολύτως θέμα με τους μαθητές πάντως, τους εξηγώ πως έχουν τα πράγματα και όλα μια χαρά... Το βιβλίο, αυτό που καταλαβαίνω εγώ πάντα, λέει πως 1) άπειρες επαναλήψεις το ΓΙΑ κάνει με βήμα 0 2) δεν πρέπει να μεταβάλουμε τον μετρητη του, οπότε εγώ προσωπικά είμαι καλυμμένος
Προφανώς δε τρολάρεις καλά τα λες. Αυτή η Σ/Λ ερώτηση που ξεκίνησε αυτό το thread από πού ξεφύτρωσε; Γιατί είναι διφορούμενη αν μη τι άλλο. Στα όσα λες συμφωνώ απόλυτα, αλλά όταν έρχεται μια τέτοια ερώτηση, ξεκινάει να με τσιγκλάει κάτι μέσα μου.

Λαμπράκης Μανώλης

Πάντως αν στα παραπάνω προσθέσουμε και τον "κανόνα των εμφωλευμένων επαναλήψεων " που αναφέρει πως    "Δεν μπορεί να χρησιμοποιηθεί η ίδια μεταβλητή ως μετρητής δύο ή περισσότερων βρόγχων που ο ένας βρίσκεται μέσα στον άλλον ", που αναφέρεται στην δομή Για υποθέτω κυρίως, γιατί στις άλλες δύο δεν δημιουργεί κάποιο πρόβλημα , τότε θα έλεγα πως το βιβλλίο "τείνει" στο ότι ο μετρητής της ΓΙΑ δεν πρέπει/μπορεί/δεν είναι καλό να μεταβάλλεται .. από κει και πέρα ας ελπίσουμε να μην βρεθούμε στη δύσκολη θέση να χρειαστεί να το απαντήσουμε σε πανελλήνιες

P.Tsiotakis

ΠαράθεσηΔεν πρέπει να τροποποιούμε εντός του βρόχου την τιμή του μετρητή που ελέγχει τη δομή Για. Ποτέ μην χρησιμοποιείς εντολές που αλλάζουν την αρχική τιμή, την τελική τιμή, το βήμα ή τη μεταβλητή που ελέγχει την επανάληψη μέσα σε ένα βρόχο ΓΙΑ.»
Από το απόσπασμα αυτό προκύπτει ότ ιη ΓΛΩΣΣΑ δεν περιλαμβάνεται στις «μερικές γλώσσες προγραμματισμού» που το επιτρέπουν.
έγγραφο ΥΠΕΠΘ 43652 / Γ2 / 20 - 4 - 2010.


Σελίδα 47 τετραδίου οδηγιών μελέτης μαθητή (έκδοση 2):
Παράθεση"Μέσα  στην  εντολή  «ΓΙΑ...ΑΠΟ...ΜΕΧΡΙ...»  δεν  επιτρέπεται  να  αλλάξει  η  τιμή  της  <μεταβλητής>  του ΓΙΑ, διότι τότε δε λειτουργεί σωστά η εντολή επανάληψης"

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

George Eco

Αποαγορευση όμως δε σημαίνει ανυπαρξία. Ωραλια όλα αυτά, δεν απαντούν όμως ρητά τστην απορία. Τελικά ΣΩΣΤΟ ή ΛΑΘΟΣ; :-\
Δηλαδη οκ μη το κάνετε είναι βλακεία. Η ερωτηση όμως είναι θεωρητική και μάλιστα το ότι υπάρχει η απαγόρευση αυτη, ίσως τονώνει τη τάση προς ορθή απάντηση να είναι ΛΑΘΟΣ.

Στην επαναληπτική δομή ΓΙΑ η επαναληπτική διαδικασία δεν ικανοποιεί το κριτήριο της περατότητας μόνο στην περίπτωση που το Βήμα είναι μηδέν
Σωστό ή Λάθος;

Λάθος.
Μπορείς να κάνεις το σφάλμα βήμα 0
Μπορείς επίσης να κάνεις το σφάλμα να πειράξεις εντός της ΓΙΑ τη μεταβλητή της.

bugman

#43
Η απάντηση είναι: Λάθος
Όταν μιλάμε για τη δομή δεν αναφέρουμε για τον εμφωλευμένο κώδικα, αλλά για τις αρχικές τιμές στη δομή. Για την περάτωση εκτέλεσης της δομής  απαιτείται μια συνθήκη να ικανοποιείται. Αυτή η συνθήκη δεν περιλαμβάνει το βήμα. Αν λοιπόν το βήμα είναι μηδέν και η αρχική τιμή της μεταβλητής της ΓΙΑ είναι μεγαλύτερη από την τελική τότε η ΓΙΑ ακόμα και με βήμα ένα μη αρνητικό αριθμό θα τερματίσει. Το αν θα εκτελεστεί μια φορά ο κώδικας εντός ή όχι είναι θέμα υλοποίησης.

Λαμπράκης Μανώλης

Καλημέρα σε όλους και χρόνια για τις γιορτές

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