Αποστολέας Θέμα: "Παράξενοι" Αλγόριθμοι με "Για"  (Αναγνώστηκε 3575 φορές)

DaKnOb

  • Software Developer. Vulnerability Researcher.
  • Θαμώνας
  • ***
  • Μηνύματα: 38
  • Software Developer. Vulnerability Researcher.
    • DaKnOb
"Παράξενοι" Αλγόριθμοι με "Για"
« στις: 25 Ιαν 2013, 03:45:51 μμ »
Καλησπέρα σας.
Μετά από μια συζήτηση με τον καθηγητή μου στο σχολείο, προχώρησα στην υλοποίηση μερικών αλγορίθμων με χρήση "Για" που δεν ακούγονται τόσο ορθοί, παρά την λογικότητα τους.

Έλεγχος Δεδομένων χωρίς δομή επανάληψης μέσα σε Για


Άγνωστος Αριθμός Επαναλήψεων με Για


Ατέρμων Βρόγχος με Για


***

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

Ποιά είναι η γνώμη σας;

petrosp13

  • Ομάδα Νέου Λυκείου
  • *
  • Μηνύματα: 2248
Απ: "Παράξενοι" Αλγόριθμοι με "Για"
« Απάντηση #1 στις: 25 Ιαν 2013, 06:39:00 μμ »
Το βιβλίο αναφέρει οτι δεν είναι καλή τακτική να αλλάζει με εντολή εντός επανάληψης ο μετρητήσ της για και αυτό αρκεί
Παπαδόπουλος Πέτρος
Καθηγητής Πληροφορικής

DaKnOb

  • Software Developer. Vulnerability Researcher.
  • Θαμώνας
  • ***
  • Μηνύματα: 38
  • Software Developer. Vulnerability Researcher.
    • DaKnOb
Απ: "Παράξενοι" Αλγόριθμοι με "Για"
« Απάντηση #2 στις: 25 Ιαν 2013, 09:29:25 μμ »
Το βιβλίο αναφέρει οτι δεν είναι καλή τακτική να αλλάζει με εντολή εντός επανάληψης ο μετρητήσ της για και αυτό αρκεί

Το θέμα είναι πως δουλεύει. Μπορεί να μην είναι καλή πρακτική, και 100% αν ήμουν καθηγητής δεν θα το ανέφερα καν στους μαθητές, αλλά δεν παύει να λειτουργεί. :P

evry

  • Γενικός διαχειριστής
  • *****
  • Μηνύματα: 3185
  • to Iterate is human to Recurse divine
Απ: "Παράξενοι" Αλγόριθμοι με "Για"
« Απάντηση #3 στις: 25 Ιαν 2013, 10:16:27 μμ »
όχι , το θέμα δεν είναι αν δουλεύει, το θέμα είναι αν ρισκάρεις να το γράψεις στις εξετάσεις και να σου κόψουν , ή θα "συμβιβαστείς" ώστε να πετύχεις τη μεγαλύτερη δυνατή βαθμολογία.

Το θέμα είναι πως δουλεύει. Μπορεί να μην είναι καλή πρακτική, και 100% αν ήμουν καθηγητής δεν θα το ανέφερα καν στους μαθητές, αλλά δεν παύει να λειτουργεί. :P

Πάντως το θέμα πραγματικά δεν είναι αν δουλεύει ή όχι. Είναι απλά θέμα ορισμού. Οποιοσδήποτε μπορεί να φτιάξει μια γλώσσα και να μην δουλεύει κάτι τέτοιο. Δεν έχει καμία σημασία αλγοριθμικά. Ο αλγόριθμος δεν αλλάζει. Είναι καθαρά τυπολατρικό θέμα.
What I cannot create I do not understand -- Richard Feynman
http://evripides.mysch.gr

DaKnOb

  • Software Developer. Vulnerability Researcher.
  • Θαμώνας
  • ***
  • Μηνύματα: 38
  • Software Developer. Vulnerability Researcher.
    • DaKnOb
Απ: "Παράξενοι" Αλγόριθμοι με "Για"
« Απάντηση #4 στις: 25 Ιαν 2013, 10:28:42 μμ »
όχι , το θέμα δεν είναι αν δουλεύει, το θέμα είναι αν ρισκάρεις να το γράψεις στις εξετάσεις και να σου κόψουν , ή θα "συμβιβαστείς" ώστε να πετύχεις τη μεγαλύτερη δυνατή βαθμολογία.

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

P.Tsiotakis

  • Ομάδα Νέου Λυκείου
  • *
  • Μηνύματα: 3241
  • agent romanoff you miss me?
    • P.Tsiotakis
Απ: "Παράξενοι" Αλγόριθμοι με "Για"
« Απάντηση #5 στις: 25 Ιαν 2013, 11:32:57 μμ »
και το goto δουλεύει
γιατί αλλάζεις το μετρητή και δε βάζεις ένα Πήγαινε;;;

DaKnOb

  • Software Developer. Vulnerability Researcher.
  • Θαμώνας
  • ***
  • Μηνύματα: 38
  • Software Developer. Vulnerability Researcher.
    • DaKnOb
Απ: "Παράξενοι" Αλγόριθμοι με "Για"
« Απάντηση #6 στις: 25 Ιαν 2013, 11:47:24 μμ »
και το goto δουλεύει
γιατί αλλάζεις το μετρητή και δε βάζεις ένα Πήγαινε;;;
Δεν το μάθαμε πουθενά. Προφανώς αν υποστηρίζεται το GOTO, μπορούμε να κάνουμε έλεγχο δεδομένων και δομές επανάληψης με Αν. Ούτε καν δομή επανάληψης. Και να κάνουμε έλεγχο με Όσο. ;)

P.Tsiotakis

  • Ομάδα Νέου Λυκείου
  • *
  • Μηνύματα: 3241
  • agent romanoff you miss me?
    • P.Tsiotakis
Απ: "Παράξενοι" Αλγόριθμοι με "Για"
« Απάντηση #7 στις: 26 Ιαν 2013, 03:01:46 μμ »
κεφάλαιο 6 σε βιβλίο και τετράδιο μαθητή

ψάξε εκεί που λέει "μαύρο πρόβατο". Το μαύρο (ως σημειολογία) σημαίνει οτι δεν πρέπει να το κάνουμε, όπως το κάπνισμα (επιτρέπεται αλλά είναι επιβλαβές).

DaKnOb

  • Software Developer. Vulnerability Researcher.
  • Θαμώνας
  • ***
  • Μηνύματα: 38
  • Software Developer. Vulnerability Researcher.
    • DaKnOb
Απ: "Παράξενοι" Αλγόριθμοι με "Για"
« Απάντηση #8 στις: 26 Ιαν 2013, 04:29:00 μμ »
κεφάλαιο 6 σε βιβλίο και τετράδιο μαθητή

ψάξε εκεί που λέει "μαύρο πρόβατο". Το μαύρο (ως σημειολογία) σημαίνει οτι δεν πρέπει να το κάνουμε, όπως το κάπνισμα (επιτρέπεται αλλά είναι επιβλαβές).

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

Ή σαν τύπους σαν κι εμένα που μου αρέσει μερικές φορές να κάνω obfuscate τον κώδικα και να γίνει αδιάβαστος

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

  • Γενικός διαχειριστής
  • *****
  • Μηνύματα: 2788
  • Πύργος Ηλείας
Απ: "Παράξενοι" Αλγόριθμοι με "Για"
« Απάντηση #9 στις: 27 Ιαν 2013, 02:03:43 μμ »
Ή σαν τύπους σαν κι εμένα που μου αρέσει μερικές φορές να κάνω obfuscate τον κώδικα και να γίνει αδιάβαστος

Πάντως σχετικά με τη βαθμολόγηση της ΑΕΠΠ, αν ο κώδικας δεν διαβάζεται τότε ο βαθμολογητής πώς θα το αξιολογήσει;

noname

  • Ομάδα διαγωνισμάτων 2013
  • *
  • Μηνύματα: 190
Απ: "Παράξενοι" Αλγόριθμοι με "Για"
« Απάντηση #10 στις: 27 Ιαν 2013, 03:21:13 μμ »
Ενδιαφέροντα όλα αυτά αλλά εξηγούνται πολύ απλά από τη στιγμή που το:
Κώδικας: [Επιλογή]
Για ι από 1 μέχρι Ν
Τέλος_επανάληψης
Αντιστοιχεί στο:
Κώδικας: [Επιλογή]
ι <- 1
Όσο ι<=Ν επανάλαβε
  ι <- ι + 1
Τέλος_επανάληψης

Μου θύμισες έναν μαθητή που έγραφε στους αλγόριθμους κάτι τέτοια:
Π.χ. σε άθροισμα
Κώδικας: [Επιλογή]
S <- (S + X*E(0))/ΣΥΝ(0)
Αν και είναι σωστό δεν νομίζω ότι βοηθάει ιδιαίτερα στην εικόνα του γραπτού σου.


DaKnOb

  • Software Developer. Vulnerability Researcher.
  • Θαμώνας
  • ***
  • Μηνύματα: 38
  • Software Developer. Vulnerability Researcher.
    • DaKnOb
Απ: "Παράξενοι" Αλγόριθμοι με "Για"
« Απάντηση #11 στις: 27 Ιαν 2013, 06:46:05 μμ »
Μου θύμισες έναν μαθητή που έγραφε στους αλγόριθμους κάτι τέτοια:
Π.χ. σε άθροισμα
Κώδικας: [Επιλογή]
S <- (S + X*E(0))/ΣΥΝ(0)
Αν και είναι σωστό δεν νομίζω ότι βοηθάει ιδιαίτερα στην εικόνα του γραπτού σου.

Κι εγώ τέτοια γράφω. Έχω μάθει και χρησιμοποιώ όσο πιο λίγες μεταβλητές γίνεται..

nikolasmer

  • Ομάδα Νέου Λυκείου
  • *
  • Μηνύματα: 548
  • There can be only one...may it be AEPP.
Απ: "Παράξενοι" Αλγόριθμοι με "Για"
« Απάντηση #12 στις: 02 Νοέ 2013, 10:19:22 πμ »
Τώρα κόλλησα.
Κώδικας: [Επιλογή]
κ ← 4
Για i από 1 μέχρι κ με_βήμα 1
  κ ← κ + 1
  Εμφάνισε "*"
Τέλος_επανάληψης
Εμφάνισε κ

Μμμμ... η τελική τιμή παραμένει αναλλοίωτη από την αρχή μέχρι το τέλος. Και δεν αλλοιώνω το βήμα της i μέσα στη Για. Στο τέλος εμφανίζεται 8.
Δηλαδή εδώ λέμε πως η κ στην τελική τιμή της Για είναι By Value ή δεν ισχύει κάτι τέτοιο;
Απ' τα τσακάλια δεν γλυτώνεις μ'ευχές ή παρακάλια
(Κ. Βάρναλης)

Μερεντίτης Νικόλαος
Καθηγητής Πληροφορικής - Φροντιστής

petrosp13

  • Ομάδα Νέου Λυκείου
  • *
  • Μηνύματα: 2248
Απ: "Παράξενοι" Αλγόριθμοι με "Για"
« Απάντηση #13 στις: 02 Νοέ 2013, 10:42:38 πμ »
Εκτός από την μεταβλητή, απαγορεύεται να μεταβάλλεις εντός επανάληψης και την τελική τιμή και το βήμα
Παπαδόπουλος Πέτρος
Καθηγητής Πληροφορικής

nikolasmer

  • Ομάδα Νέου Λυκείου
  • *
  • Μηνύματα: 548
  • There can be only one...may it be AEPP.
Απ: "Παράξενοι" Αλγόριθμοι με "Για"
« Απάντηση #14 στις: 02 Νοέ 2013, 10:43:46 πμ »
ΑΑΑ!!!
Ευχαριστώ!
Απ' τα τσακάλια δεν γλυτώνεις μ'ευχές ή παρακάλια
(Κ. Βάρναλης)

Μερεντίτης Νικόλαος
Καθηγητής Πληροφορικής - Φροντιστής