ΧΡΗΣΗ break

Ξεκίνησε από NIKOS_KALYVAS, 02 Μαρ 2026, 09:18:52 ΜΜ

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

NIKOS_KALYVAS

Μαθητής που υλοποιεί λύση στις πανελλαδικές με χρήση BREAK σε μια επαναληπτική διαδικασία χάνει μονάδες, τις παίρνει όλες ή θεωρειται εκτος ύλης και δεν μπορεί να τη χρησιμοποιήσει;

Παρακαλώ για υπεύθυνη και τεκμηριωμένη απάντηση.


ΝΙΚΟΣ ΚΑΛΥΒΑΣ
Καθηγητής Πληροφορικής (ΠΕ86)

evry

#1
Μα πως μπορεί να χρησιμοποιήσει break αφού σαν εντολή δεν υπάρχει μέσα στο βιβλίο και δεν αναφέρεται στην ύλη?
Βίαιη διακοπή βρόχου μπορεί να γίνει μόνο με return σε συναρτήσεις.
Η break είναι εκτός ύλης.

Για τη χρήση return για βίαιη έξοδο από for δες σελίδες 56, 57, 93 στις Λύσεις Ασκήσεων Βιβλίου Μαθητή και
Τετραδίου Εργασιών Μαθητή.

και
Σελίδα 115 στο βιβλίο της Β τάξης για τη σειριακή αναζήτηση.

Η πρακτική που φαίνεται στην παρακάτω εικόνα είναι αποδεκτή, και μάλιστα από την εμπειρία μου βοηθάει πολύ μαθητές να αποφύγουν τη δυσκολία των σύνθετων συνθηκών ειδικά σε εμφωλευμένους βρόχους.
Μάλιστα το παρακάτω είναι πολύ πιο κοντά στον ψευδοκώδικα και τον τρόπο που σκέφτεται ο άνθρωπος από ότι είναι η  ΓΛΩΣΣΑ των 80s που χρησιμοποιείται στο Γενικό Λύκειο εν έτει 2026. Ουσιαστικά αυτό είναι Αλγοριθμική ενώ αυτό που κάνουν στο Γενικό Λύκειο είναι προγραμματισμός στη χειρότερη, πιο αντιεπιστημονική και αντιπαιδαγωγική μορφή του.

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

pgrontas

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

Αν την έχει χρησιμοποιήσει σωστά γιατί να χάσει μονάδες;

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

Αντίθετα θα πρέπει να μετακυλισουμε το βάρος στους θεματοδοδοτες, ωστε να βάζουν τέτοια θέματα που δεν θα  μπορούν να λύνονται άμεσα με απευθείας χρήση έτοιμων συναρτήσεων. Εκεί θα υπάρχει άνιση μεταχείριση των μαθητών. Τώρα αν τερματιστεί ένα βροχος με return ή break λίγη σημασία έχει (κατά τη γνώμη μου πάντα).

Όσο για την Python 3 το υπουργείο είναι έτοιμο να στέλνει εγκυκλίους για κάθε λογής δράση. Στο να κάνει καμία σοβαρή δουλειά κολλάει πάντα.
Programs must be written for people to read, and only incidentally for machines to execute - Harold Abelson

NIKOS_KALYVAS

Θα συμφωνήσω με τον Ευριπίδη, ότι δεν πρέπει να δωθούν οι μονάδες γιατί έτσι χανεται το κοινό πλαίσιο στη βαθμολόγηση.
Με αυτό τον τρόπο μπορεί καποιος να χρησιμοποίησει sort(),  max() και πληθώρα άλλων έτοιμων συναρτήσεων, μεθόδων και τεχνικών.
Ακόμη και σε αυτό το πλαίσιο θα πρέπει να παρθεί μια απόφαση από πριν.

Εγώ προσωπικά τo μηχανισμό βίαιης διακοπής μιας επαναληπτικής διαδικασίας το διδάσκω με τον παρακάτω τρόπο:

i=0
flag=False
while i<N and not flag:
    ...........
    ...........
    if condition then:
        flag=True
    else:
        i=i+1

Απαραίτητη επίσης κρίνεται η διδασκαλία κατά τη γνώμη μου, της σειριακής μεθόδου αναζήτησης (Β' τάξης) στου μαθητές της Γ' τάξης.
ΝΙΚΟΣ ΚΑΛΥΒΑΣ
Καθηγητής Πληροφορικής (ΠΕ86)

pgrontas

Παράθεση από: NIKOS_KALYVAS στις Χθες στις 11:10:56 ΜΜΜε αυτό τον τρόπο μπορεί καποιος να χρησιμοποίησει sort(),  max() και πληθώρα άλλων έτοιμων συναρτήσεων, μεθόδων και τεχνικών.
Επειδή μάλλον δεν έγινε κατανοητό θα το ξαναγράψω.
Υπάρχει ποιοτική διαφορά μεταξύ της χρήσης συναρτήσεων που βρίσκονται έτοιμες σε βιβλιοθήκες και της χρήσης δομών της γλώσσας προγραμματισμούς (π.χ. break, tuples κλπ).
Στην πρώτη περίπτωση σαφώς υπάρχει 'κλέψιμο', δηλαδή μείωση της δυσκολίας της άσκησης και αποφυγή αυτού που θέλουν να εξετάσουν οι θεματοδότες. Όμως στη δεύτερη περίπτωση, δεν βλέπω κάτι τέτοιο - βλέπω απλά μια διαφορά στην έκφραση των μαθητών η οποία όπως έγραψε ο Ευριπίδης μπορεί να είναι παιδαγωγικά πιο σωστή.
Για να πω και ένα άλλο παράδειγμα: Στην ΑΕΠΠ χρησιμοποιούμε παράλληλους πίνακες γιατί δεν υπάρχει η δομή του ζεύγους (είτε ως εγγραφή είτε ως tuple). Είναι πολύ πιο κοντά στον ανθρώπινο τρόπο σκέψης να έχω σύνολα που περιέχουν σύνθετα δεδομένα (π.χ. όνοματα, βαθμοί) παρά να έχω 'παράλληλα' σύνολα με απλά δεδομένα και να πρέπει να διατηρώ την 'φανταστική' σύνδεση μεταξύ τους.
Νομίζω ότι αν περιοριστούμε σε ένα συγκεκριμένο σύνολο δομών (όχι συναρτήσεων βιβλιοθήκης επαναλαμβάνω) θα χάσουμε τα πλεονεκτήματα της γλώσσας προγραμματισμού και απλά θα μεταφράσουμε την ΑΕΠΠ σε Python.

Σε ό,τι αφορά τις συναρτήσεις θα πρέπει οι θεματοδότες να μην βάζουν ερωτήματα που μπορούν να υλοποιηθούν απευθείας με έτοιμες συναρτήσεις (απλό παράδειγμα:  να μην ζητούν το μέγιστο στοιχείο ενός πίνακα, αλλά κάτι που συσχετίζεται με το μέγιστο, ώστε να αναγκαστεί να τρέξει τον αλγόριθμο). Αυτό ίσως να μην γίνεται, πάντα οπότε ίσως θα ήταν προτιμότερο να υπάρχουν απαγορεύσεις ανά εκφώνηση (π.χ. στην τάδε άσκηση μην χρησιμοποιήσετε την sort), παρά να περιορίσουμε τι διδάσκουμε.
Programs must be written for people to read, and only incidentally for machines to execute - Harold Abelson