Professional Documents
Culture Documents
ΗΨΗ
ΕΠ.1 ΕΠΑΝΑΛ
∆ομή Επανάληψης
Να αναπτυχθεί αλγόριθμος που θα εκτυπώνει τους διψήφιους άρτιους ακέραιους.
Η άσκηση στην ουσία θα πρέπει να εκτυπώσει του αριθμούς 10, 12, 14, ….,96, 98.
Με μια πρώτη ματιά θα μπορούσαμε να την λύσουμε με το να προσπελάσουμε τις τιμές όλων των
διψήφιων και με τη χρήση δομής επιλογής να επιλέξουμε τους άρτιους.
Ο αλγόριθμος είναι ο ακόλουθος:
Αλγόριθμος άρτιοι_διψήφιοι
Για i από 10 μέχρι 99 ! διψήφιοι
Εκτύπωσε i
Τέλος_επανάληψης
Τέλος άρτιοι_διψήφιοι
ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ
ΗΨΗ
ΕΠ.2 ΕΠΑΝΑΛ
∆ομή Επανάληψης
Ο ταμίας του super market Mercadona καταχωρεί στην ταμειακή απόδειξη τον κωδικό του προϊόντος και
την τιμή. Όταν ολοκληρωθεί η καταχώρηση για την αγορά ενός πελάτη , τότε εισάγεται ο κωδικός 0. Να
αναπτύξετε αλγόριθμο που θα υλοποιεί την παραπάνω διαδικασία και στο τέλος θα εκτυπώνει το
συνολικό ποσό της αγοράς και το πλήθος των προϊόντων που αγοράστηκαν.
Όταν το πλήθος των επαναλήψεων είναι άγνωστο, τότε δεν μπορούμε να χρησιμοποιήσουμε τη δομή
επανάληψης Για….Στην περίπτωση αυτή χρησιμοποιούμε την Όσο (ή τη Μέχρις_ότου).
Τέλος_επανάληψης Διάβασε
κωδικός
Εκτύπωσε σύνολο , πλήθος
Τέλος Mercadona
ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ
ΗΨΗ
ΕΠ.3 ΕΠΑΝΑΛ
∆ομή Επανάληψης
Να αναπτυχθεί αλγόριθμος που θα διαβάζει ακέραιους αριθμούς από τον χρήστη ,θα
υπολογίζει και θα εκτυπώνει τον μέσο όρο των περιττών απ’ αυτούς τους αριθμούς .
Η διαδικασία ανάγνωσης θα σταματά όταν έχουν διαβαστεί 20 περιττοί αριθμοί.
Ο αλγόριθμος είναι ο ακόλουθος:
Αρχή
βρόχος
άθροισμα←0
Ο αλγόριθμος είναι ο ακόλουθος: πλήθος←0
Διάβασε
περιττοί_μο αριθμός
Αλγόριθμος
Όχι
άθροισμα ← 0
πλήθος ← 0 αριθμόςmod2 =1
Αρχή_επανάληψης Ναι
Διάβασε αριθμός
άθροισμα ← άθροισμα+αριθμός
Αν αριθμος mod 2=1 τότε πλήθος ← πλήθος+1
Εκτύπωσε μέσος_όρος
Εκτύπωσε
Τέλος_αν μέσος_όρος
Τέλος περιττοί_μο
Τέλος
ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ
ΗΨΗ
ΕΠ.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.
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
Τέλος_επανάληψης
Τέλος Άθροισμα
ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ
ΗΨΗ
ΕΠ.6 ΕΠΑΝΑΛ
∆ομή Επανάληψης
Να αναπτυχθεί αλγόριθμος που θα διαβάζει έναν ακέραιο αριθμό Ν και θα υπολογίζει το
άθροισμα:
S1 = 5 + 3 - 9 + 27 - 81 + … + - 3
Ν
Αλγόριθμος Αθροισμα_Πρόσημο
S=
3 9 27 3Ν
1+ + + +….+ , αν Ν περιττός
2 4 6 2*Ν
Αλγόριθμος Διπλό_Άθροισμα
Αλγόριθμος Εξίσωση
Για x από -50 μέχρι 50
Ο αλγόριθμος είναι ο
ακόλουθος: Για y από -50 μέχρι 50
Για z από -50 μέχρι 50
2 , αν ν=1
αν =
2*αν-1+(ν-1) , αν ν>1
Σε κάθε επανάληψη , πρέπει στον προηγούμενο όρο να προσθέτουμε την επιπλέον ποσότητα ν-1 .
Αλγόριθμος Ακολουθία_αναδρομική
Τέλος Ακολουθία_αναδρομική
ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ
ΗΨΗ
ΕΠ.11 ΕΠΑΝΑΛ
∆ομή Επανάληψης
Να αναπτυχθεί αλγόριθμος που διαβάζει έναν αριθμό Ν>2 και θα εκτυπώνει αντίστοιχο
πλήθος όρων της ακολουθίας Fibonacci. Ο πρώτος όρος της ακολουθίας είναι το 0,ο
δεύτερος το 1 και κάθε επόμενος όρος είναι το άθροισμα των δύο προηγουμένων
( 0, 1 ,1 , 2, 3, 5 ,8 , 13 , 21 ,34 , 55 , 89,….)
Σε αυτή την άσκηση τα πράγματα περιπλέκονται . Για τον υπολογισμό του εκάστοτε όρου χρειάζονται οι
προηγούμενοι δύο όροι της ακολουθίας. Θα χρησιμοποιήσουμε δύο μεταβλητές που θα διατηρούν τον
προηγούμενο και τον προ-προηγούμενο όρο αντίστοιχα.
Αλγόριθμος Ακολουθία_Fibonacci
Θα χρησιμοποιήσουμε ένα μετρητή που θα καταμετρά τους τριψήφιους ακέραιους που είναι
πολλαπλάσιοι του 7.
Ο μετρητής απαιτεί 2 εντολές :
1. Μηδενισμό του μετρητή πριν επανάληψη.
2. Αύξηση της τιμής κατά μία μονάδα , εντός του βρόχου.
Αλγόριθμος Πολλαπλάσια_7
Ο αλγόριθμος είναι ο
ακόλουθος: πλήθος ← 0
Τέλος_επανάληψης
Γράψε πλήθος
Τέλος Πολλαπλάσια_7
ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ
ΗΨΗ
ΕΠ.12 ΕΠΑΝΑΛ
∆ομή Επανάληψης
Να αναπτυχθεί αλγόριθμος που θα εκτυπώνει τους θετικούς τριψήφιους ακέραιους που
είναι πολλαπλάσιοι του 7, καθώς και το πλήθος των αριθμών αυτών.
Αλγόριθμος Πολλαπλάσια_7
Αλγόριθμος κύβος_τριψήφιων
Αν ποσότητα=Χ τότε
Γράψε ”Ο αριθμός “,Χ, “ικανοποιεί τις προϋποθέσεις”
Τέλος_αν
Τέλος_επανάληψης
Τέλος κύβος_τριψήφιων
ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ
ΗΨΗ
ΕΠ.13 ΕΠΑΝΑΛ
∆ομή Επανάληψης
Να αναπτυχθεί αλγόριθμος που θα εκτυπώνει όλους τους θετικούς τριψήφιους ακέραιους,
των οποίων η τιμή είναι ίση με το άθροισμα των κύβων των ψηφίων τους(Αριθμοί
Armstrong).
Η άσκηση μπορεί να επιλυθεί με δύο προσεγγίσεις.
• Η 1η προσέγγιση είναι να διατρέξουμε όλους τους τριψήφιους ακέραιους , να απομονώσουμε τα 3
ψηφία τους και να ελέγξουμε τη συνθήκη της εκφώνησης.
• Η 2η προσέγγιση είναι με τη χρήση τριών δομών επανάληψης , ώστε να δημιουργήσουμε τις
εκατοντάδες, δεκάδες και μονάδες (τιμές 0 έως 9) δηλαδή τρία ψηφία ενός τριψήφιου αριθμού και να
ελέγξουμε τη συνθήκη της εκφώνησης.
Αλγόριθμος κύβος_τριψήφιων
Ο αλγόριθμος είναι ο Για εκατοντάδες από 1 μέχρι 9 ! Αν άρχιζε από 0 δεν θα ήταν τριψήφιος
ακόλουθος:
Για δεκάδες από 0 μέχρι 9
Για μονάδες από 0 μέχρι 9
ποσότητα ← εκατοντάδες^3+ δεκάδες^3+ μονάδες^3
Χ ← 100*εκατοντάδες+ 10*δεκάδες+ μονάδες
Αν ποσότητα =Χ τότε
Γράψε ”Ο αριθμός “,Χ, “ικανοποιεί τις προϋποθέσεις”
Τέλος_αν
Τέλος_επανάληψης
Τέλος_επανάληψης
Τέλος_επανάληψης
Τέλος κύβος_τριψήφιων
ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ
ΗΨΗ
ΕΠ.14 ΕΠΑΝΑΛ
∆ομή Επανάληψης
Να αναπτυχθεί αλγόριθμος που θα βρίσκει και θα εκτυπώνει όλους τους θετικούς
τετραψήφιους ακέραιους που μπορούν να διαβαστούν και ανάποδα (για παράδειγμα 1331,
7447, 9229 κλπ .).
Η άσκηση μπορεί να επιλυθεί με διάσπαση των ψηφίων του αριθμού με τη διαφορά ότι θα
αντιστοιχήσουμε τις χιλιάδες με τις μονάδες και
τις εκατοντάδες με τις δεκάδες .
Αλγόριθμος τετραψήφιος_ανάποδα
Αλγόριθμος Επαλήθευση
Αλγόριθμος Ποσοστό_Διψήφιων
Τέλος Ποσοστό_Διψήφιων
ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ
ΗΨΗ
ΕΠ.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
Γράψε συνολικό_πλήθος,πλήθος_α
Τέλος Μέτρηση_Χαρακτήρων
ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ
ΗΨΗ
ΕΠ.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.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.
Ο αλγόριθμος είναι:
Αλγόριθμος Πρώτοι_αριθμοί
πλήθος ← 0
Για i από 2 μέχρι 100
διαιρέτες ← 0
Για j από 1 μέχρι i
Αν i mod j=0 τότε
διαιρέτες ← διαιρέτες+1
Τέλος_αν
Τέλος_επανάληψης
Αν διαιρέτες=2 τότε
Αλγόριθμος Μ_Κ_Δ
Διάβασε α,β
Αν α>β τότε
διαιρετέος ← α
διαιρέτης ← β
Αλλιώς
διαιρετέος ← β
διαιρέτης ← α
Τέλος_αν
Αρχή_επανάληψης
υπόλοιπο ← διαιρετέος mod διαιρέτης
διαιρετέος ← διαιρέτης
διαιρέτης ← υπόλοιπο
Μέχρις _ότου υπόλοιπο = 0
Γράψε “Ο Μέγιστος Κοινός διαιρέτης είναι :”,διαιρετέος
Τέλος Μ_Κ_Δ
ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ
ΗΨΗ
ΕΠ.30 ΕΠΑΝΑΛ
∆ομή Επανάληψης
Να αναπτυχθεί αλγόριθμος που θα δέχεται έναν ακέραιο αριθμό και θα τον αναλύει σε
γινόμενο πρώτων παραγόντων.
Γινόμενο πρώτων παραγόντων: 60 = 2 * 30 = 2* 2 * 15 = 2 * 2 * 3 * 5
Τέλος Παράγοντες
ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ
ΗΨΗ
ΕΠ.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
Τέλος Παράγοντες
ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ
ΗΨΗ
ΕΠ.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
Τέλος Παράγοντες
ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ
ΗΨΗ
ΕΠ.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
Τέλος Παράγοντες
ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ
ΗΨΗ
ΕΠ.31 ΕΠΑΝΑΛ
∆ομή Επανάληψης
Ο ρυθμός αύξησης των καπνιστών στην Ελλάδα είναι 8.5%. Αν σήμερα οι καπνιστές
εκτιμάται ότι αριθμούν 4.500.000, να αναπτυχθεί αλγόριθμος που θα εκτυπώνει το πλήθος
των καπνιστών σε 15 χρόνια καθώς και το ποσοστό αύξησης τους σ’ αυτό το χρονικό
διάστημα.
τελική τιμή-αρχική τιμή
Ισχύει ότι ρυθμός αύξησης= 100*
αρχική τιμή
Αλγόριθμος Καπνιστές
καπνιστές_σήμερα ← 4500000
καπνιστές ← καπνιστές_σήμερα
ρυθμός ← 8.5/100
ρυθμός ← 100*(καπνιστές-καπνιστές_σήμερα)/καπνιστές_σήμερα
Τέλος Καπνιστές
ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ
ΗΨΗ
ΕΠ.32 ΕΠΑΝΑΛ
∆ομή Επανάληψης
Από έρευνες που έχει φανεί ότι μια κοινότητα μελισσών υπό κανονικές συνθήκες
αναπτύσσεται με ρυθμό 4.8% ετησίως. Αν ένας μελισσοκόμος διαθέτει μελίσσια με συνολικό
πλυθησμό 1200 μέλισσες, σε πόσα έτη θα ξεπεράσει τη χωρητικότητα των κυψελών του
που είναι 2000 μέλισσες; Να γραφεί αλγόριθμος που θα εκτυπώνει το ζητούμενο.
Εφόσον δεν είναι γνωστό το πλήθος των επαναλήψεων , θα χρησιμοποιήσουμε τη δομή
επανάληψης Μέχρις_ότου καθώς και έναν μετρητή Έτη που θα μετρά τις επαναλήψεις ,
δηλαδή τα χρόνια.
Αλγόριθμος Μέλισσες
Μέλισσες ← 1200
Ρυθμός ← 4.8/100
Έτη ← 0
Όσο Μέλισσες<=2000 επανέλαβε
! Ακέραια τιμή
Μέλισσες ← Μέλισσες+ Α_Μ(Μέλισσες*ρυθμός)
Έτη ← Έτη+1
Τέλος_επανάληψης
Γράψε “Η χωρητικότητα θα ξεπεραστεί σε ”,Έτη, “ έτη ”
Τέλος Μέλισσες
ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ
ΗΨΗ
ΕΠ.33 ΕΠΑΝΑΛ
∆ομή Επανάληψης
Έρευνες έδειξαν ότι ο ετήσιος ρυθμός μείωσης του σπάνιου είδους εντόμων «Μυγόπυγος»
είναι 8.75% , ενώ ταυτόχρονα εκτιμάται ότι το πλήθος τους είναι σήμερα 35000. Για να
χαρακτηριστεί ως είδος προς εξαφάνιση πρέπει να αριθμεί λιγότερους από 6000
οργανισμούς. Να αναπτυχθεί αλγόριθμος που θα υπολογίζει και θα εκτυπώνει τα έτη που
χρειάζονται ώστε να χαρακτηριστεί το είδος προς εξαφάνιση.
Αλγόριθμος Προς_εξαφάνιση
Πλυθυσμός ← 35000
Ρυθμός ← 8.75/100
Έτη ← 0
Έτη ← Έτη+1
Τέλος_επανάληψης
Γράψε “Θα χαρακτηριστεί είδος προς εξαφάνιση σε ”,Έτη, “ έτη ”
Τέλος Προς_εξαφάνιση
ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ
ΗΨΗ
ΕΠ.34 ΕΠΑΝΑΛ
∆ομή Επανάληψης
Το αμφιθέατρο του δήμου διαθέτει 50 καθίσματα στην πρώτη σειρά και σε κάθε επόμενη
σειρά από τις συνολικά 15 υπάρχει αύξηση καθισμάτων κατά 10%. Να αναπτυχθεί
αλγόριθμος που θα υπολογίζει και θα εκτυπώνει τα καθίσματα της τελευταίας σειράς, καθώς
και τη συνολική χωρητικότητα καθισμάτων του αμφιθεάτρου.
Αλγόριθμος Αμφιθέατρο
καθίσματα ← 50
Ρυθμός ← 10/100
συνολικά_καθίσματα ← καθίσματα
Για i από 2 μέχρι 15 ! Γνωστός αριθμός επαναλήψεων ! Δεύτερη σειρά και εξής.
Τέλος Αμφιθέατρο
ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ
ΗΨΗ
ΕΠ.35 ΕΠΑΝΑΛ
∆ομή Επανάληψης
Ο δήμος αποφάσισε να τοποθετήσει νέα καθίσματα στο αμφιθέατρο. Στην πρώτη σειρά τοποθετούνται 50
καθίσματα ενώ σε κάθε επόμενη σειρά προστίθενται 6 καθίσματα. Το κόστος κάθε καθίσματος είναι 40 €,
ενώ τα διαθέσιμα χρήματα(badget) είναι 20000 €. Να αναπτυχθεί αλγόριθμος που θα εκτυπώνει τον
αριθμό καθισμάτων που μπορούν να τοποθετηθούν , καθώς και το χρηματικό ποσό που περισσεύει.
Μια λύση θα ήταν να χρησιμοποιήσουμε τη δομή Όσο ως εξής:
Όσο συνολικό_κόστος<=20000 επανέλαβε
……………………………………..
Τέλος_επανάληψης
Ωστόσο η επανάληψη θα τερματιστεί αφού παραβιαστεί η συνθήκη, ενώ θα πρέπει να τερματιστεί
ένα βήμα πριν. Αυτό θα το επιτύχουμε με την τροποποίηση της συνθήκης ως εξής:
συν_καθίσματα ← 0
καθίσματα ← καθίσματα + 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
μήνες ← μήνες+1
Αν μήνες mod 12=0 τότε
μισθός ← μισθός+(11/100)*μισθός
Τέλος_αν
Τέλος_επανάληψης
Γράψε “Το ποσό θα συγκεντρωθεί σε : ”,μήνες,“μήνες”
Τέλος Φουσκωτό
ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ
ΗΨΗ
ΕΠ.38 ΕΠΑΝΑΛ
∆ομή Επανάληψης
Με την εκκίνηση της συσκευής ενός κινητού ζητείται ο κωδικός πρόσβασης PIN και ο
χρήστης έχει τρεις ευκαιρίες για την εισαγωγή του. Να αναπτυχθεί ο αλγόριθμος που εκτελεί
το κινητό :ζητάει 3 φορές τον κωδικό πρόσβασης (αν δεν έχει εισαχθεί σωστά) και στην
περίπτωση τριπλής αποτυχίας εκτυπώνει το μήνυμα “Η κάρτα SIM κλειδώθηκε. Παρακαλώ
εισάγετε τον κωδικό PUK”
Αλγόριθμος Εισαγωγή_ΡΙΝ
Δεδομένα // PIN //
αποτυχίες ← 0
Διάβασε κωδικός
Όσο (κωδικός<> ΡΙΝ) και (αποτυχίες<>3) επανέλαβε
αποτυχίες ← αποτυχίες +1
Γράψε “Λάθος κωδικός. Υπόλοιπες δοκιμές:” 3-αποτυχίες, “Δοκιμάστε ξανά . ”
Διάβασε κωδικός
Τέλος_επανάληψης
Τέλος Εισαγωγή_ΡΙΝ
ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ