Καλησπέρα
Ανοίγω αυτό το thread με σκοπό μια συζήτηση σχετικα με το τι θεωρούμε ως ασκήσεις αυξημένης αλγοριθμικής δυσκολίας στις Δομές Επανάληψης.
Με αφορμή το 3ο Θέμα του 2007 Γενικά Λύκεια ήρθε η εμπνευση για την άσκηση στο επισυναπτόμενο αρχείο. Παραθέτω και μια λύση της την οποία ομως σχημάτισα πρόχειρα οπότε μπορεί να περιέχει λάθη.
Το βράδυ θα ποστάρω και μερικές ακόμη τις οποίες θεωρώ ως αυξημένης δυσκολίας αλλά δεν είναι δικές μου δημιουργίες :angel: οπότε θα παραθέσω και τις πηγές.
Το άνω όριο δυσκολίας το δείχνει το τετράδιο μαθητή. Ξεχωρίζω σαν ασκήσεις την ανάλυση αριθμού σε πρώτους παράγοντες και το ανάπτυγμα του ημιτόνου και συνημιτόνου σε δυναμοσειρά. Το θέμα του 2007 έχει επίσης την αφετηρία του στο τετράδιο μαθητή.
ευχαριστώ για την απάντηση !
καλησπέρα κ από εμένα.
κάνω την παρθενική εμφάνιση στο ΣΤΕΚΙ και στέλνω αυτό το πρόγραμμα.
Είναι στην ίδια φιλοσοφία με το δικό σου.
Τρεις Ασκήσεις που θεωρώ δύσκολες και κρύβουν σημαντικούς διδακτικούς στόχους όσον αφορά τον προγραμματισμό
1. Να γίνει αλγόριθμος ο οποίος θα διαβάζει αριθμούς μέχρι να δοθεί 0 και θα εμφανίζει τον αριθμό που δόθηκε τις περισσότερες συνεχόμενες φορές
2. Να γίνει αλγόριθμος ο οποίος θα διαβάζει 100 αριθμούς και θα ελέγχει αν αποτελούν διαδοχικούς όρους αριθμητικής προόδου
3. Να γίνει αλγόριθμος ο οποίος θα διαβάζει αριθμούς και θα ελέγχει αν αποτελούν διαδοχικούς όρους της ακολουθίας Fibonacci. Ο αλγόριθμος θα σταματάει όταν διαπιστώσει ότι η ακολουθία δεν είναι Fibonacci ή όταν δοθεί ο αριθμός -1.
Προφανώς θα πρέπει να δοθεί μια σημείωση στην οποία να εξηγούνται οι έννοιες της αριθμητικής προόδου και της ακολουθίας Fibonacci
Παράθεση από: ALEXANDROS LIAPIS στις 17 Δεκ 2010, 03:00:46 ΜΜ
καλησπέρα κ από εμένα.
κάνω την παρθενική εμφάνιση στο ΣΤΕΚΙ και στέλνω αυτό το πρόγραμμα.
Είναι στην ίδια φιλοσοφία με το δικό σου.
ΔΕΝ Μπορώ να καταλάβω τη δυσκολία του προγράμματος αυτού...
Παράθεση από: evry στις 17 Δεκ 2010, 05:23:29 ΜΜ
Τρεις Ασκήσεις που θεωρώ δύσκολες και κρύβουν σημαντικούς διδακτικούς στόχους όσον αφορά τον προγραμματισμό
1. Να γίνει αλγόριθμος ο οποίος θα διαβάζει αριθμούς μέχρι να δοθεί 0 και θα εμφανίζει τον αριθμό που δόθηκε τις περισσότερες συνεχόμενες φορές
2. Να γίνει αλγόριθμος ο οποίος θα διαβάζει 100 αριθμούς και θα ελέγχει αν αποτελούν διαδοχικούς όρους αριθμητικής προόδου
3. Να γίνει αλγόριθμος ο οποίος θα διαβάζει αριθμούς και θα ελέγχει αν αποτελούν διαδοχικούς όρους της ακολουθίας Fibonacci. Ο αλγόριθμος θα σταματάει όταν διαπιστώσει ότι η ακολουθία δεν είναι Fibonacci ή όταν δοθεί ο αριθμός -1.
Προφανώς θα πρέπει να δοθεί μια σημείωση στην οποία να εξηγούνται οι έννοιες της αριθμητικής προόδου και της ακολουθίας Fibonacci
Οντως έχουν αυξημένη αλγοριθμική δυσκολία και διδακτικούς στόχους και οι 3 ασκήσεις που δίνεις.
Δημιούργησα μια γρήγορη λύση στο χέρι που νομίζω πως δουλευει
Θα ήθελα να ακουσω την αποψη σας
Αλγόριθμος test
Διάβασε αριθμ
max_συχνότητα ← -1
Οσο αριθμ <>0 επανάλαβε
προηγούμενος← αριθμ
διαβασε αριθμ
συχν← 0
Οσο προηγούμενος=αριθμ επανάλαβε
συχν← συχν+1
Αν συχν >max_συχνότητα τότε
max_συχνότητα ← συχν
στοχος← αριθμ
Τέλος_αν
διάβασε αριθμ
Τέλος_Επανάληψης
Τέλος_Επανάληψης
Γράψε στοχος
Τέλος Test
Οσο για την άσκηση του συναδέλφου Αλέξανδρου δυστυχώς δεν μπορώ να ανοίξω το αρχείο :-(
Θα ήθελα επίσης να ακούσω την αποψή σας και για την δική μου άσκηση στο επισυναπτόμενο αρχείο. Προσπάθησα να την δημιουργήσω με την λογικη του 3ου και 4ου θέματος των πανελληνίων.
ευχαριστώ
Η λύση μου φαίνεται σωστή, απλά θα το προτιμούσα με μια μόνο επανάληψη, δηλαδή χωρίς να χρησιμοποιείς και 2η Όσο....Επανάλαβε μέσα στην επανάληψη.
Επίσης η συχνότητα θα έπρεπε να ξεκινάει από 1 γιατί έχεις ήδη διαβάσει μια φορά τον αριθμό. Παρ'όλα αυτά αυτό δεν επηρεάζει τη λύση σου, αφού όλες οι συχνότητες είναι κατά -1 μικρότερες άρα το μεγαλύτερο θα το βρεις.
Όσο για την άσκησή σου, αν κατάλαβα καλά έχεις κάνει μια παραλλαγή της άσκησης με τα γραμματόσημα του 2007. Όταν έρθει πολύ ακριβό προϊόν τότε ο αλγόριθμος δεν σταματά αλλά ζητάει από τον χρήστη τι να κάνει. Μου φαίνεται πολύ καλή ιδέα.
Πάντως στη λύση σου πάλι δε μου αρέσει αυτή η δεύτερη επανάληψη. Θα προτιμούσα μια. ;)
:D ευχαριστώ για το θετικό feedback για την άσκηση που πρέπει να ξοδέψεις πρώτα ΟΛΟ το ποσό και μετά να αφήσεις το πολυκαστάστημα ;)
Οσο για την λύση στη δική σας άσκηση αρχικοποίησα με μηδέν την μεταβλητή συχνότητα γιατί μιλάει για συχνότητα εμφάνισης συνεχόμενων αριθμών οπότε στην αρχή που δεν εχω κάνει ακόμη τον ελεγχο η συχνότητα είναι 0.
Θα προσπαθήσω να την λύσω και με μια επανάληψη και θα επανέλθω. Συγχωρεστε με για την πολύπλοκη σκέψη :-)
Είναι όμως μια κάποια λυση 8)
ευχαριστώ
ναι βρε , η λύση σου είναι μια χαρά, δεν υπάρχει θέμα, απλά αν έχεις χρόνο δοκίμασε χωρίς την επανάληψη, θα δεις ότι ο κώδικας θα μαζευτεί λίγο.
Τώρα σχετικά με τη συχνότητα εννοούσα το εξής: Ο πρώτος αριθμός που θα έρθει δεν έχει εμφανιστεί ήδη μια φορά? άρα ο μετρητής πρέπει να ξεκινάει από 1 , αυτό εννοούσα.
Δηλαδή για να έναν αριθμό που θα εμφανιστεί 3 συνεχόμενες φορές ο μετρητής σου θα δώσει 2 και όχι 3.
Σχετικά με τις άλλες ασκήσεις που έδωσα απλά να προσθέσω το εξής:
Για την άσκηση με την αριθμητική πρόοδο η συνθήκη που ζητάμε είναι κάθε 2 διαδοχικοί όροι να έχουν σταθερή διαφορά.
Επίσης για την άσκηση με τους Fibonacci, απλά θα πω ότι είναι πολύ πιο δύσκολη από ότι φαίνεται, και ότι κρύβει μια παγίδα η οποία δεν είναι ορατή με την πρώτη ματιά
:) θα την προσπαθήσω αργότερα Ναι!!
Πως φαίνεται αυτή η λύση; Επίσης αυτή η κουβέντα όπου κάτι γραμμένο σε ΟΣΟ ουσιαστικά μπορεί να γραφτεί και με αν μου άρεσε πολύ ως πιθανό Δευτερο θεμα :-)
Αλγόριθμος test
Διάβασε αριθμ
max_συχνότητα ← -1
συχν← 1
Οσο αριθμ <>0 επανάλαβε
προηγούμενος← αριθμ
διαβασε αριθμ
Αν προηγούμενος=αριθμ τότε
συχν← συχν+1
Αν συχν >max_συχνότητα τότε
max_συχνότητα ← συχν
στοχος← αριθμ
Τέλος_αν
Αλλιώς
συχν ← 1
Τέλος_αν
Τέλος_Επανάληψης
Για κάποιο λόγο ερμηνευσα το πρόβλημα λιγάκι διαφορετικά και είπα ότι στην μεταβλητή συχνότητα θα μετράω πόσες συνεχόμενες φορές εμφανίζεται ένας αριθμός. Δλδ αν το 2 εμφανίστεί δευτερη φορά η μεταβλητή συχνότητα θα γίνει 1 και πάει λέγοντας. Δεν ξέρω αν βγάζει νόημα και αν αυτό εννοούσε εν τελει ο ποιητής.
Με ιντριγκάρει τώρα η τρίτη άσκηση για την παγίδα που αναφέρετε ! Btw και μάλλον οff topic πότε και που μπορούμε να στέλνου θέματα για το Διαγώνισμα;;
Παράθεση από: olga_ath στις 20 Δεκ 2010, 06:00:41 ΜΜ
Αν συχν >max_συχνότητα τότε
max_συχνότητα ← συχν
στοχος← αριθμ
Τέλος_αν
Έχω την εντύπωση ότι αυτή η ΑΝ δεν είναι ανάγκη να βρίσκεται στην εσωτερική επανάληψη. Δεν υπάρχει λόγος να γίνεται αυτός ο έλεγχος πριν τελειώσει το σερί των συνεχόμενων αριθμών.
Παράθεση από: evry στις 20 Δεκ 2010, 07:43:38 ΜΜ
Επίσης για την άσκηση με τους Fibonacci, απλά θα πω ότι είναι πολύ πιο δύσκολη από ότι φαίνεται, και ότι κρύβει μια παγίδα η οποία δεν είναι ορατή με την πρώτη ματιά
Ευριπίδη, ο πρώτος αριθμός που θα δώσει ο χρήστης πρέπει να είναι ο 1 ή μπορεί να ξεκινήσει από οποιονδήποτε αριθμό;
Έλα ντε, αν η εκφώνηση μιλάει "για ακολουθία στην οποία κάθε αριθμός είναι το άθροισμα των 2 προηγουμένων" τότε δεν υπάρχει πρόβλημα. Αν όμως μιλάει για ακολουθία Fibonacci τότε θα πρέπει να εξασφαλίσει ότι οι αριθμοί είναι και Fibonacci. Λίγο διεστραμμένο για να το δώσεις σε μαθητή φυσικά, αλλά είναι ένα καλό παράδειγμα που δείχνει ότι πρέπει να προσέχουμε πολύ όταν φτιάχνουμε ασκήσεις, γιατί άλλα μπορεί να εννοούμε και άλλα να λέμε τελικά.
Φυσικά πάλι λύνεται
Παράθεση από: odysseas στις 20 Δεκ 2010, 08:23:27 ΜΜ
Ευριπίδη, ο πρώτος αριθμός που θα δώσει ο χρήστης πρέπει να είναι ο 1 ή μπορεί να ξεκινήσει από οποιονδήποτε αριθμό;
Παράθεση από: olga_ath στις 13 Οκτ 2010, 02:47:27 ΜΜ
Καλησπέρα
Ανοίγω αυτό το thread με σκοπό μια συζήτηση σχετικα με το τι θεωρούμε ως ασκήσεις αυξημένης αλγοριθμικής δυσκολίας στις Δομές Επανάληψης.
Με αφορμή το 3ο Θέμα του 2007 Γενικά Λύκεια ήρθε η εμπνευση για την άσκηση στο επισυναπτόμενο αρχείο. Παραθέτω και μια λύση της την οποία ομως σχημάτισα πρόχειρα οπότε μπορεί να περιέχει λάθη.
Το βράδυ θα ποστάρω και μερικές ακόμη τις οποίες θεωρώ ως αυξημένης δυσκολίας αλλά δεν είναι δικές μου δημιουργίες :angel: οπότε θα παραθέσω και τις πηγές.
Κάτι δεν μου αρέσει στη διατύπωση στο ερώτημα με τη μάρκα LesPetites, πράγμα το οποίο φαίνεται και στη λύση σου.
Με τον τρόπο που έχεις λύσει την άσκηση ο καταναλωτής δεν επωφελείται μόνο 50 ή μόνο 90€ αλλά 50€ για κάθε προϊόν της συγκεκριμένης μάρκας από 6 μέχρι 10 και 90€ για κάθε προϊόν πάνω από τα 10. Με άλλα λόγια αν κάθε φορά αγοράζει ένα φθηνό προϊόν της μάρκας LesPetites (αξίας ας υποθέσουμε 40€) στο τέλος θα μπορέσει να σηκώσει το μαγαζί αφού τα χρήματα στην κάρτα συνεχώς θα αυξάνουν :)
Επειδή γράφεις "κατά τη διάρκεια των αγορών" είναι προφανές ότι πρώτα θα γίνουν 5 τα προϊόντα οπότε και θα επωφεληθεί τα 50€. Πρέπει να διευκρινίσεις τι συμβαίνει από εκεί και πέρα γιατί έτσι όπως το διατυπώνεις υπάρχει σύγχυση.
Μια αρκετά δύσκολη άσκηση που έχει ενδιαφέρον για σκέψη είναι η παρακάτω:
Να σχεδιαστεί αλγόριθμος ο οποίος να διαβάζει έναν ακέραιο αριθμό και να υπολογίζει και να εμφανίζει τον κατοπτρικό του. Θεωρείστε ότι ο αριθμός μπορεί να έχει απεριόριστο αριθμό ψηφίων
Παράδειγμα ο κατοπτρικός του 812800496 είναι ο 694008218,
Μια πρόταση λύσης παρουσιάζω στο συνημμένο.
Αλλά οι μαθητές πριν το δουν, καλά θα ήταν να προσπαθήσουν μόνοι τους.
Παράθεση από: Keep Growing στις 15 Ιαν 2011, 03:29:17 ΜΜ
Μια πρόταση λύσης παρουσιάζω στο συνημμένο.
Αλλά οι μαθητές πριν το δουν, καλά θα ήταν να προσπαθήσουν μόνοι τους.
οκ τώρα το καταλαβα διακρίνεις και περίπτωσει αν ο αριθμός είναι μονοψήφιος. Ωραία η λύση σου !!!
Στην τελευταία άσκηση του κ. Ευριπίδη με το κατοπτρο εγώ θα εδινα αυτή τη λύση.
Αλγόριθμος κάτοπτρο
Διάβασε χ
νέος ← 0
digit ← 0
Οσο χ >0 επανάλαβε
digit← χ Mod 10
νέος ← νέος *10 + digit
χ← χ div 10
Τέλος_Επανάληψης
Γράψε νέος
Τέλος κάτοπτρο
Μηπως καταλαβα λάθος την εκφώνηση;
ευχαριστώ όλους
Η λύση του Παναγιώτη είναι το πρώτο πράγμα που θα σκεφτόταν ένας μαθητής. Πρώτα να βρει πόσα ψηφία έχει ο αριθμός και στη συνέχεια να τα υπολογίσει με τη σειρά. Ο αλγόριθμος αυτός έχει πολυπλοκότητα O(n2) (n ο αριθμός των ψηφίων)
Στη συνέχεια μπορούμε να ρωτήσουμε τους μαθητές πως μπορεί να γίνει αυτό με ένα μόνο πέρασμα, δηλαδή τη στιγμή που παίρνεις τα ψηφία ένα-ένα να υπολογίζεις τον κατοπτρικό χωρίς εκείνη τη στιγμή να ξέρεις πόσα ψηφία έχει τελικά. Αυτή είναι και η βέλτιστη λύση με γραμμική πολυπλοκότητα Ο(n).
Αυτή τη λύση έδωσε η Όλγα.
Φυσικά για να οδηγήσουμε τους μαθητές σε αυτόν τον δρόμο πρέπει να τους δώσουμε κάποιες υποδείξεις, αλλιώς είναι πολύ δύσκολο να το σκεφτούν μόνοι τους.
Η υπόδειξη που θα δοθεί στους μαθητές καλό θα ήταν να δοθεί με τη μορφή παραδείγματος π.χ. 1234 = 4 + 10*(3 +10*(2 + 10*1))
και να γίνει αντιπαραβολή με το πλήθος των πράξεων που θα γίνουν αν το υπολογίσουμε κανονικά
Όλγα δεν ξέρω αν το κατάλαβες αλλά μόλις έδωσες μια γρήγορη υλοποίηση του βέλτιστου υπολογισμού της τιμής ενός πολυωνύμου με το σχήμα Horner (κάτι σου θυμίζει ε; >:D)
Το ενδιαφέρον είναι ότι οι μαθητές έχουν κάνει το σχήμα Horner στην Β' λυκείου οπότε το ξέρουν
Καλησπέρα και από μένα ξανά :-)
Λοιπόν αυτη την άσκηση την δίνω ως δωράκι για το σπίτι σε όσους καταφέρνουν να λύσουν αυτή που θεωρείται πιο εύκολη και έτσι η δυσκολία αυξάνει σταδιακά. Να γίνει αλγόριθμος ο οποίος να βρίσκει και να εκτυπώνει τα ψηφία ενός αριθμού.
Ετσι συνηθίζουν στην ιδέα στο πως αποκόπτουμε ένα ψηφίο από έναν ακεραιο πχ 3456 και μετά τους δίνω την υπόδειξη : Και τώρα αν ήθελα να δημιουργήσω τον αναποδο τι θα έκανα. Θα αλλαζα την σειρά οι παλιές μονάδες θα ήταν οι παλιές χιλιάδες οι δεκάδες οι παλίες εκατοντάδες κτλ.. και έτσι το σκέφtoνται πιο εύκολα τα παιδιά κατά την γνώμη μου..
Παντως με το Horner δεν το συνέδεσα τώρα το συνειδητοποίσα παρότι ήταν ένα από τα θέματα που μου άρεσαν πάλαι ποτέ που ήμουν μαθήτρια.... :laugh:
Βέβαια, εγώ ξεκίνησα από την ιδέα του υπολογισμού της δύναμης του 10, του πιο σημαντικού ψηφίου του αριθμού, ώστε στη συνέχεια να υπολογίσω το ανάπτυγμα του νέου αριθμού, αλλά η ουσία είναι αυτή που είπε ο Ευριπίδης, ότι χρησιμοποιήθηκαν 2 δομές ΟΣΟ για n επαναλήψεις η κάθε μία.
Παράθεση από: evry στις 15 Ιαν 2011, 04:18:51 ΜΜ
Φυσικά για να οδηγήσουμε τους μαθητές σε αυτόν τον δρόμο πρέπει να τους δώσουμε κάποιες υποδείξεις, αλλιώς είναι πολύ δύσκολο να το σκεφτούν μόνοι τους.
Το:
νέος ← νέος *10 ...
και το:
χ← χ div 10
μπορούμε να πούμε ότι είναι η ολίσθηση αριστερά και η ολίσθηση δεξιά αντίστοιχα στο δεκαδικό σύστημα αρίθμησης. Θα μπορούσαμε να τους το έχουμε ήδη επισημάνει μαζί με την αντίστοιχη ολίσθηση αριστερά και δεξιά του δυαδικού συστήματος στον πολλαπλασιασμό αλά ρωσικά.
Το θέμα της 1ης φάσης του Πανελλήνιου Διαγωνισμού Πληροφορικής φέτος,
ΜΕΓΙΣΤΟΠΟΙΗΣΗ ΚΕΡΔΟΥΣ
Οι τιμές κάποιων αγαθών ή τίτλων (π.χ. πετρελαίου, χρυσού, μετοχών αλλά και βασικών τροφίμων όπως των αλεύρων, της ζάχαρης κ.λπ.) διαμορφώνονται καθημερινά βάσει της προσφοράς και της ζήτησης, αλλά και με βάση την εκτίμηση για τη μελλοντική τους πορεία. Αποτέλεσμα αυτών των συναλλαγών είναι οι τιμές αυτές να αλλάζουν από μέρα σε μέρα. Κάποιοι εκμεταλλεύονται αυτήν την αυξομείωση των τιμών, αγοράζοντας μία ποσότητα (ή δικαίωμα σε ποσότητα) φθηνά, και έπειτα πουλούν την ίδια ποσότητα ή δικαίωμα ακριβότερα. Το κέρδος εκφράζεται από το λόγο της τιμής πώλησης προς την τιμή αγοράς. Έστω ότι γνωρίζουμε την τιμή που έχει κάποιο αγαθό κάθε μέρα για ένα μεγάλο χρονικό διάστημα. Θέλουμε να υπολογίσουμε το μέγιστο κέρδος που θα μπορούσε κάποιος να αποκομίσει με μία αγορά και στη συνέχεια μία πώληση.
Πρόβλημα:
Να αναπτύξετε ένα πρόγραμμα σε μια από τις γλώσσες του IOI το οποίο να διαβάζει το πλήθος των ημερών για τις οποίες είναι γνωστή η τιμή του αγαθού, την τιμή του αγαθού για κάθε μία από αυτές τις ημέρες, και να υπολογίζει το μέγιστο δυνατό κέρδος από μία αγορά και στη συνέχεια μία πώληση.
Τι λέτε? θα μπορούσε να μπει άσκηση στο μάθημά μας?
Προσωπικά μου φαίνεται πολύ καλό
Μπορείς να το εξηγήσεις λίγο γιατί η απλοϊκή λύση που καταλαβαίνω αφορά την εύρεση min και max
Εεε, έχεις κάποιο δίκιο, έπρεπε να δώσω και ένα παράδειγμα για να φανεί τι ζητάει
Ας δούμε το παρακάτω
10 9 8 4 6 5 7 6 6 5 4 3 3
πότε πρέπει να αγοράσεις τη μετοχή? όταν έχει τιμή 4, αλλά θα την πουλήσεις όταν πάει 7 ώστε να έχεις κέρδος 7-4= 3
όμως ούτε το 4 είναι το min ούτε το 7 είναι το max >:(
παίζει ρόλο η σειρά που σου έρχονται δηλαδή.
Για περισσότερες πληροφορίες δίνω και το λινκ από όπου το κατέβασα
http://www.pdp.gr/files/23a/PDP_23_A.doc (http://www.pdp.gr/files/23a/PDP_23_A.doc)
Ουσιαστικά ζητάς την μέγιστη άνοδο που σημειώθηκε
Συνάδελφοι προσοχή: η υποβολή λύσεων για την Α φάση του διαγωνισμού δεν έχει λήξει ακόμα (έως 23-1-2011) οπότε ας μην σχολιάσουμε και πολλά, πόσο μάλλον να ανεβάσουμε εδώ και λύση! :police:
Αυτή η μικρή :) λεπτομέρεια ομολογώ ότι μου ξέφυγε, δεν ήξερα ότι έδωσαν παράταση, αλλά και λύση να ανεβάσουμε τεχνικά δεν είναι η σωστή αφού θα είναι σε ΓΛΩΣΣΑ και δεν μπορεί να γίνει δεκτή στον διαγωνισμό :D
Ας περιμένουμε πάντως μέχρι τις 23 του μηνός που λήγει η προθεσμία υποβολής λύσεων
Παράθεση από: Νίκος Αδαμόπουλος στις 16 Ιαν 2011, 09:46:54 ΜΜ
Συνάδελφοι προσοχή: η υποβολή λύσεων για την Α φάση του διαγωνισμού δεν έχει λήξει ακόμα (έως 23-1-2011) οπότε ας μην σχολιάσουμε και πολλά, πόσο μάλλον να ανεβάσουμε εδώ και λύση! :police:
Παράθεση από: evry στις 16 Ιαν 2011, 08:27:39 ΜΜ
Τι λέτε? θα μπορούσε να μπει άσκηση στο μάθημά μας?
Προσωπικά μου φαίνεται πολύ καλό.
Είναι πολύ όμορφη άσκηση. Με βάση τα αλγοριθμικά εργαλεία που προσφέρει η ΑΕΠΠ είναι επιλύσιμη, αλλά θα την έβαζα μόνο σε μαθητές που ξέρω ότι ενδιαφέρονται για το μάθημα και όχι αποκλειστικά για τις εξετάσεις.
Παράθεση από: evry στις 16 Ιαν 2011, 08:58:46 ΜΜ
Ας δούμε το παρακάτω
10 9 8 4 6 5 7 6 6 5 4 3 3
πότε πρέπει να αγοράσεις τη μετοχή? όταν έχει τιμή 4, αλλά θα την πουλήσεις όταν πάει 7 ώστε να έχεις κέρδος 7-4= 3
Θέλει λίγη προσοχή όμως. Το κέρδος είναι 7 / 4 και όχι 7 - 4. Το τονίζω γιατί στο δεύτερο παράδειγμα της εκφώνησης που η ακολουθία είναι: 9 8 15 5 6 9 8 10 3 5, η διαφορά 15 - 8 είναι η μεγαλύτερη, αλλά ο λόγος 10 / 5 είναι που δίνει το μεγαλύτερο "κέρδος".
ακριβώς, έχει τον λόγο, απλά είπα να δώσω ένα παράδειγμα με με τη διαφορά γιατί μου φάνηκε πιο απλό έτσι (κακώς)
Παράθεση από: odysseas στις 16 Ιαν 2011, 11:22:37 ΜΜ
Θέλει λίγη προσοχή όμως. Το κέρδος είναι 7 / 4 και όχι 7 - 4. Το τονίζω γιατί στο δεύτερο παράδειγμα της εκφώνησης που η ακολουθία είναι: 9 8 15 5 6 9 8 10 3 5, η διαφορά 15 - 8 είναι η μεγαλύτερη, αλλά ο λόγος 10 / 5 είναι που δίνει το μεγαλύτερο "κέρδος".
Παράθεση από: evry στις 16 Ιαν 2011, 08:27:39 ΜΜ
Τι λέτε? θα μπορούσε να μπει άσκηση στο μάθημά μας?
Προσωπικά μου φαίνεται πολύ καλό
Υπέροχο θέμα!!!
Όσον αφορά την ΑΕΠΠ όμως, προσωπικά πιστεύω ότι το ποσοστό % των μαθητών που μπορούν να αναλύσουν αυτό το πρόβλημα θα είναι άνετα μονοψήφιο. Άαααανετα. Δυστυχώς. :'(
(ίσως και να είμαι φύσει απαισιόδοξος - τι να πω)
Παράθεση από: Keep Growing στις 15 Ιαν 2011, 03:29:17 ΜΜ
Μια πρόταση λύσης παρουσιάζω στο συνημμένο.
Δεν κατάλαβα γιατί ορίζεις τους αριθμούς σου ως πραγματικούς και όχι ως ακέραιους αλλά χρησιμοποιώντας div αντί για /
Μου ξέφυγε κάτι ;
Παράθεση από: evry στις 16 Ιαν 2011, 08:27:39 ΜΜ
Τι λέτε? θα μπορούσε να μπει άσκηση στο μάθημά μας?
Προσωπικά μου φαίνεται πολύ καλό
Λύση σε ψευδογλώσσα ή σε ΓΛΩΣΣΑ ? (δεν έχω καταλάβει ακόμα αν έχουμε καταλήξει κάπου για το θέμα της χρήσης πινάκων σε ψευδογλώσσα)
Παράθεση από: Sergio στις 18 Ιαν 2011, 02:30:48 ΜΜ
Δεν κατάλαβα γιατί ορίζεις τους αριθμούς σου ως πραγματικούς και όχι ως ακέραιους αλλά χρησιμοποιώντας div αντί για /
Μου ξέφυγε κάτι ;
Με πραγματικούς αριθμούς, έχει επίσης ενδιαφέρον.. πχ.. για τον 123.4567 να εμφανίζεται ο 7654.321
Παράθεση από: ptsiotakis στις 18 Ιαν 2011, 02:42:43 ΜΜ
σε αλγόριθμο Sergio
Ναι ρε φίλε.. όλα αλγόριθμοι είναι. Γιατί ένα πρόγραμμα δεν είναι αλγόριθμος; Η αναπαράσταση διαφέρει..
Στην περιοχή μου, υπάρχει η τάση τα αγόρια να ονομάζονται ..παιδιά.. και τα κορίτσια ..κορίτσια.. Με αυτό συνήθως εξηγώ την "αστοχία" του διλήματος: αλγόριθμο ή πρόγραμμα. Ζητάω να σηκωθεί ένα παιδί στον πίνακα και άμα σηκωθεί κορίτσι της βάζω τις φωνές :)
Τεσπα, προφανώς κατάλαβες την ερώτηση.. τα αστειάκια σου πάντα με αρέσουν.. το θέμα είναι.. αναζητάμε κωδικοποίηση σε ΓΛΩΣΣΑ αποκλειστικά (με σκέψη και φαντασία αλλά χωρίς πίνακες) ή σε ψευδογλώσσα (κάνοντας την παραδοχή ότι μπορούν να χρησιμοποιήσουν και πίνακες άγνωστου μεγέθους) ;
αν βάλεις να τα διαβάζει με τιμή-φρουρό τότε δε νομίζω ότι έχει σημασία
Παράθεση από: Sergio στις 18 Ιαν 2011, 02:39:06 ΜΜ
Λύση σε ψευδογλώσσα ή σε ΓΛΩΣΣΑ ?
Όπως είναι όμως δοσμένη η εκφώνηση ;
Παράθεση από: evry στις 16 Ιαν 2011, 08:27:39 ΜΜ
..να διαβάζει το πλήθος των ημερών για τις οποίες είναι γνωστή η τιμή του αγαθού, την τιμή του αγαθού για κάθε μία από αυτές τις ημέρες..
Επειδή τελικά δεν κατάλαβα (ίσως φταίει ότι έχω λίγο πυρετό), σκεφτόμαστε το αν μπορούμε να δώσουμε σαν άσκηση σε κάποιους μαθητές της ΑΕΠΠ το θέμα του διαγωνισμού, έτσι όπως είναι?
Δηλαδή να το λύσουν χωρίς πίνακα? Εγώ σχεδόν μισή ώρα που το σκέφτομαι δεν μπορώ να βρω λύση. Εντάξει, με πίνακα βγαίνει σχετικά εύκολα (με μεγάλη πολυπλοκότητα σε πρώτη φάση).
Αν το έλυσε κάποιος χωρίς πίνακα να μου το πει (όχι τη λύση) για να το σκεφτώ άλλη φορά
όχι όπως είναι, με την τροποποίηση "να διαβάζει μέχρι να δοθεί -1" >:D
γιατί όπως είναι η εκφώνηση, στην γλώσσα του διαγωνισμού μπορείς να χρησιμοποιήσεις άνετα πίνακες
Τέλος πάντων, ας περιμένουμε να λήξει η πρώτη φάση σε λίγες μέρες και μετά συζητάμε για τη λύση
Ωραία, κατάλαβα, θα το προσπαθήσω αλλη φορά!
Με όλο το σεβασμό:
(α) η συζήτηση περί πινάκων δεν έχει σχέση με το παρόν νήμα
(β) η συζήτηση περί πινάκων έχει ελάχιστη σχέση με το θέμα του διαγωνισμού
(β) η συζήτηση περί πινάκων έχει εξαντληθεί (εξοντωθεί, ποδοπατηθεί, κονιορτοποιηθεί, κλπ.) σε άλλο νήμα.
Παράθεση από: merlin στις 18 Ιαν 2011, 04:43:08 ΜΜ
Δηλαδή να το λύσουν χωρίς πίνακα? Εγώ σχεδόν μισή ώρα που το σκέφτομαι δεν μπορώ να βρω λύση. Εντάξει, με πίνακα βγαίνει σχετικά εύκολα (με μεγάλη πολυπλοκότητα σε πρώτη φάση).
Αν το έλυσε κάποιος χωρίς πίνακα να μου το πει (όχι τη λύση) για να το σκεφτώ άλλη φορά
Για να επιστρέψουμε στο θέμα βγαίνει χωρίς πίνακα (εννοώ με ένα πέρασμα δηλ. για να μην καθυστερείς διαβάζοντας έναν έναν τους αριθμούς από το αρχείο) και αν κρίνω από τους χρόνους αυτή την λύση έχουν στο μυαλό τους.
ΥΓ: Εκ των υστέρων είδα το δεύτερο μηνυμα σου.
Πήρα το θάρρος και μετέφερα όσα μηνύματα ήταν άσχετα με το θέμα σε ένα νέο θέμα
Διάβασε Διάσταση Πίνακα ??? (https://alkisg.mysch.gr/steki/index.php?topic=3588.0)
οπότε όποιος θέλει να συνεχίσει τη συζήτηση για το θέμα αυτό μπορεί να απαντήσει εκεί
Τώρα , σχετικά με το θέμα του διαγωνισμού, όταν το σκεφτόμουν είδα ότι είναι ένα πρώτης τάξεως θέμα για να εισάγεις την έννοια της απόδειξης της ορθότητας του αλγορίθμου. Ο αλγόριθμος στον οποίο θα καταλήξεις δεν είναι και τόσο προφανές ότι δουλεύει σωστά. Δεν λέω περισσότερα σε λίγες μέρες το συζητάμε.
Μήπως κάποιος διαχειριστής να μετέφερε τη συζήτηση για όποιον ενδιαφέρεται να συμμετέχει;
Προφανώς το γεγονός ότι οι περισσότεροι κάπου τώρα μπαίνουμε στους πίνακες, ξανα-ξύπνησε το ενδιαφέρον
Η συζήτηση που έγινε το καλοκαίρι κατα τη γνώμη μου μόνο συζήτηση δεν ήταν. Περισσότερο θύμιζε πεδίο μάχης και σίγουρα έδωσε σε αρκετούς την ευκαιρία να ξεσπάσουν και να βγάλουν απωθημένα (είτε παλιά είτε νέα).
Πιστεύω ότι μετά από τόσο καιρό ίσως είναι κατάλληλη στιγμή να εκθέσουμε τα επιχειρήματά μας κόσμια και να προσπαθήσυμε να ακούσουμε και απόψεις πέρα από τις δικές μας, με διάθεσηπλέον να τις σκεφτούμε και με "ανοικτό το ενδεχόμενο" να αλλάξουμε και τις δικές μας.
Ας το κάνει κάποιος διαχειριστής, γιατί έχω την εντύπωση ότι τα τελευταία χρόνια εγώ δεν πρέπει να είμαι πλέον διαχειριστής.
Κάποιος
Σέργιο, δες το προηγούμενο μήνυμά μου
Μετέφερα τη συζήτηση στο παρακάτω θέμα
Διάβασε Διάσταση Πίνακα ??? (https://alkisg.mysch.gr/steki/index.php?topic=3588.0)
Μια συμπλήρωση για κάτι που είπα πριν σχετικά με την απόδειξη της ορθότητας ενός αλγόριθμου. Επειδή μου φαίνεται ενδιαφέρον διότι έχει άμεση σχέση με τα θεμέλια της πληροφορικής παραθέτω ένα λινκ που βρήκα και στο οποίο λέει κάποια απλά πράγματα περί απόδειξης ορθότητας μέσω της μεθόδου της επαγωγής
http://ace.cs.ohiou.edu/~razvan/courses/cs404/lecture03.pdf (http://ace.cs.ohiou.edu/~razvan/courses/cs404/lecture03.pdf)
Επειδή μπλέχτηκαν πολλά μαζί, επαναφέρω από την προηγούμενη σελίδα, σχετικά με την
εμφάνιση του "ανάποδου" αριθμού (
καθρέπτης):
Παράθεση από: Keep Growing στις 15 Ιαν 2011, 03:29:17 ΜΜ
Μια πρόταση λύσης παρουσιάζω στο συνημμένο.
Αλλά οι μαθητές πριν το δουν, καλά θα ήταν να προσπαθήσουν μόνοι τους.
Δεν κατάλαβα γιατί ορίζεις τους αριθμούς σου ως πραγματικούς και όχι ως ακέραιους αλλά χρησιμοποιώντας div αντί για /. Μου ξέφυγε κάτι ;
Επίσης, με πραγματικούς αριθμούς θα έχει ενδιαφέρον.. πχ.. για τον 123.4567 να εμφανίζεται ο 7654.321
Καλημέρα συνάδελφοι (μετά από πολύ καιρό) :-[
Ψάχνοντας για δύσκολες ασκήσεις πάνω στη δομή επανάληψης βρέθηκα, φυσικά, σε αυτό το thread.
Μου άρεσαν οι ιδέες που προτείνει ο Ευριπίδης στην 1η σελίδα του thread και πήρα την πρώτη από αυτές και έφτιαξα μια άσκηση ώστε να την ενσωματώσω (στο ε ερώτημα). Τη μοιράζομαι μαζί σας:
Η Α΄ Εθνική κατηγορία ποδοσφαίρου (σχετικά πρόσφατα μετονομάστηκε σε Σούπερ Λιγκ) δημιουργήθηκε τη σεζόν 1959-60, με τη μορφή που διατηρεί σε γενικές γραμμές ως σήμερα. Για να αναδειχθεί ο πρωταθλητής (πρώτος πρωταθλητής αναδείχθηκε το 1960!), κάθε ομάδα παίζει με όλους τους αντιπάλους της 2 φορές και συλλέγει βαθμούς ανάλογα με το αν κέρδισε, αν έχασε, ή αν έφερε ισοπαλία. Στο τέλος της σεζόν πρωταθλήτρια αναδεικνύεται εκείνη η ομάδα που πήρε τη μεγαλύτερη συνολική βαθμολογία.
Να γραφτεί αλγόριθμος που για κάθε σεζόν από το 1959-60 μέχρι και την περσινή:
α) Θα διαβάζει, για καθεμιά από τις 16 ομάδες που συμμετέχουν, το όνομά της και τη συνολική βαθμολογία που πήρε στο πρωτάθλημα. Να διασφαλίζεται ότι η βαθμολογία είναι μη αρνητικός αριθμός.
β) Θα εμφανίζει, με κατάλληλο μήνυμα, ποια ομάδα πήρε το πρωτάθλημα τη συγκεκριμένη σεζόν.
Στο τέλος ο αλγόριθμος να εμφανίζει
γ) πόσες φορές πήρε το πρωτάθλημα η ομάδα σου
δ) κατά μέσο όρο πόσες ομάδες τερματίζουν το πρωτάθλημα έχοντας μαζέψει λιγότερους από 10 βαθμούς (σ' αυτό το ερώτημα, αν μία ομάδα τερμάτισε x πρωταθλήματα με λιγότερους από 10 βαθμούς, θα τη μετρήσουμε x φορές: δε μας ενδιαφέρει δηλαδή η μοναδικότητα των ομάδων που μετράμε)
ε) ποια ομάδα πήρε το πρωτάθλημα τις περισσότερες συνεχόμενες χρονιές.
Θεωρούμε για λόγους απλούστευσης ότι σε κάθε σεζόν συμμετείχαν 16 ομάδες, ότι στο τέλος της κάθε σεζόν δεν υπήρχαν ισοβαθμίες στην 1η θέση, και ότι η ομάδα του ερωτήματος (ε) είναι μοναδική.
(Οι πληροφορίες σχετικά με την ιστορία της Α΄ Εθνικής κατηγορίας προέρχονται από την http://el.wikipedia.org )
Δεν έφτιαξα τον αλγόριθμο να δω αν λύνεται και αν μου ξεφεύγει κάτι, τη δουλεύω ακόμα οπότε ευπρόσδεκτα σχόλια-παρατηρήσεις-αλλαγές. Πιστεύω πάντως ότι λύνεται.
Θα μπορούσαμε μάλιστα να βάλουμε και τρίτη εμφώλευση (ή μάλλον τέταρτη) αν ζητούσαμε για κάθε σεζόν, για κάθε ομάδα να διαβάσει τους βαθμούς που πήρε σε καθένα από τα 30 παιχνίδια της, και να βρει ο αλγόριθμος τις συνολικές βαθμολογίες και τον πρωταθλητή της σεζόν. >:D
Μια παραλλαγή στην άσκηση του gthal με μια επιπλέον εμφωλευμένη επανάληψη για τα γκολ:
Το Σχολικό Πρωτάθλημα Ιλίου ξεκίνησε τη σεζόν 2001-2002 με τη συμμετοχή 18 δημοτικών σχολείων που στη διάρκεια της χρονιάς παίζουν μεταξύ τους δύο φορές. Στο τέλος της σεζόν πρωταθλήτρια είναι η ομάδα με τη μεγαλύτερη βαθμολογία. Κάθε ομάδα έχει 16 παίκτες.
Να γραφτεί αλγόριθμος που για κάθε σεζόν από το 2001-2002 μέχρι το 2011-2012:
α) Θα διαβάζει για κάθε σχολείο το όνομα και τη βαθμολογία. Επίσης θα διαβάζει το όνομα κάθε παίκτη για κάθε ομάδα και τα γκολ που πέτυχε.
β) Για κάθε σεζόν θα εμφανίζει την ομάδα που πήρε το σχολικό πρωτάθλημα και την βαθμολογία της.
γ) Θα υπολογίζει και θα εμφανίζει πόσες φορές πήρε το πρωτάθλημα το 8ο Δημοτικό Σχολείο Ιλίου.
δ) Θα υπολογίζει κατά μέσο όρο πόσες ομάδες τερματίζουν το πρωτάθλημα έχοντας μαζέψει λιγότερους από 20 βαθμούς.
ε) Θα εμφανίζει ποια ομάδα πήρε το πρωτάθλημα τις περισσότερες συνεχόμενες χρονιές.
στ) Θα εμφανίζει τον παίκτη που έχει πετύχει τα περισσότερα γκολ καθώς και την ομάδα που ανήκει.
Νομίζω ότι στην παραπάνω άσκηση ο μαθητής μπορεί να πάρει πίνακες οπότε βγαίνει σχετικά απλά.
καλησπερα ειμαι μαθητης της γ λυκειου και επειδη γραφω την παρασκευη διαγωνισμα την δομη επαναληψης ειπα να δω καμια επιπλεον ασκηση. Στην πρωτη ασκηση του topic με την δωροεπιταγη των 500 ευρω νομιζω οτι η λυση ειναι λαθος. Αναφερομαι σε αυτο το σημειο
Αν μάρκα = "LesPetites" τότε
LesPetites← LesPetites + 1
Τέλος_αν
Αν LesPetites>10 τότε
δωροεπιταγή ← δωροεπιταγή + 90
τεμάχια ← 0
επωφελήθηκε← αληθής
Αλλιώς_αν LesPetites >5 τότε
δωροεπιταγή ← δωροεπιταγή + 90
επωφελήθηκε← αληθής
Τέλος_αν
απο την εκφωνηση εγω καταλαβα οτι θα της δινει μια φορα 50 ευρω αν τα προιοντα αυτης της μαρκας ειναι παραπανω απο 5 και μια φορα 90 ευρω αν ειναι παραπανω απο ενα 10. Απο την λυση ομως καταλαβαινω οτι αν τα τεμαχια ξεπερασουν τα 5 θα παρνει 50 ευρω για καθε επομενο τεμαχια και αν ξεπερασουν τα 10 θα παιρνει 90 ευρω για καθε επομενο τεμαχιο. Κανω λαθος ?
Έβαλα σε κάποιους μαθητές μου, πριν τα Χριστούγεννα ενα διαγώνισμα με θέματα 3 και 4 αυτά που έχω συνημμένα και έγινε σφαγή. Είναι κάποιες παραφράσεις των πανελληνίων των 2 τελευταίων ετών. Έπειτα μετά το τέλος της διαθέσιμης ώρας δέχτηκα λεκτικές κατάρες που ούτε ήξερα οτι υπάρχουν. Αποφάσισα να τα αναρτήσω σε αυτό το thread.
Το πρόβλημα κατά τη γνώμη μου έγκειται στο γεγονός ότι έχεις μαζέψει τα 2-3 πιο δύσκολα ερωτήματα των 2 τελευταίων ετών και τα έχεις βάλει στο ίδιο διαγώνισμα. Δεν είναι τυχαίο ότι όλα αυτά τα ερωτήματα έχουν πέσει σε επαναληπτικές και όχι σε κανονικές εξετάσεις. Νομίζω θα ήταν καλύτερα αν έβαζες ένα βατό θέμα όπως για παράδειγμα το θέμα Γ του 2011 και κράταγες το Δ όπως το έχεις. Αλλά να έχεις δύσκολα ερωτήματα και σε Γ και σε Δ δεν είναι καλή ιδέα εκτός αν έχεις πάρα πολύ καλούς μαθητές που θέλουν κάτι πιο δύσκολο.
Εξαρτάται πάντα από το επίπεδο της τάξης.
επίσης στο διαγώνισμα που έβαλες πόσο χρόνο τους έδωσες?
Τους έδωσα 3 ώρες γεμάτες. Στις 2,5 ώρες όμως άρχισαν να φεύγουν. Ζαλισμένοι. Πιο κερδισμένοι ήταν αυτοί που ξεκίνησαν από την αρχή. Χαμένους είχα αυτούς που είναι τα γερά μυαλά , αλλά ξεκίνησαν από το 3ο και 4ο. Ενα 92 και τέσσερα γραπτά από 80 και πάνω. Τα υπόλοιπα στη βάση. Βέβαια έπρεπε να δώσω και τις κατάλληλες εξηγήσεις σε μάνα και πατέρα που με έπιασαν για τα αποτελέσματα.
Παράθεση από: evry στις 15 Ιαν 2011, 01:56:06 ΜΜ
Μια αρκετά δύσκολη άσκηση που έχει ενδιαφέρον για σκέψη είναι η παρακάτω:
Να σχεδιαστεί αλγόριθμος ο οποίος να διαβάζει έναν ακέραιο αριθμό και να υπολογίζει και να εμφανίζει τον κατοπτρικό του. Θεωρείστε ότι ο αριθμός μπορεί να έχει απεριόριστο αριθμό ψηφίων
Παράδειγμα ο κατοπτρικός του 812800496 είναι ο 694008218,
η ασκηση αυτη θα χρειαστει πινακα?
όχι, για αυτό λέει για απεριόριστο θεωρητικά αριθμό ψηφίων.
Ας υποθέσουμε ότι είμαστε σε ψευδογλώσσα και έχουμε έναν σούπερ τύπο ακεραίου που μπορεί να αποθηκεύει οποιοδήποτε αριθμό όσο μεγάλος και να είναι
Και για να είμαι και πιο ακριβής να χρησιμοποιηθεί μια μόνο δομή επανάληψης. Δηλαδή να μην σαρώνει τα ψηφία του αριθμού 2 φορές αλλά με τη μία
Παράθεση από: martin xotza στις 21 Ιαν 2013, 04:20:09 ΜΜ
η ασκηση αυτη θα χρειαστει πινακα?
Πρέπει να χάνω κάτι. Αφού διαδοχικές διαιρέσεις με το 10 αποσπούν τα ψηφία του αριθμού ακριβώς με τη σειρά που χρειαζόμαστε, γιατί να χρειαζόμαστε πίνακα ή δύο σαρώσεις;
Εμ, εκεί είναι το θέμα δεν είναι με τη σειρά που θέλουμε.
Ο στόχος δεν είναι να εμφανίσουμε τα ψηφία αλλά να ανακατασκευάσουμε τον κατοπτρικό αριθμό.
Οπότε το τελευταίο ψηφίο που θα αποκοπεί πρώτο δεν γνωρίζουμε με ποια δύναμη του 10 να το πολλαπλασιάσουμε.
Πάντως η δυσκολία σε αυτή την άσκηση δεν είναι αλγοριθμική.
Η δυσκολία είναι στο ότι οι μαθητές δεν κατανοούν τι σημαίνει αναπαράσταση και αξία ενός αριθμού.
Και φυσικά αν θυμάμαι καλά όταν υπήρχαν οι εφαρμογές στην Α' Λυκείου το συγκεκριμένο κεφάλαιο όπου θα μπορούσες να το εξηγήσεις ήταν εκτός ύλης...
Παράθεση από: pgrontas στις 21 Ιαν 2013, 10:42:42 ΜΜ
Πάντως η δυσκολία σε αυτή την άσκηση δεν είναι αλγοριθμική. Η δυσκολία είναι στο ότι οι μαθητές δεν κατανοούν τι σημαίνει αναπαράσταση και αξία ενός αριθμού.
Συμφωνώ απόλυτα με τον Παναγιώτη. Εξάλλου οι περισσότεροι μαθητές ξέρουν να αποσπούν τα διαδοχικά ψηφία του αριθμού. Θα δυσκολευτούν όμως πολύ να βρουν τι να τα κάνουν, δηλαδή πως να σχηματίσουν τον επαναληπτικά τον κατοπτρικό, ακριβώς επειδή δεν κατέχουν την έννοια της αναπαράστασης.
Συμφωνώ κι εγώ με τον Παναγιώτη, δυστυχώς, γιατί η άσκηση είναι ωραιότατη. Καθώς και άλλες ασκήσεις του είδους.
Όμως τέτοιες ασκήσεις θέλουν ένα υπόβαθρο μαθηματικών (ή μάλλον αριθμητικής) που οι περισσότεροι μαθητές δεν διαθέτουν.
Γιαυτό και (αν δεν κάνω λάθος) ποτέ δεν έχει ζητηθεί κάτι τέτοιο σε πανελλήνιες. Έχει;
Παράθεση από: pgrontas στις 21 Ιαν 2013, 10:42:42 ΜΜ
Πάντως η δυσκολία σε αυτή την άσκηση δεν είναι αλγοριθμική.
Η δυσκολία είναι στο ότι οι μαθητές δεν κατανοούν τι σημαίνει αναπαράσταση και αξία ενός αριθμού.
Πολύ ωραία και πολύ δυνατή άσκηση. Δεν μπορούσα να ξεκολήσω το μυαλό μου από το να μετρήσω με μετρητή τα ψηφία του αριθμού. Ένας φίλος ήρθε και με ξεκόλησε.
Μου άρεσε πολύ ο αθροιστής.
άθροισμα ← 10* άθροισμα + αριθμός mod 10
Όμως τί γίνεται με τον κατοπτρικό του 0001234;
Γίνεται να μου βγάλει 4321000;
Δεν βλέπω να τα καταφέρνω χωρίς πίνακα.
Θα μπουρουσε καποιος να μου δωσει την ακριβης λυση του παρακατω αλγοριθμου.
Σε ενα οινοπωλειο υπαρχει ενα βαρελι 500 κιλα με κοκκινο κρασι.Οι πελατες μπορουν να αγορασουν μπουκαλια του 1.5 κιλου προς 3.4 ευρω το μπουκαλι.Να γαψετε αλγοριθμο ο οποιος.
α)για καθε πελατη να ζητα ποσα μπουκαλια θελει να αγορασει
β)να εμφανιζει το κοστος της παραγγελιας
γ)να εμφανιζει τα συνολικα κιλα που απομενουν στο βαρελι μετα την αντληση καθε παραγγελιας κρασιου
δ)αν γινει καποια παραγγελια μεγαλυτερη απο το τρεχον περιεχομενο του βαρελιου τοτε να τερματιζει και να εμφανιζει
ε)τη μεγαλυτερη παραγγελια (σε μπουκαλια)που εγινε
στ)ποσα μπουκαλια πουληθηκαν
ζ) τα καθαρα εσοδα, αν ολο το κρασι ειχε αρχικο κοστος 120 ευρω
Μεθυστική άσκηση!! :)
Παράθεση από: ofilos13 στις 27 Νοε 2014, 01:11:45 ΜΜ
Θα μπουρουσε καποιος να μου δωσει την ακριβης λυση του παρακατω αλγοριθμου.
Σε ενα οινοπωλειο υπαρχει ενα βαρελι 500 κιλα με κοκκινο κρασι.Οι πελατες μπορουν να αγορασουν μπουκαλια του 1.5 κιλου προς 3.4 ευρω το μπουκαλι.Να γαψετε αλγοριθμο ο οποιος.
α)για καθε πελατη να ζητα ποσα μπουκαλια θελει να αγορασει
β)να εμφανιζει το κοστος της παραγγελιας
γ)να εμφανιζει τα συνολικα κιλα που απομενουν στο βαρελι μετα την αντληση καθε παραγγελιας κρασιου
δ)αν γινει καποια παραγγελια μεγαλυτερη απο το τρεχον περιεχομενο του βαρελιου τοτε να τερματιζει και να εμφανιζει
ε)τη μεγαλυτερη παραγγελια (σε μπουκαλια)που εγινε
στ)ποσα μπουκαλια πουληθηκαν
ζ) τα καθαρα εσοδα, αν ολο το κρασι ειχε αρχικο κοστος 120 ευρω
Για να ελέγξω αν ένας αριθμός, έστω Χ, είναι πρώτος, χρειάζομαι μια επανάληψη η οποία εξετάζει αν αυτός ο αριθμός έχει κάποιον διαιρέτη. Οπότε η επανάληψη που χρησιμοποιώ είναι
Για ι από 2 μέχρι χ div 2
Αν ο αριθμός είναι πρώτος τότε δεν θα υπάρχει κανένας διαιρέτης.
Το πρόβλημα είναι πως αν θέλω να βρω ποιοι αριθμοί στο διάστημα [1-500000], είναι πρώτοι, τότε βάζοντας ακόμη μια επανάληψη εξωτερικά ο χρόνος που απαιτείται για την εκτέλεση του αλγορίθμου, είναι τεράστιος. Δοκίμασα να απορρίψω αριθμούς οι οποίοι διαιρούνται με το 2, με το 3 με το 7 και με το 11 αλλά μάταια. Δεν έχει πέσει ο χρόνος εκτέλεσης.
Καμία ιδέα για μικρότερη πολυπλοκότητα; :-\
Για κάθε αριθμό να ελέγξεις μέχρι τη ρίζα.
Είναι λίγο καλύτερα και μπορείς να το αποδείξεις και να το εξηγήσεις στα παιδιά σχετικά απλά
Δεν νομίζω όμως να δεις πάλι μεγάλη διαφορά.
Αν θες κάτι πολύ γρήγορο δοκίμασε το κόσκινο του Ερατοσθένη. Αν η απαραίτητη μνήμη που διαθέτεις αρκεί είναι εξαιρετικά γρήγορο
Όπως λεει και ο Ευριπίδης μπορείς να χρησιμοποιήσεις το κόσκινο του Ερατοσθένη. Πολύ ωραίος αλγόριθμος, υλοποιείται και με πίνακα λογικών μεταβλητών.
Παράθεση από: sstergou στις 17 Δεκ 2014, 03:46:00 ΜΜ
...... υλοποιείται και με πίνακα λογικών μεταβλητών.
Δεν το καταλαβαίνω αυτό το κομμάτι.
Μια βοήθεια από που να ξεκινήσω;
Ευχαριστώ.
Αλγόριθμος Ερατοσθένης
Δεδομένα //Ν//
Για i από 1 μέχρι Ν
Είναι_Πρώτος[i] ← Αληθής
Τέλος_επανάληψης
όριο ← Τ_Ρ(Ν)
Για i από 2 μέχρι όριο
Αν Είναι_Πρώτος[i] τότε
Για j από i * 2 μέχρι Ν με_βήμα i
Είναι_Πρώτος[j] ← Ψευδής
Τέλος_επανάληψης
Τέλος_αν
Τέλος_επανάληψης
Για i από 1 μέχρι Ν
Αν Είναι_Πρώτος[i] τότε
Εμφάνισε i
Τέλος_αν
Τέλος_επανάληψης
Τέλος Ερατοσθένης
Παράθεση από: sstergou στις 17 Δεκ 2014, 04:44:20 ΜΜ
Αλγόριθμος Ερατοσθένης
Δεδομένα //Ν//
Για i από 1 μέχρι Ν
Είναι_Πρώτος[i] ← Αληθής
Τέλος_επανάληψης
όριο ← Τ_Ρ(Ν)
Για i από 2 μέχρι όριο
Αν Είναι_Πρώτος[i] τότε
Για j από i * 2 μέχρι Ν με_βήμα i
Είναι_Πρώτος[j] ← Ψευδής
Τέλος_επανάληψης
Τέλος_αν
Τέλος_επανάληψης
Για i από 1 μέχρι Ν
Αν Είναι_Πρώτος[i] τότε
Εμφάνισε i
Τέλος_αν
Τέλος_επανάληψης
Τέλος Ερατοσθένης
Απλά υπέροχο!!!
Ευχαριστώ.
Υποθέτω πως δεν λύνεται πιό απλά χωρίς τη χρήση πινάκων.
Θα πρέπει να αποθηκεύεται η πληροφορία των πολλαπλασίων του αριθμού που είναι πρώτος (ότι δεν είναι πρώτοι) οπότε είναι υποχρεωτικός ο πίνακας
Θα μπορούσες επίσης να χρησιμοποιήσεις το θεώρημα του Fermat αν μπορούσαμε να παράγουμε τυχαίους αριθμούς. (Θα χάνεις βέβαια τους αριθμούς Carmichael)
Παράθεση από: sstergou στις 17 Δεκ 2014, 04:44:20 ΜΜ
Αλγόριθμος Ερατοσθένης
Δεδομένα //Ν//
Για i από 1 μέχρι Ν
Είναι_Πρώτος[i] ← Αληθής
Τέλος_επανάληψης
όριο ← Τ_Ρ(Ν)
[/quote]
Η απάντηση μου αρέσει πάρα πολύ.Πολύ όμορφη και απλή. Μόνο μια απορία.
Μήπως στη μεταβλητή όριο έπρεπε να μπει
όριο <- Α_Μ(Τ_Ρ(Ν))
Ευχαριστώ
Δεν υπάρχει πρόβλημα.
Μεταφράζεται στην αντίστοιχη
ι <- 1
Όσο ι <= Κάποιος_πραγματικός επανάλαβε
ι <- ι + 1
Τέλος_επανάληψης
Κάποια στιγμή το ι θα ξεπεράσει τον πραγματικό. Δεν είναι απαραίτητο για το όριο να είναι ακέραιος. Δεν ξέρω αν αυτό εννοούσες.
Παράθεση από: sstergou στις 27 Φεβ 2015, 10:24:03 ΠΜ
Δεν υπάρχει πρόβλημα.
Κάποια στιγμή το ι θα ξεπεράσει τον πραγματικό. Δεν είναι απαραίτητο για το όριο να είναι ακέραιος. Δεν ξέρω αν αυτό εννοούσες.
Ναι για αυτό το είπα , και έχεις δίκιο ισχύει.
Απλά στα παιδιά που το αναφέρω τους λέω πως διαγράφουμε με την γνωστή διαδικασία με το κόσκινο του Ερατοσθένη μέχρι και τον επόμενο ακέραιο του SQRT(N)
δηλαδή καλύτερα όριο <- Α_Μ(Τ_Ρ(Ν))+1
και σαφώς αυτό θα πρέπει να δίνεται ως παρατήρηση στην εκφώνηση.
Ευχαριστώ
Ωραία άσκηση από το διαδίκτυο, με μια μικρή τροποποίηση:
"Να βρεθεί το άθροισμα των 10 θετικών πρώτων αριθμών που θα συναντήσετε οι οποίοι μπορούν να διαιρεθούν ακριβώς ο καθένας τους, χωρίς να αφήνει υπόλοιπο, με όλους τους αριθμούς από το 1 μέχρι το 10." :D
Αργώ να πάρω αποτέλεσμα στο διερμηνευτή.
Αν θέλαμε να την δυσκολέψουμε περισσότερο:
"Να υπολογιστεί και να εμφανιστεί 5ψήφιος θετικός αριθμός ο οποίος να διαιρείται ακριβώς από τους 5 πρώτους πρώτους αριθμούς(primary). Αν δεν υπάρχει τέτοιος να βρεθεί το άθροισμα των 10 θετικών πρώτων αριθμών που θα συναντήσετε οι οποίοι μπορούν να διαιρεθούν ακριβώς ο καθένας τους, χωρίς να αφήνει υπόλοιπο, με όλους τους αριθμούς από το 1 μέχρι το 10. :D :D :D
Χωρίς πίνακες εννοείται και με τη μικρότερη πολυπλοκότητα.
Ο πρώτος είναι 2520 = 9x8x7x5.
Τα 1,2,3,4,6,10 προκύπτουν από συνδυασμούς διαιρετών των 4 παραπάνω παραγόντων.
Λογικά μετά δεν θα είναι
1 x 2520
2 x 2520
3 x 2520
.........
+ 10x2520
ή (1+..+10)*2520 = 10(10+1)/2 * 2520
αλλά κάτι δε μου πάει καλά στον συλλογισμό μου....
Είχα την εντύπωση πως υπάρχουν αριθμοί "ενδιάμεσα" από τα πολλαπλάσια του 2520!!!
Παράθεση από: evry στις 17 Νοε 2015, 11:42:32 ΠΜ
Ο πρώτος είναι 2520 = 9x8x7x5.
Τα 1,2,3,4,6,10 προκύπτουν από συνδυασμούς διαιρετών των 4 παραπάνω παραγόντων.
Λογικά μετά δεν θα είναι
1 x 2520
2 x 2520
3 x 2520
.........
+ 10x2520
ή (1+..+10)*2520 = 10(10+1)/2 * 2520
αλλά κάτι δε μου πάει καλά στον συλλογισμό μου....
:'( :'( :'( :'(
Τόσο απλό ήταν τελικά...
Το αλλάζω....
Να βρεθεί το άθροισμα των 10 θετικών πρώτων αριθμών που θα συναντήσετε οι οποίοι μπορούν να διαιρεθούν ακριβώς ο καθένας τους, χωρίς να αφήνει υπόλοιπο, με όλους τους αριθμούς από το 1 μέχρι το 10 ο πρώτος , με τους αριθμούς 1 - 20 ο δεύτερος, με τους αριθμούς 1 - 30 ο τρίτος και λοιπά...... μέχρι τον δέκατο αριθμό ο οποίος θα πρέπει να διαιρείται με όλους τους αριθμούς από το 1 - 100. :P :P :P
Υ.Γ. Πρέπει να ξαναδιαβάσω το αγαπημένο μου βιβλίο "How to be smarter, for Dummies!!!" ακούγοντας το αγαπημένο μου τραγουδάκι https://www.youtube.com/watch?v=iCnvd5_Q7gQ
Την καλησπέρα μου στον Κύριο Βραχνό με μεγατόνους σεβασμού!
Παράθεση από: evry στις 17 Νοε 2015, 11:42:32 ΠΜ
αλλά κάτι δε μου πάει καλά στον συλλογισμό μου....
Μια χαρά είναι ο συλλογισμός σου :)
Δίνω μια λύση για το τελευταίο πρόβλημα, που νομίζω ότι θα δούλευε.
Τώρα για την πολυπλοκότητά της δεν ξέρω...
ΠΡΟΓΡΑΜΜΑ nikolasmer
ΜΕΤΑΒΛΗΤΕΣ
ΑΚΕΡΑΙΕΣ: S, i, k, a, ΕΚΠ
ΑΡΧΗ
S <- 0
ΕΚΠ <- 1
ΓΙΑ i ΑΠΟ 1 ΜΕΧΡΙ 10 ! για τους 10 αριθμούς που ψάχνουμε
a <- 10*i
ΓΙΑ k ΑΠΟ a-9 ΜΕΧΡΙ a
ΕΚΠ <- ΕΚΠ * k DIV ΜΚΔ(ΕΚΠ, k)
ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
! η τιμή του ΕΚΠ τώρα είναι ο μικρότερος αριθμός που
! διαιρείται ακριβώς με όλους τους ακέραιους από 1 μέχρι 10*i
ΓΡΑΨΕ ΕΚΠ
S <- S + ΕΚΠ
ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
ΓΡΑΨΕ 'Το άθροισμα είναι: ', S
ΤΕΛΟΣ_ΠΡΟΓΡΑΜΜΑΤΟΣ
ΣΥΝΑΡΤΗΣΗ ΜΚΔ (x, y): ΑΚΕΡΑΙΑ
ΜΕΤΑΒΛΗΤΕΣ
ΑΚΕΡΑΙΕΣ: x, y, z
ΑΡΧΗ
ΑΡΧΗ_ΕΠΑΝΑΛΗΨΗΣ
ΑΝ x < y ΤΟΤΕ
z <- x
x <- y
y <- z
ΤΕΛΟΣ_ΑΝ
x <- x MOD y
ΜΕΧΡΙΣ_ΟΤΟΥ x = 0
ΜΚΔ <- y
ΤΕΛΟΣ_ΣΥΝΑΡΤΗΣΗΣ
Βρίσκει ταχύτατα ότι οι 4 πρώτοι ζητούμενοι αριθμοί είναι
2520
232792560
2329089562800
5342931457063200
αλλά από τον πέμπτο και μετά οι αριθμοί γίνονται τόσο μεγάλοι που κλατάρει η αριθμητική του διερμηνευτή
καμιά ιδέα για να ξεπεραστεί αυτό?
Δες ατο παρακάτω πρόγραμμα (το είχα δημοσιεύσει στο SpiNet-Γλωσσομάθεια, το 2003), ένα ενδιαφέρον θέμα για το μέγεθος των αριθμών. Αντί να κάνω όλους τους πολλαπλασιασμούς και μετά τη διαίρεση, κάνω μια διαίρεση και ένα πολλαπλασιασμό διαδοχικά! Άρα για να κρατήσεις ένα πολύ μεγάλο αριθμό..θα τον έχεις ως δυο αριθμούς, Α και Β όπου ο μεγάλος είναι ο Α*Β
(και εδώ υπάρχει μια διαίρεση (http://www.spinet.gr/glossomatheia/programs/viewtopic.php?f=12&t=76) με όσα δεκαδικά θέλουμε για να δείξουμε ένα νούμερο, απλά προσαρμόζουμε το που θα δείξουμε - ή όχι- το κόμμα των δεκαδικών).
Εφόσον κρατάμε αριθμούς ως σειρά γινομένων, θα δουλεύουμε πιο αποδοτικά!
Δίνω την ιδέα και τα εργαλεία. Όχι το πρόγραμμα!
ΠΡΟΓΡΑΜΜΑ Α
ΜΕΤΑΒΛΗΤΕΣ
ΑΚΕΡΑΙΕΣ: Χ,Κ
ΠΡΑΓΜΑΤΙΚΕΣ: Π, Π1, ΠΕ
ΑΡΧΗ
ΓΡΑΨΕ 'Συνολικές 6-αδες από 49 νούμερα'
Χ <-- 6
Π <-- 49
ΓΡΑΨΕ 'Π=', 49
ΓΙΑ Κ ΑΠΟ Χ ΜΕΧΡΙ 2 ΜΕ ΒΗΜΑ -1
Π1 <-- Π
ΠΕ <-- (50-Κ)/Κ
Π <-- Π*ΠΕ
ΓΡΑΨΕ '*',Α_Μ(50-Κ),'/ ', Α_Μ(Κ),' = ', Π1,'*',ΠΕ,' => Π=', Π
ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
ΓΡΑΨΕ 'ΕΠΑΛΗΘΕΥΣΗ=', (49*48*47*46*45*44)/(6*5*4*3*2)
ΤΕΛΟΣ_ΠΡΟΓΡΑΜΜΑΤΟΣ
Παράθεση από: evry στις 17 Δεκ 2010, 05:23:29 ΜΜ
Τρεις Ασκήσεις που θεωρώ δύσκολες και κρύβουν σημαντικούς διδακτικούς στόχους όσον αφορά τον προγραμματισμό
1. Να γίνει αλγόριθμος ο οποίος θα διαβάζει αριθμούς μέχρι να δοθεί 0 και θα εμφανίζει τον αριθμό που δόθηκε τις περισσότερες φορές.
Παραφράζοντας λίγο την άσκηση του κ. Βραχνου.....αυτό λύνεται χωρίς δυναμικές δομές;
Έβγαλες το "συνεχόμενες" ε?
Δεν λύνεται χωρίς δυναμικές δομές εκτός αν ξέρεις ποιοι είναι οι αριθμοί οπότε μπορείς να δεσμεύσεις πίνακα μετρητών.
Ωστόσο υπάρχει μια πολύ ωραία και κομψή λύση σε Python με χρήση λεξικού. ;)
Παράθεση από: nikolasmer στις 03 Νοε 2016, 12:17:03 ΜΜ
Παραφράζοντας λίγο την άσκηση του κ. Βραχνου.....αυτό λύνεται χωρίς δυναμικές δομές;
ΥΓ. Άστο αυτό το κ. Βραχνέ :-[
Παράθεση από: evry στις 16 Ιαν 2011, 08:27:39 ΜΜ
Το θέμα της 1ης φάσης του Πανελλήνιου Διαγωνισμού Πληροφορικής φέτος,
ΜΕΓΙΣΤΟΠΟΙΗΣΗ ΚΕΡΔΟΥΣ
Οι τιμές κάποιων αγαθών ή τίτλων (π.χ. πετρελαίου, χρυσού, μετοχών αλλά και βασικών τροφίμων όπως των αλεύρων, της ζάχαρης κ.λπ.) διαμορφώνονται καθημερινά βάσει της προσφοράς και της ζήτησης, αλλά και με βάση την εκτίμηση για τη μελλοντική τους πορεία. Αποτέλεσμα αυτών των συναλλαγών είναι οι τιμές αυτές να αλλάζουν από μέρα σε μέρα. Κάποιοι εκμεταλλεύονται αυτήν την αυξομείωση των τιμών, αγοράζοντας μία ποσότητα (ή δικαίωμα σε ποσότητα) φθηνά, και έπειτα πουλούν την ίδια ποσότητα ή δικαίωμα ακριβότερα. Το κέρδος εκφράζεται από το λόγο της τιμής πώλησης προς την τιμή αγοράς. Έστω ότι γνωρίζουμε την τιμή που έχει κάποιο αγαθό κάθε μέρα για ένα μεγάλο χρονικό διάστημα. Θέλουμε να υπολογίσουμε το μέγιστο κέρδος που θα μπορούσε κάποιος να αποκομίσει με μία αγορά και στη συνέχεια μία πώληση.
Πρόβλημα:
Να αναπτύξετε ένα πρόγραμμα σε μια από τις γλώσσες του IOI το οποίο να διαβάζει το πλήθος των ημερών για τις οποίες είναι γνωστή η τιμή του αγαθού, την τιμή του αγαθού για κάθε μία από αυτές τις ημέρες, και να υπολογίζει το μέγιστο δυνατό κέρδος από μία αγορά και στη συνέχεια μία πώληση.
Τι λέτε? θα μπορούσε να μπει άσκηση στο μάθημά μας?
Προσωπικά μου φαίνεται πολύ καλό
καλη ασκηση .παρακατω η λυση ΧΩΡΙΣ πινακα
Έναν αριθμό μπορούμε να τον σπάσουμε σε γινόμενο πρώτων παραγόντων (χωρίς αναδρομή;)
Ναι. Είναι και άσκηση στο τετράδιο μαθητή
Παράθεση από: gpapargi στις 05 Οκτ 2018, 10:06:30 ΠΜ
Ναι. Είναι και άσκηση στο τετράδιο μαθητή
και έπειτα να τον γράψουμε σε παραγοντοποιημενη μορφή ; Ανεξάρτητου πλήθους παραγόντων;
Ε ναι, αφού κάνεις το ένα κάνεις και το άλλο. Το βασικό σημείο είναι ότι δεν ψάχνεις τους πρώτους για να κάνεις διαιρέσεις. Κάνεις διαιρέσεις με όλους τους ακεραίου διαδοχικά. Αλλά οι σύνθετοι δε θα πετύχουν τέλεια διαίρεση γιατί ότι πρώτο παράγοντα περιέχουν έχει ήδη απορροφήσει όλες τις διαιρέσεις που θα μπορούσε να κάνει ο σύνθετος.
Παράθεση από: gpapargi στις 05 Οκτ 2018, 10:42:57 ΠΜ
Ε ναι, αφού κάνεις το ένα κάνεις και το άλλο. Το βασικό σημείο είναι ότι δεν ψάχνεις τους πρώτους για να κάνεις διαιρέσεις. Κάνεις διαιρέσεις με όλους τους ακεραίου διαδοχικά. Αλλά οι σύνθετοι δε θα πετύχουν τέλεια διαίρεση γιατί ότι πρώτο παράγοντα περιέχουν έχει ήδη απορροφήσει όλες τις διαιρέσεις που θα μπορούσε να κάνει ο σύνθετος.
Θα το προσπαθήσω.
Σας ευχαριστώ .
Μια εκδοχή σε Γλωσσομάθεια:
ΠΡΟΓΡΑΜΜΑ Ανάλυση_σε_γινόμενο_πρώτων_παραγόντων
ΜΕΤΑΒΛΗΤΕΣ
ΑΚΕΡΑΙΕΣ: n,i,m
ΑΡΧΗ
ΑΡΧΗ_ΕΠΑΝΑΛΗΨΗΣ
ΓΡΑΨΕ 'Δώσε φυσικό αριθμό'
ΔΙΑΒΑΣΕ n
ΜΕΧΡΙΣ_ΟΤΟΥ n>0 KAI A_Μ(n)=n
ΓΡΑΨΕ_ n,'=',1
i <-- 1
ΟΣΟ n<>1 ΕΠΑΝΑΛΑΒΕ
i <-- i+1
m <-- 0
ΟΣΟ n mod i=0 ΕΠΑΝΑΛΑΒΕ
m <-- m+1
n <-- n div i
ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
ΑΝ m>0 ΤΟΤΕ
ΓΡΑΨΕ_ 'x',i,'^',m
ΤΕΛΟΣ_ΑΝ
ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
ΤΕΛΟΣ_ΠΡΟΓΡΑΜΜΑΤΟΣ
https://www.youtube.com/watch?v=5LlHaoqBfbk&t=
Παράθεση από: sakisnemkav στις 26 Σεπ 2019, 10:33:53 ΠΜ
https://www.youtube.com/watch?v=5LlHaoqBfbk&t=
Μπράβο για την προσπάθεια. Το βίντεο είναι κατατοπιστικό. Μια παρατήρηση όμως για την περίπτωση των αρνητικών αριθμών: Ωραία ιδέα να καλύψεις και αυτή την περίπτωση, όμως, νομίζω, ότι, όταν όλη η ιδέα του αλγορίθμου είναι να δείξει ότι ο πολλαπλασιασμός γίνεται με πρόσθεση, ολίσθηση και σύγκριση, το να εμφανίσεις μέσα στον αλγόριθμο το γινόμενο Α*Β (έστω και μετά τον υπολογισμό της απόλυτης τιμής του αποτελέσματος) είναι σαν να καταργείς όλη την ιδέα. Υποτίθεται ότι αυτό θέλουμε να αποφύγουμε. Πιθανώς μάλιστα αυτό να μπερδέψει τους μαθητές που μπορεί εύλογα να ρωτήσουν αφού έχουμε έτσι κι αλλιώς το Α*Β μέσα στον αλγόριθμο γιατί να χρησιμοποιήσουμε τον πολλαπλασιασμό αλά ρωσικά για να το υπολογίσουμε;
Εφόσον έχεις ήδη πει ότι ο Η/Υ εκτελεί συγκρίσεις, μια ιδέα, αντί του Α*Β, θα ήταν εδώ να χρησιμοποιηθεί μια σύνθετη λογική συνθήκη στο στυλ: Α>0 και Β>0 ή Α<0 και Β<0 (δεν μου έρχεται κάτι πιο έξυπνο που να μην απαιτεί πολλαπλασιασμό ή κλασσική διαίρεση).
Με κίνδυνο να φανώ "σπαστικός" θα έλεγα να αποφύγεις ακόμη και το -1 * S και να γράψεις απλά -S ώστε να μην υπάρχει πουθενά στον αλγόριθμο η πράξη του πολλαπλασιασμού την οποία υποτίθεται ότι υλοποιεί ο αλγόριθμος (ΟΚ, δεν είμαι σίγουρος πως θα υλοποιούνταν το -S στην πράξη αλλά ο αντίθετος ενός ακεραίου μπορεί να βρεθεί χωρίς πολλαπλασιασμό με χρήση του συμπληρώματος ως προς 2 για να απαντήσω σε πιθανή ερώτηση μαθητή πως θα υπολογίσω τον αντίθετο χωρίς πολλαπλασιασμό. Ψιλά γράμματα μάλλον αλλά κουβέντα να γίνεται... :-) )
Παράθεση από: evry στις 16 Ιαν 2011, 08:27:39 ΜΜΠρόβλημα:
Να αναπτύξετε ένα πρόγραμμα σε μια από τις γλώσσες του IOI το οποίο να διαβάζει το πλήθος των ημερών για τις οποίες είναι γνωστή η τιμή του αγαθού, την τιμή του αγαθού για κάθε μία από αυτές τις ημέρες, και να υπολογίζει το μέγιστο δυνατό κέρδος από μία αγορά και στη συνέχεια μία πώληση.
Αλγόριθμος μεγιστοποίηση_κέρδους
Διάβασε days
Αν days < 2 τότε
Γράψε 1
αλλιώς
Διάβασε x1, x2
profit ← x2/x1
Για i από 3 μέχρι days
Διάβασε dayi
Αν dayi < x1 τότε ! Αν μπορώ να το αγοράσω φθηνότερα
x2 ← dayi
x1 ← dayi
αλλιώς_αν dayi > x2 τότε ! Αν μπορώ να το πουλήσω περισσότερα
x2 ← dayi
Τέλος_αν
Αν x2/x1 > profit τότε profit ← x2/x1
Τέλος_επανάληψης
Γράψε profit
Τέλος_αν
Τέλος
! Time : O(days)
! Space : O(1)
Καλημέρα πως μπορώ να εξηγήσω στα παιδιά την μεθοδολογία για αυτήν την δύσκολη μετατροπή(Από Όσο σε Για)?
Σ <-- 0
Ι <-- 4
ΟΣΟ Ι<100 ΕΠΑΝΑΛΑΒΕ
Ι <-- Ι + 5
Σ <-- Σ + Ι
ΓΡΑΨΕ Ι
ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
ΓΡΑΨΕ Σ
Η προτεινόμενη λύση του ΟΕΦΕ(2018) είναι ΓΙΑ Ι ΑΠΟ 9 ΜΕΧΡΙ 104(πως να καταλαβαίνουν να βρίσκουν το τελικό σημείο και το αρχικό)
Παράθεση από: nokotsos στις 12 Δεκ 2022, 10:54:01 ΠΜΚαλημέρα πως μπορώ να εξηγήσω στα παιδιά την μεθοδολογία για αυτήν την δύσκολη μετατροπή(Από Όσο σε Για)?
Σ <-- 0
Ι <-- 4
ΟΣΟ Ι<100 ΕΠΑΝΑΛΑΒΕ
Ι <-- Ι + 5
Σ <-- Σ + Ι
ΓΡΑΨΕ Ι
ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
ΓΡΑΨΕ Σ
Η προτεινόμενη λύση του ΟΕΦΕ(2018) είναι ΓΙΑ Ι ΑΠΟ 9 ΜΕΧΡΙ 104(πως να καταλαβαίνουν να βρίσκουν το τελικό σημείο και το αρχικό)
Καλημέρα, πες τους να σκεφτούν πίνακα τιμών στο μυαλό τους, άρα θα πήγαινε
Για ι από 4 μέχρι 99 με_βημα 5
Σ <- Σ + (ι+5)
Όποτε εύκολα θα καταλάβουν γιατί πάει
Για ι από 9 μέχρι 104
Παράθεση από: nokotsos στις 12 Δεκ 2022, 10:54:01 ΠΜΚαλημέρα πως μπορώ να εξηγήσω στα παιδιά την μεθοδολογία για αυτήν την δύσκολη μετατροπή(Από Όσο σε Για)?
Σ <-- 0
Ι <-- 4
ΟΣΟ Ι<100 ΕΠΑΝΑΛΑΒΕ
Ι <-- Ι + 5
Σ <-- Σ + Ι
ΓΡΑΨΕ Ι
ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
ΓΡΑΨΕ Σ
Η προτεινόμενη λύση του ΟΕΦΕ(2018) είναι ΓΙΑ Ι ΑΠΟ 9 ΜΕΧΡΙ 104(πως να καταλαβαίνουν να βρίσκουν το τελικό σημείο και το αρχικό)
Νομίζω ότι η πιο εύκολη λύση να καταλάβουν είναι:
Σ <- 0
ΓΙΑ Ι ΑΠΟ 4 ΜΕΧΡΙ 99 ΜΕ_ΒΗΜΑ 5
Σ <- Σ + (Ι + 5)
ΓΡΑΨΕ Ι+5
ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
ΓΡΑΨΕ Σ
Ουσιαστικά επειδή το ΓΙΑ αλλάζει το μετρητή του στο τέλος της επανάληψης, ότι χρησιμοποιεί την τιμή του μετρητή ενώ έχει ήδη αλλάξει του βάζεις την αλλαγμένη του τιμή στις εκφράσεις.