Τελικό Επαναληπτικό Διαγώνισμα 2013-2014 από το Στέκι

Ξεκίνησε από Νίκος Αδαμόπουλος, 30 Απρ 2014, 02:14:00 ΠΜ

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

patsimo

#15
Χαίρετε και πάλι,
Ακολουθεί μια λύση για το Θέμα Γ. Φυσικά ενδέχεται να υπάρχουν λάθη (αν και έγινε έλεγχος). Και να μην υπάρχουν, πιθανόν να μην είναι η καλύτερη και σίγουρα δεν είναι η μοναδική. Συγχαρητήρια και πάλι στους συναδέλφους που κουράστηκαν και έβγαλαν τόσο ωραίο αποτέλεσμα. Τους ευχαριστούμε για τον κόπο τους!
Καλό κουράγιο και καλή επιτυχία στα παιδιά
Πάρης

ΠΡΟΓΡΑΜΜΑ ΦΙΔΑΚΙ
ΜΕΤΑΒΛΗΤΕΣ
  ΑΚΕΡΑΙΕΣ: Θ[3], Π[100], νικητής, πρώτος, δεύτερος, τρίτος, παίζει, ζμεγ, ζ, i, θέση_μετά_ζαριά
  ΛΟΓΙΚΕΣ: τέρμα
ΑΡΧΗ
  ΚΑΛΕΣΕ ΠΙΣΤΑ (Π)
  Θ[1] <- 1
  Θ[2] <- 1
  Θ[3] <- 1
  πρώτος <- 1                                                 !πρώτος ο 1 ως εδώ
  ζμεγ <- ΤΥΧΑΙΟΣ (1,6)                                            !ζαριά πρώτου
  ΓΙΑ i ΑΠΟ 2 ΜΕΧΡΙ 3
    ζ <- ΤΥΧΑΙΟΣ(1,6)
    ΑΝ ζ > ζμεγ ΤΟΤΕ
      πρώτος <- i
      ζμεγ <- ζ
    ΤΕΛΟΣ_ΑΝ
  ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
  ΑΝ πρώτος = 1 ΤΟΤΕ
    δεύτερος <- 2
    τρίτος <- 3
  ΑΛΛΙΩΣ_ΑΝ πρώτος = 2 ΤΟΤΕ
    δεύτερος <- 3
    τρίτος <- 1
  ΑΛΛΙΩΣ
    δεύτερος <- 1
    τρίτος <- 2
  ΤΕΛΟΣ_ΑΝ
  τέρμα <- ΨΕΥΔΗΣ
  ΟΣΟ (ΟΧΙ τέρμα) ΕΠΑΝΑΛΑΒΕ
    i <- 1
    ΟΣΟ (ΟΧΙ τέρμα) ΚΑΙ i <= 3 ΕΠΑΝΑΛΑΒΕ             !έναρξη γύρου παιχνιδιού: πρώτος-δεύτερος-τρίτος
      ΑΝ i = 1 ΤΟΤΕ
        παίζει <- πρώτος
      ΑΛΛΙΩΣ_ΑΝ i = 2 ΤΟΤΕ
        παίζει <- δεύτερος
      ΑΛΛΙΩΣ
        παίζει <- τρίτος
      ΤΕΛΟΣ_ΑΝ
      ΓΡΑΨΕ 'Σειρά του παίκτη: ', παίζει
      ζ <- ΤΥΧΑΙΟΣ(1,6)
      θέση_μετά_ζαριά <- Θ[παίζει] + ζ       !θα εξαρτηθεί όμως που θα καταλήξει
      ΑΝ θέση_μετά_ζαριά > 100 ΤΟΤΕ
        θέση_μετά_ζαριά <- 100 - (θέση_μετά_ζαριά - 100)
      ΤΕΛΟΣ_ΑΝ
      ΑΝ θέση_μετά_ζαριά < 100 ΤΟΤΕ      !εδώ και κάτω θα φανεί που θα καταλήξει
        ΑΝ Π[θέση_μετά_ζαριά] = θέση_μετά_ζαριά + 1 ΤΟΤΕ       !απλός προορισμός
          Θ[παίζει] <- θέση_μετά_ζαριά    !δεν θέτουμε Π[θέση_μετά_ζαριά] γιατί θα το πήγαινε μια θέση ακόμα δεξιά χωρίς λόγο
        ΑΛΛΙΩΣ_ΑΝ Π[θέση_μετά_ζαριά] > θέση_μετά_ζαριά + 1  ΤΟΤΕ        !σκάλα
                 Θ[παίζει] <- Π[θέση_μετά_ζαριά]
                 ΓΡΑΨΕ <- 'ΣΚΑΛΑ'
        ΑΛΛΙΩΣ
                 Θ[παίζει] <- Π[θέση_μετά_ζαριά]
                 ΓΡΑΨΕ <- 'ΥΠΟΧΩΡΗΣΗ'
        ΤΕΛΟΣ_ΑΝ
      ΑΛΛΙΩΣ              !εννοείται θέση_μετά_ζαριά=100, μεγαλύτερο αποκλείεται
        Θ[παίζει] <- 100
        τέρμα <- ΑΛΗΘΗΣ
        νικητής <- παίζει
      ΤΕΛΟΣ_ΑΝ
      ΓΡΑΨΕ 'Νέα θέση του παίκτη ', παίζει, ':', Θ[παίζει] 
      i <- i + 1
    ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ              !τέλος για γύρο παικτών πρώτος-δεύτερος-τρίτος
  ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
  ΓΡΑΨΕ 'Νίκησε ο παίκτης ', νικητής, '!!!'
ΤΕΛΟΣ_ΠΡΟΓΡΑΜΜΑΤΟΣ

ΔΙΑΔΙΚΑΣΙΑ ΠΙΣΤΑ(Π)
ΜΕΤΑΒΛΗΤΕΣ
  ΑΚΕΡΑΙΕΣ: Π[100], ι, εν, πρ
  ΛΟΓΙΚΕΣ: οκ
ΑΡΧΗ
  ΓΙΑ ι ΑΠΟ 1 ΜΕΧΡΙ 99
    Π[ι] <- ι + 1
  ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
  Π[100] <- 100
  ΓΙΑ ι ΑΠΟ 1 ΜΕΧΡΙ 8         !έστω διάβασμα πρώτα για σκάλες & μετά για φιδάκια
    ΑΡΧΗ_ΕΠΑΝΑΛΗΨΗΣ
      ΔΙΑΒΑΣΕ εν, πρ
      ΑΝ ι <= 4 ΤΟΤΕ                                                     ! σκάλα
        οκ <- (πρ >= εν + 2)                              !περιορισμός για σκάλα
      ΑΛΛΙΩΣ                                                             !φιδάκι
        οκ <- (πρ < εν)                                  !περιορισμός για φιδάκι
      ΤΕΛΟΣ_ΑΝ
    ΜΕΧΡΙΣ_ΟΤΟΥ  (Π[εν] = εν + 1)  ΚΑΙ  (Π[πρ] = πρ + 1)  ΚΑΙ  οκ
    Π[εν] <- πρ
  ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
ΤΕΛΟΣ_ΔΙΑΔΙΚΑΣΙΑΣ

vistrian

#16
Και μία λύση από εμένα για το ΘΕΜΑ Δ

Στη γραμμή 45 του κωδικα που έχω ανεβάσει η συνθήκη της Αν πρέπει να αλλάξει από

Αν Φ1 = Ψευδής και Φ2 = Ψευδής τότε

σε
Αν  Φ2 = Ψευδής τότε

διότι περνάμε τη λέξη από τον πίνακα στον άλλον μόνο εαν δεν υπάρχει αναντιστοιχία
VR in Computing

vistrian

#17
Οι λύσεις που έδωσαν οι περισσότεροι μαθητές μου για το ΘΕΜΑ Α και ΘΕΜΑ Β


Στο Α5 α) το 2 είναι Λ διορθώστε το
VR in Computing

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

#18
Παράθεση από: vistrian στις 15 Μαΐου 2014, 10:37:17 ΠΜ
Οι λύσεις που έδωσαν οι περισσότεροι μαθητές μου για το ΘΕΜΑ Α και ΘΕΜΑ Β

Η απάντηση στο Α2α, σχετικά με την έκφραση 0<=X<=20, δεν μου φαίνεται πολύ ικανοποιητική...
Συγκεκριμένα λέει:

Επειδή το Συντακτικό: Είναι το σύνολο των κανόνων που καθορίζει αν η διάταξη και η σύνδεση των λέξεων σε μία πρόταση είναι σωστή , η έκφραση  0<=X<=20  το παραβιάζει. Θα έπρεπε για να γίνει αποδεκτό από το συντακτικό της Γλώσσας να ήταν στην παρακάτω μορφή .  Χ>=0 και Χ<=20

Όμως δεν εξηγεί τι ακριβώς παραβιάζεται. Υπάρχει άλλη απάντηση;

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

Παράθεση από: vistrian στις 15 Μαΐου 2014, 10:37:17 ΠΜ
Οι λύσεις που έδωσαν οι περισσότεροι μαθητές μου για το ΘΕΜΑ Α και ΘΕΜΑ Β

Στο A5α:

2. Αν η συνθήκη της εντολής ΑΝ...ΤΟΤΕ του αλγορίθμου αλλάξει σε: Α[λ] > Α[λ-1]
τότε το αποτέλεσμα του αλγορίθμου είναι ο πίνακας Α με τα Ν+1 στοιχεία του σε
φθίνουσα σειρά.

...η απάντηση δεν είναι Σ. Ο σχετικός αλγόριθμος δεν είναι η φυσαλίδα ούτε κάνει κανονική ταξινόμηση. Χρησιμοποιείται μόνο για συγκεκριμένο σκοπό. Δες πιο καλά πώς λειτουργεί και θα καταλάβεις.

patsimo

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

patsimo

#21
Για το θέμα Α2α με το 0<=Χ<=20 θα έλεγα ότι εφόσον έχουμε δυο συγκριτικούς τελεστές (δύο <=) πρώτα γίνεται η σύγκριση αριστερά 0<=Χ που παίρνει μια λογική τιμή, έστω ΑΛΗΘΗΣ. Κατόπιν έχουμε ΑΛΗΘΗΣ <= 20. Δηλαδή έχουμε σύγκριση λογικής τιμής με αριθμητική τιμή, που είναι λάθος γιατί είναι διαφορετικού τύπου τιμές.

Εξάλλου (απλή υπενθύμιση) οι λογικές τιμές ακόμη και μεταξύ τους δεν επιτρέπεται να συμμετέχουν σε συγκρίσεις με <=, όπως και σε καμιά άλλη σύγκριση εκτός του = και <> (στη Γλώσσα πάντα)

vistrian

Παράθεση από: Νίκος Αδαμόπουλος στις 15 Μαΐου 2014, 08:09:09 ΜΜ
Στο A5α:

2. Αν η συνθήκη της εντολής ΑΝ...ΤΟΤΕ του αλγορίθμου αλλάξει σε: Α[λ] > Α[λ-1]
τότε το αποτέλεσμα του αλγορίθμου είναι ο πίνακας Α με τα Ν+1 στοιχεία του σε
φθίνουσα σειρά.

...η απάντηση δεν είναι Σ. Ο σχετικός αλγόριθμος δεν είναι η φυσαλίδα ούτε κάνει κανονική ταξινόμηση. Χρησιμοποιείται μόνο για συγκεκριμένο σκοπό. Δες πιο καλά πώς λειτουργεί και θα καταλάβεις.

Νίκο δίκιο έχεις εγώ έκανα λάθος. Λ απάντησαν οι μαθητές μου, από την ταχύτητα έβαλα Σ
VR in Computing

vistrian

Παράθεση από: Νίκος Αδαμόπουλος στις 15 Μαΐου 2014, 07:05:55 ΜΜ
Η απάντηση στο Α2α, σχετικά με την έκφραση 0<=X<=20, δεν μου φαίνεται πολύ ικανοποιητική...
Συγκεκριμένα λέει:

Επειδή το Συντακτικό: Είναι το σύνολο των κανόνων που καθορίζει αν η διάταξη και η σύνδεση των λέξεων σε μία πρόταση είναι σωστή , η έκφραση  0<=X<=20  το παραβιάζει. Θα έπρεπε για να γίνει αποδεκτό από το συντακτικό της Γλώσσας να ήταν στην παρακάτω μορφή .  Χ>=0 και Χ<=20

Όμως δεν εξηγεί τι ακριβώς παραβιάζεται. Υπάρχει άλλη απάντηση;

Όχι δυστυχώς έτσι απάντησαν οι περισσότεροι. Πάντως εγώ τους έδωσα τα μόρια που έπιανε η ερώτηση. 
VR in Computing

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

Παράθεση από: vistrian στις 15 Μαΐου 2014, 10:37:17 ΠΜ
Οι λύσεις που έδωσαν οι περισσότεροι μαθητές μου για το ΘΕΜΑ Α και ΘΕΜΑ Β

Στο Β3, για τα ομώνυμα κλάσματα, στον υπολογισμό των νέων αριθμητών και του κοινού παρονομαστή, δίνεται η λύση:

ΔΙΑΒΑΣΕ α1, π1, α2, π2
α1 <- α1 * ΕΚΠ(π1,π2) DIV  π1
α2 <- α2 * ΕΚΠ (π1,π2) DIV π2
π <- ΕΚΠ(π1,π2)
ΓΡΑΨΕ α1, α2, π

Δεδομένου ότι τα α1, π1, α2, π2 είναι ακέραιες μεταβλητές, αλλά και ότι το ΕΚΠ(π1,π2) θα διαιρείται ακριβώς με το π1 και το π2, αναρωτιέμαι αν έπρεπε να θεωρηθεί λάθος, τουλάχιστον σε τέτοιο βαθμό ώστε να κοπούν μονάδες, αν οι μαθητές έδιναν την απάντηση:

ΔΙΑΒΑΣΕ α1, π1, α2, π2
α1 <- α1 * ΕΚΠ(π1,π2) /  π1
α2 <- α2 * ΕΚΠ (π1,π2) / π2
π <- ΕΚΠ(π1,π2)
ΓΡΑΨΕ α1, α2, π

Τι λέτε;

vistrian

#25
Παράθεση από: Νίκος Αδαμόπουλος στις 16 Μαΐου 2014, 01:26:59 ΜΜ
Στο Β3, για τα ομώνυμα κλάσματα, στον υπολογισμό των νέων αριθμητών και του κοινού παρονομαστή, δίνεται η λύση:

ΔΙΑΒΑΣΕ α1, π1, α2, π2
α1 <- α1 * ΕΚΠ(π1,π2) DIV  π1
α2 <- α2 * ΕΚΠ (π1,π2) DIV π2
π <- ΕΚΠ(π1,π2)
ΓΡΑΨΕ α1, α2, π

Δεδομένου ότι τα α1, π1, α2, π2 είναι ακέραιες μεταβλητές, αλλά και ότι το ΕΚΠ(π1,π2) θα διαιρείται ακριβώς με το π1 και το π2, αναρωτιέμαι αν έπρεπε να θεωρηθεί λάθος, τουλάχιστον σε τέτοιο βαθμό ώστε να κοπούν μονάδες, αν οι μαθητές έδιναν την απάντηση:

ΔΙΑΒΑΣΕ α1, π1, α2, π2
α1 <- α1 * ΕΚΠ(π1,π2) /  π1
α2 <- α2 * ΕΚΠ (π1,π2) / π2
π <- ΕΚΠ(π1,π2)
ΓΡΑΨΕ α1, α2, π

Τι λέτε;

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

Σε εμένα το έκανε ένας μαθητής και του έδωσα 2 από τις 6 μονάδες, δηλ έπιασα σωστό μόνο το  π <- ΕΚΠ(π1,π2)

Εναλλακτικά Θα μπορούσαν να γράψουν:
ΔΙΑΒΑΣΕ α1, π1, α2, π2
α1 <- α1 * Α_Μ(ΕΚΠ(π1,π2) /  π1)
α2 <- α2 * Α_Μ(ΕΚΠ (π1,π2) / π2)
π <- ΕΚΠ(π1,π2)
ΓΡΑΨΕ α1, α2, π

VR in Computing

evry

Για ένα τέτοιο λάθος δεν μπορούν να κοπούν πάνω από 2 μονάδες (και το 2 ειναι αυστηρο) για τους παρακάτω λόγους:
1) Δεν είναι αυτός ο βασικός διδακτικός στόχος του θέματος
2) Αν για ένα λάθος σε μια εντολή την κόβαμε όλη τότε όλοι θα έπαιρναν στις πανελλήνιες -20%
Δεν βαθμολογούμε γραμμή γραμμή αλλά και τη γενικότερη φιλοσοφία της λύσης
3) Δεν κόβουμε για το ίδιο λάθος 2 φορές.

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

vistrian

Αν επρόκειτο για ΘΕΜΑ Γ ή ΘΕΜΑ Δ και εγώ  θα έκοβα το πολύ 2 μόρια, αλλά επειδή το Θέμα είναι συμπλήρωσης κενού τότε είναι λάθος, όπως και εάν ήταν σε ΘΕΜΑ Σωστού ή Λάθους.

Το ίδιο συμβαίνει και στο Θέμα που αφορά πίνακα τιμών. Όλοι γνωρίζουμε ότι η οδηγία λέει πως εάν ένας μαθητής κάνει ένα αριθμητικό λάθος και οι υπόλοιπες εντολές έχουν εκτελεστεί σωστά με βάση αυτό το λάθος,τότε να αφαιρούμε ΜΟΝΟ ΕΝΑ ΜΟΡΙΟ.

Ερώτηση: Πως βαθμολογείτε όταν η λύση του πίνακα τιμών είναι 10 γραμμές και ο μαθητής αφού κάνει το αριθμητικό λάθος έχει κάνει 15 γραμμές λύση; ΜΟΝΟ -1. Άρα 9/10

Εάν όμως έχει κάνει αριθμητικό λάθος και η λύση του είναι 5 γραμμές τότε τι του δίνεται; πάλι 9/10;

Το ρωτώ γιατί η απάντηση που είχα πάρει ήταν 4/10 να του δώσω.

Άρα εάν είναι να κάνεις λάθος τότε το λάθος να είναι τέτοιο ώστε η λύση να είναι >= της κανονικής.

VR in Computing

vistrian

Παράθεση από: patsimo στις 15 Μαΐου 2014, 08:23:39 ΜΜ
Για το θέμα Α2α με το 0<=Χ<=20 θα έλεγα ότι εφόσον έχουμε δυο συγκριτικούς τελεστές (δύο <=) πρώτα γίνεται η σύγκριση αριστερά 0<=Χ που παίρνει μια λογική τιμή, έστω ΑΛΗΘΗΣ. Κατόπιν έχουμε ΑΛΗΘΗΣ <= 20. Δηλαδή έχουμε σύγκριση λογικής τιμής με αριθμητική τιμή, που είναι λάθος γιατί είναι διαφορετικού τύπου τιμές.

Εξάλλου (απλή υπενθύμιση) οι λογικές τιμές ακόμη και μεταξύ τους δεν επιτρέπεται να συμμετέχουν σε συγκρίσεις με <=, όπως και σε καμιά άλλη σύγκριση εκτός του = και <> (στη Γλώσσα πάντα)

Συμφωνώ απόλυτα. Πολύ ωραία απάντηση

παράδειγμα

Αλγόριθμος ασκ
    Διάβασε χ
        Αν 0<=χ>=10 τότε
            Εμφάνισε "οκ"
        Τέλος_αν
Τέλος ασκ

Οθόνη εκτέλεσης


Δεν είναι δυνατή η πράξη «>=» με τα δοθέντα ορίσματα.
«0<=χ»: λογική έκφραση
«10»: ακέραια σταθερά
VR in Computing

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

Παράθεση από: evry στις 16 Μαΐου 2014, 03:36:48 ΜΜ
Για ένα τέτοιο λάθος δεν μπορούν να κοπούν πάνω από 2 μονάδες (και το 2 ειναι αυστηρο) για τους παρακάτω λόγους:
1) Δεν είναι αυτός ο βασικός διδακτικός στόχος του θέματος
2) Αν για ένα λάθος σε μια εντολή την κόβαμε όλη τότε όλοι θα έπαιρναν στις πανελλήνιες -20%
Δεν βαθμολογούμε γραμμή γραμμή αλλά και τη γενικότερη φιλοσοφία της λύσης
3) Δεν κόβουμε για το ίδιο λάθος 2 φορές.

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

Συμφωνώ απόλυτα!

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

Όμως να κοπούν 4 στις 6 μονάδες για κάτι τέτοιο, δηλαδή να αγνοηθεί τελείως η σκέψη του μαθητή ότι θα πρέπει να πολλαπλασιάσει τον αριθμητή με το ΕΚΠ και να διαιρέσει με τον παρονομαστή, ... δεν το περίμενα με τίποτα!!!

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

Υ.Γ. Πάντως στις λύσεις που θα αναρτηθούν θα προστεθεί ένα σχετικό σχόλιο!