Συζήτηση για το 3ο θέμα

Ξεκίνησε από tomtoub, 31 Μαΐου 2007, 04:30:50 ΜΜ

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

tomtoub

Αυτό έγραψα εγώ στο τρίτο. Το μόνο παραπανίσιο, που μου φαίνεται δεν έπρεπε να γράψω, είναι το “Ελληνικά:” και “Ξένα:” στην εκτύπωση. Σωστό δεν είναι κατά τ' άλλα?

Κώδικας: Ψευδογλώσσα
Αλγόριθμος Γραμματόσημα
Υπόλοιπο←1500
Eλληνικά←0
Ξένα←0
Διάβασε Τιμή, Προέλευση
Όσο Τιμή<=Υπόλοιπο επανάλαβε
  Υπόποιπο←Υπόποιπο-Τιμή
  Αν προέλευση="Ελληνικό" τότε 
    Eλληνικά←Eλληνικά+1
  Αλλιώς
    Ξένα←Ξένα+1
  Τέλος_αν
  Διάβασε Τιμή, Προέλευση 
Τέλος Επανάληψης
Εκτύπωσε "ΤΕΛΟΣ ΑΓΟΡΩΝ"
ΣυνολικόΠοσό←1500-Υπόλοιπο
Εκτύπωσε ΣυνολικόΠοσό
Εκτύπωσε "Ελληνικά:", Ελληνικά
Εκτύπωσε "Ξένα:", Ξένα
Αν Υπόλοιπο > 0 τότε
  Εκτύπωσε Υπόλοιπο
Αλλιώς
  Εκτύπωσε "ΕΞΑΝΤΛΗΘΗΚΕ ΟΛΟ ΤΟ ΠΟΣΟ"
Τέλος_αν
Τέλος Γραμματόσημα

P.Tsiotakis

Θεωρώ οτι είναι σωστή η λύση σου

το μήνυμα στην εκτύπωση δεν είναι λάθος
και η μεταβλητή ΣυνολικόΠοσό την εκτύπωσες;

Με εκτίμηση, Τσιωτάκης Παναγιώτης

apapag

Γεια σου tomtoub.
Η λύση σου είναι πολύ σωστή, και θα έλεγα και κομψή.

Νάσια Παπαγιάννη
Ηλ/γος Μηχ/κος και Μηχ/κος Υπολογιστών
Νάσια Παπαγιάννη
Ηλ/γος Μηχ/κος και Μηχ/κος Υπολογιστών

boutos3

#3
Αλγόριθμος Θέμα_3
  πλήθος1<-- 0
  πλήθος2<-- 0
  Υ<--1500
  done<--Ψευδής
  Αρχή_Επανάληψης
    Διάβασε Τ,Π
    Αν Τ<=Υ Τότε
       Υ<--Υ-Τ
       Αν Π="ελληνικό" Τότε
           πλήθος1<--πλήθος1+1
       Αλλιώς
           πλήθος2<--πλήθος2+1
       Τέλος_Αν
    Αλλιώς
        Εκτύπωσε "ΤΕΛΟΣ ΑΓΟΡΩΝ"
        done<-- Αληθής
     Τέλος_Αν
  Μέχρις_Ότου done=Αληθής
  Συνολικό_Ποσό<--1500-Υ
  Εκτύπωσε Συνολικό_Ποσό
  Εκτύπωσε πλήθος1,πλήθος2
  Αν Υ<>0 Τότε
    Εκτύπωσε Υ
  Αλλιώς
    Εκτύπωσε "ΕΞΑΝΤΛΗΘΗΚΕ ΟΛΟ ΤΟ ΠΟΣΟ"
  Τέλος_Αν
Τέλος Θέμα_3

Αυτο έκανα σήμερα.Είναι σωστό???

dozb

Μου φαινεται σωστότατο.

Εκτός κι αν κάποιος συνάδελφος βλέπει κατι που δε βλέπω...


dozb

Η απάντησή μου πήγαινε στον tomtoub

apapag

@boutos3
Η λύση σου είναι σωστή... αν και λείπει ένα ΤΕΛΟΣ_ΑΝ (πριν το ΜΕΧΡΙΣ_ΟΤΟΥ) που φαντάζομαι ότι θα το έγραψες στο τετράδιο σου...
Νάσια Παπαγιάννη
Ηλ/γος Μηχ/κος και Μηχ/κος Υπολογιστών

boutos3

Παράθεση από: boutos3 στις 31 Μαΐου 2007, 04:45:29 ΜΜ
Αλγόριθμος Θέμα_3
  πλήθος1<-- 0
  πλήθος2<-- 0
  Υ<--1500
  done<--Ψευδής
  Αρχή_Επανάληψης
    Διάβασε Τ,Π
    Αν Τ<=Υ Τότε
       Υ<--Υ-Τ
       Αν Π="ελληνικό" Τότε
           πλήθος1<--πλήθος1+1
       Αλλιώς
           πλήθος2<--πλήθος2+1
       Τέλος_Αν
    Αλλιώς
        Εκτύπωσε "ΤΕΛΟΣ ΑΓΟΡΩΝ"
        done<-- Αληθής
     Τέλος_Αν
  Μέχρις_Ότου done=Αληθής
  Συνολικό_Ποσό<--1500-Υ
  Εκτύπωσε Συνολικό_Ποσό
  Εκτύπωσε πλήθος1,πλήθος2
  Αν Υ<>0 Τότε
    Εκτύπωσε Υ
  Αλλιώς
    Εκτύπωσε "ΕΞΑΝΤΛΗΘΗΚΕ ΟΛΟ ΤΟ ΠΟΣΟ"
  Τέλος_Αν
Τέλος Θέμα_3

Αυτο έκανα σήμερα.Είναι σωστό???

fragile

 ;D Μου αρέσουν οι λύσεις που ξεφεύγουν από τα τετριμμένα.

:laugh:Μπράβο Παιδιά, μας δείχνεται σε όλους ότι τελικά αξίζει να ασχοληθείς με το μάθημα έστω και για τους λίγους τους 300 του Λεωνίδα ρε γαμώτο (sorry) :police:

Διαβάζω, ακούω και βλέπω λύσεις πέραν των συνηθισμένων και γέλασε το χειλάκι μου λιγάκι.

Μπράβο σε όλα τα παιδιά σήμερα και καλή συνέχεια 

fragile..........

mbathas

Γεια χαρά σε όλους,
Η πρώτη λύση που έδωσα στο θέμα είναι περίπου ίδια με του boutos3 (απλώς αντί για Αρχή_Επανάληψης χρησιμοποίησα Όσο ...... επανάλαβε).
Πάντως αυτό το θέμα το θεωρώ δυσκολότερο από το θέμα 4 καθώς ξεφεύγει λίγο από τα συνηθισμένα.
Πάντως η αίσθηση μου είναι ότι χρόνια-χρονιά τα θέματα γίνονται πιο ποιοτικά.
;)

Αλγόριθμος Θέμα_3
  πλήθος1<-- 0
  πλήθος2<-- 0
  Υ<--1500
  done<--Ψευδής
  Όσο done=ψευδής επανάλαβε
    Διάβασε Τ,Π
    Αν Τ<=Υ Τότε
       Υ<--Υ-Τ
       Αν Π="ελληνικό" Τότε
           πλήθος1<--πλήθος1+1
       Αλλιώς
           πλήθος2<--πλήθος2+1
       Τέλος_Αν
    Αλλιώς
        Εκτύπωσε "ΤΕΛΟΣ ΑΓΟΡΩΝ"
        done<-- Αληθής
     Τέλος_Αν
  Τέλος_Επανάληψης
  Συνολικό_Ποσό<--1500-Υ
  Εκτύπωσε Συνολικό_Ποσό
  Εκτύπωσε πλήθος1,πλήθος2
  Αν Υ<>0 Τότε
    Εκτύπωσε Υ
  Αλλιώς
    Εκτύπωσε "ΕΞΑΝΤΛΗΘΗΚΕ ΟΛΟ ΤΟ ΠΟΣΟ"
  Τέλος_Αν
Τέλος Θέμα_3

Μιχάλης Μπάθας
Μηχανικός Η/Υ Συστημάτων
Καθηγητής Πληροφορικής

clevercitizen

Καλησπέρα κ από εμένα.
Κατ'αρχάς θα ήθελα να ευχαριστήσω όλους εσάς που μέσα από το στέκι με βοηθήσατε κ μου λύσατε αμέτρητες απορίες όλη τη χρονιά. Συνεχίστε έτσι και θα βοηθήσετε και άλλα παιδια.
Να ευχαριστήσω επίσης και τους καθηγητές μου στο σχολείο που και αυτοί με βοήθησαν κ ενδιαφέρθηκαν για μένα.
(Τέλος με τις ευχαριστίες, ούτε oscar να έπαιρνα)

Στο 3ο θέμα έκανα ότι και ο mbathas αλλά με μια μικρή παραλλαγή. Δηλ

      Αλγόριθμος Θέμα_3
  πλήθος1<-- 0
  πλήθος2<-- 0
  Υ<--1500
  done<--Ψευδής
  Όσο done=ψευδής επανάλαβε
    Διάβασε Τ,Π
    Αν Τ<Υ Τότε
       Υ<--Υ-Τ
       Αν Π="ελληνικό" Τότε
           πλήθος1<--πλήθος1+1
       Αλλιώς
           πλήθος2<--πλήθος2+1
   Αλλιώς_αν    Τ=Υ τότε
     Υ<--Υ-Τ
        Αν Π="ελληνικό" Τότε
           πλήθος1<--πλήθος1+1
       Αλλιώς
           πλήθος2<--πλήθος2+1
       Τέλος_Αν
      done<--Αληθής
    Αλλιώς
        Εκτύπωσε "ΤΕΛΟΣ ΑΓΟΡΩΝ"
        done<-- Αληθής
     Τέλος_Αν
  Τέλος_Επανάληψης

Θεώρησα ξεχωριστή περίπτωση όταν η τιμή είναι ίση με το υπόλοιπο  και θεώρησα φυσιολογικό ότι εφόσον δέν έχει  άλλα χρήματα, τελειώνουμε με την όσο χωρίς όμως να εμφανίζουμε κάποιο μήνυμα. Ποιά η γνώμη σας σε αυτό???
ΘΕΛΩ
                ΑΛΛΑΓΗ
                ΕΚΠΑΙΔΕΥΤΙΚΟΥ
                ΣΥΣΤΗΜΑΤΟΣ

evry


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

arisbasil

Μια μαθήτρια έκανε το εξής:

Μ1<--0
Μ2<--0
sum<--0
Όσο sum<=1500 επανάλαβε
  Διάβασε τιμή,προέλευση
  sum<--sum+τιμή
   Υπολ<--1500-sum
    Aν τιμή<Υπολ τότε
          Αν προέλευση='ελληνικό' τότε
             Μ1<--Μ1+1
          αλλιώς
             Μ2<--Μ2+1
          Τέλος_αν
    αλλιώς
      εμφάνισε 'Τέλος αγορών'
    Τέλος_αν
Τέλος_επανάληψης
εμφάνισε sum
  Αν Υπολ<>0 τότε
    εμφάνισε Υπολ
  αλλιώς
    εμφάνισε 'Εξαντλήθηκε...'
  Τέλος_αν

Αν κάποιος είναι βαθμολογητής μπορεί να μου πει πόσες μονάδες από τις 20 θα έβαζε;

Peandbal

Θα έκοβα 2 μοναδες από το παρακάτω λογικό λάθος
...............
Υπολ<--1500-sum
    Aν τιμή<Υπολ τότε
................
και ακόμα 2 μονάδες από τα λάθος αποτελέσματα του αλγορίθμου.

bagelis

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

michalis

αν καποιος δεν εβαζε την επαναληψη να τερματιζει αν η τιμή του γραμματοσημου ήταν μεγαλύτερη απο το υπολοιπο (εμφανιζει μηνυμα για αυτό) αλλα μόνο αν τελειώσει το υπόλοιπο, πόσο θα του κόψουνε?

kara26

#16
Πολλά συγχαρητήρια σε όλους για την καλή δουλειά που γίνεται στο Site. Είναι το πρώτο μου post (ελπίζω όχι τελευταίο) και θέλω να σχολιάσω κάτι σχετικά με το 3ο θέμα. Νομίζω πως η πιο ενδεδειγμένη λύση θα ήταν να γίνει με χρήση λογικής μεταβλητής και αυτό διότι οι λύσεις που έχουν μέχρι στιγμής διατυπωθεί στην τελευταία επανάληψη πρέπει να δώσουμε μια τελευταία «εικονική» δυάδα τιμών εισόδου για να βγούμε από την επανάληψη.

Π.χ. Αν δοθούν διαδοχικά για τιμή γραμματοσήμου  300 και μετά 1200, έπειτα πρέπει να δοθεί και νέα τιμή για διακοπή. Γι’ αυτό λοιπόν προτείνω


Αλγόριθμος Γραμματόσημα
Χρήματα <-- 1500
Αγορά <-- 0
ΠΕ<--0
ΠΞ<--0
Παύση <-- ΨΕΥΔΗΣ
ΑΡΧΗ_ΕΠΑΝΑΛΗΨΗΣ
    ΔΙΑΒΑΣΕ Τιμή, Προ
    ΑΝ Χρήματα >= Τιμή ΤΟΤΕ
          Χρήματα <-- Χρήματα - Τιμή
          Αγορά <-- Αγορά+ Τιμή
          ΑΝ Χρήματα = 0 ΤΟΤΕ
               Παύση <-- ΑΛΗΘΗΣ
          ΤΕΛΟΣ_ΑΝ
          ΑΝ Προ = 'ΕΛ' ΤΟΤΕ
              ΠΕ <-- ΠΕ + 1
          ΑΛΛΙΩΣ
              ΠΞ <-- ΠΞ + 1
          ΤΕΛΟΣ_ΑΝ
    ΑΛΛΙΩΣ
      Παύση <-- ΑΛΗΘΗΣ
    ΤΕΛΟΣ_ΑΝ
  ΜΕΧΡΙΣ_ΟΤΟΥ Παύση=ΑΛΗΘΗΣ
  ΓΡΑΨΕ  'ΤΕΛΟΣ ΑΓΟΡΩΝ'
  ΓΡΑΨΕ 'ΑΓΟΡΕΣ',Αγορά
  ΓΡΑΨΕ 'ΕΛΛΗΝΙΚΑ ΓΡΑΜΜΑΤΟΣΗΜΑ ',ΠΕ
  ΓΡΑΨΕ 'ΞΕΝΑ ΓΡΑΜΜΑΤΟΣΗΜΑ ',ΠΞ
  ΑΝ Χρήματα>0 ΤΟΤΕ
         Περίσσευμα <-- 1500- Αγορά
         ΓΡΑΨΕ 'ΠΕΡΡΙΣΕΥΜΑ ',Περίσσευμα
  ΑΛΛΙΩΣ
        ΓΡΑΨΕ  'ΕΞΑΝΤΛΗΘΗΚΕ ΟΛΟ ΤΟ ΠΟΣΟ'
  ΤΕΛΟΣ_ΑΝ

ΤΕΛΟΣ Γραμματόσημα

Καλημέρα σε όλους
Υ.Γ : Αν έχει γραφτεί και απο άλλον αυτή η εκδοχή ζητώ προκαταβολικά συγγνώμη

ΧΑΡΗΣ

arisbasil

Το 3ο θέμα μου θυμίζει τη λογική και τη φιλοσοφία της άσκησης ΔΣ3 σελ.25 από το τετράδιο εργασιών   :angel:

EleniK

Εμενα μου θύμισε το θέμα με το μαθητη που θέλει να αγοράσει υπολογιστικό συστημα (παλιότερο Πανελληνίων, νομίζω 2002) που επισης ζητούσε αν περισσευαν χρηματα και πόσα
Ελένη Κοκκίνου
Καθηγήτρια Πληροφορικής, ΠΕ19

ppol

Κατά τη γνώμη μου η πλάστιγγα γέρνει προς τη ΔΣ3 (καταναλωτής με αρχικό ποσό .... ευρώ), όπως ήδη αναφέρθηκε. Το ερώτημα για το περίσσευμα βέβαια ταυτίζεται με εκείνη την άσκηση πανελλαδικών (μαθητής και υπολογιστικό σύστημα .... ευρώ).

Υπάρχει μια σημαντική διαφορά ανάμεσα στις 2 ασκήσεις:

Στην ΔΣ3 (όπως και στο φετινό θέμα), κάθε τιμή δίνεται από το πληκτρολόγιο (Διάβασε) συνεπώς αν υπερβαίνει το διαθέσιμο ποσό δε θα (πρέπει να) εκτελεστεί επανάληψη (γι' αυτό θα προτιμήσουμε Όσο ή Αρχή_επανάληψης με εμφωλευμένη Αν).
Εναλλακτικά, αν και όχι τόσο κομψό, αν ξεπεράσουμε το όριο (με Αρχή_επανάληψης ) θα μπορούσαμε να επιστρέψουμε την τελευταία μας αγορά (γενικότερα να επαναφέρουμε τις τιμές των μεταβλητών) μετά το Μέχρις_ότου (Αν ...)

Στην παλαιότερη άσκηση πανελλαδικών έχουμε μεγαλύτερη "ελευθερία κινήσεων" : το αρχικό ποσό που δίνεται στον μαθητή είναι γνωστό από την εκφώνηση (οπότε το εκχωρούμε σε μία μεταβλητή) και εμφανώς όχι αρκετό για να αγοράσει τον υπολογιστή, οπότε εκτός από την Όσο μπορούμε να χρησιμοποιήσουμε την Αρχή_επανάληψης αφού η επανάληψη θα εκτελεστεί τουλάχιστο μία φορά. Το ίδιο ισχύει και για είσοδο από το πληκτρολόγιο. Θέλουμε να ξεπεράσουμε το κόστος του υπολογιστή.

Οι ασκήσεις θα έμοιαζαν περισσότερο αν η εκφώνηση ζητούσε να σταματήσουν οι γονείς να δίνουν λεφτά μία βδομάδα πριν οι οικονομίες του υπερβούν το απαιτούμενο ποσό και στην περίπτωση που αυτό δεν έχει συγκεντρωθεί πόσα πρέπει να δώσουν οι παππούδες  :laugh:


dozb

Λοιπόν, να παραθέσω κι εγώ τη λύση μιας μαθήτριάς μου :

ποσό ← 0
π1 ← 0
π2 ← 0
υπόλοιπο  ← 1500
Οσο υπόλοιπο > 0 επανάλαβε
     Διάβασε τιμη, προέλευση
     Αν τιμή <= υπόλοιπο Τότε
           ποσό ← ποσό + τιμή
           υπόλοιπο ← 1500 - ποσό
           Αν προέλευση = "E" Τότε
               π1 ← π1 + 1
           Aλλιώς
               π2 ← π2 + 1
           Tέλος_Αν
     Αλλιώς
           Γράψε "Τέλος Αγορών"
           υπόλοιπο ← 0
     Τέλος_Αν
Τέλος_Επανάληψης
Γράψε ποσό
Γράψε π1,π2
Αν υπόλοιπο <>  0 Τότε
      Γράψε υπόλοιπο
Αλλιώς
      Γραψε "Εξαντλήθηκε ολο το ποσο"
Τέλος_Αν


Τι λέτε; Πόσο θα κόβατε; (Ελπίζω όχι όλο το β3)

Ευχαριστω ...


Sergio

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

Λογικά πρέπει να χάσει το μισό β3 (2 μονάδες)
Απ τη μια η θητεία μου σε σχολικές αίθουσες: να φλυαρώ - να ελπίζω πως κατι κατάλαβαν - να εξερευνώ - να μαθαίνω. Απ την άλλη, σχεδόν συνομήλικη, η Διδακτική της Πληροφορικής: ερευνά διαδικασίες μάθησης - φλερτάρει με την Ψυχολογία - με καλεί να αφήσω το βλέμμα του Πληροφορικού και να δω με τα μάτια του δασκάλου. Τέκνα των 2, οι απόψεις μου.. (προσαρμοσμένο από τον πρόλογο του βιβλίου "Το μακρόν Φυσική προ του βραχέως διδάσκω" του Ανδρέα Κασσέτα)

dozb

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

Αν απλά είχε παρεμβαλει και την εντολή:

Υπόλοιπο ← 1500 - ποσό

ακριβως πριν τον έλεγχο.. θα ήταν σωστη...
2 μόρια λες ε; ... Ελπίζω... ελπίζω κι εγω τοσο.. Τραβηγμενο δεν ειναι να της το κόψουν όλο;

Ευχαριστω... !!