Αυτό έγραψα εγώ στο τρίτο. Το μόνο παραπανίσιο, που μου φαίνεται δεν έπρεπε να γράψω, είναι το “Ελληνικά:” και “Ξένα:” στην εκτύπωση. Σωστό δεν είναι κατά τ' άλλα?
Αλγόριθμος Γραμματόσημα
Υπόλοιπο←1500
Eλληνικά←0
Ξένα←0
Διάβασε Τιμή, Προέλευση
Όσο Τιμή<=Υπόλοιπο επανάλαβε
Υπόποιπο←Υπόποιπο-Τιμή
Αν προέλευση="Ελληνικό" τότε
Eλληνικά←Eλληνικά+1
Αλλιώς
Ξένα←Ξένα+1
Τέλος_αν
Διάβασε Τιμή, Προέλευση
Τέλος Επανάληψης
Εκτύπωσε "ΤΕΛΟΣ ΑΓΟΡΩΝ"
ΣυνολικόΠοσό←1500-Υπόλοιπο
Εκτύπωσε ΣυνολικόΠοσό
Εκτύπωσε "Ελληνικά:", Ελληνικά
Εκτύπωσε "Ξένα:", Ξένα
Αν Υπόλοιπο > 0 τότε
Εκτύπωσε Υπόλοιπο
Αλλιώς
Εκτύπωσε "ΕΞΑΝΤΛΗΘΗΚΕ ΟΛΟ ΤΟ ΠΟΣΟ"
Τέλος_αν
Τέλος Γραμματόσημα
Θεωρώ οτι είναι σωστή η λύση σου
το μήνυμα στην εκτύπωση δεν είναι λάθος
και η μεταβλητή ΣυνολικόΠοσό την εκτύπωσες;
Με εκτίμηση, Τσιωτάκης Παναγιώτης
Γεια σου tomtoub.
Η λύση σου είναι πολύ σωστή, και θα έλεγα και κομψή.
Νάσια Παπαγιάννη
Ηλ/γος Μηχ/κος και Μηχ/κος Υπολογιστών
Αλγόριθμος Θέμα_3
πλήθος1<-- 0
πλήθος2<-- 0
Υ<--1500
done<--Ψευδής
Αρχή_Επανάληψης
Διάβασε Τ,Π
Αν Τ<=Υ Τότε
Υ<--Υ-Τ
Αν Π="ελληνικό" Τότε
πλήθος1<--πλήθος1+1
Αλλιώς
πλήθος2<--πλήθος2+1
Τέλος_Αν
Αλλιώς
Εκτύπωσε "ΤΕΛΟΣ ΑΓΟΡΩΝ"
done<-- Αληθής
Τέλος_Αν
Μέχρις_Ότου done=Αληθής
Συνολικό_Ποσό<--1500-Υ
Εκτύπωσε Συνολικό_Ποσό
Εκτύπωσε πλήθος1,πλήθος2
Αν Υ<>0 Τότε
Εκτύπωσε Υ
Αλλιώς
Εκτύπωσε "ΕΞΑΝΤΛΗΘΗΚΕ ΟΛΟ ΤΟ ΠΟΣΟ"
Τέλος_Αν
Τέλος Θέμα_3
Αυτο έκανα σήμερα.Είναι σωστό???
Μου φαινεται σωστότατο.
Εκτός κι αν κάποιος συνάδελφος βλέπει κατι που δε βλέπω...
Η απάντησή μου πήγαινε στον tomtoub
@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
Αυτο έκανα σήμερα.Είναι σωστό???
;D Μου αρέσουν οι λύσεις που ξεφεύγουν από τα τετριμμένα.
:laugh:Μπράβο Παιδιά, μας δείχνεται σε όλους ότι τελικά αξίζει να ασχοληθείς με το μάθημα έστω και για τους λίγους τους 300 του Λεωνίδα ρε γαμώτο (sorry) :police:
Διαβάζω, ακούω και βλέπω λύσεις πέραν των συνηθισμένων και γέλασε το χειλάκι μου λιγάκι.
Μπράβο σε όλα τα παιδιά σήμερα και καλή συνέχεια
Γεια χαρά σε όλους,
Η πρώτη λύση που έδωσα στο θέμα είναι περίπου ίδια με του boutos3 (απλώς αντί για Αρχή_Επανάληψης χρησιμοποίησα Όσο ...... επανάλαβε).
Πάντως αυτό το θέμα το θεωρώ δυσκολότερο από το θέμα 4 καθώς ξεφεύγει λίγο από τα συνηθισμένα.
Πάντως η αίσθηση μου είναι ότι χρόνια-χρονιά τα θέματα γίνονται πιο ποιοτικά.
;)
Αλγόριθμος Θέμα_3
πλήθος1<-- 0
πλήθος2<-- 0
Υ<--1500
done<--Ψευδής
Όσο done=ψευδής επανάλαβε
Διάβασε Τ,Π
Αν Τ<=Υ Τότε
Υ<--Υ-Τ
Αν Π="ελληνικό" Τότε
πλήθος1<--πλήθος1+1
Αλλιώς
πλήθος2<--πλήθος2+1
Τέλος_Αν
Αλλιώς
Εκτύπωσε "ΤΕΛΟΣ ΑΓΟΡΩΝ"
done<-- Αληθής
Τέλος_Αν
Τέλος_Επανάληψης
Συνολικό_Ποσό<--1500-Υ
Εκτύπωσε Συνολικό_Ποσό
Εκτύπωσε πλήθος1,πλήθος2
Αν Υ<>0 Τότε
Εκτύπωσε Υ
Αλλιώς
Εκτύπωσε "ΕΞΑΝΤΛΗΘΗΚΕ ΟΛΟ ΤΟ ΠΟΣΟ"
Τέλος_Αν
Τέλος Θέμα_3
Καλησπέρα κ από εμένα.
Κατ'αρχάς θα ήθελα να ευχαριστήσω όλους εσάς που μέσα από το στέκι με βοηθήσατε κ μου λύσατε αμέτρητες απορίες όλη τη χρονιά. Συνεχίστε έτσι και θα βοηθήσετε και άλλα παιδια.
Να ευχαριστήσω επίσης και τους καθηγητές μου στο σχολείο που και αυτοί με βοήθησαν κ ενδιαφέρθηκαν για μένα.
(Τέλος με τις ευχαριστίες, ούτε 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<-- Αληθής
Τέλος_Αν
Τέλος_Επανάληψης
Θεώρησα ξεχωριστή περίπτωση όταν η τιμή είναι ίση με το υπόλοιπο και θεώρησα φυσιολογικό ότι εφόσον δέν έχει άλλα χρήματα, τελειώνουμε με την όσο χωρίς όμως να εμφανίζουμε κάποιο μήνυμα. Ποιά η γνώμη σας σε αυτό???
Το θέμα ζητάει να τερματίζει πάντα με το συγκεκριμένο μήνυμα πράγμα που δε συμβαίνει στη δική σου περίπτωση. Τι να πω, ίσως να έκοβα 1 μονάδα αλλά σίγουρα όχι παραπάνω. Το πως θα κατανείμει ο βαθμολογητής τις 10 μονάδες σε αυτό το ερώτημα είναι καθαρά δικό του θέμα. Απλά σε κάθε βαθμολογικό υπάρχει μια συννενόηση για τέτοιες περιπτώσεις φαντάζομαι.
Μια μαθήτρια έκανε το εξής:
Μ1<--0
Μ2<--0
sum<--0
Όσο sum<=1500 επανάλαβε
Διάβασε τιμή,προέλευση
sum<--sum+τιμή
Υπολ<--1500-sum
Aν τιμή<Υπολ τότε
Αν προέλευση='ελληνικό' τότε
Μ1<--Μ1+1
αλλιώς
Μ2<--Μ2+1
Τέλος_αν
αλλιώς
εμφάνισε 'Τέλος αγορών'
Τέλος_αν
Τέλος_επανάληψης
εμφάνισε sum
Αν Υπολ<>0 τότε
εμφάνισε Υπολ
αλλιώς
εμφάνισε 'Εξαντλήθηκε...'
Τέλος_αν
Αν κάποιος είναι βαθμολογητής μπορεί να μου πει πόσες μονάδες από τις 20 θα έβαζε;
Θα έκοβα 2 μοναδες από το παρακάτω λογικό λάθος
...............
Υπολ<--1500-sum
Aν τιμή<Υπολ τότε
................
και ακόμα 2 μονάδες από τα λάθος αποτελέσματα του αλγορίθμου.
Το θέμα χρειάζεται μεγάλη προσοχή στη διόρθωση... Δεν πρέπει να κόβονται μονάδες έτσι εύκολα... Πρέπει αυτό να γίνει συγκριτικά, ανάλογα με τι άλλα λάθη υπάρχουν για να πάρει ο κάθε μαθητής αυτό που αξίζει...
αν καποιος δεν εβαζε την επαναληψη να τερματιζει αν η τιμή του γραμματοσημου ήταν μεγαλύτερη απο το υπολοιπο (εμφανιζει μηνυμα για αυτό) αλλα μόνο αν τελειώσει το υπόλοιπο, πόσο θα του κόψουνε?
Πολλά συγχαρητήρια σε όλους για την καλή δουλειά που γίνεται στο Site. Είναι το πρώτο μου post (ελπίζω όχι τελευταίο) και θέλω να σχολιάσω κάτι σχετικά με το 3ο θέμα. Νομίζω πως η πιο ενδεδειγμένη λύση θα ήταν να γίνει με χρήση λογικής μεταβλητής και αυτό διότι οι λύσεις που έχουν μέχρι στιγμής διατυπωθεί στην τελευταία επανάληψη πρέπει να δώσουμε μια τελευταία «εικονική» δυάδα τιμών εισόδου για να βγούμε από την επανάληψη.
Π.χ. Αν δοθούν διαδοχικά για τιμή γραμματοσήμου 300 και μετά 1200, έπειτα πρέπει να δοθεί και νέα τιμή για διακοπή. Γι αυτό λοιπόν προτείνω
Αλγόριθμος Γραμματόσημα
Χρήματα <-- 1500
Αγορά <-- 0
ΠΕ<--0
ΠΞ<--0
Παύση <-- ΨΕΥΔΗΣ
ΑΡΧΗ_ΕΠΑΝΑΛΗΨΗΣ
ΔΙΑΒΑΣΕ Τιμή, Προ
ΑΝ Χρήματα >= Τιμή ΤΟΤΕ
Χρήματα <-- Χρήματα - Τιμή
Αγορά <-- Αγορά+ Τιμή
ΑΝ Χρήματα = 0 ΤΟΤΕ
Παύση <-- ΑΛΗΘΗΣ
ΤΕΛΟΣ_ΑΝ
ΑΝ Προ = 'ΕΛ' ΤΟΤΕ
ΠΕ <-- ΠΕ + 1
ΑΛΛΙΩΣ
ΠΞ <-- ΠΞ + 1
ΤΕΛΟΣ_ΑΝ
ΑΛΛΙΩΣ
Παύση <-- ΑΛΗΘΗΣ
ΤΕΛΟΣ_ΑΝ
ΜΕΧΡΙΣ_ΟΤΟΥ Παύση=ΑΛΗΘΗΣ
ΓΡΑΨΕ 'ΤΕΛΟΣ ΑΓΟΡΩΝ'
ΓΡΑΨΕ 'ΑΓΟΡΕΣ',Αγορά
ΓΡΑΨΕ 'ΕΛΛΗΝΙΚΑ ΓΡΑΜΜΑΤΟΣΗΜΑ ',ΠΕ
ΓΡΑΨΕ 'ΞΕΝΑ ΓΡΑΜΜΑΤΟΣΗΜΑ ',ΠΞ
ΑΝ Χρήματα>0 ΤΟΤΕ
Περίσσευμα <-- 1500- Αγορά
ΓΡΑΨΕ 'ΠΕΡΡΙΣΕΥΜΑ ',Περίσσευμα
ΑΛΛΙΩΣ
ΓΡΑΨΕ 'ΕΞΑΝΤΛΗΘΗΚΕ ΟΛΟ ΤΟ ΠΟΣΟ'
ΤΕΛΟΣ_ΑΝ
ΤΕΛΟΣ Γραμματόσημα
Καλημέρα σε όλους
Υ.Γ : Αν έχει γραφτεί και απο άλλον αυτή η εκδοχή ζητώ προκαταβολικά συγγνώμη
ΧΑΡΗΣ
Το 3ο θέμα μου θυμίζει τη λογική και τη φιλοσοφία της άσκησης ΔΣ3 σελ.25 από το τετράδιο εργασιών :angel:
Εμενα μου θύμισε το θέμα με το μαθητη που θέλει να αγοράσει υπολογιστικό συστημα (παλιότερο Πανελληνίων, νομίζω 2002) που επισης ζητούσε αν περισσευαν χρηματα και πόσα
Κατά τη γνώμη μου η πλάστιγγα γέρνει προς τη ΔΣ3 (καταναλωτής με αρχικό ποσό .... ευρώ), όπως ήδη αναφέρθηκε. Το ερώτημα για το περίσσευμα βέβαια ταυτίζεται με εκείνη την άσκηση πανελλαδικών (μαθητής και υπολογιστικό σύστημα .... ευρώ).
Υπάρχει μια σημαντική διαφορά ανάμεσα στις 2 ασκήσεις:
Στην ΔΣ3 (όπως και στο φετινό θέμα), κάθε τιμή δίνεται από το πληκτρολόγιο (Διάβασε) συνεπώς αν υπερβαίνει το διαθέσιμο ποσό δε θα (πρέπει να) εκτελεστεί επανάληψη (γι' αυτό θα προτιμήσουμε Όσο ή Αρχή_επανάληψης με εμφωλευμένη Αν).
Εναλλακτικά, αν και όχι τόσο κομψό, αν ξεπεράσουμε το όριο (με Αρχή_επανάληψης ) θα μπορούσαμε να επιστρέψουμε την τελευταία μας αγορά (γενικότερα να επαναφέρουμε τις τιμές των μεταβλητών) μετά το Μέχρις_ότου (Αν ...)
Στην παλαιότερη άσκηση πανελλαδικών έχουμε μεγαλύτερη "ελευθερία κινήσεων" : το αρχικό ποσό που δίνεται στον μαθητή είναι γνωστό από την εκφώνηση (οπότε το εκχωρούμε σε μία μεταβλητή) και εμφανώς όχι αρκετό για να αγοράσει τον υπολογιστή, οπότε εκτός από την Όσο μπορούμε να χρησιμοποιήσουμε την Αρχή_επανάληψης αφού η επανάληψη θα εκτελεστεί τουλάχιστο μία φορά. Το ίδιο ισχύει και για είσοδο από το πληκτρολόγιο. Θέλουμε να ξεπεράσουμε το κόστος του υπολογιστή.
Οι ασκήσεις θα έμοιαζαν περισσότερο αν η εκφώνηση ζητούσε να σταματήσουν οι γονείς να δίνουν λεφτά μία βδομάδα πριν οι οικονομίες του υπερβούν το απαιτούμενο ποσό και στην περίπτωση που αυτό δεν έχει συγκεντρωθεί πόσα πρέπει να δώσουν οι παππούδες :laugh:
Λοιπόν, να παραθέσω κι εγώ τη λύση μιας μαθήτριάς μου :
ποσό ← 0
π1 ← 0
π2 ← 0
υπόλοιπο ← 1500
Οσο υπόλοιπο > 0 επανάλαβε
Διάβασε τιμη, προέλευση
Αν τιμή <= υπόλοιπο Τότε
ποσό ← ποσό + τιμή
υπόλοιπο ← 1500 - ποσό
Αν προέλευση = "E" Τότε
π1 ← π1 + 1
Aλλιώς
π2 ← π2 + 1
Tέλος_Αν
Αλλιώς
Γράψε "Τέλος Αγορών"
υπόλοιπο ← 0
Τέλος_Αν
Τέλος_Επανάληψης
Γράψε ποσό
Γράψε π1,π2
Αν υπόλοιπο <> 0 Τότε
Γράψε υπόλοιπο
Αλλιώς
Γραψε "Εξαντλήθηκε ολο το ποσο"
Τέλος_Αν
Τι λέτε; Πόσο θα κόβατε; (Ελπίζω όχι όλο το β3)
Ευχαριστω ...
Εάν διάβασα σωστά τη λύση της μαθήτριας, το μόνο λάθος είναι ότι καταλήγει με υπόλοιπο=0 σε ΚΑΘΕ περίπτωση.
Λογικά πρέπει να χάσει το μισό β3 (2 μονάδες)
Πράγματι...
Μια που δε χρησιμοποίησε λογική μεταβλητή για να τερματισει την επαναληψη, αλλά το υπόλοιπο.... ξέχασε ότι μηδένιζει το υπόλοιπο σε καθε περιπτωση κι ελέγχει μια μεταβλητη που ειναι ετσι κι αλλιώς 0...
Αν απλά είχε παρεμβαλει και την εντολή:
Υπόλοιπο ← 1500 - ποσό
ακριβως πριν τον έλεγχο.. θα ήταν σωστη...
2 μόρια λες ε; ... Ελπίζω... ελπίζω κι εγω τοσο.. Τραβηγμενο δεν ειναι να της το κόψουν όλο;
Ευχαριστω... !!