Θέμα Β

Ξεκίνησε από evry, 12 Ιουν 2018, 10:32:50 ΜΜ

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

evry

Μπράβο Φανή, μάλλον βρήκες την πηγή. Έτσι για να θυμούνται οι παλιοί και να μαθαίνουμε και εμείς οι νεώτεροι :D

Παράθεση από: pfan στις 15 Ιουν 2018, 05:29:02 ΜΜ
4.   Το θέμα υπήρχε το ίδιο και το 2002 στα εσπερινά (το επισυνάπτω και δεν ξέρω αν το έχετε αναφέρει πιο πριν γιατί έχω διαβάσει το θέμα διαγώνια) δεν θυμάμαι καλά δεν κατάφερα να βρω τις τότε οδηγίες αλλά είμαι σίγουρη ότι τότε πιάναμε και τα δύο σωστά γιατί στο βαθμολογικό μου είχαμε και εσπερινά.
What I cannot create I do not understand -- Richard Feynman
http://evripides.mysch.gr

pgrontas

Παράθεση από: pfan στις 15 Ιουν 2018, 05:29:02 ΜΜ
Το διάγραμμα είναι αδόμητο και δεν έχει μονοσήμαντη απάντηση. Απαντήσεις με ΜΕΧΡΙΣ_ΟΤΟΥ (με ΑΝ πριν ή μέσα ή και χωρίς) και με goto δεν μπορούν παρά να είναι σωστές.

Συμφωνώ ότι δεν έχει μονοσήμαντη απάντηση. Δεν είναι όμως όλες οι απαντήσεις ισοδύναμες.

Αν απορρίψουμε τις λύσεις με Goto (δεν είμαι σίγουρος ότι πρέπει) παρατηρούμε ότι οι πιο κοντινές στο διάγραμμα είναι η ΟΣΟ και η Μέχρις_ότου (μέσα σε αν). Αυτές πρέπει να πάρουν όλες τις μονάδες. Αν βάλουμε την Αν μέσα σε Μέχρις_ότου παρατηρούμε ότι έχει όλα τα προβλήματα της ΌΣΟ (πχ. ανάποδη συνθηκη) αλλά δεν έχει την ίδια ροή. Ακόμα χειρότερα είναι η μέχρις_ότου χωρίς Αν.

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

Παράθεση από: bagelis στις 15 Ιουν 2018, 01:52:36 ΜΜ
.... αλλά είναι πιθανό (όχι σίγουρο) ότι ο μαθητής που δεν έβαλε ΑΝ το έκανε επίτηδες γιατί είδε ότι δεν αλλάζει το αποτέλεσμα. Αν το δούμε ψυχρά είναι πιο κοντά στην ίδια ακολουθία εντολών από αυτόν που έβαλε και ΑΝ.
(Άσε που και η χρήση του ΑΝ στην πλειονότητα των περιπτώσεων αφορά "μεθοδολογία" και όχι κατανόηση)

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

Παράθεση από: evry στις 15 Ιουν 2018, 11:49:14 ΠΜ
...
Ωστόσο η απάντηση με Όσο ακολουθεί ακριβώς τα ίδια βήματα αν εξαιρέσουμε ότι έχει αλλάξει η συνθήκη.
Όσον αφορά το τι εξετάζει η γνώμη μου είναι η εξής:
 
Εξετάζει αν ο μαθητής έχει πραγματικά καταλάβει κάποια πράγματα όσον αφορά τις βασικές εντολές (επιλογής/ακολουθίας/επανάληψης) ή αν απλά παπαγαλίζει τις μεθοδολογίες που του μαθαίνουν ότι "όταν βλέπεις τη συνθήκη πάνω κάνεις αυτό και όταν βλέπεις τη συνθήκη κάτω κάνεις αυτό".
...
Το μόνο για το οποίο είμαι σίγουρος είναι ότι οι μαθητές που απάντησαν στο θέμα αυτό με Όσο έχουν υψηλότερο βαθμό κατανόησης από όσους απάντησαν με Μέχρις_ότου και πρέπει να πάρουν περισσότερες μονάδες βάσει αυτού που ζητάει η εκφώνηση.

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





Programs must be written for people to read, and only incidentally for machines to execute - Harold Abelson

BackToTheFuture

Παράθεση από: pgrontas στις 15 Ιουν 2018, 10:00:30 ΜΜ
Αν απορρίψουμε τις λύσεις με Goto (δεν είμαι σίγουρος ότι πρέπει)
Από τη στιγμή που την κωδικοποίηση την ζητάει σε ΓΛΩΣΣΑ , η οποία από όσο ξέρω δεν υποστηρίζει Goto, νομίζω ότι κάτι πρέπει να χαθεί.

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

bugman

Αν είναι θέμα η συνθήκη να είναι ίδια και όχι η ανάστροφη (αν και δεν νομίζω ότι το διάγραμμα ροής υποχρεώνει την υλοποίηση να χρησιμοποιεί ίδιες εκφράσεις αν αυτές δεν αλλάζουν την ουσία)
Το παρακάτω πιστεύω ότι είναι το πιο ολοκληρωμένο, γιατί αποδίδει επακριβώς τα βήματα (αν και έχει την χρήση μιας σημαίας - flag-, ως μεταβλητής τύπου λογική - boolean).
Γενικά όπου δεν υπάρχει GOTO αναγκαστικά το ξεπερνάει κανείς με δομή επανάληψης και μια μεταβλητή ως σημαία. Άλλος τρόπος δεν υπάρχει!


ΠΡΑΓΜΑΤΙΚΕΣ Α, Σ
ΛΟΓΙΚΗ ΟΚ
ΟΚ<-ΨΕΥΔΕΣ
ΔΙΑΒΑΣΕ Σ
ΑΡΧΗ_ΕΠΑΝΑΛΗΨΗΣ
ΔΙΑΒΑΣΕ Α
ΑΝ Α=0 ΤΟΤΕ
ΟΚ<-ΑΛΗΘΕΣ
ΑΛΛΙΩΣ
Σ<-Σ+Α
ΤΕΛΟΣ_ΑΝ
ΜΕΧΡΙΣ_ΟΤΟΥ ΟΚ
ΓΡΑΨΕ Σ

bagelis

#124
Παράθεση από: pgrontas στις 15 Ιουν 2018, 10:00:30 ΜΜ
Κατά τη γνώμη μου αυτή είναι πολύ σπάνια περίπτωση. Ακόμα όμως και αν ισχύει δεν κατάλαβε ότι σημασία έχει η ροή και όχι το αποτέλεσμα, που το κατάλαβε όποιος έκανε κάποια από τις άλλες λύσεις, όπως σωστά λέει ο Ευριπίδης.
Δεν πιστεύω ότι είναι τόσο σπάνια περίπτωση.
Ας δούμε τη ροή των εντολών του ΔΡ:
Διαβάζει
Ελέγχει κάτι
Προσθέτει
και όλο αυτό επαναλαμβάνεται.

Όταν το κάνεις με μέχρισ_ότου χωρίς αν:
Διαβάζει
Προσθέτει
Ελέγχει κάτι
Όταν το κάνεις με μέχρισ_ότου με αν
διαβάζει
ελέγχει κάτι
προσθέτει
ελέγχει κάτι


Δεν μπορώ να καταλάβω γιατί η λύση με μέχρισ_ότου και αν είναι καλύτερη. βαστάει τη σειρά προσθέτοντας όμως έναν έλεγχο ακόμα. Εκτελεί την ίδια ακολουθία εντολών? ΟΧΙ
εκτός αν φτάνουμε στο συμπέρασμα ότι η φράση "εκτελεί την ίδια ακολουθία εντολών (βημάτων)" σημαίνει ότι πειράζει λιγότερο να έχεις προσθέσει και άλλες εντολές.


Υ.Γ. Ακόμα και η λύση με ΟΣΟ δεν εκτελεί την ίδια ακριβώς ακολουθία εντολών αφού η συνθήκη αντιστρέφεται. Απλά είναι μικρότερη η αλλαγή αυτή.
Υ.Γ.2. Τελευταία σκέψη: Το αληθινό ερώτημα ίσως να είναι: στην φράση "εκτελεί την ίδια ακολουθία εντολών (βημάτων)" τι πειράζει περισσότερο και τι πειράζει λιγότερο. Γιατί κάποια αλλαγή σίγουρα χρειάζεται.

Κωστας τζιαννης

Για εμενα μια σωστη εκφωνηση σε οποιοδηποτε διαγραμμα ροης ειναι η εξης:
Να μετατραπει σε ψευδοκωδικα το διαγραμμα ροης που βλεπετε ωστε να παραγει τα ιδια τελικα αποτελεσματα και να χρησιμοποιει τα ιδια ειδη δομων που φαινονται στο διαγραμα ροης(ακολουθιας,επιλογης,επαναληψης)

kyriakos208

Το εμφάνισε αν το αφήσουμε έτσι πειράζει?  Αντί να βάλουμε Γράψε

P.Tsiotakis

#127
Κατά τη γνώμη μου δεν υπάρχει αδόμητο διάγραμμα ροής. Στο διάγραμμα ροής απλά ενώνονται με βελάκια εντολές/βήματα. Αδόμητη μπορεί να είναι μόνο κάποια κωδικοποίηση.

Το διάγραμμα ροής του Β2 ουσιαστικά σε ελεύθερο κείμενο εκτελεί τα βήματα (όπως περιγράφει και ο Βαγγέλης):

Είσοδος Σ
Είσοδος Α
Έλεγχος Α για συνέχεια/τερματισμό
Εκχώρηση στο Σ
Είσοδος Α
Έλεγχος Α για συνέχεια/τερματισμό
Εκχώρηση στο Σ
...
Έλεγχος Α για συνέχεια/τερματισμό
Εκχώρηση στο Σ
Έλεγχος Α για συνέχεια/τερματισμό
Έξοδος Σ (όταν ο έλεγχος οδηγήσει εκεί)

Κωδικοποίηση που εκτελεί ακριβώς την ίδια ακολουθία εντολών/βημάτων είναι:

Διάβασε Σ
Διάβασε Α
Όσο όχι Α=0 επανάλαβε
    Σ <- Σ + Α
    Διάβασε Α
Τέλος_επανάληψης
Εμφάνισε Σ

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

Μια κωδικοποίηση όμως, που δεν εκτελεί ακριβώς την ίδια ακολουθία βημάτων είναι:

Διάβασε Σ
Αρχή_επανάληψης
    Αν όχι Α=0 τότε
        Διάβασε Α
        Σ <- Σ + Α
    Τέλος_αν
Μέχρις_οτου Α=0
Εμφάνισε Σ

alkisg

#128
Παράθεση από: Παναγιώτης Τσιωτάκης στις 16 Ιουν 2018, 09:41:30 ΠΜ
Κατά τη γνώμη μου δεν υπάρχει αδόμητο διάγραμμα ροής. Στο διάγραμμα ροής απλά ενώνονται με βελάκια εντολές/βήματα. Αδόμητη μπορεί να είναι μόνο κάποια κωδικοποίηση.

Παναγιώτη, αφιερωμένο: Conversion of unstructured flow diagrams to structured form (1976).

Το αποτέλεσμα των σχετικών συζητήσεων 50 χρόνια πριν, συνοψίζεται στο Structured program theorem: The structured program theorem proved that the goto statement is not necessary to write programs; ...with the caveat that code duplication and additional variables may need to be introduced.

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

Νομίζω ότι οι υπέρμαχοι της GOTO, που ισχυρίζονταν ότι ο δομημένος ήταν χάλι γιατί τους υποχρέωνε να έχουν μια ΑΝ παραπάνω, θα νιώθουν δικαιωμένοι διαβάζοντας το θέμα Β...  :D

(οκ οκ τα παραείπα λίγο, αλλά νομίζω είναι καιρός να σταματήσουν να μπαίνουν τέτοια θέματα!!!)

P.Tsiotakis

αδόμητος είναι ο αντίστοιχος κωδικας

το θέμα κατά τη γνώμη μου δεν ειχε να κανει με αδομητο/δομημένο
είναι η σειρά βημάτων ανεξαρτήτως πλήθους

ευχαριστω για την αφιέρωση Άλκη ..

alkisg

Το "αδόμητο" δεν έχει να κάνει με την αναπαράσταση. Και το διάγραμμα και ο αντίστοιχος κώδικας (προφανώς με GOTO) είναι αδόμητα γιατί δεν ακολουθούν τα γνωστά control flows του δομημένου προγραμματισμού.

Το ερώτημα είναι γιατί εν έτει 2018 βάζουν ακόμα διαγράμματα/προγράμματα με GOTO στις πανελλαδικές...
Αν θέλουν να εξετάσουν τη σειρά βημάτων, να το κάνουν σε δομημένο διάγραμμα όπου υπάρχει ακριβής μετατροπή.

Να πω κι άλλα;
Θα βάζαμε θέμα "μετατρέψτε το τάδε πρόγραμμα με GOTO σε δομημένο"; Αν όχι, γιατί να βάλουμε αδόμητο διάγραμμα;

Αν οι εντολές που επαναλαμβάνουμε δεν ήταν μία αλλά 100, τότε ποια λύση θα ήταν προτιμητέα; Ο διπλασιασμός 100 εντολών ή η ΑΝ; Το Ο(1) δεν μας λέει τίποτα σαν επιστήμονες;

petrosp13

Παράθεση από: alkisg στις 16 Ιουν 2018, 10:33:51 ΠΜ
Αν οι εντολές που επαναλαμβάνουμε δεν ήταν μία αλλά 100, τότε ποια λύση θα ήταν προτιμητέα; Ο διπλασιασμός 100 εντολών ή η ΑΝ; Το Ο(1) δεν μας λέει τίποτα σαν επιστήμονες;

To πιο εύστοχο ποστ (κατά την γνώμη μου)..
Παπαδόπουλος Πέτρος
Καθηγητής Πληροφορικής

pgrontas

Παίδες ο διπλασιασμός οσωνδηποτε εντολών δεν αλλάζει την τάξη του αλγορίθμου. Μπορεί να είναι άκομψο, να οδηγήσει σε λάθη, να αυξήσει τον χρόνο εκτέλεσης, αλλά την τάξη Πολυπλοκότητας δεν την αλλάζει.  :police:
Programs must be written for people to read, and only incidentally for machines to execute - Harold Abelson

evry

Παράθεση από: alkisg στις 16 Ιουν 2018, 09:47:01 ΠΜ
Παναγιώτη, αφιερωμένο: Conversion of unstructured flow diagrams to structured form (1976).


Άλκη για δες λίγο τον σύνδεσμο που παραθέτεις, κάτι σου ξέφυγε στο copy/paste.

Το βρήκα με αναζήτηση στο google και το ανεβάζω ως επισύναψη γιατί είναι σημαντικό.

που το ξέθαψες...
What I cannot create I do not understand -- Richard Feynman
http://evripides.mysch.gr

alkisg

Παράθεση από: pgrontas στις 16 Ιουν 2018, 11:39:06 ΠΜ
Παίδες ο διπλασιασμός οσωνδηποτε εντολών δεν αλλάζει την τάξη του αλγορίθμου. Μπορεί να είναι άκομψο, να οδηγήσει σε λάθη, να αυξήσει τον χρόνο εκτέλεσης, αλλά την τάξη Πολυπλοκότητας δεν την αλλάζει.  :police:

Παναγιώτη το ίδιο λέμε, είτε διπλασιάσεις μια Διάβασε, είτε 100 εντολές, είτε μία ΑΝ, δεν αλλάζει η πολυπλοκότητα του αλγορίθμου και δεν πρέπει να ασχολούμαστε με αυτό.
Οι GOTO-ίστες φωνάζανε ότι δεν τους αρέσει ο δομημένος γιατί χρειάζεται μια ΑΝ παραπάνω και τους κάνει το πρόγραμμα πιο αργό.
Στη συνέχεια οι καλοί μας επιστήμονες όρισαν την πολυπλοκότητα και όλοι οι αλγόριθμοι εντός της ίδιας τάξης θεωρήθηκαν ισοδύναμοι.
Μετά στην ΑΕΠΠ βγάλαμε την πολυπλοκότητα επειδή μας ήταν δύσκολη.
Και τέλος, 50 χρόνια μετά, ξαναφωνάζουμε για την παραπάνω ΑΝ κατά τη μετατροπή από GOTO σε δομημένο... μπράβο μας.  :-[

Ο λόγος που επιμένω είναι "να μην κόβονται μονάδες σε λύσεις εντός της ίδιας πολυπλοκότητας". Είναι εντελώς αντιεπιστημονικό. Από την μία να μην διδάσκουμε πολυπλοκότητα και από την άλλη να κόβουμε για Ο(1).

Ευριπίδη thanks διόρθωσα τον σύνδεσμο.