meteo_xampos
Νεοφερμένος
Ο Χαράλαμπος Καρανδεινός αυτή τη στιγμή δεν είναι συνδεδεμένος. Είναι 46 ετών, Καθηγητής και μας γράφει απο Ιεράπετρα (Λασιθίου). Έχει γράψει 12 μηνύματα.
02-01-11
21:03
H λύση που δόθηκε πιο πάνω, για την εμφάνιση των αριθμών 100, 99, 98, ....,1, 0, 1, 2, 3, ..., 100 ήταν λανθασμένη!!!
Μάλιστα βγάζει σε ατέρμονα βρόγχο... Αυτό συμβαίνει γιατί όταν εκτυπωθεί το 100 για δεύτερη φορά, η τιμή της μεταβλητής
ι παίρνει την τιμή 101, όμως η Για η δεύτερη είναι εμφωλευμένη, και έτσι το ι όταν πάμε στην πρώτη Για, το ι ξεκινά πάλι
από το 100, και εκτυπώνονται και πάλι τα ζητούμενα...
Πιο απλή λύση είναι η παρακάτω...
Αλγόριθμος τάδε
Για ι από 100 μέχρι 0 με_βήμα -1
Εμφάνισε ι
Τέλος_Επανάληψης !έτσι εμφανίζονται οι αριθμοί από 100 μέχρι 0...
Για ι από 1 μέχρι 100
Εμφάνισε ι
Τέλος_επανάληψης !έτσι εμφανίζονται οι υπόλοιποι...
Τέλος τάδε
Μάλιστα βγάζει σε ατέρμονα βρόγχο... Αυτό συμβαίνει γιατί όταν εκτυπωθεί το 100 για δεύτερη φορά, η τιμή της μεταβλητής
ι παίρνει την τιμή 101, όμως η Για η δεύτερη είναι εμφωλευμένη, και έτσι το ι όταν πάμε στην πρώτη Για, το ι ξεκινά πάλι
από το 100, και εκτυπώνονται και πάλι τα ζητούμενα...
Πιο απλή λύση είναι η παρακάτω...
Αλγόριθμος τάδε
Για ι από 100 μέχρι 0 με_βήμα -1
Εμφάνισε ι
Τέλος_Επανάληψης !έτσι εμφανίζονται οι αριθμοί από 100 μέχρι 0...
Για ι από 1 μέχρι 100
Εμφάνισε ι
Τέλος_επανάληψης !έτσι εμφανίζονται οι υπόλοιποι...
Τέλος τάδε
Σημείωση: Το μήνυμα αυτό γράφτηκε 13 χρόνια πριν. Ο συντάκτης του πιθανόν να έχει αλλάξει απόψεις έκτοτε.
meteo_xampos
Νεοφερμένος
Ο Χαράλαμπος Καρανδεινός αυτή τη στιγμή δεν είναι συνδεδεμένος. Είναι 46 ετών, Καθηγητής και μας γράφει απο Ιεράπετρα (Λασιθίου). Έχει γράψει 12 μηνύματα.
01-12-10
10:00
Λοιπόν... Αρχικά διαβάζουμε τα ονόματα των συμμετεχόντων (έστω ον1, ον2)... Και οι δυο παίχτες
ξεκινάνε με 0 πόντους προφανώς (πόντοι1=0, πόντοι2=0), δεν έχει αρχίσει ακόμα το παιχνίδι...
Έπειτα, θα παιχτεί τουλάχιστον ένα παιχνίδι... Άρα σε αυτή την άσκηση, η Αρχή_επανάληψης...Μέχρις_ότου είναι ότι πρέπει...
Ξεκινάμε λοιπόν, διαβάζοντας το όνομα του νικητή και τους πόντους που πήρε (νικητής, βαθμοί)... Αν το όνομα του νικητή είναι ον1, τότε αυξάνουμε τους πόντους του ον1 κατά βαθμοί. Αν το όνομα του νικητή είναι ον2, τότε αυξάνουμε τους πόντους του ον2 κατά βαθμοί. Έπειτα ελέγχουμε αν τελείωσε το παιχνίδι... Το θέμα είναι πώς το ελέγχουμε αυτό... Πρέπει κάποιος από τους δυο παίχτες να έχει φτάσει τους 7
βαθμούς, όμως η διαφορά πρέπει να είναι μεγαλύτερη η ίση από 2 βαθμούς, ή να έχει ξεπεράσει κάποιος από τους παίχτες τους 7 βαθμούς ή και οι δυο, και η διαφορά να είναι μεγαλύτερη ή ίση από 2 βαθμούς... Αν δεν ικανοποιείται κανένα από τα 2 παραπάνω κριτήρια, τότε το παιχνίδι επαναλαμβάνεται...
Μόλις, τελειώσει το παιχνίδι, απλά ελέγχουμε ποιος έχει τους περισσότερους πόντους, ή μπορείς απλά να εμφανίσεις το όνομα του νικητή του τελευταίου παιχνιδιού (νικητής)...
Προσπάθησε με αυτές τις οδηγίες να φτιάξεις το κώδικα... Ουσιαστικά αυτό που περιέγραψα παραπάνω είναι η λύση της άσκησης με ελεύθερο κείμενο...
ξεκινάνε με 0 πόντους προφανώς (πόντοι1=0, πόντοι2=0), δεν έχει αρχίσει ακόμα το παιχνίδι...
Έπειτα, θα παιχτεί τουλάχιστον ένα παιχνίδι... Άρα σε αυτή την άσκηση, η Αρχή_επανάληψης...Μέχρις_ότου είναι ότι πρέπει...
Ξεκινάμε λοιπόν, διαβάζοντας το όνομα του νικητή και τους πόντους που πήρε (νικητής, βαθμοί)... Αν το όνομα του νικητή είναι ον1, τότε αυξάνουμε τους πόντους του ον1 κατά βαθμοί. Αν το όνομα του νικητή είναι ον2, τότε αυξάνουμε τους πόντους του ον2 κατά βαθμοί. Έπειτα ελέγχουμε αν τελείωσε το παιχνίδι... Το θέμα είναι πώς το ελέγχουμε αυτό... Πρέπει κάποιος από τους δυο παίχτες να έχει φτάσει τους 7
βαθμούς, όμως η διαφορά πρέπει να είναι μεγαλύτερη η ίση από 2 βαθμούς, ή να έχει ξεπεράσει κάποιος από τους παίχτες τους 7 βαθμούς ή και οι δυο, και η διαφορά να είναι μεγαλύτερη ή ίση από 2 βαθμούς... Αν δεν ικανοποιείται κανένα από τα 2 παραπάνω κριτήρια, τότε το παιχνίδι επαναλαμβάνεται...
Μόλις, τελειώσει το παιχνίδι, απλά ελέγχουμε ποιος έχει τους περισσότερους πόντους, ή μπορείς απλά να εμφανίσεις το όνομα του νικητή του τελευταίου παιχνιδιού (νικητής)...
Προσπάθησε με αυτές τις οδηγίες να φτιάξεις το κώδικα... Ουσιαστικά αυτό που περιέγραψα παραπάνω είναι η λύση της άσκησης με ελεύθερο κείμενο...
Σημείωση: Το μήνυμα αυτό γράφτηκε 13 χρόνια πριν. Ο συντάκτης του πιθανόν να έχει αλλάξει απόψεις έκτοτε.
meteo_xampos
Νεοφερμένος
Ο Χαράλαμπος Καρανδεινός αυτή τη στιγμή δεν είναι συνδεδεμένος. Είναι 46 ετών, Καθηγητής και μας γράφει απο Ιεράπετρα (Λασιθίου). Έχει γράψει 12 μηνύματα.
24-04-10
17:36
Το όνομα της συνάρτησης δρά ΣΑΝ μεταβλητή. Δεν είναι μεταβλητή. Δεν μπορούμε να το χρησιμοποιούμε και στα δεξιά μιας έκφρασης...
Το σωστό είναι να βάζεις στο όνομα της συνάρτησης αυτό που υπολογίσες (εδώ το άθροισμα του πίνακα) πριν το ΤΕΛΟΣ_ΣΥΝΑΡΤΗΣΗΣ...
Τρέξε το παρακάτω στο Διερμηνευτή να δείς τι συμβαίνει (στην συνάρτηση έβαλα σαν παράμετρο πίνακα αφού έτσι την ορίζουμε)...
Ο Διερμηνευτής βρίσκεται στη διεύθυνση https://users.sch.gr/alkisg/. Κατεβάζεις το exe αρχείο και το τρέχεις...
ΠΡΟΓΡΑΜΜΑ Τάδε
ΜΕΤΑΒΛΗΤΕΣ
ΠΡΑΓΜΑΤΙΚΕΣ: ΠΙΝ[5], Α
ΑΚΕΡΑΙΕΣ: i
ΑΡΧΗ
ΓΙΑ i ΑΠΟ 1 ΜΕΧΡΙ 5
ΔΙΑΒΑΣΕ ΠΙΝ
ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
Α <- ΑΘΡΟΙΣΜΑΠΙΝΑΚΑ(ΠΙΝ)
ΓΡΑΨΕ Α
ΤΕΛΟΣ_ΠΡΟΓΡΑΜΜΑΤΟΣ
ΣΥΝΑΡΤΗΣΗ ΑΘΡΟΙΣΜΑΠΙΝΑΚΑ(ΠΙΝΑΚΑΣ): ΠΡΑΓΜΑΤΙΚΗ
ΜΕΤΑΒΛΗΤΕΣ
ΠΡΑΓΜΑΤΙΚΕΣ: ΠΙΝΑΚΑΣ[5]
ΑΚΕΡΑΙΕΣ: Ι
ΑΡΧΗ
ΑΘΡΟΙΣΜΑΠΙΝΑΚΑ <- 0
ΓΙΑ Ι ΑΠΟ 1 ΜΕΧΡΙ 5
ΑΘΡΟΙΣΜΑΠΙΝΑΚΑ <- ΑΘΡΟΙΣΜΑΠΙΝΑΚΑ(ΠΙΝΑΚΑΣ) + ΠΙΝΑΚΑΣ[Ι]
ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
ΤΕΛΟΣ_ΣΥΝΑΡΤΗΣΗΣ
---------------------------------------------------------------
Η χρήση ονόματος συνάρτησης και στα δεξιά μιας έκφρασης μας οδηγεί σε αναδρομή και αυτό είναι εκτός ύλης (δες και στο κεφάλαιο 10.7). ΑΠΑΓΟΡΕΥΤΕΤΑΙ!!! Μη το κάνετε θα κοπούν μονάδες!!!
Το σωστό είναι να βάζεις στο όνομα της συνάρτησης αυτό που υπολογίσες (εδώ το άθροισμα του πίνακα) πριν το ΤΕΛΟΣ_ΣΥΝΑΡΤΗΣΗΣ...
Τρέξε το παρακάτω στο Διερμηνευτή να δείς τι συμβαίνει (στην συνάρτηση έβαλα σαν παράμετρο πίνακα αφού έτσι την ορίζουμε)...
Ο Διερμηνευτής βρίσκεται στη διεύθυνση https://users.sch.gr/alkisg/. Κατεβάζεις το exe αρχείο και το τρέχεις...
ΠΡΟΓΡΑΜΜΑ Τάδε
ΜΕΤΑΒΛΗΤΕΣ
ΠΡΑΓΜΑΤΙΚΕΣ: ΠΙΝ[5], Α
ΑΚΕΡΑΙΕΣ: i
ΑΡΧΗ
ΓΙΑ i ΑΠΟ 1 ΜΕΧΡΙ 5
ΔΙΑΒΑΣΕ ΠΙΝ
ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
Α <- ΑΘΡΟΙΣΜΑΠΙΝΑΚΑ(ΠΙΝ)
ΓΡΑΨΕ Α
ΤΕΛΟΣ_ΠΡΟΓΡΑΜΜΑΤΟΣ
ΣΥΝΑΡΤΗΣΗ ΑΘΡΟΙΣΜΑΠΙΝΑΚΑ(ΠΙΝΑΚΑΣ): ΠΡΑΓΜΑΤΙΚΗ
ΜΕΤΑΒΛΗΤΕΣ
ΠΡΑΓΜΑΤΙΚΕΣ: ΠΙΝΑΚΑΣ[5]
ΑΚΕΡΑΙΕΣ: Ι
ΑΡΧΗ
ΑΘΡΟΙΣΜΑΠΙΝΑΚΑ <- 0
ΓΙΑ Ι ΑΠΟ 1 ΜΕΧΡΙ 5
ΑΘΡΟΙΣΜΑΠΙΝΑΚΑ <- ΑΘΡΟΙΣΜΑΠΙΝΑΚΑ(ΠΙΝΑΚΑΣ) + ΠΙΝΑΚΑΣ[Ι]
ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
ΤΕΛΟΣ_ΣΥΝΑΡΤΗΣΗΣ
---------------------------------------------------------------
Η χρήση ονόματος συνάρτησης και στα δεξιά μιας έκφρασης μας οδηγεί σε αναδρομή και αυτό είναι εκτός ύλης (δες και στο κεφάλαιο 10.7). ΑΠΑΓΟΡΕΥΤΕΤΑΙ!!! Μη το κάνετε θα κοπούν μονάδες!!!
Σημείωση: Το μήνυμα αυτό γράφτηκε 14 χρόνια πριν. Ο συντάκτης του πιθανόν να έχει αλλάξει απόψεις έκτοτε.
meteo_xampos
Νεοφερμένος
Ο Χαράλαμπος Καρανδεινός αυτή τη στιγμή δεν είναι συνδεδεμένος. Είναι 46 ετών, Καθηγητής και μας γράφει απο Ιεράπετρα (Λασιθίου). Έχει γράψει 12 μηνύματα.
24-04-10
15:15
Πότε έστειλε το υπουργείο τέτοια διευκρίνηση; Μπορείς να δώσεις το link;
Πάντως, αν το γράψεις έτσι
ΣΥΝΑΡΤΗΣΗ ΑΘΡΟΙΣΜΑΠΙΝΑΚΑ(ΠΙΝΑΚΑΣ): ΠΡΑΓΜΑΤΙΚΗ
ΜΕΤΑΒΛΗΤΕΣ
ΠΡΑΓΜΑΤΙΚΕΣ: ΠΙΝΑΚΑΣ[100]
ΑΚΕΡΑΙΕΣ: Ι
ΑΡΧΗ
ΑΘΡΟΙΣΜΑΠΙΝΑΚΑ <- 0
ΓΙΑ Ι ΑΠΟ 1 ΜΕΧΡΙ 100
ΑΘΡΟΙΣΜΑΠΙΝΑΚΑ <- ΑΘΡΟΙΣΜΑΠΙΝΑΚΑ + ΠΙΝΑΚΑΣ[Ι]
ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
ΤΕΛΟΣ_ΣΥΝΑΡΤΗΣΗΣ
...είναι ΛΑΘΟΣ γιατί χρησιμοποιείς το όνομα της συνάρτησης (το οποίο ΔΕΝ είναι μεταβλητή),
και στα δεξιά μιας έκφρασης, και είναι σα να καλείται η συνάρτηση από τον εαυτό της, και
αυτό ονομάζεται αναδρομή στον προγραμματισμό, πράγμα το οποίο (δυστυχώς ) δεν το χετε
στην ύλη σας...
Προσέξετε μη το κάνετε αυτό στις εξετάσεις... Πάντα θα κάνετε τον υπολογισμό που σας
ζητάει η συνάρτηση, και μετά πριν γράψετε ΤΕΛΟΣ_ΣΥΝΑΡΤΗΣΗΣ, στο όνομα της
συνάρτησης αποθηκεύετε αυτό που υπολογίσατε, όπως έδειξε και η δεύτερη (ΣΩΣΤΗ)
λύση...
Πάντως, αν το γράψεις έτσι
ΣΥΝΑΡΤΗΣΗ ΑΘΡΟΙΣΜΑΠΙΝΑΚΑ(ΠΙΝΑΚΑΣ): ΠΡΑΓΜΑΤΙΚΗ
ΜΕΤΑΒΛΗΤΕΣ
ΠΡΑΓΜΑΤΙΚΕΣ: ΠΙΝΑΚΑΣ[100]
ΑΚΕΡΑΙΕΣ: Ι
ΑΡΧΗ
ΑΘΡΟΙΣΜΑΠΙΝΑΚΑ <- 0
ΓΙΑ Ι ΑΠΟ 1 ΜΕΧΡΙ 100
ΑΘΡΟΙΣΜΑΠΙΝΑΚΑ <- ΑΘΡΟΙΣΜΑΠΙΝΑΚΑ + ΠΙΝΑΚΑΣ[Ι]
ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
ΤΕΛΟΣ_ΣΥΝΑΡΤΗΣΗΣ
...είναι ΛΑΘΟΣ γιατί χρησιμοποιείς το όνομα της συνάρτησης (το οποίο ΔΕΝ είναι μεταβλητή),
και στα δεξιά μιας έκφρασης, και είναι σα να καλείται η συνάρτηση από τον εαυτό της, και
αυτό ονομάζεται αναδρομή στον προγραμματισμό, πράγμα το οποίο (δυστυχώς ) δεν το χετε
στην ύλη σας...
Προσέξετε μη το κάνετε αυτό στις εξετάσεις... Πάντα θα κάνετε τον υπολογισμό που σας
ζητάει η συνάρτηση, και μετά πριν γράψετε ΤΕΛΟΣ_ΣΥΝΑΡΤΗΣΗΣ, στο όνομα της
συνάρτησης αποθηκεύετε αυτό που υπολογίσατε, όπως έδειξε και η δεύτερη (ΣΩΣΤΗ)
λύση...
Σημείωση: Το μήνυμα αυτό γράφτηκε 14 χρόνια πριν. Ο συντάκτης του πιθανόν να έχει αλλάξει απόψεις έκτοτε.
meteo_xampos
Νεοφερμένος
Ο Χαράλαμπος Καρανδεινός αυτή τη στιγμή δεν είναι συνδεδεμένος. Είναι 46 ετών, Καθηγητής και μας γράφει απο Ιεράπετρα (Λασιθίου). Έχει γράψει 12 μηνύματα.
18-04-10
19:11
spyros2309 η λύση σου ήταν σωστή σε ότι αφορά τη σκέψη, όμως σε αρκετά σημεία έχει λάθος...
Το πρώτο λάθος και σημαντικότερο είναι η χρήση πινάκων σε άσκηση με άγνωστο πλήθος επαναλήψεων (δε σου λέει πόσα θα είναι τα πακέτα
που θα αγοραστούν)... Δεν ξέρεις από την αρχή το μέγεθος του πίνακα που θα χρησιμοποιήσεις... Έχει μαλλιάσει η γλώσσα μου να λέω στους μαθητές μου ότι δεν πρέπει να χρησιμοποιούμε πίνακες σε ασκήσεις με άγνωστο πλήθος επαναλήψεων, εκτός και αν στο ζητάει η άσκηση... Πολλοί μαθητές όταν αντιμετωπίζουν ασκήσεις που πριν τους πίνακες τις λύνανε, τώρα που ξεκινάνε επαναλήψεις, σε παρόμοιες ασκήσεις βάζουν πίνακες μέσα στη λύση και ας μη χρειάζεται και να μη το λέει η άσκση...
Το δεύτερο λάθος είναι ότι στον πίνακα ΜΠΕ αποθηκεύεις και αλφαριθμητικά (στην πρώτη γραμμή αποθηκεύεις τη μάρκα του κάθε πακέτου)
και αριθμούς (στη δεύτερη γραμμή αποθηκεύεις τη τιμή του κάθε πακέτου), πράγμα το οποίο είναι λάθος μιας και στους πίνακες αποθηκεύουμε
μόνο ενός τύπου δεδομένα...
Το τρίτο λάθος είναι ότι στη Για που κάνεις αναζήτηση μεγίστου, πρέπει να γράψεις Για κ από 2 μέρχι π...
Γενικά, είναι λάθος να χρησιμοποιείς πίνακες σε ασκήσεις με άγνωστο πλήθος επαναλήψεων...
Το πρώτο λάθος και σημαντικότερο είναι η χρήση πινάκων σε άσκηση με άγνωστο πλήθος επαναλήψεων (δε σου λέει πόσα θα είναι τα πακέτα
που θα αγοραστούν)... Δεν ξέρεις από την αρχή το μέγεθος του πίνακα που θα χρησιμοποιήσεις... Έχει μαλλιάσει η γλώσσα μου να λέω στους μαθητές μου ότι δεν πρέπει να χρησιμοποιούμε πίνακες σε ασκήσεις με άγνωστο πλήθος επαναλήψεων, εκτός και αν στο ζητάει η άσκηση... Πολλοί μαθητές όταν αντιμετωπίζουν ασκήσεις που πριν τους πίνακες τις λύνανε, τώρα που ξεκινάνε επαναλήψεις, σε παρόμοιες ασκήσεις βάζουν πίνακες μέσα στη λύση και ας μη χρειάζεται και να μη το λέει η άσκση...
Το δεύτερο λάθος είναι ότι στον πίνακα ΜΠΕ αποθηκεύεις και αλφαριθμητικά (στην πρώτη γραμμή αποθηκεύεις τη μάρκα του κάθε πακέτου)
και αριθμούς (στη δεύτερη γραμμή αποθηκεύεις τη τιμή του κάθε πακέτου), πράγμα το οποίο είναι λάθος μιας και στους πίνακες αποθηκεύουμε
μόνο ενός τύπου δεδομένα...
Το τρίτο λάθος είναι ότι στη Για που κάνεις αναζήτηση μεγίστου, πρέπει να γράψεις Για κ από 2 μέρχι π...
Γενικά, είναι λάθος να χρησιμοποιείς πίνακες σε ασκήσεις με άγνωστο πλήθος επαναλήψεων...
Σημείωση: Το μήνυμα αυτό γράφτηκε 14 χρόνια πριν. Ο συντάκτης του πιθανόν να έχει αλλάξει απόψεις έκτοτε.