άσκηση για δομές επανάληψης

Ξεκίνησε από vkol32, 29 Νοε 2010, 12:57:59 ΜΜ

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

vkol32

Να συμπληρώσετε τα κενά στον παρακάτω αλγόριθμο ώστε να εμφανίζει τους εξής αριθμούς: 2, 5, 8, 11, 14, 4, 7, 10, 13, 6, 9, 12, 15, 8, 11, 14.


Αλγόριθμος Εμφάνιση
Για ... από ... μέχρι ... με_βήμα ...
   Για ... από ... μέχρι ... με_βήμα ...
      εμφάνισε ...
   Τέλος_Επανάληψης
Τέλος_Επανάληψης
Τέλος Εμφάνιση

Θέλω μια βοήθεια γιατί δεν μου βγαίνουν σωστά τα αποτελέσματα.
το e-mail μου για απαντήσεις είναι : kol@hol.gr

ευχαριστώ πολύ

petrosp13

Βρες σε ποια σημεία διακόπτεται απότομα η σειρά των αριθμών σου και γυρίζει πίσω
Η πρώτη επανάληψη θα εκφράζει τον πρώτο αριθμό κάθε φορά που συμβαίνει αυτό
Η μέσα επανάληψη θα εκφράζεται σε συνάρτηση αυτού του αριθμού
Παπαδόπουλος Πέτρος
Καθηγητής Πληροφορικής

vkol32

οκ το βρήκα..τελικά ήταν απλό!

fof

Θέμα 2 (Για επαναληψούλα..)

Δίνεται ο παρακάτω Αλγόριθμος
κ <- 10
μ <- 1
Όσο μ < 10
   Αν κ mod μ < > 0 τότε
      μ <- μ + 6
      κ <- κ * μ
   Αλλιώς
      Για i από 1 μέχρι 4
         Αν κ div μ < 60 τότε
            μ <- μ + 1
            κ <- κ * μ
         Τέλος_Αν
      Τέλος_επανάληψης
      Εμφάνισε κ, μ, i
   Τέλος_Αν
   κ <- κ div 7
Τέλος_επανάληψης

Να εκτελέσετε τον Αλγόριθμό και να :
α)    κάνετε τον Πίνακα τιμών
β)    κατά την εκτέλεση του Αλγορίθμου τι θα εμφανιστεί στην οθόνη;
γ)    Ποια θα είναι η τελική τιμή των μεταβλητών κ, μ, i;
δ)    Πόσες φορές θα εκτελεστούν οι εντολές
        μ <- μ + 1
      κ <- κ * μ

evry

Πόσες φορές θα εκτελεστεί η εντολή Γράψε '*' ;

Για i από 1 μέχρι Ν
    Για j από 1 μέχρι i
          Για k από 1 μέχρι j
                  Γράψε '*'
          Τέλος_Επανάληψης
    Τέλος_Επανάληψης
Τέλος_Επανάληψης   
What I cannot create I do not understand -- Richard Feynman
http://evripides.mysch.gr

petrosp13

Παράθεση από: evry στις 04 Απρ 2011, 11:19:22 ΜΜ
Πόσες φορές θα εκτελεστεί η εντολή Γράψε '*' ;

Για i από 1 μέχρι Ν
    Για j από 1 μέχρι i
          Για k από 1 μέχρι j
                  Γράψε '*'
          Τέλος_Επανάληψης
    Τέλος_Επανάληψης
Τέλος_Επανάληψης   

Είσαι μεγάλος "αλήτης"  :) :) :)
Πάρα πολύ καλό
Παπαδόπουλος Πέτρος
Καθηγητής Πληροφορικής

evry

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

spantoulis

#7
                    *
                  ***
               ******
           **********
********************
Είναι όμως εντός πνεύματος Χριστουγέννων!!! :D
Η χρήση υπολογιστών ΔΕΝ είναι πληροφορική

petrosp13

Οι 2 ασκήσεις σας ταιριάζουν
Η δεύτερη δημιουργεί τρίγωνους αριθμούς, από τους οποίους προκύπτουν οι αριθμοί της πρώτης
Η πρώτη με δυσκόλεψε αρκετά
Παπαδόπουλος Πέτρος
Καθηγητής Πληροφορικής

evry

Δεν είναι το ίδιο. Η 2η είναι στο ίδιο πνεύμα (δεν είναι η ίδια) με μια επανάληψη όπως η παρακάτω

Για ι από 1 μέχρι Ν     (όπου Ν είναι το βάθος)
   Για j από 1 μέχρι i 
       Εμφάνισε '*'
   Τέλος_Επανάληψης
Τέλος_Επανάληψης

Αυτό βγάζει κάτι όπως το παρακάτω

*
**
***
****
*****
.......

για να βγάλουμε το δέντρο είναι λίγο πιο δύσκολο (θέλει βήμα 2 και υπολογισμό των κενών πριν)


Το αρχικό πρόβλημα (με τις 3 επαναλήψεις) έχει αρκετό ενδιαφέρον αν κάποιος προσπαθήσει να υπολογίσει τον αριθμό των βημάτων συναρτήσει του Ν.
Δηλαδή δεν με ενδιαφέρει τόσο τι θα εμφανιστεί αλλά ο υπολογισμός του πλήθους (ουσιαστικά υπολογίζεις απόδοση).
Ωστόσο το σχήμα που έδωσε ο spantoulis είναι μια πολύ καλή ιδέα αν θέλεις να δώσεις στο πρόβλημα μια γεωμετρική ερμηνεία.
What I cannot create I do not understand -- Richard Feynman
http://evripides.mysch.gr

odysseas

Παράθεση από: evry στις 05 Απρ 2011, 11:56:33 ΠΜ
Το αρχικό πρόβλημα (με τις 3 επαναλήψεις) έχει αρκετό ενδιαφέρον αν κάποιος προσπαθήσει να υπολογίσει τον αριθμό των βημάτων συναρτήσει του Ν.

1/6 * Ν * (Ν+1) * (Ν+2) = 1/6 * Ν^3 + 1/2 * Ν^2 + 1/3 * Ν

το έχουμε;

evry

λογικά το έχεις :D

αυτό που με ενδιαφέρει (και ο λόγος που πόσταρα το θέμα) είναι κυρίως ο τρόπος σκέψης. Δηλαδή πως θα σκεφτεί κάποιος για να υπολογίσει το πλήθος των επαναλήψεων.
What I cannot create I do not understand -- Richard Feynman
http://evripides.mysch.gr

petrosp13

Παράθεση από: evry στις 05 Απρ 2011, 11:56:33 ΠΜ
Δεν είναι το ίδιο. Η 2η είναι στο ίδιο πνεύμα (δεν είναι η ίδια) με μια επανάληψη όπως η παρακάτω

Για ι από 1 μέχρι Ν     (όπου Ν είναι το βάθος)
   Για j από 1 μέχρι i 
       Εμφάνισε '*'
   Τέλος_Επανάληψης
Τέλος_Επανάληψης

Αυτό βγάζει κάτι όπως το παρακάτω

*
**
***
****
*****
.......

για να βγάλουμε το δέντρο είναι λίγο πιο δύσκολο (θέλει βήμα 2 και υπολογισμό των κενών πριν)


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

Από εδώ πήρα το ερέθισμα για την άποψη μου
http://www.mathematische-basteleien.de/triangularnumber.htm
Παπαδόπουλος Πέτρος
Καθηγητής Πληροφορικής

odysseas

Παράθεση από: evry στις 05 Απρ 2011, 02:10:18 ΜΜ
αυτό που με ενδιαφέρει (και ο λόγος που πόσταρα το θέμα) είναι κυρίως ο τρόπος σκέψης. Δηλαδή πως θα σκεφτεί κάποιος για να υπολογίσει το πλήθος των επαναλήψεων.

Παράθεση από: petrosp13 στις 05 Απρ 2011, 03:17:21 ΜΜ
Από εδώ πήρα το ερέθισμα για την άποψη μου
http://www.mathematische-basteleien.de/triangularnumber.htm

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

  • Η εσωτερική επανάληψη κάνει j επαναλήψεις.
  • Εμφωλεύοντας στη μεσαία επανάληψη, οι επαναλήψεις είναι το άθροισμα των j, για j από 1 μέχρι i = 1/2*i*(i+1).
  • Εμφωλεύοντας στην εξωτερική επανάληψη, οι επαναλήψεις είναι το άθροισμα των 1/2*i*(i+1), για i από 1 μέχρι Ν = 1/6 * Ν * (Ν+1) * (Ν+2) = 1/6 * Ν^3 + 1/2 * Ν^2 + 1/3 * Ν.
Το αποτέλεσμα προκύπτει είτε από γνωστούς τύπους άθροισης, είτε ταίζοντας τα παραπάνω στη wolphram alpha  :-X



evry

πραγματικά πολύ ενδιαφέρον λινκ αυτό που δίνει ο Πέτρος

το σκεπτικό είναι αυτό που λέει ο Γιώργος. Απλά η δυσκολία για ένα μαθητή είναι να υπολογίσει το \sum_{1}^{n} i(i+1)
Εκεί θα κολλήσει γιατί πρέπει να ξέρει ότι 1+2+3+...+ν = ν(ν+1)/2 και να μπορεί να διαχειριστεί πράξεις με το \sum
Το πρώτο το ξέρουν γιατί το έχουν κάνει στην αριθμητικές προόδους.  Το 2ο είναι το πρόβλημα.

Ίσως ένας τρόπος που θα μπορούσε να δοθεί το πρόβλημα αυτό είναι στο εργαστήριο, δηλαδή να το υλοποιήσουν και να εμφανίσουν έναν πίνακα τιμών για τις διάφορες τιμές του Ν ή και τις τιμές της τριάδας (i,j,k) ώστε να προσπαθήσουν να "ανακαλύψουν" τον τύπο.
  Αυτό είναι το δύσκολο στάδιο της επαγωγής το οποίο οι μαθηματικοί κρύβουν εντέχνως, δίνοντας στα παιδιά έτοιμους τύπους και μια μέθοδο (επαγωγή) που πρέπει απλά να εφαρμόζουν χωρίς να καταλαβαίνουν το γιατί. Σε αυτές τις περιπτώσεις η ανακάλυψη του τύπου είναι σημαντικότερη από την απόδειξη.

Παράθεση από: petrosp13 στις 05 Απρ 2011, 03:17:21 ΜΜ
Από εδώ πήρα το ερέθισμα για την άποψη μου
http://www.mathematische-basteleien.de/triangularnumber.htm
What I cannot create I do not understand -- Richard Feynman
http://evripides.mysch.gr

fof

Παράθεση από: evry στις 04 Απρ 2011, 11:19:22 ΜΜ
Για i από 1 μέχρι Ν
    Για j από 1 μέχρι i
          Για k από 1 μέχρι j
                  Γράψε '*'
          Τέλος_Επανάληψης
    Τέλος_Επανάληψης
Τέλος_Επανάληψης   

Πολύ καλή!!!

έκανα ολόκληρο το δέντρο σε γλώσσα αλλά δυσκολεύομαι στον υπολογισμό των κενών
ΑΡΧΗ
  M <- 1
  ΓΙΑ I ΑΠΟ 1 ΜΕΧΡΙ 5
    ΓΙΑ J ΑΠΟ 1 ΜΕΧΡΙ I
      ΓΙΑ K ΑΠΟ 1 ΜΕΧΡΙ J*M
        ΓΡΑΨΕ "* "
      ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
      ΓΡΑΨΕ ""
    ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
    M <- 2
  ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
ΤΕΛΟΣ_ΠΡΟΓΡΑΜΜΑΤΟΣ Α


evry

Κάτσε γιατί τώρα με μπέρδεψες. Τι εννοείς "υπολογισμό των κενών"?
Αν εννοείς το δέντρο φαντάσου ότι το απλό δέντρο γίνεται με διπλή επανάληψη.
Η τριπλη επανάληψη όμως εμφανίζει πυραμίδα και όχι δέντρο (3 δείκτες - 3 διαστάσεις)
Φαντάσου ότι αν κόψεις την πυραμίδα σε οριζόντιες φέτες θα πάρεις ένα δέντρο στο επίπεδο.

Δεν κατάλαβα τι θέλεις να κάνεις, να εμφανίσεις  το αποτέλεσμα ή να υπολογίσεις το πλήθος των '*'?
Μια καλή στρατηγική είναι να βάλεις ένα       Γράψε i, j, k     εκεί μέσα για να δεις σε πρώτη φάση τι συμβαίνει
What I cannot create I do not understand -- Richard Feynman
http://evripides.mysch.gr

fof

εννοούσα την πυραμίδα... οκ το βρήκα αυτό που ήθελα  :)

Thank U!


Βασίλης Παπαχρήστος

Παράθεση από: evry στις 05 Απρ 2011, 02:10:18 ΜΜ
λογικά το έχεις :D

αυτό που με ενδιαφέρει (και ο λόγος που πόσταρα το θέμα) είναι κυρίως ο τρόπος σκέψης. Δηλαδή πως θα σκεφτεί κάποιος για να υπολογίσει το πλήθος των επαναλήψεων.

Αρχικά σκεφτόμαστε ότι η επανάληψη:
Για ι από 1 μέχρι Ν
  Για j από 1 μέχρι ι
    ...
  Τέλος_επανάληψης
Τέλος_επανάληψης

θα γίνει 1 + 2 + 3 + ... + Ν φορές, δηλαδή Ν*(Ν+1)/2 αφού οι όροι του αθροίσματος αποτελούν αριθμητική πρόοδο με πρώτο όρο το 1, τελευταίο τον Ν και βήμα 1.
Τώρα αν προσθέσουμε και την τρίτη επανάληψη παρατηρούμε ότι ο κάθε όρος του προηγούμενου αθροίσματος θα αποτελεί ένα νέο άθροισμα, θα έχουμε δηλαδή τη μορφή:
{1} + {1+2} + {1+2+3} + {1+2+3+4} + ... + {1+2+3+4+...+Ν}.
Ο κ-οστός όρος αυτής της ακολουθίας έχει τη μορφή 1+2+3+...+κ, δηλαδή κ*(κ+1)/2 λόγω του παραπάνω.
Επομένως θέλουμε το άθροισμα όλων των όρων για κ από 1 μέχρι Ν.
Κάνοντας πράξεις και γνωρίζοντας ότι 1^2 + 2^2 + 3^2 + ... + Ν^2 = Ν*(Ν+1)*(2Ν+1)/6 προκύπτει το αποτέλεσμα
Ν*(Ν+1)*(Ν+2)/6 αυτό δηλαδή που λέει και ο Οδυσσέας

evry

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