ΑΝΟΙΧΣΑ ΑΚΑΔΗΜΑΪΚΑ ΜΑΘΗΜΑΣΑ ΠΛΗΡΟΦΟΡΙΚΗ & ΑΛΓΟΡΙΘΜΟΙ Ενότητα # (5): Αλγοριθμική - Δπαναλήυεις Κύδρος Γημήηρης Σμήμα Λογιζηικής και Υρημαηοοικονομικής
Άδειεσ Χρήςησ Σο παρόν εκπαιδευτικό υλικό υπόκειται ςε άδειεσ χρήςησ Creative Commons. Για εκπαιδευτικό υλικό, όπωσ εικόνεσ, που υπόκειται ςε άλλου τφπου άδειασ χρήςησ, η άδεια χρήςησ αναφζρεται ρητώσ. 2
Χρηματοδότηςη Σο παρόν εκπαιδευτικό υλικό ζχει αναπτυχθεί ςτα πλαίςια του εκπαιδευτικοφ ζργου του διδάςκοντα. Σο ζργο «Ανοικτά Ακαδημαϊκά Μαθήματα ςτο ΣΕΙ Κεντρικήσ Μακεδονίασ» ζχει χρηματοδοτήςει μόνο τη αναδιαμόρφωςη του εκπαιδευτικοφ υλικοφ. Σο ζργο υλοποιείται ςτο πλαίςιο του Επιχειρηςιακοφ Προγράμματοσ «Εκπαίδευςη και Δια Βίου Μάθηςη» και ςυγχρηματοδοτείται από την Ευρωπαϊκή Ζνωςη (Ευρωπαϊκό Κοινωνικό Σαμείο) και από εθνικοφσ πόρουσ. 3
Αλγοριθμική - Δπαναλήψεις 4
Περιεχόμενα ενότητασ 1. Η ανάγκη ηης επανάληυης 2. Βαζικές επαναληπηικές δομές 3. ύγκριζη και τρηζιμόηηηα 4. Δθαρμογές 5
κοποί ενότητασ Να γνφρίζεηε ηις βαζικές δομές επανάληυης Να εθαρμόζεηε ηις δομές επανάληυης ζε ζσγκεκριμένα προβλήμαηα 6
ΕΠΑΝΑΛΗΨΗ max x ΑΝ x>max ΣΟΣΔ max x ΑΝ x>max ΣΟΣΔ max x ΓΡΑΨΔ max 1. Δπανάληυη γνφζηού πλήθοσς 2. Δπανάληυη άγνφζηοσ πλήθοσς 7
ΕΠΑΝΑΛΗΨΗ ΓΝΩΣΟΤ ΠΛΗΘΟΤ ΓΙΑ <μετρητήσ> <α_τ> ΜΕΧΡΙ <τ_τ> [ΒΗΜΑ <β>] <Ομάδα εντολών>...... μετρητής α_τ μετρητής α_τ μετρητής μετρητής+β μετρητης <= τ_τ οχι... μετρητής μετρητής+β μετρητης >= τ_τ οχι... ναι ναι ομάδα εντολών ομάδα εντολών β>0 β<0 8
Εύρεση μέγιστου ΑΛΓΟΡΙΘΜΟ MEΓ_100 x, max,i: ΑΚΔΡΑΙΔ max x ΓΙΑ i 2 ΜΔΧΡΙ 100 ΑΝ x>max ΣΟΣΔ max x ΓΡΑΨΔ max #include <stdio.h> int main(void){ int max, x, i; scanf( %d,&x);fflush(stdin); max = x; for(i=2 ;i<=100 ;i++) { scanf( %d,&x);fflush(stdin); if (x>max) { max = x; } } printf( \n%d,x); getchar(); } 9
Δπανάληψη άγνωστοσ πλήθοσς ΟΟ <ςυνθήκη>.. <Ομάδα εντολών> <ζσνθήκη> οτι... ναι ομάδα ενηολών.. ομάδα ενηολών ΔΠΑΝΑΛΑΒΔ <Οκάδα εληνιώλ> ΜΔΧΡΙ <ζπλζήθε> <ζσνθήκη> ναι... οτι 10
ΕΦΑΡΜΟΓΗ ΕΤΡΕΗ ΜΕΟΤ ΟΡΟΤ ΑΛΓΟΡΙΘΜΟ MΟ_ΟΟ x, S, count: ΑΚΔΡΑΙΔ MO: ΠΡΑΓΜΑΣΙΚΔ S 0 count 0 ΟΟ x<> 0 S S+x count count +1 AN count <>0 TOTE MO S/count ΓΡΑΨΔ max ΑΛΓΟΡΙΘΜΟ MΟ_ΔΠΑΝ_ΜΔΥΡΙ x, S, count: ΑΚΔΡΑΙΔ MO: ΠΡΑΓΜΑΣΙΚΔ S 0 count 0 ΔΠΑΝΑΛΑΒΔ ΑΝ x<>0 TOTE S S+x count count +1 ΜΔΧΡΙ x=0 AN count <>0 TOTE MO S/count ΓΡΑΨΔ max 11
ΟΜΟΙΟΣΗΣΕ ΔΙΑΦΟΡΕ ΕΠΑΝΑΛΗΠΣΙΚΩΝ ΔΟΜΩΝ ΑΛΓΟΡΙΘΜΟ MEΓ_100_ΟΟ x, max,i: ΑΚΔΡΑΙΔ max x i 1 ΟΟ i <= 100 AN x>max TOTE AΡXH max x i i +1 ΓΡΑΨΔ max Μπορεί να κατασκεσαστεί και με τη ΓΙΑ ΑΛΓΟΡΙΘΜΟ MEΓ_100_ΔΠ_ΜΔΧ x, max,i: ΑΚΔΡΑΙΔ max x i 1 ΔΠΑΝΑΛΑΒΔ AN x>max TOTE max x TEΛΟ i i +1 ΜΔΧΡΙ i > 100 ΓΡΑΨΔ max 12
ΕΜΦΩΛΕΥΜΕΝΕΣ ΕΠΑΝΑΛΗΨΕΙΣ k i 1 i k! k i 1 i ΑΛΓΟΡΙΘΜΟ 1 S, I, κ: ΑΚΔΡΑΙΔ S 0 ΓΙΑΒΑΔ κ ΓΙΑ i 1 ΜΔΧΡΙ κ S S + i ΓΡΑΨΔ S ΑΛΓΟΡΙΘΜΟ Π1 Π, I, κ: ΑΚΔΡΑΙΔ Π 1 ΓΙΑΒΑΔ κ ΓΙΑ i 1 ΜΔΧΡΙ κ Π Π * i ΓΡΑΨΔ Π 13
Π = 1+2!+3!+ +κ!?? ΑΛΓΟΡΙΘΜΟ Π_ΣΔΛΙΚΟ S, i, j,κ, i_parag: ΑΚΔΡΑΙΔ S 0 ΓΙΑΒΑΔ κ ΓΙΑ i 1 ΜΔΧΡΙ κ i_parag 1 ΓΙΑ j 1 ΜΔΧΡΙ i i_parag i_parag*j S S + i_parag ΓΡΑΨΔ S i i+1 S S+ i_parag οτι ΑΡΥΗ S 0 ΓΙΑΒΑΔ κ i 1 i<=κ j<=i ναι i_parag 1 j 1 ναι i_parag i_parag*j οτι j j+1 ΓΡΑΦΔ S 14
«Να γίνει αλγόριθμοσ που θα διαβάηει εκατό ακζραιουσ αριθμοφσ, θα υπολογίηει το άθροιςμα των θετικών, το γινόμενο των αρνθτικών, το μζςο όρο των άρτιων και το μζγιςτο των περιττών» ΑΛΓΟΡΙΘΜΟ ΤΠΟΛΟΓΙΜΟΙ Υ, _Θ, Γ_Α, ΜΑΥ_Π, ΠΛΗΘΟ_Α, _ΑΡΙ: ΑΚΔΡΑΙΔ Μ_Ο_Α: ΠΡΑΓΜΑΣΙΚΔ _Θ 0 //αξρηθνπνίεζε αζξνίζκαηνο ζεηηθώλ Γ_Α 1 //αξρηθνπνίεζε γηλνκέλνπ αξλεηηθώλ ΠΛΗΘΟ_Α 0 //αξρηθνπνίεζε πιήζνπο άξηησλ ΜΑΥ_Π -999999 //αξρηθνπνίεζε ηνπ κέγηζηνπ ζε έλα πνιύ κηθξό πεξηηηό αξηζκό (παξαηήξεζε) _ΑΡ 0 //αξρηθνπνίεζε αζξνίζκαηνο άξηησλ ΓΙΑ Ι 1 ΜΔΧΡΙ 100 ΓΙΑΒΑΔ Υ ΑΝ Υ>0 ΣΟΣΔ _Θ _Θ +Υ ΑΛΛΙΩ ΑΝ Υ<0 ΣΟΣΔ Γ_Α Γ_Α*Υ AN X mod 2 = 0 TOTE //βξέζεθε άξηηνο _ΑΡ _ΑΡ+Υ ΠΛΗΘΟ_Α ΠΛΗΘΟ_Α+1 ΑΛΛΙΩ ΑΝ Υ>ΜΑΥ ΣΟΣΔ ΜΑΥ Υ //επαλάιεςεο θαη εζσηεξηθώλ ππνινγηζκώλ ΓΡΑΨΔ _Θ, Γ_Α, ΜΑΥ_Π ΑΝ ΠΛΗΘΟ_Α<>0 ΣΟΣΔ M_O_A _Α/ΠΛΗΘΟ_Α ΓΡΑΨΔ Μ_Ο_Α 15
«Να βξεζεί ην άζξνηζκα Σ=1-2+3-4+.±θ, όπνπ θ>0 δίλεηαη από ην πιεθηξνιόγην» ΑΛΓΟΡΙΘΜΟ ΠΡΟΗΜΑ ΑΘΡΟΙΜΑ, Κ,Ι, προζημο: ΑΚΔΡΑΙΔ ΔΠΑΝΑΛΑΒΔ ΓΙΑΒΑΔ Κ ΜΔΧΡΙ Κ>0 προζημο 1 ΑΘΡΟΙΜΑ 0 ΓΙΑ Ι 1 ΜΔΧΡΙ Κ ΑΘΡΟΙΜΑ ΑΘΡΟΙΜΑ+προζημο*Ι προζημο προζημο*(-1) ΓΡΑΨΔ ΑΘΡΟΙΜΑ 16
Να βξεζνύλ ηα δηαθνξεηηθά ςεθία ελόο ζεηηθνύ αθέξαηνπ ΑΛΓΟΡΙΘΜΟ ΦΗΦΙΑ Υ: ΑΚΔΡΑΙΔ ΓΙΑΒΑΔ Υ ΔΠΑΝΑΛΑΒΔ ΓΡΑΨΔ Υ mod 10 Υ Υ div 10 ΜΔΧΡΙ Υ<10 ΓΡΑΨΔ Υ 17
«Να ιπζεί ε εμίζσζε 15x-8y=4. Να αλαδεηεζνύλ κόλν νη αθέξαηεο ιύζεηο ζην δηάζηεκα [- 50, +50]» ΑΛΓΟΡΙΘΜΟ ΔΠΙΛΤΗ X, Y : AKEΡΑΙΔ AΡΧH ΓΙΑ X -50 ΜΔΧΡΙ 50 ΓΙΑ Y -50 ΜΔΧΡΙ 50 AN 15*X-8*Y=4 TOTE ΓΡΑΨΔ ΣΑ, Υ, ΚΑΙ, Τ, ΔΊΝΑΙ ΛΤΔΙ TΔΛΟ 18
«Δίλεηαη ε αθνινπζία αξηζκώλ (1, 2, 3). Να βξεζνύλ όιεο νη αλαδηαηάμεηο απηέο ηεο αθνινπζίαο» ΑΛΓΟΡΙΘΜΟ ΑΝΑΓΙΑΣΑΞΔΙ Ι, J, Κ: ΑΚΔΡΑΙΔ ΓΙΑ Ι 1 ΜΔΧΡΙ 3 ΓΙΑ J 1 ΜΔΧΡΙ 3 ΓΙΑ K 1 ΜΔΧΡΙ 3 AN (I<>J) and (I<>K) and (J<>K) ΣΟΣΔ ΓΡΑΨΔ I,J,K TΔΛΟ 19
«Δίλεηαη έλα αξρηθό θεθάιαην θαη έλα επηηόθην από ην πιεθηξνιόγην. Να βξεζεί ην ηειηθό θεθάιαην κεηά από έλα ζπγθεθξηκέλν ρξνληθό δηάζηεκα. Να βξεζεί ζε πόζα ρξόληα ην ηειηθό θεθάιαην ζα μεπεξάζεη έλα ζπγθεθξηκέλν πνζό» 20