You are on page 1of 59

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

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

Αλγόριθμος άρτιοι_διψήφιοι
Για i από 10 μέχρι 99 ! διψήφιοι

Αν i mod 2=0 τότε


Εκτύπωσε i
Τέλος_αν
Τέλος_επανάληψης
Τέλος άρτιοι_διψήφιοι

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


Αλγόριθμος άρτιοι_διψήφιοι
Για i από 10 μέχρι 98 με_βήμα 2 ! θα μπορούσε να ανέβει και μέχρι το 99

Εκτύπωσε i

Τέλος_επανάληψης
Τέλος άρτιοι_διψήφιοι
ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ
ΗΨΗ
ΕΠ.2 ΕΠΑΝΑΛ
∆ομή Επανάληψης
Ο ταμίας του super market Mercadona καταχωρεί στην ταμειακή απόδειξη τον κωδικό του προϊόντος και
την τιμή. Όταν ολοκληρωθεί η καταχώρηση για την αγορά ενός πελάτη , τότε εισάγεται ο κωδικός 0. Να
αναπτύξετε αλγόριθμο που θα υλοποιεί την παραπάνω διαδικασία και στο τέλος θα εκτυπώνει το
συνολικό ποσό της αγοράς και το πλήθος των προϊόντων που αγοράστηκαν.
Όταν το πλήθος των επαναλήψεων είναι άγνωστο, τότε δεν μπορούμε να χρησιμοποιήσουμε τη δομή
επανάληψης Για….Στην περίπτωση αυτή χρησιμοποιούμε την Όσο (ή τη Μέχρις_ότου).

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


2ο βήμα: Αρχικοποιώ τη μεταβλητή
3ο βήμα: Τοποθετώ την εντολή αλλαγής

Οπότε φτιάξαμε το βασικό σκελετό της επανάληψης.


σύνολο ← 0 Στη συνέχεια συμπληρώνουμε τις υπόλοιπες εντολές.
πλήθος ← 0 Αρχικοποίηση συνόλου πριν το βρόχο.
Αύξηση (μεταβολή) συνόλου μέσα στο βρόχο.
Διάβασε κωδικός
Μας ζητείται παράλληλα και το πλήθος των προϊόντων .
Όσο κωδικός<>0 επανέλαβε
Αρχικοποίηση πλήθος.
Διάβασε τιμή , τεμάχια
Μεταβολή της μεταβλητής πλήθος(Άύξηση).
σύνολο ← σύνολο + τιμή*τεμάχια
πλήθος← πλήθος+ 1
Διάβασε κωδικός
Τέλος_επανάληψης
ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ
ΗΨΗ
ΕΠ.2 ΕΠΑΝΑΛ
∆ομή Επανάληψης
Ο ταμίας του super market Mercadona καταχωρεί στην ταμειακή απόδειξη τον κωδικό του προϊόντος και
την τιμή. Όταν ολοκληρωθεί η καταχώρηση για την αγορά ενός πελάτη , τότε εισάγεται ο κωδικός 0. Να
αναπτύξετε αλγόριθμο που θα υλοποιεί την παραπάνω διαδικασία και στο τέλος θα εκτυπώνει το
συνολικό ποσό της αγοράς και το πλήθος των προϊόντων που αγοράστηκαν.

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


Αρχή

Αλγόριθμος Mercadona σύνολο←0


πλήθος←0
σύνολο ← 0 βρόχος
πλήθος ← 0 Διάβασε
κωδικός
Διάβασε κωδικός
Όχι
κωδικός <>0
Όσο κωδικός<>0 επανέλαβε
Διάβασε τιμή , τεμάχια Ναι
Εκτύπωσε
Διάβασε σύνολο ,πλήθος
σύνολο ← σύνολο + τιμή*τεμάχια τιμή,τεμάχια
πλήθος← πλήθος+ 1 Τέλος
σύνολο ← σύνολο +τιμή*τεμάχια
Διάβασε κωδικός πλήθος ← πλήθος+1

Τέλος_επανάληψης Διάβασε
κωδικός
Εκτύπωσε σύνολο , πλήθος

Τέλος Mercadona
ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ
ΗΨΗ
ΕΠ.3 ΕΠΑΝΑΛ
∆ομή Επανάληψης
Να αναπτυχθεί αλγόριθμος που θα διαβάζει ακέραιους αριθμούς από τον χρήστη ,θα
υπολογίζει και θα εκτυπώνει τον μέσο όρο των περιττών απ’ αυτούς τους αριθμούς .
Η διαδικασία ανάγνωσης θα σταματά όταν έχουν διαβαστεί 20 περιττοί αριθμοί.
Ο αλγόριθμος είναι ο ακόλουθος:

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


Αλγόριθμος περιττοί_μο Η διατύπωση της εκφώνησης μας παραπέμπει στη
χρήση της δομής επανάληψης Μέχρις_ότου .
άθροισμα ← 0
Με την Όσο… μπορεί να μην γίνει ποτέ επανάληψη.
πλήθος ← 0
Με τη Μέχρις_ότου τουλάχιστον μία.
Αρχή_επανάληψης
Διάβασε αριθμός
Αν αριθμος mod 2=1 τότε
άθροισμα ← άθροισμα +αριθμός
πλήθος ← πλήθος +1
Τέλος_αν
Μέχρις_ότου πλήθος=20
Αν πλήθος <>0 τότε
μέσος_όρος ← άθροισμα /πλήθος
Εκτύπωσε μέσος_όρος
Τέλος_αν
Τέλος περιττοί_μο
ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ
ΗΨΗ
ΕΠ.3 ΕΠΑΝΑΛ
∆ομή Επανάληψης

Αρχή

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

Διάβασε
περιττοί_μο αριθμός
Αλγόριθμος
Όχι
άθροισμα ← 0
πλήθος ← 0 αριθμόςmod2 =1

Αρχή_επανάληψης Ναι
Διάβασε αριθμός
άθροισμα ← άθροισμα+αριθμός
Αν αριθμος mod 2=1 τότε πλήθος ← πλήθος+1

άθροισμα ← άθροισμα +αριθμός Όχι


πλήθος=20
πλήθος ← πλήθος +1
Τέλος_αν Ναι Τέλος βρόχου
Μέχρις_ότου πλήθος=20 Όχι
πλήθος <>0
Αν πλήθος <>0 τότε Ναι

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

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

Τέλος
ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ
ΗΨΗ
ΕΠ.4 ΕΠΑΝΑΛ
∆ομή Επανάληψης
Να αναπτυχθεί αλγόριθμος που θα υπολογίζει και θα εκτυπώνει το άθροισμα των θετικών
διψήφιων περιττών ακεραίων .
Δηλ το άθροισμα : S=11+13+15+….+95+97+99
Για την επίλυση της άσκησης θα χρησιμοποιήσουμε έναν αθροιστή.
Ένας αθροιστής περιέχει δύο εντολές:
α. Μηδενισμό πριν την επανάληψη
β. Αύξηση του αθροιστή εντός του βρόχου

Αλγόριθμος Αθροισμα_Περιττών
S←0
Για i από 11 μέχρι 99 με_βήμα 2
S←S+i
Ο αλγόριθμος είναι ο
Τέλος_επανάληψης
ακόλουθος:
Εκτύπωσε “Το άθροισμα είναι ”,S

Τέλος Αθροισμα_Περιττών
ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ
ΗΨΗ
ΕΠ.5 ΕΠΑΝΑΛ
∆ομή Επανάληψης
Να αναπτυχθεί αλγόριθμος που θα υπολογίζει και θα εκτυπώνει τα αθροίσματα:

1 1 1 1 1 1 1 1
S1= 1 + + + +….+ και S2= + + +….+
2 3 4 100 3 9 27 3100

1 1 1 1 1 1 1 1 1
S1= + + + +….+ S2= + + +….+
1 2 3 4 100 31 32 33 3100

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

Στο δεύτερο άθροισμα ο αριθμητής παραμένει σταθερός.


Ενώ στον παρονομαστή υπάρχει μια δύναμη του 3 και ο εκθέτης μεταβάλλεται και παίρνει διαδοχικά τις
τιμές 1,2,3,4,5,6…,99,100.
ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ
ΗΨΗ
ΕΠ.5 ΕΠΑΝΑΛ
∆ομή Επανάληψης
Να αναπτυχθεί αλγόριθμος που θα υπολογίζει και θα εκτυπώνει τα αθροίσματα:

1 1 1 1 1 1 1 1
S1= 1 + + + +….+ και S2= + + +….+
2 3 4 100 3 9 27 3100

1 1 1 1 1 1 1 1 1
S1= + + + +….+ S2= + + +….+
1 2 3 4 100 31 32 33 3100
Αλγόριθμος Άθροισμα
S_1← 0
Ο αλγόριθμος είναι ο S_2← 0
ακόλουθος:
Για i από 1 μέχρι 100
S_1← S_1 +1 / i
S_2← S_2 +1 /3^ i
Τέλος_επανάληψης

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

Τέλος Άθροισμα
ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ
ΗΨΗ
ΕΠ.6 ΕΠΑΝΑΛ
∆ομή Επανάληψης
Να αναπτυχθεί αλγόριθμος που θα διαβάζει έναν ακέραιο αριθμό Ν και θα υπολογίζει το
άθροισμα:
S1 = 5 + 3 - 9 + 27 - 81 + … + - 3
Ν

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

Στο άθροισμα αυτό παρατηρούμε ότι ,μετά τον αρχικό όρο 5,


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

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

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


Διάβασε Ν
S← 5
Ο αλγόριθμος είναι ο
ακόλουθος: Για i από 1 μέχρι Ν
S← S+(-1)^(1+i)*(3)^i
Τέλος_επανάληψης

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


Τέλος Αθροισμα_Πρόσημο
ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ
ΗΨΗ
ΕΠ.7 ΕΠΑΝΑΛ
∆ομή Επανάληψης
Να αναπτυχθεί αλγόριθμος που θα διαβάζει έναν ακέραιο αριθμό Ν και θα υπολογίζει το
άθροισμα:
2 + 4 + 8 + 16 + … + 2Ν , αν Ν άρτιος

S=
3 9 27 3Ν
1+ + + +….+ , αν Ν περιττός
2 4 6 2*Ν

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

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


Διάβασε Ν
Αν Ν mod 2=0 τότε
S← 0
Για i από 1 μέχρι Ν
Ο αλγόριθμος είναι ο S← S + 2^i
ακόλουθος: Τέλος_επανάληψης
Αλλιώς
S← 1
Για i από 1 μέχρι Ν
S← S + 3^i/(2*i)
Τέλος_επανάληψης
Τέλος_αν

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


Τέλος Διπλό_Άθροισμα
ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ
ΗΨΗ
ΕΠ.8 ΕΠΑΝΑΛ
∆ομή Επανάληψης
Το παραγοντικό ορίζεται ως εξής:
αόριστο , αν Ν<0
1 , αν Ν=0
Ν! =
1*2*3*4*….*Ν , αν Ν>0

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


του.
Αλγόριθμος Παραγοντικό
Γράψε “Δώσε έναν ακέραιο αριθμό ”
Διάβασε Ν
Αν Ν<0 τότε
Γράψε “Το παραγοντικό δεν ορίζεται”
Αλλιώς_αν Ν=0 τότε

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


ακόλουθος: Αλλιώς
γινόμενο ← 1 ! Ουδέτερο στοιχείο του πολλαπλασιασμού
Για i από 1 μέχρι Ν
γινόμενο← γινόμενο*i
Τέλος_επανάληψης
Γράψε “Το”, Ν “ παραγοντικό είναι ” , γινόμενο
Τέλος_αν
Τέλος Παραγοντικό
ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ
ΗΨΗ
ΕΠ.9 ΕΠΑΝΑΛ
∆ομή Επανάληψης
Να αναπτυχθεί αλγόριθμος που θα εκτυπώνει τις λύσεις της εξίσωσης
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 μέχρι 50
Για z από -50 μέχρι 50

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


Αν ποσότητα=11 τότε
Εκτύπωσε ”Λύση της εξίσωσης είναι :”x,y,z
Τέλος_αν
Τέλος_επανάληψης
Τέλος_επανάληψης
Τέλος_επανάληψης
Τέλος Εξίσωση
ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ
ΗΨΗ
ΕΠ.10 ΕΠΑΝΑΛ
∆ομή Επανάληψης
Να αναπτυχθεί αλγόριθμος που θα εκτυπώνει τους 200 πρώτους όρους της ακολουθίας:

2 , αν ν=1
αν =
2*αν-1+(ν-1) , αν ν>1
Σε κάθε επανάληψη , πρέπει στον προηγούμενο όρο να προσθέτουμε την επιπλέον ποσότητα ν-1 .

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

Ο αλγόριθμος είναι ο α_ν ← 2


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

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

α_ν ← 2* α_ν +(i-1) ! Μην σε μπερδεύει το αν-1 της εκφώνησης

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


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

Τέλος Ακολουθία_αναδρομική
ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ
ΗΨΗ
ΕΠ.11 ΕΠΑΝΑΛ
∆ομή Επανάληψης
Να αναπτυχθεί αλγόριθμος που διαβάζει έναν αριθμό Ν>2 και θα εκτυπώνει αντίστοιχο
πλήθος όρων της ακολουθίας Fibonacci. Ο πρώτος όρος της ακολουθίας είναι το 0,ο
δεύτερος το 1 και κάθε επόμενος όρος είναι το άθροισμα των δύο προηγουμένων
( 0, 1 ,1 , 2, 3, 5 ,8 , 13 , 21 ,34 , 55 , 89,….)

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

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

Ο αλγόριθμος είναι ο Διάβασε Ν ! Θεωρούμε ότι Ν>2


ακόλουθος: ος
Γράψε ”Ο 1 όρος της ακολουθίας είναι 0”
Γράψε ”Ο 2ος όρος της ακολουθίας είναι 1”
α_ν_2 ← 0 ! αν-2 προ-προηγούμενος όρος
α_ν_1 ← 1 ! αν-1 προηγούμενος όρος
Για i από 3 μέχρι Ν
α_ν ← α_ν_2 + α_ν_1 ! αν-2 + αν-1

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


α_ν_2 ← α_ν_1 ! προ-προηγούμενος όρος ο μέχρι τώρα προηγούμενος
α_ν_1 ← α_ν ! προηγούμενος όρος ο τρέχων
Τέλος_επανάληψης
Τέλος Ακολουθία_Fibonacci
ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ
ΗΨΗ
ΕΠ.12 ΕΠΑΝΑΛ
∆ομή Επανάληψης
Να αναπτυχθεί αλγόριθμος που θα εκτυπώνει τους θετικούς τριψήφιους ακέραιους που
είναι πολλαπλάσιοι του 7, καθώς και το πλήθος των αριθμών αυτών.

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

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

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

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

Αν imod7=0 τότε ! Πολλαπλάσιο του 7


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

Τέλος_επανάληψης
Γράψε πλήθος
Τέλος Πολλαπλάσια_7
ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ
ΗΨΗ
ΕΠ.12 ΕΠΑΝΑΛ
∆ομή Επανάληψης
Να αναπτυχθεί αλγόριθμος που θα εκτυπώνει τους θετικούς τριψήφιους ακέραιους που
είναι πολλαπλάσιοι του 7, καθώς και το πλήθος των αριθμών αυτών.

Ο αλγόριθμος μπορεί να γραφεί και με άλλο τρόπο.


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

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

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


ακόλουθος: Για i από 105 μέχρι 999 με_βήμα 7
πλήθος ← πλήθος+1
Γράψε ”Ο αριθμός “,i, “ικανοποιεί τις προϋποθέσεις”
Τέλος_επανάληψης
Γράψε πλήθος
Τέλος Πολλαπλάσια_7
ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ
ΗΨΗ
ΕΠ.13 ΕΠΑΝΑΛ
∆ομή Επανάληψης
Να αναπτυχθεί αλγόριθμος που θα εκτυπώνει όλους τους θετικούς τριψήφιους ακέραιους,
των οποίων η τιμή είναι ίση με το άθροισμα των κύβων των ψηφίων τους(Αριθμοί
Armstrong).
Η άσκηση μπορεί να επιλυθεί με δύο προσεγγίσεις.
• Η 1η προσέγγιση είναι να διατρέξουμε όλους τους τριψήφιους ακέραιους , να απομονώσουμε τα 3
ψηφία τους και να ελέγξουμε τη συνθήκη της εκφώνησης.

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

Ο αλγόριθμος είναι ο Για Χ από 100 μέχρι 999


ακόλουθος:
εκατοντάδες ← Χ div 100
βοηθητική ← Χ mod 100
δεκάδες ← βοηθητική div 10
μονάδες ← βοηθητική mod 10
ποσότητα ← εκατοντάδες^3+ δεκάδες^3+ μονάδες^3

Αν ποσότητα=Χ τότε
Γράψε ”Ο αριθμός “,Χ, “ικανοποιεί τις προϋποθέσεις”
Τέλος_αν
Τέλος_επανάληψης
Τέλος κύβος_τριψήφιων
ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ
ΗΨΗ
ΕΠ.13 ΕΠΑΝΑΛ
∆ομή Επανάληψης
Να αναπτυχθεί αλγόριθμος που θα εκτυπώνει όλους τους θετικούς τριψήφιους ακέραιους,
των οποίων η τιμή είναι ίση με το άθροισμα των κύβων των ψηφίων τους(Αριθμοί
Armstrong).
Η άσκηση μπορεί να επιλυθεί με δύο προσεγγίσεις.
• Η 1η προσέγγιση είναι να διατρέξουμε όλους τους τριψήφιους ακέραιους , να απομονώσουμε τα 3
ψηφία τους και να ελέγξουμε τη συνθήκη της εκφώνησης.
• Η 2η προσέγγιση είναι με τη χρήση τριών δομών επανάληψης , ώστε να δημιουργήσουμε τις
εκατοντάδες, δεκάδες και μονάδες (τιμές 0 έως 9) δηλαδή τρία ψηφία ενός τριψήφιου αριθμού και να
ελέγξουμε τη συνθήκη της εκφώνησης.
Αλγόριθμος κύβος_τριψήφιων
Ο αλγόριθμος είναι ο Για εκατοντάδες από 1 μέχρι 9 ! Αν άρχιζε από 0 δεν θα ήταν τριψήφιος
ακόλουθος:
Για δεκάδες από 0 μέχρι 9
Για μονάδες από 0 μέχρι 9
ποσότητα ← εκατοντάδες^3+ δεκάδες^3+ μονάδες^3
Χ ← 100*εκατοντάδες+ 10*δεκάδες+ μονάδες
Αν ποσότητα =Χ τότε
Γράψε ”Ο αριθμός “,Χ, “ικανοποιεί τις προϋποθέσεις”
Τέλος_αν
Τέλος_επανάληψης
Τέλος_επανάληψης
Τέλος_επανάληψης
Τέλος κύβος_τριψήφιων
ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ
ΗΨΗ
ΕΠ.14 ΕΠΑΝΑΛ
∆ομή Επανάληψης
Να αναπτυχθεί αλγόριθμος που θα βρίσκει και θα εκτυπώνει όλους τους θετικούς
τετραψήφιους ακέραιους που μπορούν να διαβαστούν και ανάποδα (για παράδειγμα 1331,
7447, 9229 κλπ .).
Η άσκηση μπορεί να επιλυθεί με διάσπαση των ψηφίων του αριθμού με τη διαφορά ότι θα
αντιστοιχήσουμε τις χιλιάδες με τις μονάδες και
τις εκατοντάδες με τις δεκάδες .

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

Ο αλγόριθμος είναι ο Για Χ από 1000 μέχρι 9999


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

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


μονάδες ← βοηθητική mod 10
Αν χιλιάδες =μονάδες και εκατοντάδες=δεκάδες τότε
Γράψε ”Ο αριθμός “,Χ, “ικανοποιεί τις προϋποθέσεις”
Τέλος_αν
Τέλος_επανάληψης
Τέλος τετραψήφιος_ανάποδα
ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ
ΗΨΗ
ΕΠ.15 ΕΠΑΝΑΛ
∆ομή Επανάληψης
Να αναπτυχθεί αλγόριθμος που θα διαβάζει ένα αριθμό Ν μεγαλύτερο του 1 και θα ελέγχει
αν ισχύει η ισότητα:
(1+2+3+….+Ν)2=13+23+33+43+…..+Ν3

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

Ο αλγόριθμος είναι ο Διάβασε Ν ! Θεωρώ ότι Ν>1


ακόλουθος: άθροισμα1 ← 0
άθροισμα2 ← 0
Για i από 1 μέχρι N
άθροισμα1 ← άθροισμα1 +i
άθροισμα2 ← άθροισμα2 +i^3
Τέλος_επανάληψης
άθροισμα1 ← άθροισμα1^2
Αν άθροισμα1 = άθροισμα2 τότε
Γράψε ”Η ισότητα της εκφώνησης ισχύει.”
Αλλιώς
Γράψε ”Η ισότητα της εκφώνησης δεν ισχύει.”
Τέλος_αν
Τέλος Επαλήθευση
ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ
ΗΨΗ
ΕΠ.16 ΕΠΑΝΑΛ
∆ομή Επανάληψης
Να αναπτυχθεί αλγόριθμος που θα διαβάζει 500 θετικούς ακέραιους αριθμούς και θα
εκτυπώνει το ποσοστό των αριθμών που είναι διψήφιοι.

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

Ο αλγόριθμος είναι ο διψήφιοι ← 0


ακόλουθος:
Για i από 1 μέχρι 500
Διάβασε αριθμός
Αν αριθμός >= 10 και αριθμός <= 99 τότε
διψήφιοι ← διψήφιοι +1
Τέλος_αν
Τέλος_επανάληψης
ποσοστό ← 100*διψήφιοι/500
Γράψε ”Το ποσοστό των διψήφιων είναι”,ποσοστό

Τέλος Ποσοστό_Διψήφιων
ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ
ΗΨΗ
ΕΠ.17 ΕΠΑΝΑΛ
∆ομή Επανάληψης
Να αναπτυχθεί αλγόριθμος που θα διαβάζει Ν ακέραιους αριθμούς (όπου Ν δεδομένος
ακέραιος) και θα εκτυπώνει το άθροισμα και το μέσο όρο άρτιων.
Όταν καλούμαστε να υπολογίσουμε κάποιο μέσο όρο , πρέπει να υπολογίσουμε τον αντίστοιχο
αριθμητή και παρονομαστή.
Ο παρονομαστής συνήθως είναι το πλήθος των επαναλήψεων ,
ενώ για τον αριθμητή αρκεί η χρήση ενός αθροιστή.

Αλγόριθμος Άρτιοι
Δεδομένα // Ν //
άθροισμα_άρτιων ← 0
Ο αλγόριθμος είναι ο πλήθος_άρτιων ← 0
ακόλουθος: Για i από 1 μέχρι N
Διάβασε αριθμός
Αν αριθμός mod 2= 0 τότε
άθροισμα_άρτιων ← άθροισμα_άρτιων +αριθμός
πλήθος_άρτιων ← πλήθος_άρτιων + 1
Τέλος_αν
Τέλος_επανάληψης
Αν πλήθος_αρτίων <> 0 τότε ! Κριτήριο καθοριστικότητας
μέσος_όρος ← άθροισμα_άρτιων / πλήθος_άρτιων
Γράψε άθροισμα_άρτιων , μέσος_όρος
Τέλος_αν
Τέλος Άρτιοι
ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ
ΗΨΗ
ΕΠ.18 ΕΠΑΝΑΛ
∆ομή Επανάληψης
Να αναπτυχθεί αλγόριθμος που θα διαβάζει το πολύ 100 ακέραιους αριθμούς , από τους
οποίους το πολύ 20 θα είναι αρνητικοί. Ο αλγόριθμος θα εκτυπώνει το ποσοστό των
θετικών και των αρνητικών αριθμών που διάβασε (τα μηδενικά δεν θεωρούνται θετικοί ούτε
αρνητικοί).
Φτιάχνουμε τον σκελετό της επανάληψης:
Το πολύ 100 ακεραίους.
Αρχικοποιούμε τις μεταβλητές που συμμετέχουν στη συνθήκη του βρόχου
Αλγόριθμος Ποσοστά_αριθμών
όλοι ← 0
αρνητικοί ← 0
θετικοί ← 0
Ο αλγόριθμος είναι ο Όσο (όλοι <100) και (αρνητικοί<20) επανέλαβε
ακόλουθος: Διάβασε αριθμός
Αν αριθμός < 0 τότε
αρνητικοί ← αρνητικοί+1
Αλλιώς_αν αριθμός > 0 τότε
θετικοί ← θετικοί +1
Τέλος_αν
όλοι ← όλοι+1
Τέλος_επανάληψης
ποσοστό_θετικών ← 100*θετικοί/όλοι
ποσοστό_αρνητικών ← 100*αρνητικοί/όλοι
Γράψε ποσοστό_θετικών ,ποσοστό_αρνητικών
Τέλος Ποσοστά_αριθμών
ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ
ΗΨΗ
ΕΠ.19 ΕΠΑΝΑΛ
∆ομή Επανάληψης
Να αναπτυχθεί αλγόριθμος που θα διαβάζει αριθμούς αγνώστου πλήθους και θα εκτυπώνει
το μέσο όρο τους. Η επαναληπτική διαδικασία θα τερματίζεται όταν δοθεί ο αριθμός -9999 ο
οποίος δεν θα καταμετράται.
Θα επιλύσουμε την άσκηση με τη χρήση της δομής Μέχρις_ότου.

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


άθροισμα ← 0
πλήθος ← 0
Ο αριθμός που οδηγεί στον τερματισμό θα προστεθεί
Αρχή_επανάληψης και αυτός στο άθροισμα και θα καταμετρηθεί στο πλήθος,
Διάβασε αριθμός κάτι που θα οδηγήσει σε λάθος αποτελέσματα.
άθροισμα ← άθροισμα +αριθμός Αυτός το λάθος είναι συνέπεια της ιδιότητας της δομής
Μέχρις_ότου , όπου η συνθήκη ελέγχεται στο τέλος του
πλήθος ← πλήθος+ 1 βρόχου και , και διορθώνεται με τη προσθήκη της
Μέχρις _ότου αριθμός =-9999 δομής επιλογής Αν.
ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ
ΗΨΗ
ΕΠ.19 ΕΠΑΝΑΛ
∆ομή Επανάληψης
Να αναπτυχθεί αλγόριθμος που θα διαβάζει αριθμούς αγνώστου πλήθους και θα εκτυπώνει
το μέσο όρο τους. Η επαναληπτική διαδικασία θα τερματίζεται όταν δοθεί ο αριθμός -9999 ο
οποίος δεν θα καταμετράται.
Ο αλγόριθμος είναι ο ακόλουθος:

Αλγόριθμος ΜΟ_Αριθμών Παρατηρούμε ότι υπάρχει περίπτωση να


άθροισμα ← 0 μην εκτελεστεί καμία φορά το τμήμα
εντολών του βρόχου ,
πλήθος ← 0
Αρχή_επανάληψης άρα μάλλον ταιριάζει η δομή επανάληψης
Διάβασε αριθμός
Όσο .

Αν αριθμός<> -9999 τότε


άθροισμα ← άθροισμα +αριθμός
πλήθος ← πλήθος+ 1
Τέλος_αν
Μέχρις _ότου αριθμός =-9999
Αν πλήθος<> 0 τότε ! Κριτήριο καθοριστικότητας
μέσος_όρος ← άθροισμα/πλήθος
Γράψε πλήθος,μέσος_όρος
Αλλιώς
Γράψε “Δεν δόθηκε κανένας αριθμός”
Τέλος_αν
Τέλος ΜΟ_Αριθμών
ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ
ΗΨΗ
ΕΠ.19 ΕΠΑΝΑΛ
∆ομή Επανάληψης
Να αναπτυχθεί αλγόριθμος που θα διαβάζει αριθμούς αγνώστου πλήθους και θα εκτυπώνει
το μέσο όρο τους. Η επαναληπτική διαδικασία θα τερματίζεται όταν δοθεί ο αριθμός -9999 ο
οποίος δεν θα καταμετράται.
Ο αλγόριθμος είναι ο ακόλουθος:

Αλγόριθμος ΜΟ_Αριθμών Προστέθηκε άλλη μια εντολή


άθροισμα ← 0 Διάβασε ,
ώστε να αρχικοποιηθεί η μεταβλητή
πλήθος ← 0
αριθμός.
Διάβασε αριθμός Στη συνέχεια , στο τέλος του βρόχου
Όσο αριθμός<> -9999 επανέλαβε διαβάζεται η επόμενη τιμή για να
άθροισμα ← άθροισμα +αριθμός χρησιμοποιηθεί στον επόμενο έλεγχο.
πλήθος ← πλήθος+ 1
Διάβασε αριθμός Προτείνεται η δομή Όσο για επίλυση
ασκήσεων όπου το πλήθος των
Τέλος_επανάληψης
επαναλήψεων είναι άγνωστο.
Αν πλήθος<> 0 τότε ! Κριτήριο καθοριστικότητας
μέσος_όρος ← άθροισμα/πλήθος
Γράψε πλήθος,μέσος_όρος
Αλλιώς
Γράψε “Δεν δόθηκε κανένας αριθμός”
Τέλος_αν
Τέλος ΜΟ_Αριθμών
ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ
ΗΨΗ
ΕΠ.20 ΕΠΑΝΑΛ
∆ομή Επανάληψης
Να αναπτυχθεί αλγόριθμος που θα διαβάζει χαρακτήρες κειμένου , μέχρι να συναντήσει
τους χαρακτήρες “.” ή “!” .Ο αλγόριθμος εκτυπώνει το πλήθος των χαρακτήρων που
διάβασε καθώς και το πλήθος εμφανίσεων του χαρακτήρα “α”. Οι χαρακτήρες “.” και “!”
δεν καταμετρούνται.
Θα επιλύσουμε την άσκηση με τη χρήση της δομής Όσο.

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

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

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


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

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

Τέλος Μέτρηση_Χαρακτήρων
ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ
ΗΨΗ
ΕΠ.21 ΕΠΑΝΑΛ
∆ομή Επανάληψης
Να αναπτυχθεί αλγόριθμος που θα διαβάζει ζεύγη αριθμών . Ο αλγόριθμος θα ρωτάει τον
χρήστη αν επιθυμεί να συνεχίσει την καταχώρηση νέων στοιχείων . Στο τέλος της
επαναληπτικής διαδικασίας θα εκτυπώνει το πλήθος των ζευγαριών που διάβασε.
Σε αυτό το παράδειγμα ενδείκνυται η χρήση της δομής Μέχρις_ότου,
αφού επιθυμούμε την επεξεργασία όλων των στοιχείων που διαβάζουμε.
Αλγόριθμος Ζεύγη_τιμών
πλήθος ← 0

Αρχή_επανάληψης
Διάβασε τιμή1,τιμή2
πλήθος ← πλήθος +1
Γράψε “Επιθυμείτε να συνεχίσετε(ΝΑΙ/ΟΧΙ);”
Διάβασε απάντηση
Μέχρις _ότου απάντηση = “OXI ”

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

Τέλος Ζεύγη_τιμών
ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ
ΗΨΗ
ΕΠ.22 ΕΠΑΝΑΛ
∆ομή Επανάληψης
Να αναπτυχθεί αλγόριθμος που θα διαβάζει έναν αριθμό (μεγαλύτερο του 0) και θα
υπολογίζει το άθροισμα:
S=1+22+33+44+…
μέχρι το S να ξεπεράσει την τιμή του αριθμού που διαβάστηκε. Ο αλγόριθμος θα εκτυπώνει
το πλήθος των όρων που χρειάστηκαν για τον υπολογισμό του S.

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

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

Διάβασε Όριο
Μέχρις _ότου Όριο > 0
i ←1
S ←0
Όσο S<=Όριο επανέλαβε
S ← S +i^i
i ← i +1
Τέλος_επανάληψης
Γράψε “Οι επαναλήψεις που απαιτήθηκαν είναι ”,i
Τέλος Άθροισμα_Όριο
ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ
ΗΨΗ
ΕΠ.23 ΕΠΑΝΑΛ
∆ομή Επανάληψης
Να αναπτυχθεί αλγόριθμος που θα υπολογίζει το άθροισμα:
1 1 1 1
S= + + + +….
2 4 6 8
ώστε το S να έχει τον τελευταίο όρο αυτόν που δεν θα ξεπερνάει την τιμή 0.00001. Ο
αλγόριθμος θα εκτυπώνει το πλήθος των επαναλήψεων που χρειάστηκαν για τον
υπολογισμό του S.

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

Όριο ← 0.00001
i ←1
S ←0
επόμενος_όρος ← 1/2
Όσο επόμενος_όρος>Όριο επανέλαβε

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

Τέλος_επανάληψης
Γράψε “Οι επαναλήψεις που απαιτήθηκαν είναι ”,i
Τέλος Άθροισμα_Ακρίβεια
ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ
ΗΨΗ
ΕΠ.24 ΕΠΑΝΑΛ
∆ομή Επανάληψης
Να αναπτυχθεί αλγόριθμος που θα διαβάζει έναν ακέραιο αριθμό και θα εκτυπώνει το
πλήθος των ψηφίων του.
Ας θεωρήσουμε για παράδειγμα τον αριθμό 3275. 4 ψηφία
Αν διαιρέσουμε τον αριθμό με το 10000 . 10^4
το ακέραιο μέρος της διαίρεσης είναι 0 και τα ψηφία του αριθμού είναι 4 όσα και τα μηδενικά του 10000.
Έτσι , για να υπολογίσουμε το πλήθος των ψηφίων αρκεί να διαιρέσουμε τον αριθμό με
το 10 ,
το 100, Άγνωστος αριθμός
το 1000 κλπ επαναλήψεων.
μέχρι το ακέραιο μέρος της διαίρεσης να είναι 0.

3275 10000

0,3275

Ακέραιο μέρος
ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ
ΗΨΗ
ΕΠ.24 ΕΠΑΝΑΛ
∆ομή Επανάληψης
Να αναπτυχθεί αλγόριθμος που θα διαβάζει έναν ακέραιο αριθμό και θα εκτυπώνει το
πλήθος των ψηφίων του.
Δεν είναι γνωστό το πλήθος των επαναλήψεων που θα χρειαστούν , άρα θα χρησιμοποιήσουμε τη δομή
Όσο.

ΑΛΛΙΩΣ

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


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

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

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


Τέλος_επανάληψης Μέχρις_ότου αριθμός=0

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

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


ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ
ΗΨΗ
ΕΠ.25 ΕΠΑΝΑΛ
∆ομή Επανάληψης
Όταν κάποιος φταρνίζεται ,συνηθίζεται να του λένε ένα τετραψήφιο αριθμό .
Τότε αυτός προσθέτει τα ψηφία του αριθμού ,
μέχρι αν αντιστοιχεί σε κάποιο γράμμα της αλφαβήτου.
Να αναπτύξετε αλγόριθμο που θα διαβάζει έναν αριθμό , με 4 ψηφία ,
και θα εντοπίζει το γράμμα της αλφαβήτου που αντιστοιχεί στο φτάρνισμα.
Ο αλγόριθμος είναι:
Αλγόριθμος Με_τις_υγείες_σας
Αρχή_επανάληψης
Διάβασε αριθμός
Μέχρις _ότου (αριθμός> = 1000) και (αριθμός< = 9999) ! 4 ψηφία
Αρχή_επανάληψης
χιλιάδες ← αριθμός div 1000 ! Βρίσκω τις χιλιάδες
βοηθητική1 ← αριθμός mod 1000 ! Βρίσκω τον υπόλοιπο αριθμό
εκατοντάδες ← βοηθητική1 div 100
βοηθητική2 ← βοηθητική1 mod 100
δεκάδες ← βοηθητική2 div 10
μονάδες ← βοηθητική2 mod 10
αριθμός ← χιλιάδες+εκατοντάδες+δεκάδες+μονάδες Με μια δομή πίνακα
Μέχρις _ότου αριθμός< = 24 αντιστοιχίζουμε τον αριθμό με το
γράμμα.
Γράψε “Προκύπτει το γράμμα που βρίσκεται στη θέση , αριθμός
Τέλος Με_τις_υγείες_σας
ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ
ΗΨΗ
ΕΠ.26 ΕΠΑΝΑΛ
∆ομή Επανάληψης
Ένας τρόπος υπολογισμού των τριγωνομετρικών συναρτήσεων στους υπολογιστές , είναι με τον
υπολογισμό των παρακάτω σειρών:
x3 x5 x7 x2 x4 x6
ημχ= x - + - +…. και συνχ= 1 - + - +….
3! 5! 7! 2! 4! 6!
Να γραφεί αλγόριθμος ο οποίος θα διαβάζει τη γωνία x σε μοίρες και θα υπολογίζει το ημίτονο και το
συνημίτονο της , σύμφωνα με τους παραπάνω τύπους. Ποια μπορεί να είναι τα κριτήρια για διακοπή των
επαναλήψεων;
Υπόδειξη : Να μετατραπεί αρχικά η γωνία x σε ακτίνια.

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

 Συγκρίνεται το άθροισμα με την πραγματική τιμή του ημιτόνου/συνημιτόνου της γωνίας (αντίστοιχες
συναρτήσεις γλώσσας-Δες Τυπολόγιο )
ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ
ΗΨΗ
ΕΠ.26 ΕΠΑΝΑΛ
∆ομή Επανάληψης
Ένας τρόπος υπολογισμού των τριγωνομετρικών συναρτήσεων στους υπολογιστές , είναι με τον υπολογισμό των
παρακάτω σειρών:
x3 x5 x7 x2 x4 x6
ημχ= x - + - +…. και συνχ= 1 - + - +….
3! 5! 7! 2! 4! 6!
Αλγόριθμος Τριγωνομετρία συνημίτονο ← 1
όριο ← 0.00001 i←1
π ← 3.14 N←2
Διάβασε γωνία_μοίρες
Αρχή_επανάληψης
γωνία ← γωνία_μοίρες*π/180
παρονομαστής ← 1
ημίτονο ← γωνία Για k από 1 μέχρι N
i←1
παρονομαστής ← παρονομαστής*k
N←3 Τέλος_επανάληψης
Αρχή_επανάληψης νέος_όρος← (-1)^i*γωνία^Ν/παρονομαστής
παρονομαστής ← 1 συνημίτονο← συνημίτονο+ νέος_όρος
Για k από 1 μέχρι N ! Δημιουργώ παραγοντικό i ← i+1
παρονομαστής ← παρονομαστής*k N ← N+2
Τέλος_επανάληψης
Αν νέος_όρος>= 0 τότε
νέος_όρος← (-1)^i*γωνία^Ν/παρονομαστής
Απόλ_τιμή_νέος ← νέος_όρος
ημίτονο← ημίτονο+ νέος_όρος
Αλλιώς
i ← i+1 ! Μεταφέρομαι να δημιουργήσω το νέο όρο
Απόλ_τιμή_νέος ← (-1)*νέος_όρος
N ← N+2 ! Και να δημιουργήσω το νέο παραγοντικό Τέλος_αν
Αν νέος_όρος>= 0 τότε Μέχρις _ότου Απόλ_τιμή_νέος < = όριο
Απόλ_τιμή_νέος ← νέος_όρος Γράψε “Το ημίτονο είναι ”,ημίτονο
Αλλιώς
Απόλ_τιμή_νέος ← (-1)*νέος_όρος Γράψε “Το συνημίτονο είναι ”,συνημίτονο
Τέλος_αν Τέλος Τριγωνομετρία
Μέχρις _ότου Απόλ_τιμή_νέος < = όριο
ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ
ΗΨΗ
ΕΠ.27 ΕΠΑΝΑΛ
∆ομή Επανάληψης
Να αναπτυχθεί αλγόριθμος που θα εμφανίζει όλους τους τέλειους αριθμούς στο διάστημα
[2,100]. Τέλειος είναι ο ακέραιος που ισούται με το άθροισμα των γνήσιων διαιρετών του.
Oι τέλειοι
Ο Πυθαγόρας πίστευε ότι ορισμένοι αριθμοί, όπως ο 6, πρέπει να θεωρούνται «τέλειοι».
Τέλειος λέγεται κάθε αριθμός ο οποίος είναι ίσος με το άθροισμα των διαιρετών του.
Ο 6 είναι ΤΕΛΕΙΟΣ διότι είναι ίσος με το άθροισμα των 1, 2 και 3
και οι 1,2,3 είναι οι τρεις διαιρέτες του (6=1+2+3) .

1+2+3=6
Αυτό δεν συμβαίνει ούτε με τον 5, ούτε με τον 7 ούτε με τον 8
ούτε με κανένα άλλο μονοψήφιο.
Για να βρούμε τον επόμενο τέλειο αριθμό χρειάζεται σχετική
υπομονή διότι επόμενος τέλειος είναι ο 28 = 1+2+3+4+5+6+7 .
Εάν δε θελήσουμε να αναζητήσουμε τον επόμενο τέλειο αριθμό
θα χρειαστεί πάλι μεγάλη υπομονή.
Είναι ο αριθμός 496 = 1+2+3+4+5+6+ . . . +30+31 .
Όσο για τον επόμενο, εάν δεν βρούμε άλλον τρόπο για την αναζήτηση, ας το αφήσουμε
καλύτερα.
ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ
ΗΨΗ
ΕΠ.27 ΕΠΑΝΑΛ
∆ομή Επανάληψης
Να αναπτυχθεί αλγόριθμος που θα εμφανίζει όλους τους τέλειους αριθμούς στο διάστημα
[2,100]. Τέλειος είναι ο ακέραιος που ισούται με το άθροισμα των γνήσιων διαιρετών του.
Μια από τις ιδέες του Πυθαγόρα ήταν και ότι
η τελειότητα σχετίζεται με τις δυνάμεις του 2.

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


μόλις στο να είναι τέλειοι
αφού το άθροισμα των διαιρετών τους
είναι μικρότερο ΜΟΝΟ κατά μία μονάδα από τους ίδιους .
Παράδειγμα:
22 = 4 ∆ιαιρέτες οι 1,2 Άθροισμα των διαιρετών = 3
23 = 8 ∆ιαιρέτες οι 1,2,4 Άθροισμα των διαιρετών = 7
24 = 16 ∆ιαιρέτες οι 1,2,4,8 Άθροισμα των διαιρετών = 15
25 = 32 ∆ιαιρέτες οι 1,2,4,8,16 Άθροισμα των διαιρετών = 31
26 = 64 ∆ιαιρέτες οι 1,2,4,8,16,32 Άθροισμα των διαιρετών = 63
ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ
ΗΨΗ
ΕΠ.27 ΕΠΑΝΑΛ
∆ομή Επανάληψης
Να αναπτυχθεί αλγόριθμος που θα εμφανίζει όλους τους τέλειους αριθμούς στο διάστημα
[2,100]. Τέλειος είναι ο ακέραιος που ισούται με το άθροισμα των γνήσιων διαιρετών του.

Ο αλγόριθμος είναι: Ας πάρουμε για παράδειγμα τον αριθμό i=6 , που


είναι τέλειος:
Αλγόριθμος Τέλειοι_αριθμοί j=1
Για i από 2 μέχρι 100 i mod j 6 mod 1 = 0 άθροισμα ← άθροισμα+j
άθροισμα ← 0 άθροισμα ← 1
Για j από 1 μέχρι i j=2
Αν i mod j=0 τότε άθροισμα ← 1+j
i mod j 6 mod 2 = 0
άθροισμα ← άθροισμα+j
άθροισμα ← 1+2 =3
Τέλος_αν
j=3
Τέλος_επανάληψης
i mod j 6 mod 3 = 0 άθροισμα ← 3+j
Αν άθροισμα=2*i τότε
άθροισμα ← 3+3 =6
Γράψε “Ο αριθμός ”, i, “ είναι τέλειος ”
Τέλος_αν j=4
Τέλος_επανάληψης
i mod j 6 mod 4 = 0
Τέλος Τέλειοι_αριθμοί
j=5
i mod j 6 mod 5 = 0
j=6
άθροισμα ← 6+j
i mod j 6 mod 6 = 0
άθροισμα ← 6+6 =12
άθροισμα = 2*i 6 =i
ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ
ΗΨΗ
ΕΠ.28 ΕΠΑΝΑΛ
∆ομή Επανάληψης
Να αναπτυχθεί αλγόριθμος που θα εμφανίζει όλους τους πρώτους αριθμούς στο διάστημα
[2,100] καθώς και το πλήθος τους. Πρώτος είναι ο ακέραιος του οποίου οι μοναδικοί διαιρέτες
είναι η μονάδα και ο εαυτός του.
π.χ. 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 διαφορετικά άτομα,
οι Έλληνες μαθηματικοί έκαναν μια καλή αρχή βλέποντας τους ΠΡΩΤΟΥΣ κάτι
σαν « ΑΤΟΜΑ της ΑΡΙΘΜΗΤΙΚΗΣ » σαν δομικούς δηλαδή λίθους όλων των αριθμών.
ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ
ΗΨΗ
ΕΠ.28 ΕΠΑΝΑΛ
∆ομή Επανάληψης
Να αναπτυχθεί αλγόριθμος που θα εμφανίζει όλους τους πρώτους αριθμούς στο διάστημα
[2,100] καθώς και το πλήθος τους. Πρώτος είναι ο ακέραιος του οποίου οι μοναδικοί διαιρέτες
είναι η μονάδα και ο εαυτός του.

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


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

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

πλήθος ← 0
Για i από 2 μέχρι 100
διαιρέτες ← 0
Για j από 1 μέχρι i
Αν i mod j=0 τότε
διαιρέτες ← διαιρέτες+1
Τέλος_αν
Τέλος_επανάληψης

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

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


πλήθος ← πλήθος+1
Τέλος_αν
Τέλος_επανάληψης
Γράψε “Πλήθος πρώτων :”,πλήθος
Τέλος Πρώτοι_αριθμοί
ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ
ΗΨΗ
ΕΠ.29 ΕΠΑΝΑΛ
∆ομή Επανάληψης
Να αναπτυχθεί αλγόριθμος που θα διαβάζει δύο θετικούς ακέραιους αριθμούς και θα
εκτυπώνει το Μέγιστο Κοινό Διαιρέτη τους.
Για τον υπολογισμό του Μ.Κ.Δ. δύο ακεραίων μπορούμε να χρησιμοποιήσουμε τον αλγόριθμο του Ευκλείδη:
Διαιρούμε τον μεγαλύτερο δια τον μικρότερο, και κρατούμε το υπόλοιπο της διαίρεσης .
Στη συνέχεια διαιρούμε τον μικρότερο ακέραιο δια το υπόλοιπο και κρατάμε το νέο υπόλοιπο.
Επαναλαμβάνουμε την παραπάνω διαδικασία ώσπου το υπόλοιπο να είναι 0 και Μ.Κ.Δ. είναι ο τελευταίος διαιρέτης.
π.χ. (123,45)=(45,33)=(33,12)=(12,9)=(9,3)=(3,0)
Άρα Μ.Κ.Δ=3
ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ
ΗΨΗ
ΕΠ.29 ΕΠΑΝΑΛ
∆ομή Επανάληψης
Να αναπτυχθεί αλγόριθμος που θα διαβάζει δύο θετικούς ακέραιους αριθμούς και θα
εκτυπώνει το Μέγιστο Κοινό Διαιρέτη τους.
Ο αλγόριθμος είναι:

Αλγόριθμος Μ_Κ_Δ
Διάβασε α,β
Αν α>β τότε
διαιρετέος ← α
διαιρέτης ← β
Αλλιώς
διαιρετέος ← β
διαιρέτης ← α
Τέλος_αν
Αρχή_επανάληψης
υπόλοιπο ← διαιρετέος mod διαιρέτης
διαιρετέος ← διαιρέτης
διαιρέτης ← υπόλοιπο
Μέχρις _ότου υπόλοιπο = 0
Γράψε “Ο Μέγιστος Κοινός διαιρέτης είναι :”,διαιρετέος
Τέλος Μ_Κ_Δ
ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ
ΗΨΗ
ΕΠ.30 ΕΠΑΝΑΛ
∆ομή Επανάληψης
Να αναπτυχθεί αλγόριθμος που θα δέχεται έναν ακέραιο αριθμό και θα τον αναλύει σε
γινόμενο πρώτων παραγόντων.
Γινόμενο πρώτων παραγόντων: 60 = 2 * 30 = 2* 2 * 15 = 2 * 2 * 3 * 5

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


60 παράγοντας του 30
μικρότερος παράγοντας του 15
Αλγόριθμος Παράγοντες
8
Διάβασε αριθμός
βοηθητική ← 8
βοηθητική ← αριθμός
i ←1
i ←1
p ←1
p ←1
Αρχή_επανάληψης 1η Επανάληψη Αρχή…
i ← i+1 i ←2
k ←0 k ←0
Όσο βοηθητικήmod i =0 επανέλαβε 1η Επανάληψη Όσο… 8 mod 2=0
βοηθητική ← βοηθητική div i βοηθητική ← 8div2=4
k ← k+1 k ←1
Τέλος_επανάληψης
Αν k>0 τότε
Γράψε i,k ! Ο αριθμός διαιρείται k
Τέλος_αν φορές με το i.
p ← p*i^k

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

Τέλος Παράγοντες
ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ
ΗΨΗ
ΕΠ.30 ΕΠΑΝΑΛ
∆ομή Επανάληψης
Να αναπτυχθεί αλγόριθμος που θα δέχεται έναν ακέραιο αριθμό και θα τον αναλύει σε
γινόμενο πρώτων παραγόντων.

Αλγόριθμος Παράγοντες
Διάβασε αριθμός
βοηθητική ← αριθμός
i ←1
p ←1 2η Επανάληψη Όσο…
Αρχή_επανάληψης
i ← i+1
k ←0
Όσο βοηθητικήmod i =0 επανέλαβε 4 mod 2=0
βοηθητική ← βοηθητική div i βοηθητική ← 4div2=2
k ← k+1 k ←2
Τέλος_επανάληψης
Αν k>0 τότε
Γράψε i,k
Τέλος_αν
p ← p*i^k

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

Τέλος Παράγοντες
ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ
ΗΨΗ
ΕΠ.30 ΕΠΑΝΑΛ
∆ομή Επανάληψης
Να αναπτυχθεί αλγόριθμος που θα δέχεται έναν ακέραιο αριθμό και θα τον αναλύει σε
γινόμενο πρώτων παραγόντων.

Αλγόριθμος Παράγοντες
Διάβασε αριθμός
βοηθητική ← αριθμός
i ←1
p ←1 3η Επανάληψη Όσο…
Αρχή_επανάληψης
i ← i+1
k ←0
Όσο βοηθητικήmod i =0 επανέλαβε 2 mod 2=0
βοηθητική ← βοηθητική div i βοηθητική ← 2div2=1
k ← k+1 k ←3
Τέλος_επανάληψης
Αν k>0 τότε
Γράψε i,k
Τέλος_αν
p ← p*i^k

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

Τέλος Παράγοντες
ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ
ΗΨΗ
ΕΠ.30 ΕΠΑΝΑΛ
∆ομή Επανάληψης
Να αναπτυχθεί αλγόριθμος που θα δέχεται έναν ακέραιο αριθμό και θα τον αναλύει σε
γινόμενο πρώτων παραγόντων.

Αλγόριθμος Παράγοντες
Διάβασε αριθμός
βοηθητική ← αριθμός
i ←1
p ←1 3η Επανάληψη Όσο…
Αρχή_επανάληψης
i ← i+1
k ←0
Όσο βοηθητικήmod i =0 επανέλαβε 1 mod 2=0
βοηθητική ← βοηθητική div i
k ← k+1
Τέλος_επανάληψης
Αν k>0 τότε k=3>0
Γράψε i,k ! Ο αριθμός διαιρείται3 2,3
Τέλος_αν φορές με το 2.
p ← p*i^k p ← 1*2^3=8

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

Τέλος Παράγοντες
ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ
ΗΨΗ
ΕΠ.31 ΕΠΑΝΑΛ
∆ομή Επανάληψης
Ο ρυθμός αύξησης των καπνιστών στην Ελλάδα είναι 8.5%. Αν σήμερα οι καπνιστές
εκτιμάται ότι αριθμούν 4.500.000, να αναπτυχθεί αλγόριθμος που θα εκτυπώνει το πλήθος
των καπνιστών σε 15 χρόνια καθώς και το ποσοστό αύξησης τους σ’ αυτό το χρονικό
διάστημα.
τελική τιμή-αρχική τιμή
Ισχύει ότι ρυθμός αύξησης= 100*
αρχική τιμή
Αλγόριθμος Καπνιστές

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

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

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


καπνιστές ← καπνιστές+ Α_Μ(καπνιστές*ρυθμός) ! Ακέραια τιμή
Τέλος_επανάληψης

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

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

Τέλος Καπνιστές
ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ
ΗΨΗ
ΕΠ.32 ΕΠΑΝΑΛ
∆ομή Επανάληψης
Από έρευνες που έχει φανεί ότι μια κοινότητα μελισσών υπό κανονικές συνθήκες
αναπτύσσεται με ρυθμό 4.8% ετησίως. Αν ένας μελισσοκόμος διαθέτει μελίσσια με συνολικό
πλυθησμό 1200 μέλισσες, σε πόσα έτη θα ξεπεράσει τη χωρητικότητα των κυψελών του
που είναι 2000 μέλισσες; Να γραφεί αλγόριθμος που θα εκτυπώνει το ζητούμενο.
Εφόσον δεν είναι γνωστό το πλήθος των επαναλήψεων , θα χρησιμοποιήσουμε τη δομή
επανάληψης Μέχρις_ότου καθώς και έναν μετρητή Έτη που θα μετρά τις επαναλήψεις ,
δηλαδή τα χρόνια.

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

Μέλισσες ← 1200

Ρυθμός ← 4.8/100
Έτη ← 0
Όσο Μέλισσες<=2000 επανέλαβε
! Ακέραια τιμή
Μέλισσες ← Μέλισσες+ Α_Μ(Μέλισσες*ρυθμός)

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

Τέλος Μέλισσες
ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ
ΗΨΗ
ΕΠ.33 ΕΠΑΝΑΛ
∆ομή Επανάληψης
Έρευνες έδειξαν ότι ο ετήσιος ρυθμός μείωσης του σπάνιου είδους εντόμων «Μυγόπυγος»
είναι 8.75% , ενώ ταυτόχρονα εκτιμάται ότι το πλήθος τους είναι σήμερα 35000. Για να
χαρακτηριστεί ως είδος προς εξαφάνιση πρέπει να αριθμεί λιγότερους από 6000
οργανισμούς. Να αναπτυχθεί αλγόριθμος που θα υπολογίζει και θα εκτυπώνει τα έτη που
χρειάζονται ώστε να χαρακτηριστεί το είδος προς εξαφάνιση.

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

Πλυθυσμός ← 35000

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

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

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

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

Τέλος Προς_εξαφάνιση
ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ
ΗΨΗ
ΕΠ.34 ΕΠΑΝΑΛ
∆ομή Επανάληψης
Το αμφιθέατρο του δήμου διαθέτει 50 καθίσματα στην πρώτη σειρά και σε κάθε επόμενη
σειρά από τις συνολικά 15 υπάρχει αύξηση καθισμάτων κατά 10%. Να αναπτυχθεί
αλγόριθμος που θα υπολογίζει και θα εκτυπώνει τα καθίσματα της τελευταίας σειράς, καθώς
και τη συνολική χωρητικότητα καθισμάτων του αμφιθεάτρου.

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

καθίσματα ← 50
Ρυθμός ← 10/100
συνολικά_καθίσματα ← καθίσματα

Για i από 2 μέχρι 15 ! Γνωστός αριθμός επαναλήψεων ! Δεύτερη σειρά και εξής.

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

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


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

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


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

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

Όσο συνολικό_κόστος+κόστος_επόμενης_σειράς<=20000 επανέλαβε


……………………………………..
Τέλος_επανάληψης
Έτσι ο προϋπολογισμός δεν θα παραβιαστεί , αφού θα τερματιστεί η επανάληψη όταν δεν υπάρχει η
δυνατότητα προσθήκης νέας σειράς.
Στη συνέχεια αρχικοποιούμε μεταβλητές και συμπληρώνουμε το βρόχο .
ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ
ΗΨΗ
ΕΠ.35 ΕΠΑΝΑΛ
∆ομή Επανάληψης
Ο δήμος αποφάσισε να τοποθετήσει νέα καθίσματα στο αμφιθέατρο. Στην πρώτη σειρά τοποθετούνται 50
καθίσματα ενώ σε κάθε επόμενη σειρά προστίθενται 6 καθίσματα. Το κόστος κάθε καθίσματος είναι 40 €,
ενώ τα διαθέσιμα χρήματα(badget) είναι 20000 €. Να αναπτυχθεί αλγόριθμος που θα εκτυπώνει τον
αριθμό καθισμάτων που μπορούν να τοποθετηθούν , καθώς και το χρηματικό ποσό που περισσεύει.
Αλγόριθμος Αμφιθέατρο2
badget ← 20000
καθίσματα ← 50
συν_κόστος ← 0
τρέχον_κόστος ← καθίσματα* 40 ! κόστος 1ης σειράς

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

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


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

καθίσματα ← καθίσματα + 6
τρέχον_κόστος ← καθίσματα* 40
Τέλος_επανάληψης
Γράψε “Θα τοποθετηθούν ”,συν_καθίσματα,“καθίσματα”
περίσσευμα ← badget- συν_κοστος
Γράψε “Το περίσσευμα των χρημάτων είναι ”,περίσσευμα
Τέλος Αμφιθέατρο2
ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ
ΗΨΗ
ΕΠ.35 ΕΠΑΝΑΛ
∆ομή Επανάληψης
Ο δήμος αποφάσισε να τοποθετήσει νέα καθίσματα στο αμφιθέατρο. Στην πρώτη σειρά τοποθετούνται 50
καθίσματα ενώ σε κάθε επόμενη σειρά προστίθενται 6 καθίσματα. Το κόστος κάθε καθίσματος είναι 40 €,
ενώ τα διαθέσιμα χρήματα(badget) είναι 20000 €. Να αναπτυχθεί αλγόριθμος που θα εκτυπώνει τον
αριθμό καθισμάτων που μπορούν να τοποθετηθούν , καθώς και το χρηματικό ποσό που περισσεύει.

Αν επιθυμούμε να επιλύσουμε την άσκηση με τη χρήση της Μέχρις_ότου, τότε μπορούμε να χρησιμοποιήσουμε μια
λογική μεταβλητή που ανάλογα με την τιμή της (αληθής ή ψευδής) φροντίζει για τη συνέχεια /τερματισμό αντίστοιχα της
επανάληψης. Η τιμή της λογικής μεταβλητής διαμορφώνεται με δομή επιλογής που ελέγχει την κατάλληλη συνθήκη.
ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ
ΗΨΗ
ΕΠ.35 ΕΠΑΝΑΛ
∆ομή Επανάληψης
Ο δήμος αποφάσισε να τοποθετήσει νέα καθίσματα στο αμφιθέατρο. Στην πρώτη σειρά τοποθετούνται 50
καθίσματα ενώ σε κάθε επόμενη σειρά προστίθενται 6 καθίσματα. Το κόστος κάθε καθίσματος είναι 40 €,
ενώ τα διαθέσιμα χρήματα(badget) είναι 20000 €. Να αναπτυχθεί αλγόριθμος που θα εκτυπώνει τον
αριθμό καθισμάτων που μπορούν να τοποθετηθούν , καθώς και το χρηματικό ποσό που περισσεύει.
Αλγόριθμος Αμφιθέατρο2
badget ← 20000
καθίσματα ← 50
συν_κόστος ← 0
τρέχον_κόστος ← καθίσματα* 40 ! κόστος 1ης σειράς
συν_καθίσματα ← 0
έξοδος← Ψευδής
Αρχή_επανάληψης
Αν συν_κόστος+τρέχον_κόστος<= badget τότε ! Υπέρβαση badget
συν_κόστος ← συν_κόστος + τρέχον_κόστος
συν_καθίσματα ← συν_καθίσματα + καθίσματα

καθίσματα ← καθίσματα + 6
τρέχον_κόστος ← καθίσματα* 40 ! κόστος νέας σειράς
Αλλιώς
έξοδος← Αληθής
Τέλος_αν
Μέχρις _ότου έξοδος = Αληθής
Γράψε “Θα τοποθετηθούν ”,συν_καθίσματα,“καθίσματα”
περίσσευμα ← badget- συν_κοστος
Γράψε “Το περίσσευμα των χρημάτων είναι ”,περίσσευμα
Τέλος Αμφιθέατρο2
ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ
ΗΨΗ
ΕΠ.36 ΕΠΑΝΑΛ
∆ομή Επανάληψης
Η αμοιβάδα είναι μονοκύτταρος οργανισμός . Ανά 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
Γράψε “Τελικός πληθυσμός: ”,πλήθος
Γράψε “Ποσοστό αύξηση: ”,ποσοστό

Τέλος Αμοιβάδες
ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ
ΗΨΗ
ΕΠ.37 ΕΠΑΝΑΛ
∆ομή Επανάληψης
Ο μισθός του κύριου Παπαδόπουλου είναι 1250 €, ενώ σύμφωνα με το μισθολόγιο αυξάνεται
κατά 11% ετησίως. Κάθε μήνα έχει αποφασίσει να αποταμιεύσει το 9% του μισθού για το
όνειρο του , που είναι η αγορά φουσκωτού σκάφους. Να αναπτυχθεί αλγόριθμός που θα
υπολογίζει και θα εκτυπώνει σε πόσους μήνες θα κατορθώσει να συγκεντρώσει το
απαιτούμενο ποσό, ώστε να αγοράσει φουσκωτό αξίας 7000 €.

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

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

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

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

μισθός ← μισθός+(11/100)*μισθός
Τέλος_αν
Τέλος_επανάληψης
Γράψε “Το ποσό θα συγκεντρωθεί σε : ”,μήνες,“μήνες”

Τέλος Φουσκωτό
ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ
ΗΨΗ
ΕΠ.38 ΕΠΑΝΑΛ
∆ομή Επανάληψης
Με την εκκίνηση της συσκευής ενός κινητού ζητείται ο κωδικός πρόσβασης PIN και ο
χρήστης έχει τρεις ευκαιρίες για την εισαγωγή του. Να αναπτυχθεί ο αλγόριθμος που εκτελεί
το κινητό :ζητάει 3 φορές τον κωδικό πρόσβασης (αν δεν έχει εισαχθεί σωστά) και στην
περίπτωση τριπλής αποτυχίας εκτυπώνει το μήνυμα “Η κάρτα SIM κλειδώθηκε. Παρακαλώ
εισάγετε τον κωδικό PUK”
Αλγόριθμος Εισαγωγή_ΡΙΝ
Δεδομένα // PIN //
αποτυχίες ← 0
Διάβασε κωδικός
Όσο (κωδικός<> ΡΙΝ) και (αποτυχίες<>3) επανέλαβε
αποτυχίες ← αποτυχίες +1
Γράψε “Λάθος κωδικός. Υπόλοιπες δοκιμές:” 3-αποτυχίες, “Δοκιμάστε ξανά . ”
Διάβασε κωδικός
Τέλος_επανάληψης

Αν κωδικός= ΡΙΝ τότε


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

Τέλος Εισαγωγή_ΡΙΝ
ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ

You might also like