Γενικό Λύκειο > Δομή επανάληψης

Δύσκολες Ασκήσεις στις Δομές Επανάληψης

<< < (2/18) > >>

soron80:

--- Παράθεση από: ALEXANDROS LIAPIS στις 17 Δεκ 2010, 03:00:46 μμ --- καλησπέρα κ από εμένα.
κάνω την παρθενική εμφάνιση στο ΣΤΕΚΙ και στέλνω αυτό το πρόγραμμα.
Είναι στην ίδια φιλοσοφία με το δικό σου.


--- Τέλος παράθεσης ---

ΔΕΝ Μπορώ να καταλάβω τη δυσκολία του προγράμματος αυτού...

olga_ath:

--- Παράθεση από: 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ου θέματος των πανελληνίων.

ευχαριστώ

evry:
Η λύση μου φαίνεται σωστή, απλά θα το προτιμούσα με μια μόνο επανάληψη, δηλαδή χωρίς να χρησιμοποιείς και 2η Όσο....Επανάλαβε μέσα στην επανάληψη.
Επίσης η συχνότητα θα έπρεπε να ξεκινάει από 1 γιατί έχεις ήδη διαβάσει μια φορά τον αριθμό. Παρ'όλα αυτά αυτό δεν επηρεάζει τη λύση σου, αφού όλες οι συχνότητες είναι κατά -1 μικρότερες άρα το μεγαλύτερο θα το βρεις.

Όσο για την άσκησή σου, αν κατάλαβα καλά έχεις κάνει μια παραλλαγή της άσκησης με τα γραμματόσημα του 2007. Όταν έρθει πολύ ακριβό προϊόν τότε ο αλγόριθμος δεν σταματά αλλά ζητάει από τον χρήστη τι να κάνει. Μου φαίνεται πολύ καλή ιδέα.
Πάντως στη λύση σου πάλι δε μου αρέσει αυτή η δεύτερη επανάληψη. Θα προτιμούσα μια. ;)

olga_ath:
 :D ευχαριστώ για το θετικό feedback για την άσκηση που πρέπει να ξοδέψεις πρώτα ΟΛΟ το ποσό και μετά να αφήσεις το πολυκαστάστημα  ;)

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

Θα προσπαθήσω να την λύσω και με μια επανάληψη και θα επανέλθω. Συγχωρεστε με για την πολύπλοκη σκέψη :-)
Είναι όμως μια κάποια λυση 8)

ευχαριστώ

evry:
ναι βρε , η λύση σου είναι μια χαρά, δεν υπάρχει θέμα, απλά αν έχεις χρόνο δοκίμασε χωρίς την επανάληψη, θα δεις ότι ο κώδικας θα μαζευτεί λίγο.
Τώρα σχετικά με τη συχνότητα εννοούσα το εξής: Ο πρώτος αριθμός που θα έρθει δεν έχει εμφανιστεί ήδη μια φορά? άρα ο μετρητής πρέπει να ξεκινάει από 1 , αυτό εννοούσα.
Δηλαδή για να έναν αριθμό που θα εμφανιστεί 3 συνεχόμενες φορές ο μετρητής σου θα δώσει 2 και όχι 3.

Σχετικά με τις άλλες ασκήσεις που έδωσα απλά να προσθέσω το εξής:
  Για την άσκηση με την αριθμητική πρόοδο η συνθήκη που ζητάμε είναι κάθε 2 διαδοχικοί όροι να έχουν σταθερή διαφορά.

Επίσης για την άσκηση με τους Fibonacci, απλά θα πω ότι είναι πολύ πιο δύσκολη από ότι φαίνεται, και ότι κρύβει μια παγίδα η οποία δεν είναι ορατή με την πρώτη ματιά

Πλοήγηση

[0] Λίστα μηνυμάτων

[#] Επόμενη σελίδα

[*] Προηγούμενη σελίδα

Μετάβαση στην πλήρη έκδοση