Μετατροπή δομής Όσο...Επανάλαβε σε Για...Από...Μέχρι

Ξεκίνησε από evry, 11 Δεκ 2007, 03:01:48 ΜΜ

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

pgrontas

Καλά Παναγιώτη με κούφανες και μένα.

Η άποψη την οποία υποστήριζα ανέκαθεν (δείτε και μια έντονη συζήτηση για σχετικό θέμα στις πανελλήνιες του 2007 ) είναι ότι όλες οι δομές επανάληψης είναι ισοδύναμες.
Κάποιες συστήνεται (η λέξη κλειδί εδώ) να χρησιμοποιούνται σε ειδικές περιπτώσεις στην ψευδογλώσσα-γλώσσα (πχ. η ΓΙΑ σε γνωστό αριθμό επαναλήψεων) κάποιες είναι πιο γενικές. Συμφωνώ στο ότι είναι καλό οι μαθητές να εξασκούνται στην πειθαρχία σωστής χρήσης της κάθε δομής. Αυτό δεν σημαίνει όμως πως δεν είναι δυνατόν να μετατρέψουμε την μία στην άλλη ή πολύ περισσότερο αν δούμε μια τέτοια λύση να την κόψουμε χωρίς να δούμε προσεκτικά την σκέψη του μαθητή.

Χρόνια πολλά και καλή χρονιά σε όλους.
Programs must be written for people to read, and only incidentally for machines to execute - Harold Abelson

P.Tsiotakis

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

Και επιμένω οτι βλέπω πολύ μικρή την πιθανότητα κάποιος μαθητής απο μόνος του να χρησιμοποιήσει με τέτοιο τρόπο τη δομή Για.

Laertis

Ας συζητήσουμε τώρα το θέμα της Μετατροπής του Ευριπίδη σε Άρη ...
Είναι ή δεν είναι εφικτή ;  :)
Νικολακάκης Γιώργος
Μηχανικός Η/Υ Συστημάτων
Καθηγητής Πληροφορικής
http://users.sch.gr/gnikola

ntzekakis

Ηθελά να επαναφέρω το θέμα της μετατροπής της ΟΣΟ σε ΓΙΑ.
Θέλω να ρωτήσω αν μπορώ να έχω σαν βήμα της ΓΙΑ μια μεταβλητή. Πιστεύω ότι αν γνωρίζω το πρόσημο αυτής της μεταβλητής δεν θα ήταν λάθος. Τι λέτε;

P.Tsiotakis

Ναι...

Βέβαια δεν πρέπει η μεταβλητή αυτή να έχει την τιμή 0 (άπειρες επαναλήψεις)

Νίκος Αδαμόπουλος

Τη μεταβλητή αυτή σκοπεύεις να τη "μεταβάλεις" κατά τη διάρκεια των επαναλήψεων;

vistrian

#36
καλημέρα συνάδελφοι. Η παρακάτω μετατροπή είναι σωστή; Έχω έναν ενδιασμό για το μετρητή της Για

Διάβασε χ
α← 35
Εκτύπωσε α
Όσο α<=χ επανάλαβε
   α← α + α div 6
   Εκτύπωσε α
Τέλος_επαναληψης
Εμφάνισε "--------------------"

Δίαβασε χ
α←35
εκτύπωσε α
Για α απο α + 5 μέχρι χ + 5 με_βημα α div 6
   Εκτύπωσε α
Τέλος_επανάληψης
VR in Computing

Laertis

Το βήμα δε μπορεί να μεταβάλλεται σε κάθε επανάληψη.
Νικολακάκης Γιώργος
Μηχανικός Η/Υ Συστημάτων
Καθηγητής Πληροφορικής
http://users.sch.gr/gnikola

meteo_xampos

Ναι, αλλά το τμήμα κώδικα που δίνεται παραπάνω τρέχει στο pseudoglossa.gr...

Νίκος Αδαμόπουλος

Από την επίσημη διευκρίνηση του υπουργείου: http://dide.ilei.sch.gr/keplinet/education/docs/aepp_yp_2010.pdf

...αντιγράφω:

Όσον αφορά τη μεταβολή του μετρητή μιας ΓΙΑ μέσα στο βρόχο του, δεύτερη υπόδειξη της σελίδας 78 του Τετραδίου Μαθητή αναφέρεται: «Ποτέ μην χρησιμοποιείς εντολές που αλλάζουν την αρχική τιμή, την τελική τιμή, το βήμα ή τη μεταβλητή που ελέγχει την επανάληψη μέσα σε ένα βρόχο ΓΙΑ. Αν και μερικές γλώσσες προγραμματισμού επιτρέπουν αυτές τις αλλαγές, να τις αποφεύγεις, γιατί οδηγούν σε προγράμματα δυσνόητα και συνήθως λανθασμένα». Από το απόσπασμα αυτό προκύπτει ότι η ΓΛΩΣΣΑ δεν περιλαμβάνεται στις «μερικές γλώσσες προγραμματισμού». Επίσης, στο Βιβλίο Μαθητή στην ενότητα 8.2.3, σελ. 179, για τη λειτουργία της ΓΙΑ ... ΑΠΟ ... ΜΕΧΡΙ αναφέρεται: «ΛΕΙΤΟΥΡΓΙΑ Οι εντολές του βρόχου εκτελούνται για όλες τις τιμές της μεταβλητής από την αρχική τιμή μέχρι την τελική τιμή, αυξανόμενες με την τιμή του βήματος. Αν το βήμα είναι ίσο με 1, τότε παραλείπεται». Από τα προαναφερθέντα προκύπτει ότι η ΓΛΩΣΣΑ αποκλείει τη μεταβολή του μετρητή.

Βάσει αυτών "ποτέ δεν θα πρέπει να χρησιμοποιείς εντολές που αλλάζουν την αρχική τιμή, την τελική τιμή, το βήμα ή τη μεταβλητή που ελέγχει την επανάληψη μέσα σε ένα βρόχο ΓΙΑ".

gthal

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

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

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

και το κορυφαίο, κάπου εκεί στη μέση αναφέρει ένα απόσπασμα του βιβλίου:
«... Αν και μερικές γλώσσες προγραμματισμού επιτρέπουν αυτές τις αλλαγές, να τις αποφεύγεις, γιατί οδηγούν σε προγράμματα δυσνόητα και συνήθως λανθασμένα»
και σχολιάζει:
Από το απόσπασμα αυτό προκύπτει ότι η ΓΛΩΣΣΑ δεν περιλαμβάνεται στις «μερικές γλώσσες προγραμματισμού».
Μάλιστα !!!   :D
Τότε και από τη δήλωση "μερικές γλώσσες προγραμματισμού δεν είναι αντικειμενοστραφείς" προκύπτει ότι η ΓΛΩΣΣΑ δεν ανήκει σε αυτές, άρα η ΓΛΩΣΣΑ είναι αντικειμενοστραφής!   :D
Φιλικά,
Γιώργος Θαλασσινός