59
Να αναπτυχθεί αλγόριθμος που θα εκτυπώνει τους διψήφιους άρτιους ακέραιους. ΕΠ.1 Αλγόριθμος άρτιοι_διψήφιοι Τέλος άρτιοι_διψήφιοι Η άσκηση στην ουσία θα πρέπει να εκτυπώσει του αριθμούς 10, 12, 14, ….,96, 98. Με μια πρώτη ματιά θα μπορούσαμε να την λύσουμε με το να προσπελάσουμε τις τιμές όλων των διψήφιων και με τη χρήση δομής επιλογής να επιλέξουμε τους άρτιους. Ο αλγόριθμος είναι ο ακόλουθος: i από 10 Για ! διψήφιοι μέχρι 99 Αν i mod 2=0 τότε Εκτύπωσε i Τέλος_αν Τέλος_επανάληψης Αν το γράψω με αυτό τον τρόπο: Αλγόριθμος άρτιοι_διψήφιοι Τέλος άρτιοι_διψήφιοι i από 10 Για ! θα μπορούσε να ανέβει και μέχρι το 99 μέχρι 98 Εκτύπωσε i Τέλος_επανάληψης με_βήμα 2 ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ∆ομή Επανάληψης ΕΠΑΝΑ Λ Η Ψ Η

Δομή Επανάληψης-Ασκήσεις επανάληψης-Πριν τις εξετάσεις

Embed Size (px)

DESCRIPTION

Ανάπτυξη Εφαρμογών σε Προγραμματιστικό Περιβάλλον,Δομή Επανάληψης-Ασκήσεις επανάληψης-Πριν τις εξετάσεις,http://videolearner.com/,video-μαθήματα

Citation preview

Page 1: Δομή Επανάληψης-Ασκήσεις επανάληψης-Πριν τις εξετάσεις

Να αναπτυχθεί αλγόριθμος που θα εκτυπώνει τους διψήφιους άρτιους ακέραιους.

ΕΠ.1

Αλγόριθμος άρτιοι_διψήφιοι

Τέλος άρτιοι_διψήφιοι

Η άσκηση στην ουσία θα πρέπει να εκτυπώσει του αριθμούς 10, 12, 14, ….,96, 98.Με μια πρώτη ματιά θα μπορούσαμε να την λύσουμε με το να προσπελάσουμε τις τιμές όλων τωνδιψήφιων και με τη χρήση δομής επιλογής να επιλέξουμε τους άρτιους.Ο αλγόριθμος είναι ο ακόλουθος:

i από 10Για ! διψήφιοιμέχρι 99

Αν i mod 2=0 τότεΕκτύπωσε i

Τέλος_ανΤέλος_επανάληψης

Αν το γράψω με αυτό τον τρόπο:

Αλγόριθμος άρτιοι_διψήφιοι

Τέλος άρτιοι_διψήφιοι

i από 10Για ! θα μπορούσε να ανέβει και μέχρι το 99μέχρι 98

Εκτύπωσε i

Τέλος_επανάληψης

με_βήμα 2

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ∆ομή ΕπανάληψηςΕΠΑΝΑΛΗΨΗ

Page 2: Δομή Επανάληψης-Ασκήσεις επανάληψης-Πριν τις εξετάσεις

Ο ταμίας του super market Mercadona καταχωρεί στην ταμειακή απόδειξη τον κωδικό του προϊόντος και την τιμή. Όταν ολοκληρωθεί η καταχώρηση για την αγορά ενός πελάτη , τότε εισάγεται ο κωδικός 0. Να αναπτύξετε αλγόριθμο που θα υλοποιεί την παραπάνω διαδικασία και στο τέλος θα εκτυπώνει το συνολικό ποσό της αγοράς και το πλήθος των προϊόντων που αγοράστηκαν.Όταν το πλήθος των επαναλήψεων είναι άγνωστο, τότε δεν μπορούμε να χρησιμοποιήσουμε τη δομήεπανάληψης Για….Στην περίπτωση αυτή χρησιμοποιούμε την Όσο (ή τη Μέχρις_ότου).

1ο βήμα: Διατυπώνω τη συνθήκη που επιθυμούμε

κωδικός<>0Όσο επανέλαβε

Τέλος_επανάληψης

2ο βήμα: Αρχικοποιώ τη μεταβλητή

Διάβασε κωδικός

3ο βήμα: Τοποθετώ την εντολή αλλαγής

Διάβασε κωδικός

Οπότε φτιάξαμε το βασικό σκελετό της επανάληψης.Στη συνέχεια συμπληρώνουμε τις υπόλοιπες εντολές.Αρχικοποίηση συνόλου πριν το βρόχο.Αύξηση (μεταβολή) συνόλου μέσα στο βρόχο.

σύνολο ← 0

Διάβασε τιμή , τεμάχια

σύνολο ← σύνολο + τιμή*τεμάχια

Μας ζητείται παράλληλα και το πλήθος των προϊόντων .

πλήθος ← 0

Αρχικοποίηση πλήθος.

πλήθος← πλήθος+ 1

Μεταβολή της μεταβλητής πλήθος(Άύξηση).

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ∆ομή ΕπανάληψηςΕΠ.2 ΕΠΑΝΑΛΗΨΗ

Page 3: Δομή Επανάληψης-Ασκήσεις επανάληψης-Πριν τις εξετάσεις

Ο ταμίας του super market Mercadona καταχωρεί στην ταμειακή απόδειξη τον κωδικό του προϊόντος και την τιμή. Όταν ολοκληρωθεί η καταχώρηση για την αγορά ενός πελάτη , τότε εισάγεται ο κωδικός 0. Να αναπτύξετε αλγόριθμο που θα υλοποιεί την παραπάνω διαδικασία και στο τέλος θα εκτυπώνει το συνολικό ποσό της αγοράς και το πλήθος των προϊόντων που αγοράστηκαν.

Ο αλγόριθμος είναι ο ακόλουθος:

Αλγόριθμος Mercadona

Τέλος Mercadona

κωδικός<>0Όσο επανέλαβε

Τέλος_επανάληψης

Διάβασε κωδικός

Διάβασε κωδικός

σύνολο ← 0

Διάβασε τιμή , τεμάχια

σύνολο ← σύνολο + τιμή*τεμάχια

πλήθος ← 0

πλήθος← πλήθος+ 1

Εκτύπωσε σύνολο , πλήθος

Αρχή

σύνολο←0πλήθος←0

Διάβασεκωδικός

βρόχος

κωδικός <>0

ΝαιΔιάβασε

τιμή,τεμάχια

σύνολο ← σύνολο +τιμή*τεμάχιαπλήθος ← πλήθος+1

Διάβασεκωδικός

Όχι

Εκτύπωσεσύνολο ,πλήθος

Τέλος

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ∆ομή ΕπανάληψηςΕΠ.2 ΕΠΑΝΑΛΗΨΗ

Page 4: Δομή Επανάληψης-Ασκήσεις επανάληψης-Πριν τις εξετάσεις

Ο αλγόριθμος είναι ο ακόλουθος:

Αλγόριθμος περιττοί_μο

Τέλος περιττοί_μο

Αρχή_επανάληψης

άθροισμα ← 0

Διάβασε αριθμός

πλήθος ← 0

Να αναπτυχθεί αλγόριθμος που θα διαβάζει ακέραιους αριθμούς από τον χρήστη ,θα υπολογίζει και θα εκτυπώνει τον μέσο όρο των περιττών απ’ αυτούς τους αριθμούς .Η διαδικασία ανάγνωσης θα σταματά όταν έχουν διαβαστεί 20 περιττοί αριθμοί.

Ο αριθμός των επαναλήψεων είναι άγνωστος.Η διατύπωση της εκφώνησης μας παραπέμπει στηχρήση της δομής επανάληψης Μέχρις_ότου .Με την Όσο… μπορεί να μην γίνει ποτέ επανάληψη.Με τη Μέχρις_ότου τουλάχιστον μία.

Αν αριθμος mod 2=1 τότεάθροισμα ← άθροισμα +αριθμόςπλήθος ← πλήθος +1

Τέλος_ανΜέχρις_ότου πλήθος=20

Αν πλήθος <>0 τότε

μέσος_όρος ← άθροισμα /πλήθος

Εκτύπωσε μέσος_όροςΤέλος_αν

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ∆ομή ΕπανάληψηςΕΠ.3 ΕΠΑΝΑΛΗΨΗ

Page 5: Δομή Επανάληψης-Ασκήσεις επανάληψης-Πριν τις εξετάσεις

Ο αλγόριθμος είναι ο ακόλουθος:

Αλγόριθμος περιττοί_μο

Τέλος περιττοί_μο

Αρχή_επανάληψης

άθροισμα ← 0

Διάβασε αριθμός

πλήθος ← 0

Αν αριθμος mod 2=1 τότεάθροισμα ← άθροισμα +αριθμόςπλήθος ← πλήθος +1

Τέλος_ανΜέχρις_ότου πλήθος=20

Αν πλήθος <>0 τότε

μέσος_όρος ← άθροισμα /πλήθος

Εκτύπωσε μέσος_όροςΤέλος_αν

Αρχή

άθροισμα←0πλήθος←0

Διάβασεαριθμός

αριθμόςmod2 =1

Ναι

άθροισμα ← άθροισμα+αριθμόςπλήθος ← πλήθος+1

πλήθος=20Όχι

Όχι

Ναι Τέλος βρόχουπλήθος <>0

Ναι

μέσος_όρος ← άθροισμα/πλήθος

Εκτύπωσεμέσος_όρος

Τέλος

Όχι

βρόχος

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ∆ομή ΕπανάληψηςΕΠ.3 ΕΠΑΝΑΛΗΨΗ

Page 6: Δομή Επανάληψης-Ασκήσεις επανάληψης-Πριν τις εξετάσεις

Να αναπτυχθεί αλγόριθμος που θα υπολογίζει και θα εκτυπώνει το άθροισμα των θετικών διψήφιων περιττών ακεραίων .Δηλ το άθροισμα : S=11+13+15+….+95+97+99

Αλγόριθμος Αθροισμα_Περιττών

Τέλος Αθροισμα_Περιττών

Για την επίλυση της άσκησης θα χρησιμοποιήσουμε έναν αθροιστή.Ένας αθροιστής περιέχει δύο εντολές:

α. Μηδενισμό πριν την επανάληψηβ. Αύξηση του αθροιστή εντός του βρόχου

Ο αλγόριθμος είναι οακόλουθος:

S ← 0i από 11Για μέχρι 99 με_βήμα 2

S ← S + i

Τέλος_επανάληψης

Εκτύπωσε “Το άθροισμα είναι ”,S

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ∆ομή ΕπανάληψηςΕΠ.4 ΕΠΑΝΑΛΗΨΗ

Page 7: Δομή Επανάληψης-Ασκήσεις επανάληψης-Πριν τις εξετάσεις

Να αναπτυχθεί αλγόριθμος που θα υπολογίζει και θα εκτυπώνει τα αθροίσματα:

S1= 1 + 12

+ 13

+ 14

+….+ 1100

και S2= 13

+ 19

+ 127

+….+ 13100

Στις ασκήσεις αυτές πρέπει να ξεχωρίσουμε ποιο είναι το στοιχείο του αθροίσματος που αλλάζει καιποιο παραμένει αμετάβλητο.

S1=11

+ 12

+ 13

+ 14

+….+ 1100

Στο πρώτο άθροισμα ο αριθμητής παραμένει σταθερός.Ενώ ο παρονομαστής μεταβάλλεται και παίρνει διαδοχικά τις τιμές 1,2,3,4,5,6…,99,100.

S2= 131

+ 132

+ 133

+….+ 13100

Στο δεύτερο άθροισμα ο αριθμητής παραμένει σταθερός.Ενώ στον παρονομαστή υπάρχει μια δύναμη του 3 και ο εκθέτης μεταβάλλεται και παίρνει διαδοχικά τις

τιμές 1,2,3,4,5,6…,99,100.

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ∆ομή ΕπανάληψηςΕΠ.5 ΕΠΑΝΑΛΗΨΗ

Page 8: Δομή Επανάληψης-Ασκήσεις επανάληψης-Πριν τις εξετάσεις

Να αναπτυχθεί αλγόριθμος που θα υπολογίζει και θα εκτυπώνει τα αθροίσματα:

S1= 1 + 12

+ 13

+ 14

+….+ 1100

και S2= 13

+ 19

+ 127

+….+ 13100

S1=11

+ 12

+ 13

+ 14

+….+ 1100

S2= 131

+ 132

+ 133

+….+ 13100

Αλγόριθμος Άθροισμα

Τέλος Άθροισμα

Ο αλγόριθμος είναι οακόλουθος:

S_1← 0S_2← 0

i από 1Για μέχρι 100

S_1← S_1 +1 / i

S_2← S_2 +1 /3^ i

Τέλος_επανάληψης

Εκτύπωσε “Τα αθροίσματα είναι ”,S_1, S_2

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ∆ομή ΕπανάληψηςΕΠ.5 ΕΠΑΝΑΛΗΨΗ

Page 9: Δομή Επανάληψης-Ασκήσεις επανάληψης-Πριν τις εξετάσεις

Να αναπτυχθεί αλγόριθμος που θα διαβάζει έναν ακέραιο αριθμό Ν και θα υπολογίζει το άθροισμα:

S1 = 5 + 3 - 9 + 27 - 81 + … +- 3Ν

Στο άθροισμα αυτό παρατηρούμε ότι ,μετά τον αρχικό όρο 5, το πρόσημο καθενός όρου εναλλάσσεται.Την εναλλαγή του προσήμου μπορούμε να την επιτύχουμε με την ύψωση του -1 σε άρτιο ή περιττόεκθέτη, ανάλογα με την εξέλιξη των τιμών του μετρητή της δομής επανάληψης.Όταν το (-1) υψώνεται σε περιττό εκθέτη το πρόσημο γίνεται αρνητικό, ενώ όταν υψώνεται σε άρτιο εκθέτη γίνεται θετικό.Το εναλλασσόμενο πρόσημο δημιουργείται πολλαπλασιάζοντας με τον όρο (-1)^i ή τον (-1)^(i+1) κατά περίπτωση.

(-1)^1+1 (-1)^2+1 (-1)^3+1 ………..

Αλγόριθμος Αθροισμα_Πρόσημο

Τέλος Αθροισμα_Πρόσημο

Ο αλγόριθμος είναι οακόλουθος:

Γράψε “Δώσε έναν ακέραιο αριθμό ”Διάβασε Ν

i από 1Για μέχρι Ν

S← 5

S← S+(-1)^(1+i)*(3)^iΤέλος_επανάληψης

Γράψε “Η τιμή του αθροίσματος ”,S

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ∆ομή ΕπανάληψηςΕΠ.6 ΕΠΑΝΑΛΗΨΗ

Page 10: Δομή Επανάληψης-Ασκήσεις επανάληψης-Πριν τις εξετάσεις

Να αναπτυχθεί αλγόριθμος που θα διαβάζει έναν ακέραιο αριθμό Ν και θα υπολογίζει το άθροισμα:

S =

2 + 4 + 8 + 16 + … + 2Ν

1 + 32

+ 94

+ 276

+….+ 3Ν

2*Ν

, αν Ν άρτιος

, αν Ν περιττός

Αλγόριθμος Διπλό_Άθροισμα

Τέλος Διπλό_Άθροισμα

Ο αλγόριθμος είναι οακόλουθος:

Γράψε “Δώσε έναν ακέραιο αριθμό ”Διάβασε Ν

Αν Ν mod 2=0 τότεS← 0

i από 1Για μέχρι ΝS← S + 2^i

Τέλος_επανάληψης

ΑλλιώςS← 1

i από 1Για μέχρι ΝS← S + 3^i/(2*i)

Τέλος_επανάληψηςΤέλος_αν

Γράψε “Η τιμή του αθροίσματος ”,S

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ∆ομή ΕπανάληψηςΕΠ.7 ΕΠΑΝΑΛΗΨΗ

Page 11: Δομή Επανάληψης-Ασκήσεις επανάληψης-Πριν τις εξετάσεις

Το παραγοντικό ορίζεται ως εξής:

Ν! =

αόριστο , αν Ν<01 , αν Ν=0

1*2*3*4*….*Ν , αν Ν>0

Να αναπτυχθεί αλγόριθμος που θα διαβάζει έναν αριθμό και θα υπολογίζει το παραγοντικό του.

Αλγόριθμος Παραγοντικό

Τέλος Παραγοντικό

Ο αλγόριθμος είναι οακόλουθος:

Γράψε “Δώσε έναν ακέραιο αριθμό ”Διάβασε Ν

Αν Ν < 0 τότεΓράψε “Το παραγοντικό δεν ορίζεται”

Αλλιώς_αν Ν = 0 τότε

Γράψε “Το 0 παραγοντικό είναι 1”Αλλιώς

γινόμενο ← 1i από 1Για μέχρι Ν

γινόμενο← γινόμενο*iΤέλος_επανάληψης

! Ουδέτερο στοιχείο του πολλαπλασιασμού

Γράψε “Το”, Ν “ παραγοντικό είναι ” , γινόμενοΤέλος_αν

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ∆ομή ΕπανάληψηςΕΠ.8 ΕΠΑΝΑΛΗΨΗ

Page 12: Δομή Επανάληψης-Ασκήσεις επανάληψης-Πριν τις εξετάσεις

Να αναπτυχθεί αλγόριθμος που θα εκτυπώνει τις λύσεις της εξίσωσης 5x+12y-6z=11

με τα x ,y, z να παίρνουν τις ακέραιες τιμές [-50,50].

Αλγόριθμος Εξίσωση

Τέλος Εξίσωση

Για την επίλυση της άσκησης θα πρέπει οι μεταβλητές x, y, z , να πάρουν όλες τις επιτρεπτές τιμές.Για κάθε μία τιμή πρέπει να υπολογίζεται το άθροισμα

5x+12y-6z της εκφώνησης και να ελέγχεται αν το αποτέλεσμα ισούται με 11, οπότε οι τιμές των x, y , z θααποτελούν λύση της εξίσωσης.Για αυτό θα χρησιμοποιήσουμε 3 εμφωλευμένες δομές επανάληψης Για...Προσοχή:Πρέπει να ολοκληρώνεται κάθε εσωτερικός βρόχος προτού συνεχιστεί ο εξωτερικός.

Ο αλγόριθμος είναι οακόλουθος:

x από -50Για μέχρι 50

y από -50Για μέχρι 50z από -50Για μέχρι 50

ποσότητα ← 5*x +12*y -6*z

Αν ποσότητα=11 τότεΕκτύπωσε ”Λύση της εξίσωσης είναι :”x,y,z

Τέλος_ανΤέλος_επανάληψης

Τέλος_επανάληψηςΤέλος_επανάληψης

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ∆ομή ΕπανάληψηςΕΠ.9 ΕΠΑΝΑΛΗΨΗ

Page 13: Δομή Επανάληψης-Ασκήσεις επανάληψης-Πριν τις εξετάσεις

Να αναπτυχθεί αλγόριθμος που θα εκτυπώνει τους 200 πρώτους όρους της ακολουθίας:

αν =2

2*αν-1+(ν-1)

, αν ν=1

, αν ν>1

Αλγόριθμος Ακολουθία_αναδρομική

Τέλος Ακολουθία_αναδρομική

Σε κάθε επανάληψη , πρέπει στον προηγούμενο όρο να προσθέτουμε την επιπλέον ποσότητα ν-1 .

Ο αλγόριθμος είναι οακόλουθος:

α_ν ← 2

Γράψε ”Ο 1ος όρος της ακολουθίας είναι :”α_ν ! Εκτύπωση ζητά η άσκηση.

i από 2Για μέχρι 200

α_ν ← 2* α_ν +(i-1)

Γράψε ”Ο ”,i ,“ος όρος της ακολουθίας είναι :”α_ν

Τέλος_επανάληψης

! Μην σε μπερδεύει το αν-1 της εκφώνησης

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ∆ομή ΕπανάληψηςΕΠ.10 ΕΠΑΝΑΛΗΨΗ

Page 14: Δομή Επανάληψης-Ασκήσεις επανάληψης-Πριν τις εξετάσεις

Να αναπτυχθεί αλγόριθμος που διαβάζει έναν αριθμό Ν>2 και θα εκτυπώνει αντίστοιχο πλήθος όρων της ακολουθίας Fibonacci. Ο πρώτος όρος της ακολουθίας είναι το 0,ο δεύτερος το 1 και κάθε επόμενος όρος είναι το άθροισμα των δύο προηγουμένων

( 0, 1 ,1 , 2, 3, 5 ,8 , 13 , 21 ,34 , 55 , 89,….)

Σε αυτή την άσκηση τα πράγματα περιπλέκονται . Για τον υπολογισμό του εκάστοτε όρου χρειάζονται οιπροηγούμενοι δύο όροι της ακολουθίας. Θα χρησιμοποιήσουμε δύο μεταβλητές που θα διατηρούν τονπροηγούμενο και τον προ-προηγούμενο όρο αντίστοιχα.

Αλγόριθμος Ακολουθία_Fibonacci

Τέλος Ακολουθία_Fibonacci

Ο αλγόριθμος είναι οακόλουθος:

Διάβασε Ν ! Θεωρούμε ότι Ν>2Γράψε ”Ο 1ος όρος της ακολουθίας είναι 0”Γράψε ”Ο 2ος όρος της ακολουθίας είναι 1”

α_ν_2 ← 0α_ν_1 ← 1

i από 3Για μέχρι Ν

α_ν ← α_ν_2 + α_ν_1

Γράψε ”Ο ”,i ,“ος όρος της ακολουθίας είναι :”α_ν

α_ν_2 ← α_ν_1 ! προ-προηγούμενος όρος ο μέχρι τώρα προηγούμενοςα_ν_1 ← α_ν ! προηγούμενος όρος ο τρέχων

Τέλος_επανάληψης

! αν-2 προ-προηγούμενος όρος! αν-1 προηγούμενος όρος

! αν-2 + αν-1

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ∆ομή ΕπανάληψηςΕΠ.11 ΕΠΑΝΑΛΗΨΗ

Page 15: Δομή Επανάληψης-Ασκήσεις επανάληψης-Πριν τις εξετάσεις

Να αναπτυχθεί αλγόριθμος που θα εκτυπώνει τους θετικούς τριψήφιους ακέραιους που είναι πολλαπλάσιοι του 7, καθώς και το πλήθος των αριθμών αυτών.

Θα χρησιμοποιήσουμε ένα μετρητή που θα καταμετρά τους τριψήφιους ακέραιους που είναιπολλαπλάσιοι του 7.

Ο μετρητής απαιτεί 2 εντολές :1. Μηδενισμό του μετρητή πριν επανάληψη.2. Αύξηση της τιμής κατά μία μονάδα , εντός του βρόχου.

Αλγόριθμος Πολλαπλάσια_7

Τέλος Πολλαπλάσια_7

Ο αλγόριθμος είναι οακόλουθος: πλήθος ← 0

i από 100Για μέχρι 999

Αν imod7=0 τότε ! Πολλαπλάσιο του 7πλήθος ← πλήθος+1

Γράψε ”Ο αριθμός “,i, “ικανοποιεί τις προϋποθέσεις”Τέλος_αν

Τέλος_επανάληψηςΓράψε πλήθος

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ∆ομή ΕπανάληψηςΕΠ.12 ΕΠΑΝΑΛΗΨΗ

Page 16: Δομή Επανάληψης-Ασκήσεις επανάληψης-Πριν τις εξετάσεις

Να αναπτυχθεί αλγόριθμος που θα εκτυπώνει τους θετικούς τριψήφιους ακέραιους που είναι πολλαπλάσιοι του 7, καθώς και το πλήθος των αριθμών αυτών.

Ο αλγόριθμος μπορεί να γραφεί και με άλλο τρόπο.Θα ξεκινήσουμε με από τον πρώτο τριψήφιο ακέραιο που είναι πολλαπλάσιος του 7 ( τον 105 ) και μεβήμα 7 θα διατρέξουμε όλα τα πολλαπλάσια, μέχρι τον τελευταίο τριψήφιο.

Αλγόριθμος Πολλαπλάσια_7

Τέλος Πολλαπλάσια_7

Ο αλγόριθμος είναι οακόλουθος:

πλήθος ← 0

i από 105Για μέχρι 999 με_βήμα 7

πλήθος ← πλήθος+1

Γράψε ”Ο αριθμός “,i, “ικανοποιεί τις προϋποθέσεις”

Τέλος_επανάληψηςΓράψε πλήθος

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ∆ομή ΕπανάληψηςΕΠ.12 ΕΠΑΝΑΛΗΨΗ

Page 17: Δομή Επανάληψης-Ασκήσεις επανάληψης-Πριν τις εξετάσεις

Να αναπτυχθεί αλγόριθμος που θα εκτυπώνει όλους τους θετικούς τριψήφιους ακέραιους, των οποίων η τιμή είναι ίση με το άθροισμα των κύβων των ψηφίων τους(Αριθμοί Armstrong).Η άσκηση μπορεί να επιλυθεί με δύο προσεγγίσεις.• Η 1η προσέγγιση είναι να διατρέξουμε όλους τους τριψήφιους ακέραιους , να απομονώσουμε τα 3

ψηφία τους και να ελέγξουμε τη συνθήκη της εκφώνησης.

Αλγόριθμος κύβος_τριψήφιων

Τέλος κύβος_τριψήφιων

Ο αλγόριθμος είναι οακόλουθος:

Χ από 100Για μέχρι 999

εκατοντάδες ← Χ div 100

βοηθητική ← Χ mod 100

δεκάδες ← βοηθητική div 10

μονάδες ← βοηθητική mod 10

ποσότητα ← εκατοντάδες^3+ δεκάδες^3+ μονάδες^3

Αν ποσότητα=Χ τότε

Γράψε ”Ο αριθμός “,Χ, “ικανοποιεί τις προϋποθέσεις”Τέλος_αν

Τέλος_επανάληψης

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ∆ομή ΕπανάληψηςΕΠ.13 ΕΠΑΝΑΛΗΨΗ

Page 18: Δομή Επανάληψης-Ασκήσεις επανάληψης-Πριν τις εξετάσεις

Να αναπτυχθεί αλγόριθμος που θα εκτυπώνει όλους τους θετικούς τριψήφιους ακέραιους, των οποίων η τιμή είναι ίση με το άθροισμα των κύβων των ψηφίων τους(Αριθμοί Armstrong).Η άσκηση μπορεί να επιλυθεί με δύο προσεγγίσεις.• Η 1η προσέγγιση είναι να διατρέξουμε όλους τους τριψήφιους ακέραιους , να απομονώσουμε τα 3

ψηφία τους και να ελέγξουμε τη συνθήκη της εκφώνησης. • Η 2η προσέγγιση είναι με τη χρήση τριών δομών επανάληψης , ώστε να δημιουργήσουμε τις

εκατοντάδες, δεκάδες και μονάδες (τιμές 0 έως 9) δηλαδή τρία ψηφία ενός τριψήφιου αριθμού και ναελέγξουμε τη συνθήκη της εκφώνησης.

Αλγόριθμος κύβος_τριψήφιων

Τέλος κύβος_τριψήφιων

Ο αλγόριθμος είναι οακόλουθος:

εκατοντάδες από 1Για μέχρι 9 ! Αν άρχιζε από 0 δεν θα ήταν τριψήφιος

δεκάδες από 0Για μέχρι 9

μονάδες από 0Για μέχρι 9

ποσότητα ← εκατοντάδες^3+ δεκάδες^3+ μονάδες^3Χ ← 100*εκατοντάδες+ 10*δεκάδες+ μονάδες

Αν ποσότητα =Χ τότε

Γράψε ”Ο αριθμός “,Χ, “ικανοποιεί τις προϋποθέσεις”Τέλος_αν

Τέλος_επανάληψης

Τέλος_επανάληψης

Τέλος_επανάληψης

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ∆ομή ΕπανάληψηςΕΠ.13 ΕΠΑΝΑΛΗΨΗ

Page 19: Δομή Επανάληψης-Ασκήσεις επανάληψης-Πριν τις εξετάσεις

Να αναπτυχθεί αλγόριθμος που θα βρίσκει και θα εκτυπώνει όλους τους θετικούς τετραψήφιους ακέραιους που μπορούν να διαβαστούν και ανάποδα (για παράδειγμα 1331, 7447, 9229 κλπ .).Η άσκηση μπορεί να επιλυθεί με διάσπαση των ψηφίων του αριθμού με τη διαφορά ότι θααντιστοιχήσουμε τις χιλιάδες με τις μονάδες καιτις εκατοντάδες με τις δεκάδες .

Αλγόριθμος τετραψήφιος_ανάποδα

Ο αλγόριθμος είναι οακόλουθος:

Χ από 1000Για μέχρι 9999χιλιάδες ← Χ div 1000

βοηθητική ← Χ mod 1000εκατοντάδες ← βοηθητική div 100

βοηθητική ← βοηθητική mod 100

Τέλος τετραψήφιος_ανάποδα

δεκάδες ← βοηθητική div 10

μονάδες ← βοηθητική mod 10Αν χιλιάδες =μονάδες και εκατοντάδες=δεκάδες τότε

Γράψε ”Ο αριθμός “,Χ, “ικανοποιεί τις προϋποθέσεις”Τέλος_αν

Τέλος_επανάληψης

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ∆ομή ΕπανάληψηςΕΠ.14 ΕΠΑΝΑΛΗΨΗ

Page 20: Δομή Επανάληψης-Ασκήσεις επανάληψης-Πριν τις εξετάσεις

Να αναπτυχθεί αλγόριθμος που θα διαβάζει ένα αριθμό Ν μεγαλύτερο του 1 και θα ελέγχει αν ισχύει η ισότητα:

(1+2+3+….+Ν)2=13+23+33+43+…..+Ν3

Αλγόριθμος Επαλήθευση

Ο αλγόριθμος είναι οακόλουθος:

Τέλος Επαλήθευση

Διάβασε Νάθροισμα1 ← 0άθροισμα2 ← 0

i από 1Για μέχρι N

! Θεωρώ ότι Ν>1

άθροισμα1 ← άθροισμα1 +iάθροισμα2 ← άθροισμα2 +i^3

Τέλος_επανάληψης

άθροισμα1 ← άθροισμα1^2

Αν άθροισμα1 = άθροισμα2 τότε

Γράψε ”Η ισότητα της εκφώνησης ισχύει.”Αλλιώς

Γράψε ”Η ισότητα της εκφώνησης δεν ισχύει.”Τέλος_αν

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ∆ομή ΕπανάληψηςΕΠ.15 ΕΠΑΝΑΛΗΨΗ

Page 21: Δομή Επανάληψης-Ασκήσεις επανάληψης-Πριν τις εξετάσεις

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

Αλγόριθμος Ποσοστό_Διψήφιων

Ο αλγόριθμος είναι οακόλουθος:

Τέλος Ποσοστό_Διψήφιων

διψήφιοι ← 0

i από 1Για μέχρι 500

Διάβασε αριθμός

Αν αριθμός >= 10 και αριθμός <= 99 τότεδιψήφιοι ← διψήφιοι +1

Τέλος_ανΤέλος_επανάληψης

ποσοστό ← 100*διψήφιοι/500

Γράψε ”Το ποσοστό των διψήφιων είναι”,ποσοστό

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ∆ομή ΕπανάληψηςΕΠ.16 ΕΠΑΝΑΛΗΨΗ

Page 22: Δομή Επανάληψης-Ασκήσεις επανάληψης-Πριν τις εξετάσεις

Να αναπτυχθεί αλγόριθμος που θα διαβάζει Ν ακέραιους αριθμούς (όπου Ν δεδομένος ακέραιος) και θα εκτυπώνει το άθροισμα και το μέσο όρο άρτιων.

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

Αλγόριθμος Άρτιοι

Ο αλγόριθμος είναι οακόλουθος:

Τέλος Άρτιοι

Δεδομένα // Ν //άθροισμα_άρτιων ← 0

πλήθος_άρτιων ← 0i από 1Για μέχρι N

Διάβασε αριθμόςΑν αριθμός mod 2= 0 τότε

άθροισμα_άρτιων ← άθροισμα_άρτιων +αριθμόςπλήθος_άρτιων ← πλήθος_άρτιων + 1

Τέλος_ανΤέλος_επανάληψης

Αν πλήθος_αρτίων <> 0 τότε ! Κριτήριο καθοριστικότηταςμέσος_όρος ← άθροισμα_άρτιων / πλήθος_άρτιων

Γράψε άθροισμα_άρτιων , μέσος_όροςΤέλος_αν

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ∆ομή ΕπανάληψηςΕΠ.17 ΕΠΑΝΑΛΗΨΗ

Page 23: Δομή Επανάληψης-Ασκήσεις επανάληψης-Πριν τις εξετάσεις

Να αναπτυχθεί αλγόριθμος που θα διαβάζει το πολύ 100 ακέραιους αριθμούς , από τους οποίους το πολύ 20 θα είναι αρνητικοί. Ο αλγόριθμος θα εκτυπώνει το ποσοστό των θετικών και των αρνητικών αριθμών που διάβασε (τα μηδενικά δεν θεωρούνται θετικοί ούτε αρνητικοί).Φτιάχνουμε τον σκελετό της επανάληψης:Το πολύ 100 ακεραίους.

Όσο (όλοι <100) και (αρνητικοί<20) επανέλαβε

Τέλος_επανάληψης

Αρχικοποιούμε τις μεταβλητές που συμμετέχουν στη συνθήκη του βρόχου

όλοι ← 0αρνητικοί ← 0

Ο αλγόριθμος είναι οακόλουθος:

Αλγόριθμος Ποσοστά_αριθμών

Τέλος Ποσοστά_αριθμών

θετικοί ← 0

Διάβασε αριθμόςΑν αριθμός < 0 τότεαρνητικοί ← αρνητικοί+1

Αλλιώς_αν αριθμός > 0 τότεθετικοί ← θετικοί +1

Τέλος_ανόλοι ← όλοι+1

ποσοστό_θετικών ← 100*θετικοί/όλοι

ποσοστό_αρνητικών ← 100*αρνητικοί/όλοιΓράψε ποσοστό_θετικών ,ποσοστό_αρνητικών

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ∆ομή ΕπανάληψηςΕΠ.18 ΕΠΑΝΑΛΗΨΗ

Page 24: Δομή Επανάληψης-Ασκήσεις επανάληψης-Πριν τις εξετάσεις

Να αναπτυχθεί αλγόριθμος που θα διαβάζει αριθμούς αγνώστου πλήθους και θα εκτυπώνει το μέσο όρο τους. Η επαναληπτική διαδικασία θα τερματίζεται όταν δοθεί ο αριθμός -9999 ο οποίος δεν θα καταμετράται.Θα επιλύσουμε την άσκηση με τη χρήση της δομής Μέχρις_ότου.

άθροισμα ← 0

πλήθος ← 0

Αρχή_επανάληψης

Διάβασε αριθμόςάθροισμα ← άθροισμα +αριθμός

πλήθος ← πλήθος+ 1

Μέχρις _ότου αριθμός =-9999

Ο αλγόριθμος έχει λογικό λάθος.

Ο αριθμός που οδηγεί στον τερματισμό θα προστεθείκαι αυτός στο άθροισμα και θα καταμετρηθεί στο πλήθος,κάτι που θα οδηγήσει σε λάθος αποτελέσματα.Αυτός το λάθος είναι συνέπεια της ιδιότητας της δομήςΜέχρις_ότου , όπου η συνθήκη ελέγχεται στο τέλος τουβρόχου και , και διορθώνεται με τη προσθήκη τηςδομής επιλογής Αν.

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ∆ομή ΕπανάληψηςΕΠ.19 ΕΠΑΝΑΛΗΨΗ

Page 25: Δομή Επανάληψης-Ασκήσεις επανάληψης-Πριν τις εξετάσεις

Να αναπτυχθεί αλγόριθμος που θα διαβάζει αριθμούς αγνώστου πλήθους και θα εκτυπώνει το μέσο όρο τους. Η επαναληπτική διαδικασία θα τερματίζεται όταν δοθεί ο αριθμός -9999 ο οποίος δεν θα καταμετράται.

Αλγόριθμος ΜΟ_Αριθμών

Ο αλγόριθμος είναι ο ακόλουθος:

Τέλος ΜΟ_Αριθμών

άθροισμα ← 0

πλήθος ← 0Αρχή_επανάληψης

Διάβασε αριθμός

Αν αριθμός<> -9999 τότεάθροισμα ← άθροισμα +αριθμόςπλήθος ← πλήθος+ 1

Τέλος_ανΜέχρις _ότου αριθμός =-9999

Αν πλήθος<> 0 τότε ! Κριτήριο καθοριστικότητας

μέσος_όρος ← άθροισμα/πλήθος

Γράψε πλήθος,μέσος_όροςΑλλιώςΓράψε “Δεν δόθηκε κανένας αριθμός”Τέλος_αν

Παρατηρούμε ότι υπάρχει περίπτωση ναμην εκτελεστεί καμία φορά το τμήμαεντολών του βρόχου ,άρα μάλλον ταιριάζει η δομή επανάληψηςΌσο .

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ∆ομή ΕπανάληψηςΕΠ.19 ΕΠΑΝΑΛΗΨΗ

Page 26: Δομή Επανάληψης-Ασκήσεις επανάληψης-Πριν τις εξετάσεις

Να αναπτυχθεί αλγόριθμος που θα διαβάζει αριθμούς αγνώστου πλήθους και θα εκτυπώνει το μέσο όρο τους. Η επαναληπτική διαδικασία θα τερματίζεται όταν δοθεί ο αριθμός -9999 ο οποίος δεν θα καταμετράται.

Αλγόριθμος ΜΟ_Αριθμών

Ο αλγόριθμος είναι ο ακόλουθος:

Τέλος ΜΟ_Αριθμών

άθροισμα ← 0

πλήθος ← 0

Διάβασε αριθμός

Όσο αριθμός<> -9999 επανέλαβεάθροισμα ← άθροισμα +αριθμόςπλήθος ← πλήθος+ 1

Τέλος_επανάληψης

Αν πλήθος<> 0 τότε ! Κριτήριο καθοριστικότητας

μέσος_όρος ← άθροισμα/πλήθος

Γράψε πλήθος,μέσος_όροςΑλλιώςΓράψε “Δεν δόθηκε κανένας αριθμός”Τέλος_αν

Προστέθηκε άλλη μια εντολήΔιάβασε ,ώστε να αρχικοποιηθεί η μεταβλητήαριθμός.

Διάβασε αριθμός

Στη συνέχεια , στο τέλος του βρόχουδιαβάζεται η επόμενη τιμή για ναχρησιμοποιηθεί στον επόμενο έλεγχο.

Προτείνεται η δομή Όσο για επίλυσηασκήσεων όπου το πλήθος τωνεπαναλήψεων είναι άγνωστο.

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ∆ομή ΕπανάληψηςΕΠ.19 ΕΠΑΝΑΛΗΨΗ

Page 27: Δομή Επανάληψης-Ασκήσεις επανάληψης-Πριν τις εξετάσεις

Να αναπτυχθεί αλγόριθμος που θα διαβάζει χαρακτήρες κειμένου , μέχρι να συναντήσει τους χαρακτήρες “.” ή “!” .Ο αλγόριθμος εκτυπώνει το πλήθος των χαρακτήρων που διάβασε καθώς και το πλήθος εμφανίσεων του χαρακτήρα “α”. Οι χαρακτήρες “.” και “!”δεν καταμετρούνται.Θα επιλύσουμε την άσκηση με τη χρήση της δομής Όσο.

Αλγόριθμος Μέτρηση_Χαρακτήρων

Τέλος Μέτρηση_Χαρακτήρων

συνολικό_πλήθος ← 0

πλήθος_α ← 0

Διάβασε γράμμα

Όσο γράμμα<> “.” και γράμμα<> “!” επανέλαβεσυνολικό_πλήθος ← συνολικό_πλήθος +1

Αν γράμμα= “α” τότε

πλήθος_α ← πλήθος_α+1Τέλος_αν ! Για την επόμενη εντολή

Τέλος_επανάληψης

Γράψε συνολικό_πλήθος,πλήθος_α

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ∆ομή ΕπανάληψηςΕΠ.20 ΕΠΑΝΑΛΗΨΗ

Page 28: Δομή Επανάληψης-Ασκήσεις επανάληψης-Πριν τις εξετάσεις

Να αναπτυχθεί αλγόριθμος που θα διαβάζει ζεύγη αριθμών . Ο αλγόριθμος θα ρωτάει τον χρήστη αν επιθυμεί να συνεχίσει την καταχώρηση νέων στοιχείων . Στο τέλος της επαναληπτικής διαδικασίας θα εκτυπώνει το πλήθος των ζευγαριών που διάβασε. Σε αυτό το παράδειγμα ενδείκνυται η χρήση της δομής Μέχρις_ότου, αφού επιθυμούμε την επεξεργασία όλων των στοιχείων που διαβάζουμε.Αλγόριθμος Ζεύγη_τιμών

Τέλος Ζεύγη_τιμών

πλήθος ← 0

Αρχή_επανάληψηςΔιάβασε τιμή1,τιμή2

πλήθος ← πλήθος +1Γράψε “Επιθυμείτε να συνεχίσετε(ΝΑΙ/ΟΧΙ);”

Διάβασε απάντηση

Μέχρις _ότου απάντηση = “OXI ”

Γράψε “Τα ζεύγη τιμών που διαβάστηκαν είναι ”,πλήθος

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ∆ομή ΕπανάληψηςΕΠ.21 ΕΠΑΝΑΛΗΨΗ

Page 29: Δομή Επανάληψης-Ασκήσεις επανάληψης-Πριν τις εξετάσεις

Να αναπτυχθεί αλγόριθμος που θα διαβάζει έναν αριθμό (μεγαλύτερο του 0) και θα υπολογίζει το άθροισμα:

S=1+22+33+44+…μέχρι το S να ξεπεράσει την τιμή του αριθμού που διαβάστηκε. Ο αλγόριθμος θα εκτυπώνει το πλήθος των όρων που χρειάστηκαν για τον υπολογισμό του S.

Αλγόριθμος Άθροισμα_Όριο

Τέλος Άθροισμα_Όριο

Αρχή_επανάληψης

Διάβασε ΌριοΜέχρις _ότου Όριο > 0

i ← 1S ← 0

Όσο S<=Όριο επανέλαβεS ← S +i^ii ← i +1

Τέλος_επανάληψης

Γράψε “Οι επαναλήψεις που απαιτήθηκαν είναι ”,i

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ∆ομή ΕπανάληψηςΕΠ.22 ΕΠΑΝΑΛΗΨΗ

Page 30: Δομή Επανάληψης-Ασκήσεις επανάληψης-Πριν τις εξετάσεις

Να αναπτυχθεί αλγόριθμος που θα υπολογίζει το άθροισμα:

ώστε το S να έχει τον τελευταίο όρο αυτόν που δεν θα ξεπερνάει την τιμή 0.00001. Ο αλγόριθμος θα εκτυπώνει το πλήθος των επαναλήψεων που χρειάστηκαν για τον υπολογισμό του S.

S=1

2+

1

4+

1

6+

1

8+….

Αλγόριθμος Άθροισμα_Ακρίβεια

Τέλος Άθροισμα_Ακρίβεια

Όριο ← 0.00001i ← 1S ← 0

Όσο επόμενος_όρος>Όριο επανέλαβε

S ← S + επόμενος_όρος

i ← i +1

επόμενος_όρος ← 1/2

επόμενος_όρος ← 1/(2*i)

Τέλος_επανάληψης

Γράψε “Οι επαναλήψεις που απαιτήθηκαν είναι ”,i

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ∆ομή ΕπανάληψηςΕΠ.23 ΕΠΑΝΑΛΗΨΗ

Page 31: Δομή Επανάληψης-Ασκήσεις επανάληψης-Πριν τις εξετάσεις

Να αναπτυχθεί αλγόριθμος που θα διαβάζει έναν ακέραιο αριθμό και θα εκτυπώνει το πλήθος των ψηφίων του.Ας θεωρήσουμε για παράδειγμα τον αριθμό 3275. Αν διαιρέσουμε τον αριθμό με το 10000 .

4 ψηφία10^4

το ακέραιο μέρος της διαίρεσης είναι 0 και τα ψηφία του αριθμού είναι 4 όσα και τα μηδενικά του 10000.

3275 10000

0,3275

Ακέραιο μέρος

Έτσι , για να υπολογίσουμε το πλήθος των ψηφίων αρκεί να διαιρέσουμε τον αριθμό μετο 10 , το 100, το 1000 κλπμέχρι το ακέραιο μέρος της διαίρεσης να είναι 0.

Άγνωστος αριθμόςεπαναλήψεων.

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ∆ομή ΕπανάληψηςΕΠ.24 ΕΠΑΝΑΛΗΨΗ

Page 32: Δομή Επανάληψης-Ασκήσεις επανάληψης-Πριν τις εξετάσεις

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

Αλγόριθμος Πλήθος_ψηφίων

Τέλος Πλήθος_ψηφίων

Διάβασε αριθμός

ψηφία ← 1

Όσο αριθμόςdiv10^ψηφία <>0 επανέλαβε

ψηφία ← ψηφία+1

Τέλος_επανάληψης

Γράψε “Τα ψηφία είναι ”,ψηφία

ΑΛΛΙΩΣ

Αλγόριθμος Πλήθος_ψηφίων

Τέλος Πλήθος_ψηφίων

Διάβασε αριθμόςψηφία ← 0Αρχή_επανάληψης

ψηφία ← ψηφία+1

αριθμός ← αριθμόςdiv10^ψηφία

Μέχρις_ότου αριθμός=0

Γράψε “Τα ψηφία είναι ”,ψηφία

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ∆ομή ΕπανάληψηςΕΠ.24 ΕΠΑΝΑΛΗΨΗ

Page 33: Δομή Επανάληψης-Ασκήσεις επανάληψης-Πριν τις εξετάσεις

Όταν κάποιος φταρνίζεται ,συνηθίζεται να του λένε ένα τετραψήφιο αριθμό . Τότε αυτός προσθέτει τα ψηφία του αριθμού , μέχρι αν αντιστοιχεί σε κάποιο γράμμα της αλφαβήτου. Να αναπτύξετε αλγόριθμο που θα διαβάζει έναν αριθμό , με 4 ψηφία , και θα εντοπίζει το γράμμα της αλφαβήτου που αντιστοιχεί στο φτάρνισμα. Ο αλγόριθμος είναι:

Αλγόριθμος Με_τις_υγείες_σας

Τέλος Με_τις_υγείες_σας

Αρχή_επανάληψης

Διάβασε αριθμόςΜέχρις _ότου (αριθμός> = 1000) και (αριθμός< = 9999) ! 4 ψηφίαΑρχή_επανάληψης

χιλιάδες ← αριθμός div 1000 ! Βρίσκω τις χιλιάδεςβοηθητική1 ← αριθμός mod 1000 ! Βρίσκω τον υπόλοιπο αριθμόεκατοντάδες ← βοηθητική1 div 100

βοηθητική2 ← βοηθητική1 mod 100

δεκάδες ← βοηθητική2 div 10

μονάδες ← βοηθητική2 mod 10αριθμός ← χιλιάδες+εκατοντάδες+δεκάδες+μονάδες

Μέχρις _ότου αριθμός< = 24

Γράψε “Προκύπτει το γράμμα που βρίσκεται στη θέση , αριθμός

Με μια δομή πίνακααντιστοιχίζουμε τον αριθμό με τογράμμα.

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ∆ομή ΕπανάληψηςΕΠ.25 ΕΠΑΝΑΛΗΨΗ

Page 34: Δομή Επανάληψης-Ασκήσεις επανάληψης-Πριν τις εξετάσεις

Ένας τρόπος υπολογισμού των τριγωνομετρικών συναρτήσεων στους υπολογιστές , είναι με τον υπολογισμό των παρακάτω σειρών:

ημχ= x -x3

3!+

x5

5!-

x7

7!+…. και συνχ= 1 -

x2

2!+

x4

4!-

x6

6!+….

Να γραφεί αλγόριθμος ο οποίος θα διαβάζει τη γωνία x σε μοίρες και θα υπολογίζει το ημίτονο και το συνημίτονο της , σύμφωνα με τους παραπάνω τύπους. Ποια μπορεί να είναι τα κριτήρια για διακοπή των επαναλήψεων;Υπόδειξη : Να μετατραπεί αρχικά η γωνία x σε ακτίνια.

Υπάρχουν δύο τρόποι για τον τερματισμό της επανάληψης κατά τον υπολογισμό του αθροίσματος:

Η επανάληψη τερματίζεται όταν ο νέος όρος του αθροίσματος είναι μικρότερος από μια πολύ μικρήτιμή (για παράδειγμα 0.00001), και έτσι ο όρος αυτός δεν θα τροποποιήσει κατά πολύ το άθροισμα.

Συγκρίνεται το άθροισμα με την πραγματική τιμή του ημιτόνου/συνημιτόνου της γωνίας (αντίστοιχεςσυναρτήσεις γλώσσας-Δες Τυπολόγιο )

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ∆ομή ΕπανάληψηςΕΠ.26 ΕΠΑΝΑΛΗΨΗ

Page 35: Δομή Επανάληψης-Ασκήσεις επανάληψης-Πριν τις εξετάσεις

Ένας τρόπος υπολογισμού των τριγωνομετρικών συναρτήσεων στους υπολογιστές , είναι με τον υπολογισμό των παρακάτω σειρών:

ημχ= x -x3

3!+

x5

5!-

x7

7!+…. και συνχ= 1 -

x2

2!+

x4

4!-

x6

6!+….

Αλγόριθμος Τριγωνομετρία

Τέλος Τριγωνομετρία

όριο ← 0.00001π ← 3.14

Διάβασε γωνία_μοίρεςγωνία ← γωνία_μοίρες*π/180ημίτονο ← γωνίαi ← 1N ← 3Αρχή_επανάληψης

παρονομαστής ← 1k από 1Για μέχρι N

παρονομαστής ← παρονομαστής*kΤέλος_επανάληψηςνέος_όρος← (-1)^i*γωνία^Ν/παρονομαστήςημίτονο← ημίτονο+ νέος_όροςi ← i+1

N ← N+2Αν νέος_όρος>= 0 τότε

Απόλ_τιμή_νέος ← νέος_όροςΑλλιώς

Απόλ_τιμή_νέος ← (-1)*νέος_όροςΤέλος_αν

Μέχρις _ότου Απόλ_τιμή_νέος < = όριο

συνημίτονο ← 1i ← 1N ← 2Αρχή_επανάληψης

παρονομαστής ← 1k από 1Για μέχρι N

παρονομαστής ← παρονομαστής*kΤέλος_επανάληψηςνέος_όρος← (-1)^i*γωνία^Ν/παρονομαστήςσυνημίτονο← συνημίτονο+ νέος_όροςi ← i+1

N ← N+2Αν νέος_όρος>= 0 τότε

Απόλ_τιμή_νέος ← νέος_όροςΑλλιώς

Απόλ_τιμή_νέος ← (-1)*νέος_όροςΤέλος_αν

Μέχρις _ότου Απόλ_τιμή_νέος < = όριοΓράψε “Το ημίτονο είναι ”,ημίτονοΓράψε “Το συνημίτονο είναι ”,συνημίτονο

! Δημιουργώ παραγοντικό

! Και να δημιουργήσω το νέο παραγοντικό

! Μεταφέρομαι να δημιουργήσω το νέο όρο

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ∆ομή ΕπανάληψηςΕΠ.26 ΕΠΑΝΑΛΗΨΗ

Page 36: Δομή Επανάληψης-Ασκήσεις επανάληψης-Πριν τις εξετάσεις

Να αναπτυχθεί αλγόριθμος που θα εμφανίζει όλους τους τέλειους αριθμούς στο διάστημα [2,100]. Τέλειος είναι ο ακέραιος που ισούται με το άθροισμα των γνήσιων διαιρετών του.Oι τέλειοιΟ Πυθαγόρας πίστευε ότι ορισμένοι αριθμοί, όπως ο 6, πρέπει να θεωρούνται «τέλειοι».Τέλειος λέγεται κάθε αριθμός ο οποίος είναι ίσος με το άθροισμα των διαιρετών του.

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ∆ομή ΕπανάληψηςΕΠ.27

Ο6 είναι ΤΕΛΕΙΟΣ διότι είναι ίσος με το άθροισμα των 1, 2 και 3και οι 1,2,3 είναι οι τρεις διαιρέτες του (6=1+2+3) .

Αυτό δεν συμβαίνει ούτε με τον 5, ούτε με τον 7 ούτε με τον 8ούτε με κανένα άλλο μονοψήφιο. Για να βρούμε τον επόμενο τέλειο αριθμό χρειάζεται σχετική υπομονή διότι επόμενος τέλειος είναι ο 28 = 1+2+3+4+5+6+7 . Εάν δε θελήσουμε να αναζητήσουμε τον επόμενο τέλειο αριθμόθα χρειαστεί πάλι μεγάλη υπομονή. Είναι ο αριθμός 496 = 1+2+3+4+5+6+ . . . +30+31 . Όσο για τον επόμενο, εάν δεν βρούμε άλλον τρόπο για την αναζήτηση, ας το αφήσουμε καλύτερα.

1+2+3=6

ΕΠΑΝΑΛΗΨΗ

Page 37: Δομή Επανάληψης-Ασκήσεις επανάληψης-Πριν τις εξετάσεις

Να αναπτυχθεί αλγόριθμος που θα εμφανίζει όλους τους τέλειους αριθμούς στο διάστημα [2,100]. Τέλειος είναι ο ακέραιος που ισούται με το άθροισμα των γνήσιων διαιρετών του.Μια από τις ιδέες του Πυθαγόρα ήταν και ότι η τελειότητα σχετίζεται με τις δυνάμεις του 2.

Παρατήρησε δηλαδή ότι όλες οι δυνάμεις του αριθμού 2 αποτυγχάνουνμόλις στο να είναι τέλειοιαφού το άθροισμα των διαιρετών τους

είναι μικρότερο ΜΟΝΟ κατά μία μονάδα από τους ίδιους . Παράδειγμα:22 = 4 ∆ιαιρέτες οι 1,2 Άθροισμα των διαιρετών = 323 = 8 ∆ιαιρέτες οι 1,2,4 Άθροισμα των διαιρετών = 724 = 16 ∆ιαιρέτες οι 1,2,4,8 Άθροισμα των διαιρετών = 1525 = 32 ∆ιαιρέτες οι 1,2,4,8,16 Άθροισμα των διαιρετών = 3126 = 64 ∆ιαιρέτες οι 1,2,4,8,16,32 Άθροισμα των διαιρετών = 63

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ∆ομή ΕπανάληψηςΕΠ.27 ΕΠΑΝΑΛΗΨΗ

Page 38: Δομή Επανάληψης-Ασκήσεις επανάληψης-Πριν τις εξετάσεις

Να αναπτυχθεί αλγόριθμος που θα εμφανίζει όλους τους τέλειους αριθμούς στο διάστημα [2,100]. Τέλειος είναι ο ακέραιος που ισούται με το άθροισμα των γνήσιων διαιρετών του.

Ο αλγόριθμος είναι:

Αλγόριθμος Τέλειοι_αριθμοί

Τέλος Τέλειοι_αριθμοί

i από 2Για μέχρι 100άθροισμα ← 0

j από 1Για μέχρι iΑν i mod j=0 τότε

άθροισμα ← άθροισμα+jΤέλος_αν

Τέλος_επανάληψης

Αν άθροισμα=2*i τότεΓράψε “Ο αριθμός ”, i, “ είναι τέλειος ”

Τέλος_ανΤέλος_επανάληψης

Ας πάρουμε για παράδειγμα τον αριθμό i=6 , πουείναι τέλειος:j=1i mod j 6 mod 1 = 0 άθροισμα ← άθροισμα+j

άθροισμα ← 1j=2

i mod j 6 mod 2 = 0 άθροισμα ← 1+jάθροισμα ← 1+2 =3

j=3

i mod j 6 mod 3 = 0 άθροισμα ← 3+jάθροισμα ← 3+3 =6

j=4

i mod j 6 mod 4 = 0

j=5

i mod j 6 mod 5 = 0j=6

i mod j 6 mod 6 = 0 άθροισμα ← 6+jάθροισμα ← 6+6 =12

άθροισμα = 2*i 6 = i

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ∆ομή ΕπανάληψηςΕΠ.27 ΕΠΑΝΑΛΗΨΗ

Page 39: Δομή Επανάληψης-Ασκήσεις επανάληψης-Πριν τις εξετάσεις

Να αναπτυχθεί αλγόριθμος που θα εμφανίζει όλους τους πρώτους αριθμούς στο διάστημα [2,100] καθώς και το πλήθος τους. Πρώτος είναι ο ακέραιος του οποίου οι μοναδικοί διαιρέτεςείναι η μονάδα και ο εαυτός του.

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ∆ομή ΕπανάληψηςΕΠ.28 ΕΠΑΝΑΛΗΨΗ

π.χ. 5(5,1), 7(7,1)

οι πρώτοι (prime numbers)Ο «6» είναι «γινόμενο» του «2» και του «3», «προκύπτει» από τον 2 και τον 3. Ο «30» «προκύπτει» από τον 2, τον 3 και τον 5, ενώ ο 17 «δεν προκύπτει» από κάποιους άλλους αριθμούς. Ο «17» είναι ΠΡΩΤΟΣ , όπως και ο 13, ο 5, ο 7 και ο 11 , όπως και κάθε ακέραιος που δεν έχει διαιρέτη εκτός φυσικά από τον εαυτό του και από τον 1. Οι ΠΡΩΤΟΙ είναι οι «δομικοί λίθοι» των (ακέραιων) αριθμών και αυτό είναι κάτι που το διέκριναν οι Έλληνες όταν διαπίστωσαν ότι κάθε αριθμός μπορεί να «γίνει» από πρώτους αριθμούς. Όπως οι χημικοί αγωνίστηκαν να προσδιορίσουν τα βασικά στοιχεία της ύλης και κατέληξαν στα 92 διαφορετικά άτομα, οι Έλληνες μαθηματικοί έκαναν μια καλή αρχή βλέποντας τους ΠΡΩΤΟΥΣ κάτι σαν « ΑΤΟΜΑ της ΑΡΙΘΜΗΤΙΚΗΣ » σαν δομικούς δηλαδή λίθους όλων των αριθμών.

Page 40: Δομή Επανάληψης-Ασκήσεις επανάληψης-Πριν τις εξετάσεις

Να αναπτυχθεί αλγόριθμος που θα εμφανίζει όλους τους πρώτους αριθμούς στο διάστημα [2,100] καθώς και το πλήθος τους. Πρώτος είναι ο ακέραιος του οποίου οι μοναδικοί διαιρέτεςείναι η μονάδα και ο εαυτός του.

Ποιοι είναι οι πρώτοι αριθμοί;Εύκολη η απάντηση για τους «μικρούς» αριθμούς, δύσκολη έως αδύνατη για τους πολύ μεγάλους . Ας αρχίσουμε όμως από τους μικρούς. Κατ’ αρχήν κανένας πρώτοςδεν μπορεί είναι άρτιος εκτός από το 2. Στην περιοχή των μονοψήφιων οι πρώτοι είναι τέσσερις, ο 2, ο 3, ο 5 και ο 7. Στη δεύτερη δεκάδα είναι επίσης τέσσερις, ο 11, ο 13, ο 17, ο 19ενώ στην τρίτη δεκάδα είναι δύο, ο 23, και ο 29και στην τέταρτη ο 31, και ο 37και στην πέμπτη ο 41, ο 43 και ο 47. Στους πρώτους δηλαδή 50 ακέραιους οι ΠΡΩΤΟΙ είναι δεκαπέντε αριθμοί.

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ∆ομή ΕπανάληψηςΕΠ.28 ΕΠΑΝΑΛΗΨΗ

οι πρώτοι (prime numbers)

Page 41: Δομή Επανάληψης-Ασκήσεις επανάληψης-Πριν τις εξετάσεις

Ο αλγόριθμος είναι:

Αλγόριθμος Πρώτοι_αριθμοί

Τέλος Πρώτοι_αριθμοί

πλήθος ← 0

i από 2Για μέχρι 100

διαιρέτες ← 0j από 1Για μέχρι i

Αν i mod j=0 τότεδιαιρέτες ← διαιρέτες+1

Τέλος_αν

Τέλος_επανάληψης

Αν διαιρέτες=2 τότε

Γράψε “Ο αριθμός ”, i, “ είναι πρώτος ”πλήθος ← πλήθος+1

Τέλος_ανΤέλος_επανάληψης

Γράψε “Πλήθος πρώτων :”,πλήθος

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ∆ομή ΕπανάληψηςΕΠ.28 ΕΠΑΝΑΛΗΨΗ

Να αναπτυχθεί αλγόριθμος που θα εμφανίζει όλους τους πρώτους αριθμούς στο διάστημα [2,100] καθώς και το πλήθος τους. Πρώτος είναι ο ακέραιος του οποίου οι μοναδικοί διαιρέτεςείναι η μονάδα και ο εαυτός του.

Page 42: Δομή Επανάληψης-Ασκήσεις επανάληψης-Πριν τις εξετάσεις

Να αναπτυχθεί αλγόριθμος που θα διαβάζει δύο θετικούς ακέραιους αριθμούς και θα εκτυπώνει το Μέγιστο Κοινό Διαιρέτη τους.Για τον υπολογισμό του Μ.Κ.Δ. δύο ακεραίων μπορούμε να χρησιμοποιήσουμε τον αλγόριθμο του Ευκλείδη:Διαιρούμε τον μεγαλύτερο δια τον μικρότερο, και κρατούμε το υπόλοιπο της διαίρεσης . Στη συνέχεια διαιρούμε τον μικρότερο ακέραιο δια το υπόλοιπο και κρατάμε το νέο υπόλοιπο. Επαναλαμβάνουμε την παραπάνω διαδικασία ώσπου το υπόλοιπο να είναι 0 και Μ.Κ.Δ. είναι ο τελευταίος διαιρέτης.

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ∆ομή ΕπανάληψηςΕΠ.29 ΕΠΑΝΑΛΗΨΗ

π.χ. (123,45)=(45,33)=(33,12)=(12,9)=(9,3)=(3,0)Άρα Μ.Κ.Δ=3

Page 43: Δομή Επανάληψης-Ασκήσεις επανάληψης-Πριν τις εξετάσεις

Να αναπτυχθεί αλγόριθμος που θα διαβάζει δύο θετικούς ακέραιους αριθμούς και θα εκτυπώνει το Μέγιστο Κοινό Διαιρέτη τους.

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ∆ομή ΕπανάληψηςΕΠ.29 ΕΠΑΝΑΛΗΨΗ

Ο αλγόριθμος είναι:

Αλγόριθμος Μ_Κ_Δ

Τέλος Μ_Κ_Δ

Διάβασε α,β

Αν α>β τότεδιαιρετέος ← αδιαιρέτης ← β

Αλλιώςδιαιρετέος ← βδιαιρέτης ← α

Τέλος_ανΑρχή_επανάληψης

υπόλοιπο ← διαιρετέος mod διαιρέτης

διαιρετέος ← διαιρέτης

διαιρέτης ← υπόλοιποΜέχρις _ότου υπόλοιπο = 0

Γράψε “Ο Μέγιστος Κοινός διαιρέτης είναι :”,διαιρετέος

Page 44: Δομή Επανάληψης-Ασκήσεις επανάληψης-Πριν τις εξετάσεις

Να αναπτυχθεί αλγόριθμος που θα δέχεται έναν ακέραιο αριθμό και θα τον αναλύει σε γινόμενο πρώτων παραγόντων.Γινόμενο πρώτων παραγόντων:

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ∆ομή ΕπανάληψηςΕΠ.30 ΕΠΑΝΑΛΗΨΗ

60 = 2 * 30

μικρότερος παράγοντας του 60

=2*2* 15

μικρότερος παράγοντας του 30

=2* 2 * 3 *

μικρότερος παράγοντας του 15

5

Αλγόριθμος Παράγοντες

Τέλος Παράγοντες

Διάβασε αριθμόςβοηθητική ← αριθμόςi ← 1p ← 1

Αρχή_επανάληψηςi ← i+1k ← 0Όσο βοηθητικήmod i =0 επανέλαβεβοηθητική ← βοηθητική div ik ← k+1

Τέλος_επανάληψηςΑν k>0 τότε

Γράψε i,kΤέλος_αν

p ← p*i^k

Μέχρις _ότου p = αριθμός

8βοηθητική ← 8

i ← 2k ← 08 mod 2=0βοηθητική ← 8div2=4

i ← 1

k ← 1

p ← 1

1η Επανάληψη Αρχή…

1η Επανάληψη Όσο…

! Ο αριθμός διαιρείται k φορές με το i.

Page 45: Δομή Επανάληψης-Ασκήσεις επανάληψης-Πριν τις εξετάσεις

Να αναπτυχθεί αλγόριθμος που θα δέχεται έναν ακέραιο αριθμό και θα τον αναλύει σε γινόμενο πρώτων παραγόντων.

Αλγόριθμος Παράγοντες

Τέλος Παράγοντες

Διάβασε αριθμόςβοηθητική ← αριθμόςi ← 1p ← 1

Αρχή_επανάληψηςi ← i+1k ← 0Όσο βοηθητικήmod i =0 επανέλαβεβοηθητική ← βοηθητική div ik ← k+1

Τέλος_επανάληψηςΑν k>0 τότε

Γράψε i,kΤέλος_αν

p ← p*i^k

Μέχρις _ότου p = αριθμός

4 mod 2=0βοηθητική ← 4div2=2

2η Επανάληψη Όσο…

k ← 2

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ∆ομή ΕπανάληψηςΕΠ.30 ΕΠΑΝΑΛΗΨΗ

Page 46: Δομή Επανάληψης-Ασκήσεις επανάληψης-Πριν τις εξετάσεις

Να αναπτυχθεί αλγόριθμος που θα δέχεται έναν ακέραιο αριθμό και θα τον αναλύει σε γινόμενο πρώτων παραγόντων.

Αλγόριθμος Παράγοντες

Τέλος Παράγοντες

Διάβασε αριθμόςβοηθητική ← αριθμόςi ← 1p ← 1

Αρχή_επανάληψηςi ← i+1k ← 0Όσο βοηθητικήmod i =0 επανέλαβεβοηθητική ← βοηθητική div ik ← k+1

Τέλος_επανάληψηςΑν k>0 τότε

Γράψε i,kΤέλος_αν

p ← p*i^k

Μέχρις _ότου p = αριθμός

2 mod 2=0βοηθητική ← 2div2=1

3η Επανάληψη Όσο…

k ← 3

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ∆ομή ΕπανάληψηςΕΠ.30 ΕΠΑΝΑΛΗΨΗ

Page 47: Δομή Επανάληψης-Ασκήσεις επανάληψης-Πριν τις εξετάσεις

Να αναπτυχθεί αλγόριθμος που θα δέχεται έναν ακέραιο αριθμό και θα τον αναλύει σε γινόμενο πρώτων παραγόντων.

Αλγόριθμος Παράγοντες

Τέλος Παράγοντες

Διάβασε αριθμόςβοηθητική ← αριθμόςi ← 1p ← 1

Αρχή_επανάληψηςi ← i+1k ← 0Όσο βοηθητικήmod i =0 επανέλαβεβοηθητική ← βοηθητική div ik ← k+1

Τέλος_επανάληψηςΑν k>0 τότε

Γράψε i,kΤέλος_αν

p ← p*i^k

Μέχρις _ότου p = αριθμός

1 mod 2=0

3η Επανάληψη Όσο…

k=3>02,3

p ← 1*2^3=8

p =8=αριθμόςΤέρμα Επανάληψη Αρχή…

! Ο αριθμός διαιρείται3 φορές με το 2.

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ∆ομή ΕπανάληψηςΕΠ.30 ΕΠΑΝΑΛΗΨΗ

Page 48: Δομή Επανάληψης-Ασκήσεις επανάληψης-Πριν τις εξετάσεις

Ο ρυθμός αύξησης των καπνιστών στην Ελλάδα είναι 8.5%. Αν σήμερα οι καπνιστές εκτιμάται ότι αριθμούν 4.500.000, να αναπτυχθεί αλγόριθμος που θα εκτυπώνει το πλήθος των καπνιστών σε 15 χρόνια καθώς και το ποσοστό αύξησης τους σ’ αυτό το χρονικό διάστημα.Ισχύει ότι ρυθμός αύξησης= 100*

τελική τιμή-αρχική τιμή

αρχική τιμή

Αλγόριθμος Καπνιστές

Τέλος Καπνιστές

καπνιστές_σήμερα ← 4500000

καπνιστές ← καπνιστές_σήμεραρυθμός ← 8.5/100

i από 1Για μέχρι 15

καπνιστές ← καπνιστές+ Α_Μ(καπνιστές*ρυθμός) ! Ακέραια τιμή

Τέλος_επανάληψης

ρυθμός ← 100*(καπνιστές-καπνιστές_σήμερα)/καπνιστές_σήμερα

Γράψε “Καπνιστές θα είναι ”,καπνιστές, “ με % αύξηση ”,ρυθμός

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ∆ομή ΕπανάληψηςΕΠ.31 ΕΠΑΝΑΛΗΨΗ

Page 49: Δομή Επανάληψης-Ασκήσεις επανάληψης-Πριν τις εξετάσεις

Από έρευνες που έχει φανεί ότι μια κοινότητα μελισσών υπό κανονικές συνθήκες αναπτύσσεται με ρυθμό 4.8% ετησίως. Αν ένας μελισσοκόμος διαθέτει μελίσσια με συνολικό πλυθησμό 1200 μέλισσες, σε πόσα έτη θα ξεπεράσει τη χωρητικότητα των κυψελών του που είναι 2000 μέλισσες; Να γραφεί αλγόριθμος που θα εκτυπώνει το ζητούμενο.Εφόσον δεν είναι γνωστό το πλήθος των επαναλήψεων , θα χρησιμοποιήσουμε τη δομήεπανάληψης Μέχρις_ότου καθώς και έναν μετρητή Έτη που θα μετρά τις επαναλήψεις , δηλαδή τα χρόνια.

Αλγόριθμος Μέλισσες

Τέλος Μέλισσες

Μέλισσες ← 1200

Ρυθμός ← 4.8/100 Έτη ← 0

Όσο Μέλισσες<=2000 επανέλαβε! Ακέραια τιμή

Μέλισσες ← Μέλισσες+ Α_Μ(Μέλισσες*ρυθμός)

Έτη ← Έτη+1

Τέλος_επανάληψηςΓράψε “Η χωρητικότητα θα ξεπεραστεί σε ”,Έτη, “ έτη ”

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ∆ομή ΕπανάληψηςΕΠ.32 ΕΠΑΝΑΛΗΨΗ

Page 50: Δομή Επανάληψης-Ασκήσεις επανάληψης-Πριν τις εξετάσεις

Έρευνες έδειξαν ότι ο ετήσιος ρυθμός μείωσης του σπάνιου είδους εντόμων «Μυγόπυγος» είναι 8.75% , ενώ ταυτόχρονα εκτιμάται ότι το πλήθος τους είναι σήμερα 35000. Για να χαρακτηριστεί ως είδος προς εξαφάνιση πρέπει να αριθμεί λιγότερους από 6000 οργανισμούς. Να αναπτυχθεί αλγόριθμος που θα υπολογίζει και θα εκτυπώνει τα έτη που χρειάζονται ώστε να χαρακτηριστεί το είδος προς εξαφάνιση.

Αλγόριθμος Προς_εξαφάνιση

Τέλος Προς_εξαφάνιση

Πλυθυσμός ← 35000

Ρυθμός ← 8.75/100

Έτη ← 0

Όσο Πληθυσμός>=6000 επανέλαβε

! Ακέραια τιμήΠληθυσμός ← Πληθυσμός - Α_Μ(Πληθυσμός *ρυθμός)

Έτη ← Έτη+1

Τέλος_επανάληψηςΓράψε “Θα χαρακτηριστεί είδος προς εξαφάνιση σε ”,Έτη, “ έτη ”

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ∆ομή ΕπανάληψηςΕΠ.33 ΕΠΑΝΑΛΗΨΗ

Page 51: Δομή Επανάληψης-Ασκήσεις επανάληψης-Πριν τις εξετάσεις

Το αμφιθέατρο του δήμου διαθέτει 50 καθίσματα στην πρώτη σειρά και σε κάθε επόμενη σειρά από τις συνολικά 15 υπάρχει αύξηση καθισμάτων κατά 10%. Να αναπτυχθεί αλγόριθμος που θα υπολογίζει και θα εκτυπώνει τα καθίσματα της τελευταίας σειράς, καθώς και τη συνολική χωρητικότητα καθισμάτων του αμφιθεάτρου.

Αλγόριθμος Αμφιθέατρο

Τέλος Αμφιθέατρο

καθίσματα ← 50

Ρυθμός ← 10/100

συνολικά_καθίσματα ← καθίσματα

i από 2Για μέχρι 15 ! Γνωστός αριθμός επαναλήψεων

καθίσματα ← καθίσματα + Α_Μ(καθίσματα *ρυθμός)

συνολικά_καθίσματα ← συνολικά_καθίσματα +καθίσματα

Τέλος_επανάληψης

Γράψε “Τα καθίσματα της τελευταίας σειράς είναι ”,καθίσματα

Γράψε “Το σύνολο των καθισμάτων είναι ”,συνολικά_καθίσματα

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ∆ομή ΕπανάληψηςΕΠ.34 ΕΠΑΝΑΛΗΨΗ

! Δεύτερη σειρά και εξής.

Page 52: Δομή Επανάληψης-Ασκήσεις επανάληψης-Πριν τις εξετάσεις

Ο δήμος αποφάσισε να τοποθετήσει νέα καθίσματα στο αμφιθέατρο. Στην πρώτη σειρά τοποθετούνται 50 καθίσματα ενώ σε κάθε επόμενη σειρά προστίθενται 6 καθίσματα. Το κόστος κάθε καθίσματος είναι 40 €, ενώ τα διαθέσιμα χρήματα(badget) είναι 20000 €. Να αναπτυχθεί αλγόριθμος που θα εκτυπώνει τοναριθμό καθισμάτων που μπορούν να τοποθετηθούν , καθώς και το χρηματικό ποσό που περισσεύει. Μια λύση θα ήταν να χρησιμοποιήσουμε τη δομή Όσο ως εξής:Όσο συνολικό_κόστος<=20000 επανέλαβε……………………………………..Τέλος_επανάληψηςΩστόσο η επανάληψη θα τερματιστεί αφού παραβιαστεί η συνθήκη, ενώ θα πρέπει να τερματιστείένα βήμα πριν. Αυτό θα το επιτύχουμε με την τροποποίηση της συνθήκης ως εξής:

Όσο συνολικό_κόστος+κόστος_επόμενης_σειράς<=20000 επανέλαβε……………………………………..Τέλος_επανάληψηςΈτσι ο προϋπολογισμός δεν θα παραβιαστεί , αφού θα τερματιστεί η επανάληψη όταν δεν υπάρχει ηδυνατότητα προσθήκης νέας σειράς.Στη συνέχεια αρχικοποιούμε μεταβλητές και συμπληρώνουμε το βρόχο .

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ∆ομή ΕπανάληψηςΕΠ.35 ΕΠΑΝΑΛΗΨΗ

Page 53: Δομή Επανάληψης-Ασκήσεις επανάληψης-Πριν τις εξετάσεις

Ο δήμος αποφάσισε να τοποθετήσει νέα καθίσματα στο αμφιθέατρο. Στην πρώτη σειρά τοποθετούνται 50 καθίσματα ενώ σε κάθε επόμενη σειρά προστίθενται 6 καθίσματα. Το κόστος κάθε καθίσματος είναι 40 €, ενώ τα διαθέσιμα χρήματα(badget) είναι 20000 €. Να αναπτυχθεί αλγόριθμος που θα εκτυπώνει τοναριθμό καθισμάτων που μπορούν να τοποθετηθούν , καθώς και το χρηματικό ποσό που περισσεύει.

Αλγόριθμος Αμφιθέατρο2

Τέλος Αμφιθέατρο2

badget ← 20000

καθίσματα ← 50

συν_κόστος ← 0

τρέχον_κόστος ← καθίσματα* 40 ! κόστος 1ης σειράς

συν_καθίσματα ← 0

Όσο συν_κόστος+τρέχον_κόστος<= badget επανέλαβε ! Υπέρβαση badgetσυν_κόστος ← συν_κόστος + τρέχον_κόστος

συν_καθίσματα ← συν_καθίσματα + καθίσματα

καθίσματα ← καθίσματα + 6τρέχον_κόστος ← καθίσματα* 40

Τέλος_επανάληψης

Γράψε “Θα τοποθετηθούν ”,συν_καθίσματα,“καθίσματα”

περίσσευμα ← badget- συν_κοστος

Γράψε “Το περίσσευμα των χρημάτων είναι ”,περίσσευμα

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ∆ομή ΕπανάληψηςΕΠ.35 ΕΠΑΝΑΛΗΨΗ

Page 54: Δομή Επανάληψης-Ασκήσεις επανάληψης-Πριν τις εξετάσεις

Ο δήμος αποφάσισε να τοποθετήσει νέα καθίσματα στο αμφιθέατρο. Στην πρώτη σειρά τοποθετούνται 50 καθίσματα ενώ σε κάθε επόμενη σειρά προστίθενται 6 καθίσματα. Το κόστος κάθε καθίσματος είναι 40 €, ενώ τα διαθέσιμα χρήματα(badget) είναι 20000 €. Να αναπτυχθεί αλγόριθμος που θα εκτυπώνει τοναριθμό καθισμάτων που μπορούν να τοποθετηθούν , καθώς και το χρηματικό ποσό που περισσεύει.

Αν επιθυμούμε να επιλύσουμε την άσκηση με τη χρήση της Μέχρις_ότου, τότε μπορούμε να χρησιμοποιήσουμε μιαλογική μεταβλητή που ανάλογα με την τιμή της (αληθής ή ψευδής) φροντίζει για τη συνέχεια /τερματισμό αντίστοιχα τηςεπανάληψης. Η τιμή της λογικής μεταβλητής διαμορφώνεται με δομή επιλογής που ελέγχει την κατάλληλη συνθήκη.

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ∆ομή ΕπανάληψηςΕΠ.35 ΕΠΑΝΑΛΗΨΗ

Page 55: Δομή Επανάληψης-Ασκήσεις επανάληψης-Πριν τις εξετάσεις

Ο δήμος αποφάσισε να τοποθετήσει νέα καθίσματα στο αμφιθέατρο. Στην πρώτη σειρά τοποθετούνται 50 καθίσματα ενώ σε κάθε επόμενη σειρά προστίθενται 6 καθίσματα. Το κόστος κάθε καθίσματος είναι 40 €, ενώ τα διαθέσιμα χρήματα(badget) είναι 20000 €. Να αναπτυχθεί αλγόριθμος που θα εκτυπώνει τοναριθμό καθισμάτων που μπορούν να τοποθετηθούν , καθώς και το χρηματικό ποσό που περισσεύει.

Αλγόριθμος Αμφιθέατρο2

Τέλος Αμφιθέατρο2

badget ← 20000καθίσματα ← 50 συν_κόστος ← 0 τρέχον_κόστος ← καθίσματα* 40 ! κόστος 1ης σειράς

συν_καθίσματα ← 0 έξοδος← Ψευδής

Αρχή_επανάληψηςΑν συν_κόστος+τρέχον_κόστος<= badget τότε ! Υπέρβαση badget

συν_κόστος ← συν_κόστος + τρέχον_κόστος

συν_καθίσματα ← συν_καθίσματα + καθίσματα

καθίσματα ← καθίσματα + 6τρέχον_κόστος ← καθίσματα* 40 ! κόστος νέας σειράς

Αλλιώςέξοδος← Αληθής

έξοδος = ΑληθήςΤέλος_αν

Μέχρις _ότουΓράψε “Θα τοποθετηθούν ”,συν_καθίσματα,“καθίσματα”

περίσσευμα ← badget- συν_κοστοςΓράψε “Το περίσσευμα των χρημάτων είναι ”,περίσσευμα

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ∆ομή ΕπανάληψηςΕΠ.35 ΕΠΑΝΑΛΗΨΗ

Page 56: Δομή Επανάληψης-Ασκήσεις επανάληψης-Πριν τις εξετάσεις

Η αμοιβάδα είναι μονοκύτταρος οργανισμός . Ανά 40 δευτερόλεπτα , 1 κύτταρο αμοιβάδας διαιρείται σε 2 μέρη (δημιουργώντας 2 αμοιβάδες). Ταυτόχρονα , λόγω ειδικών συνθηκών του περιβάλλοντος , κάθε 2 λεπτά το 40% των μελών μιας αποικίας νεκρώνεται .Να αναπτυχθεί αλγόριθμος που θα διαβάζει το πλήθος των μελών μιας αποικίας αμοιβάδων και θα εκτυπώνει το πλήθος των αμοιβάδων μετά από 2 ημέρες .Πόσο τοις εκατό αυξήθηκε ο πληθυσμός ;

Αλγόριθμος Αμοιβάδες

Τέλος Αμοιβάδες

Διάβασε αρχικό_πλήθος

πλήθος ← αρχικό_πλήθοςχρόνος ← 2*24*60*60 ! σε δευτερόλεπτα

i από 40Για μέχρι χρόνος με_βήμα 40 ! Διπλασιάζεται μετά από 40 sec και ανά 40 δευτερόλεπτα

πλήθος ← πλήθος*2 ! Διπλασιασμός

Αν i mod 120=0 τότε ! Ανά 120 δευτερόλεπτα μείωση 40%

πλήθος ← πλήθος-0.40*πλήθοςΤέλος_αν

Τέλος_επανάληψης

ποσοστό ← ((πλήθος-αρχικό_πλήθος)/αρχικό_πλήθος)*100

Γράψε “Τελικός πληθυσμός: ”,πλήθος

Γράψε “Ποσοστό αύξηση: ”,ποσοστό

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ∆ομή ΕπανάληψηςΕΠ.36 ΕΠΑΝΑΛΗΨΗ

Page 57: Δομή Επανάληψης-Ασκήσεις επανάληψης-Πριν τις εξετάσεις

Ο μισθός του κύριου Παπαδόπουλου είναι 1250 €, ενώ σύμφωνα με το μισθολόγιο αυξάνεταικατά 11% ετησίως. Κάθε μήνα έχει αποφασίσει να αποταμιεύσει το 9% του μισθού για τοόνειρο του , που είναι η αγορά φουσκωτού σκάφους. Να αναπτυχθεί αλγόριθμός που θαυπολογίζει και θα εκτυπώνει σε πόσους μήνες θα κατορθώσει να συγκεντρώσει τοαπαιτούμενο ποσό, ώστε να αγοράσει φουσκωτό αξίας 7000 €.

Αλγόριθμος Φουσκωτό

Τέλος Φουσκωτό

μισθός ← 1250συγκεντρωθέν_ποσό ← 0μήνες ← 0

Όσο συγκεντρωθέν_ποσό< 7000 επανέλαβε

συγκεντρωθέν_ποσό ← συγκεντρωθέν_ποσό + 0.09*μισθός

μήνες ← μήνες+1Αν μήνες mod 12=0 τότε

μισθός ← μισθός+(11/100)*μισθός

Τέλος_επανάληψης

Γράψε “Το ποσό θα συγκεντρωθεί σε : ”,μήνες,“μήνες”

Τέλος_αν

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ∆ομή ΕπανάληψηςΕΠ.37 ΕΠΑΝΑΛΗΨΗ

Page 58: Δομή Επανάληψης-Ασκήσεις επανάληψης-Πριν τις εξετάσεις

Με την εκκίνηση της συσκευής ενός κινητού ζητείται ο κωδικός πρόσβασης PIN και ο χρήστης έχει τρεις ευκαιρίες για την εισαγωγή του. Να αναπτυχθεί ο αλγόριθμος που εκτελεί το κινητό :ζητάει 3 φορές τον κωδικό πρόσβασης (αν δεν έχει εισαχθεί σωστά) και στην περίπτωση τριπλής αποτυχίας εκτυπώνει το μήνυμα “Η κάρτα SIM κλειδώθηκε. Παρακαλώ εισάγετε τον κωδικό PUK”

Αλγόριθμος Εισαγωγή_ΡΙΝ

Τέλος Εισαγωγή_ΡΙΝ

Δεδομένα // PIN //αποτυχίες ← 0Διάβασε κωδικός

Όσο (κωδικός<> ΡΙΝ) και (αποτυχίες<>3) επανέλαβε

αποτυχίες ← αποτυχίες +1

Γράψε “Λάθος κωδικός. Υπόλοιπες δοκιμές:” 3-αποτυχίες, “Δοκιμάστε ξανά . ”

Διάβασε κωδικόςΤέλος_επανάληψης

Αν κωδικός= ΡΙΝ τότεΓράψε “Καλώς ήρθατε στο δίκτυο σας….. ”

Αλλιώς

Τέλος_ανΓράψε “Η κάρτα SIM κλειδώθηκε. Παρακαλώ εισάγετε τον κωδικό PUK. ”

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ∆ομή ΕπανάληψηςΕΠ.38 ΕΠΑΝΑΛΗΨΗ

Page 59: Δομή Επανάληψης-Ασκήσεις επανάληψης-Πριν τις εξετάσεις

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ