Επαναληπτικές εξετάσεις Σεπτεμβρίου

Ξεκίνησε από Akis73, 11 Σεπ 2025, 05:46:22 ΜΜ

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

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

Παράθεση από: evry στις 12 Σεπ 2025, 09:49:19 ΠΜΤο Β3 στυγνό copy-paste του γνωστού παλιού θέματος.

Επισυνάπτω ως εικόνες το Θέμα 2α από τις Κανονικές του 2007 και το Β3 από τις Επαναληπτικές του 2025.
Το κύριο πρόγραμμα είναι ολόιδιο. Όχι όμως η συνάρτηση. Στη Συνάρτηση οι τυπικές παράμετροι τροποποιούνται μέσα σε αυτήν. Αν δεν μεριμνήσουμε κατάλληλα αυτό θα προκαλέσει πρόβλημα στη μετατροπή σε Διαδικασία, αφού οι αλλαγές θα περνούν πλέον στο κύριο πρόγραμμα.

Παρόμοιο ζήτημα ήταν το Α4 στις Επαναληπτικές του 2022:
https://drive.google.com/file/d/1AKojPuN-Lh2803BcEFo0-96GMFT78Huh/view

Πιθανώς αυτή την ιδέα σε θέμα να την διατύπωσα για πρώτη φορά εγώ μέσα στο Στέκι το 2009 σε αυτό το post:
https://alkisg.mysch.gr/steki/index.php?topic=1950 . Σε αυτό αναφερόμουν στο  Θέμα 2 του 2007 και πρότεινα ένα τροποποιημένο θέμα που είχε τη συγκεκριμένη ιδέα με τις παραμέτρους! Και είχε αρκετή πλάκα γιατί τότε εκεί "πέσατε να με φάτε" για τις "αιρετικές ιδέες" μου!  ;D Επιτέλους, δικαίωση κύριοι!!!  >:D ;D



evry

Παράθεση από: petrosp13 στις 16 Σεπ 2025, 12:04:11 ΜΜΠοια είναι η δυσκολία του Α5 ακριβώς πέρα από το ότι είναι ένα εντελώς άκυρο κομμάτι θεωρίας;
Έχουν να γράψουν 5-6 λέξεις και να πάρουν 4 μονάδες, μάλλον δώρο το θεωρώ
Οι 2 από τις λέξεις μάλιστα είναι ίδιες με τις άλλες σκοπιές, οπότε ακόμα και κατά τύχη μπορούν να βρεθούν
Δεν είναι θέμα δυσκολίας.
Είναι απαράδεκτο την εποχή της Τεχνητής Νοημοσύνης (και καλά) που ζητάμε κριτική σκέψη από τους μαθητές μας να δεχόμαστε τέτοια απαράδεκτα θέματα.

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

epsilonXi

Εμένα μου αρέσαν όλα!

Νομίζω αυτό το διαγώνισμα θα το κρατήσω αυτούσιο 
-ενώ στα περισσότερα κάνω μικροπαραλλαγές- 
και θα το δίνω όταν θα κάνουμε επανάληψη

petrosp13

Παράθεση από: evry στις 16 Σεπ 2025, 12:57:58 ΜΜΔεν είναι θέμα δυσκολίας.
Είναι απαράδεκτο την εποχή της Τεχνητής Νοημοσύνης (και καλά) που ζητάμε κριτική σκέψη από τους μαθητές μας να δεχόμαστε τέτοια απαράδεκτα θέματα.

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

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

Εγώ έκρινα το επίπεδο δυσκολίας
Υλικού, Γλωσσών Προγραμματισμού, Δομών Δεδομένων, Ανάλυσης Δεδομένων
4 μονάδες δώρο για 7 λέξεις, όταν τον Ιούνιο ζητήθηκε ερώτηση 10 σειρών και μάλιστα υπήρχε και δεύτερη

Θεωρητικά, οι επαναληπτικές πρέπει να έχουν αυξημένο επίπεδο δυσκολίας για να αποφεύγονται οι πονηριές
Παπαδόπουλος Πέτρος
Καθηγητής Πληροφορικής

Akis73

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

Επίσης το σχολικό βιβλίο δεν αναφέρει ότι η παράλειψη δήλωσης μια μεταβλητής είναι συντακτικό λάθος ή όχι;

evry

Παράθεση από: Akis73 στις 22 Σεπ 2025, 01:30:57 ΜΜΓιατί θεωρείτε αντιπαιδαγωγικές τις σκοπιές; Επειδή είναι τελείως άκυρο κομμάτι της θεωρίας; Εγώ πάντως τα τελευταία χρόνια τις έχω δει σε πολλά διαγωνίσματα φροντιστηρίων.

Επίσης το σχολικό βιβλίο δεν αναφέρει ότι η παράλειψη δήλωσης μια μεταβλητής είναι συντακτικό λάθος ή όχι;
Πρώτον οι μαθητές διαβάζουν απέξω αυτή τη βλακεία με τις σκοπιές. Καταλαβαίνουν τι είναι? έχουν τις γνώσεις? Το ότι το βάζουν πολλά φροντιστήρια στα διαγωνίσματα δε μου λέει τίποτα. Ο σκοπός τους είναι να πιάσουν τη θεωρία και να γράψουν καλά οι μαθητές και όχι να καταλάβουν.
Άρα τους βάζουμε να αποστηθίσουν κάτι για το οποίο δεν έχουν ούτε τις γνώσεις ούτε την εμπειρία να το καταλάβουν. Τι παιδαγωγικό ή επιστημονικό υπάρχει σε αυτό?

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

Akis73

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

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

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

evry

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

Akis73

Καταλαβαίνω τι λες, αλλά τι να λέγαμε σφάλμα μεταγλώττισης;

petrosp13

Παράθεση από: evry στις 22 Σεπ 2025, 01:54:13 ΜΜΤο ότι το βάζουν πολλά φροντιστήρια στα διαγωνίσματα δε μου λέει τίποτα. Ο σκοπός τους είναι να πιάσουν τη θεωρία και να γράψουν καλά οι μαθητές και όχι να καταλάβουν.

Γενίκευση
Παπαδόπουλος Πέτρος
Καθηγητής Πληροφορικής

evry

Παράθεση από: Akis73 στις 22 Σεπ 2025, 02:12:01 ΜΜΚαταλαβαίνω τι λες, αλλά τι να λέγαμε σφάλμα μεταγλώττισης;
Το πρόβλημα δεν είναι τι λένε αυτοί που διδάσκουν γιατί δεν έχουν άλλη επιλογή. Θα πουν ότι λέει το βιβλίο. 
Το πρόβλημα αυτοί που έβαλαν τα θέματα. Δεν μπορεί να βάζεις θέμα κάτι το οποίο έχει πρόβλημα.
What I cannot create I do not understand -- Richard Feynman
http://evripides.mysch.gr

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

Από περιέργεια και επειδή ήμουν σε φάση χαλάρωσης είπα να ρωτήσω τα Chat-GPT και Gemini. :D

---------------------------------------------------------------------------------------------------------------
CHAT-GPT:
---------------------------------------------------------------------------------------------------------------
Σε ένα πρόγραμμα που δεν έχει δηλωθεί μια μεταβλητή, το σφάλμα αυτό τι είδους λέμε ότι είναι ?

Αν σε ένα πρόγραμμα γίνει αναφορά σε μια μεταβλητή που δεν έχει δηλωθεί/οριστεί, τότε αυτό θεωρείται:
  • Συντακτικό σφάλμα (compile-time error) σε γλώσσες με στατική δέσμευση τύπων και υποχρεωτική δήλωση μεταβλητών (π.χ. C, Java). Ο μεταγλωττιστής δεν θα αφήσει το πρόγραμμα να τρέξει γιατί η μεταβλητή δεν είναι γνωστή.
  • Λογικό/εκτελεστικό σφάλμα (runtime error) σε γλώσσες με δυναμική δέσμευση μεταβλητών (π.χ. Python, JavaScript). Εκεί το πρόγραμμα τρέχει μέχρι το σημείο που χρειάζεται τη μη δηλωμένη μεταβλητή και τότε εμφανίζει σφάλμα, π.χ.
    NameError
    
    στην Python ή
    ReferenceError
    
    στην JavaScript.
👉 Άρα γενικά το λέμε σφάλμα αδήλωτης μεταβλητής και το κατατάσσουμε είτε ως συντακτικό είτε ως εκτελεστικό, ανάλογα με τη γλώσσα.

Γενικά ποια είναι τα είδη των σφαλμάτων

Γενικά στην επιστήμη των υπολογιστών, τα σφάλματα (errors) σε ένα πρόγραμμα χωρίζονται σε βασικές κατηγορίες:

🔹 1. Συντακτικά σφάλματα (Syntax errors)
  • Εντοπίζονται από τον μεταγλωττιστή (compiler) ή διερμηνευτή (interpreter) κατά την μετάφραση.
  • Προκύπτουν όταν παραβιάζεται η "γραμματική" της γλώσσας προγραμματισμού.
  • Παράδειγμα:
    int x = ;   // λείπει τιμή
    

    ή σε Python:
    if x > 10
        print(x)   # λείπει το ":"
    

🔹 2. Σφάλματα εκτέλεσης (Runtime errors)
  • Συμβαίνουν ενώ το πρόγραμμα τρέχει.
  • Σταματούν την εκτέλεση αν δεν υπάρχει χειρισμός εξαιρέσεων.
  • Παραδείγματα:
    • Διαίρεση με το μηδέν.
    • Πρόσβαση σε πίνακα εκτός ορίων.
    • Αναφορά σε μη δηλωμένη μεταβλητή (σε γλώσσες όπως Python).

🔹 3. Λογικά σφάλματα (Logical errors)
  • Το πρόγραμμα εκτελείται κανονικά, αλλά δίνει λάθος αποτελέσματα.
  • Είναι τα πιο δύσκολα να εντοπιστούν, γιατί δεν παράγεται μήνυμα σφάλματος.
  • Παράδειγμα:
    • Θέλουμε να βρούμε το άθροισμα αριθμών αλλά κατά λάθος υπολογίζουμε το γινόμενο.

🔹 4. Σημασιολογικά σφάλματα (Semantic errors)
  • Παρόμοια με τα λογικά, σχετίζονται με λανθασμένη χρήση εννοιών της γλώσσας.
  • Παράδειγμα: σε C να προσπαθήσουμε να κάνουμε πράξη μεταξύ μεταβλητής χαρακτήρα και δείκτη, ενώ δεν έχει νόημα.

📌 Συνοπτικά:
  • Συντακτικά → λάθος γραμματικής γλώσσας.
  • Εκτέλεσης → προκύπτουν κατά την εκτέλεση.
  • Λογικά → σωστός κώδικας αλλά λάθος αποτελέσματα.
  • (μερικές φορές ξεχωρίζουμε και τα σημασιολογικά).

---------------------------------------------------------------------------------------------------------------
GEMINI:
---------------------------------------------------------------------------------------------------------------

Σε ένα πρόγραμμα που δεν έχει δηλωθεί μια μεταβλητή, το σφάλμα αυτό τι είδους λέμε ότι είναι ?

Είναι ένα σφάλμα χρόνου μεταγλώττισης (compile-time error).



Τι είναι το σφάλμα χρόνου μεταγλώττισης;

Αυτό το είδος σφάλματος συμβαίνει όταν ο μεταγλωττιστής (compiler) ελέγχει τον κώδικα και εντοπίζει κάποιο πρόβλημα πριν εκτελεστεί το πρόγραμμα. Η μη δήλωση μιας μεταβλητής είναι ένα τυπικό παράδειγμα, καθώς ο μεταγλωττιστής δεν μπορεί να καταλάβει τι είναι αυτή η "άγνωστη" λέξη που χρησιμοποιεί ο προγραμματιστής. Ο μεταγλωττιστής σταματά τη διαδικασία και εμφανίζει ένα μήνυμα λάθους.
Σε αντίθεση, τα σφάλματα χρόνου εκτέλεσης (run-time errors) συμβαίνουν όταν το πρόγραμμα τρέχει, όπως για παράδειγμα μια διαίρεση με το μηδέν.

Γενικά ποια είναι τα είδη των σφαλμάτων

Γενικά, τα σφάλματα προγραμματισμού χωρίζονται σε τρεις βασικές κατηγορίες:

  • Σφάλματα Συντακτικού (Syntax Errors): Αυτά είναι τα λάθη που παραβιάζουν τους κανόνες της γλώσσας προγραμματισμού. Ο μεταγλωττιστής (compiler) ή ο διερμηνέας (interpreter) τα εντοπίζει πριν το πρόγραμμα εκτελεστεί. Ένα κλασικό παράδειγμα είναι η παράλειψη ενός ερωτηματικού (;) στο τέλος μιας γραμμής στην C++ ή η λανθασμένη χρήση μιας λέξης-κλειδιού.
  • Σφάλματα Χρόνου Εκτέλεσης (Runtime Errors): Αυτά τα λάθη εμφανίζονται μόνο όταν το πρόγραμμα εκτελείται. Συχνά προκαλούν την απροσδόκητη διακοπή του προγράμματος. Ένα παράδειγμα είναι η διαίρεση με το μηδέν ή η προσπάθεια πρόσβασης σε μια περιοχή μνήμης που δεν ανήκει στο πρόγραμμα.
  • Λογικά Σφάλματα (Logical Errors): Αυτά είναι τα πιο δύσκολα σφάλματα να εντοπιστούν, καθώς το πρόγραμμα εκτελείται χωρίς να εμφανίζει κάποιο μήνυμα λάθους. Το πρόβλημα έγκειται στο ότι ο κώδικας κάνει κάτι διαφορετικό από αυτό που είχε σκοπό ο προγραμματιστής. Το πρόγραμμα λειτουργεί, αλλά παράγει λάθος αποτέλεσμα. Για παράδειγμα, αν θέλετε να υπολογίσετε το μέσο όρο δύο αριθμών και αντί να τους προσθέσετε και να διαιρέσετε με το 2, τους πολλαπλασιάζετε.


Παράδειγμα Λογικού Σφάλματος

Ας υποθέσουμε ότι θέλετε να βρείτε το μέσο όρο δύο αριθμών, α και β. Αντί να γράψετε:
Mεˊσος Όρος=(α+β)/2
γράφετε λανθασμένα:
Mεˊσος Όρος=α∗β/2
Ο κώδικας θα εκτελεστεί κανονικά χωρίς κάποιο μήνυμα λάθους, αλλά το αποτέλεσμα θα είναι τελείως λανθασμένο. Αυτό είναι ένα κλασικό παράδειγμα λογικού σφάλματος.


Ναι αλλά το αρχικό σφάλμα που σε ρώτησα δεν το έβαλες σε κάποια από τις 3  τρεις βασικές κατηγορίες

Χρειάζεται διευκρίνιση. Το αρχικό σφάλμα που ανέφερες, η μη δήλωση μιας μεταβλητής, ανήκει στην κατηγορία των σφαλμάτων συντακτικού (syntax errors).
Ας το δούμε πιο αναλυτικά:

Σφάλματα Συντακτικού (Syntax Errors)

Αυτά τα σφάλματα είναι σαν να παραβιάζεις τους γραμματικούς κανόνες μιας γλώσσας. Όπως δεν μπορείς να γράψεις μια πρόταση στα ελληνικά χωρίς ρήμα, έτσι δεν μπορείς να χρησιμοποιήσεις μια μεταβλητή σε ένα πρόγραμμα χωρίς να την έχεις δηλώσει πρώτα. Ο μεταγλωττιστής (compiler) ή ο διερμηνέας (interpreter) το εντοπίζει αμέσως, πριν καν προσπαθήσει να "τρέξει" τον κώδικα.
Είναι ένας υποκατηγορία των compile-time errors, δηλαδή σφαλμάτων που ανιχνεύονται κατά τη φάση της μεταγλώττισης.
Συνοπτικά:

  • Σφάλμα Συντακτικού: Η μη δήλωση μιας μεταβλητής.
  • Ανίχνευση: Πριν την εκτέλεση του προγράμματος (κατά τη μεταγλώττιση).
Επομένως, το σφάλμα σου ανήκει στη γενική κατηγορία των Σφαλμάτων Συντακτικού, τα οποία είναι μια μορφή Σφαλμάτων Χρόνου Μεταγλώττισης.

pgrontas

Πρόσεξε Νίκο, γιατί οι απαντήσεις του 'ΑΙ' ειδικά εφόσον είναι στα ελληνικά μπορεί να είναι επηρεασμένες (το λέω κομψά) από  τις συζητήσεις στο στέκι και ακόμα χειρότερα από τα βιβλία πληροφορικής που διδάσκουμε >:D >:D  >:D

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




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

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

Παράθεση από: pgrontas στις 22 Σεπ 2025, 09:20:58 ΜΜΠρόσεξε Νίκο, γιατί οι απαντήσεις του 'ΑΙ' ειδικά εφόσον είναι στα ελληνικά μπορεί να είναι επηρεασμένες (το λέω κομψά) από  τις συζητήσεις στο στέκι και ακόμα χειρότερα από τα βιβλία πληροφορικής που διδάσκουμε >:D >:D  >:D


Χα, χα! Αυτό να λέγεται! 

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

evry

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