ΑΛΓΟΡΙΘΜΟΙ «ΕΥΡΕΣΗ ΜΕΣΟΥ ΟΡΟΥ ΠΙΝΑΚΑ» ΑΛΓΟΡΙΘΜΟΙ «ΕΥΡΕΣΗ ΜΕΣΟΥ ΟΡΟΥ ΠΙΝΑΚΑ» ΠΛΗ 10 2ος Τόμος : «ΤΕΧΝΙΚΕΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ» Κεφάλαιο: «ΑΛΓΟΡΙΘΜΟΙ» ΣΕΛΙΔΑ : 37
ΑΛΓΟΡΙΘΜΟΣ ΜΟ-ΠΙΝΑΚΑ-1ΧΝ ΔΕΔΟΜΕΝΑ P:ARRAY[1..N] OF INTEGER; N,X,I: INTEGER; MO: REAL; ΑΡΧΗ ΔΙΑΒΑΣΕ(Ν); Χ:=0; ΓΙΑ Ι:=1 ΕΩΣ Ν ΕΠΑΝΕΛΑΒΕ ΤΥΠΩΣΕ (Ρ[Ι]); Χ:=Χ+Ρ[Ι]; ΓΙΑ-ΤΕΛΟΣ ΜΟ:=Χ/Ν; ΤΥΠΩΣΕ(ΜΟ); ΤΕΛΟΣ Θα δείξουμε την εκτέλεση του αλγόριθμου βήμα προς βήμα χρησιμοποιώντας έναν πίνακα εισόδου P τεσσάρων (4) στοιχείων. P 1 2 3 4 P[I] 14 5 166 40
ΑΛΓΟΡΙΘΜΟΣ ΜΟ-ΠΙΝΑΚΑ-1ΧΝ ΔΕΔΟΜΕΝΑ P:ARRAY[1..N] OF INTEGER; N,X,I: INTEGER; MO: REAL; ΑΡΧΗ ΔΙΑΒΑΣΕ(Ν); Χ:=0; ΓΙΑ Ι:=1 ΕΩΣ Ν ΕΠΑΝΕΛΑΒΕ ΤΥΠΩΣΕ (Ρ[Ι]); Χ:=Χ+Ρ[Ι]; ΓΙΑ-ΤΕΛΟΣ ΜΟ:=Χ/Ν; ΤΥΠΩΣΕ(ΜΟ); ΤΕΛΟΣ Σε κάθε στιγμή της εκτέλεσης του αλγόριθμου η κίτρινη μπάρα μας δείχνει την εντολή που μόλις εκτελέστηκε.
Με μπλε χρώμα φαίνονται τα δεδομένα εισόδου Με κόκκινο χρώμα φαίνονται οι τιμές των μεταβλητών που άλλαξαν τιμή στο τρέχον βήμα. Ν Χ Ι P[I] ΜΟ 4 14 2 5 ? Με μπλε χρώμα φαίνονται τα δεδομένα εισόδου P 1 2 3 4 P[I] 14 5 166 40 Το κίτρινο χρώμα μας δείχνει το στοιχείο του πίνακα που εξετάζουμε στο τρέχον βήμα του βρόγχου ΟΘΟΝΗ ΕΚΤΥΠΩΣΗΣ Δώστε τιμή για το Ν: 4 14
Ξεκινάμε από την ΑΡΧΗ … … εκτελούμε τις εντολές … … και τελειώνουμε στο ΤΕΛΟΣ
ΑΛΓΟΡΙΘΜΟΣ ΜΟ-ΠΙΝΑΚΑ-1ΧΝ ΔΕΔΟΜΕΝΑ P:ARRAY[1..N] OF INTEGER; N,X,I: INTEGER; MO: REAL; ΑΡΧΗ ΔΙΑΒΑΣΕ(Ν); Χ:=0; ΓΙΑ Ι:=1 ΕΩΣ Ν ΕΠΑΝΕΛΑΒΕ ΤΥΠΩΣΕ (Ρ[Ι]); Χ:=Χ+Ρ[Ι]; ΓΙΑ-ΤΕΛΟΣ ΜΟ:=Χ/Ν; ΤΥΠΩΣΕ(ΜΟ); ΤΕΛΟΣ Ν Χ Ι P[I] ΜΟ ? P 1 2 3 4 P[I] 14 5 166 40 ΟΘΟΝΗ ΕΚΤΥΠΩΣΗΣ
ΑΛΓΟΡΙΘΜΟΣ ΜΟ-ΠΙΝΑΚΑ-1ΧΝ ΔΕΔΟΜΕΝΑ P:ARRAY[1..N] OF INTEGER; N,X,I: INTEGER; MO: REAL; ΑΡΧΗ ΔΙΑΒΑΣΕ(Ν); Χ:=0; ΓΙΑ Ι:=1 ΕΩΣ Ν ΕΠΑΝΕΛΑΒΕ ΤΥΠΩΣΕ (Ρ[Ι]); Χ:=Χ+Ρ[Ι]; ΓΙΑ-ΤΕΛΟΣ ΜΟ:=Χ/Ν; ΤΥΠΩΣΕ(ΜΟ); ΤΕΛΟΣ Ν Χ Ι P[I] ΜΟ 4 ? P 1 2 3 4 P[I] 14 5 166 40 ΟΘΟΝΗ ΕΚΤΥΠΩΣΗΣ Δώστε τιμή για το Ν: 4
ΑΛΓΟΡΙΘΜΟΣ ΜΟ-ΠΙΝΑΚΑ-1ΧΝ ΔΕΔΟΜΕΝΑ P:ARRAY[1..N] OF INTEGER; N,X,I: INTEGER; MO: REAL; ΑΡΧΗ ΔΙΑΒΑΣΕ(Ν); Χ:=0; ΓΙΑ Ι:=1 ΕΩΣ Ν ΕΠΑΝΕΛΑΒΕ ΤΥΠΩΣΕ (Ρ[Ι]); Χ:=Χ+Ρ[Ι]; ΓΙΑ-ΤΕΛΟΣ ΜΟ:=Χ/Ν; ΤΥΠΩΣΕ(ΜΟ); ΤΕΛΟΣ Ν Χ Ι P[I] ΜΟ 4 ? P 1 2 3 4 P[I] 14 5 166 40 ΟΘΟΝΗ ΕΚΤΥΠΩΣΗΣ Δώστε τιμή για το Ν: 4
ΑΛΓΟΡΙΘΜΟΣ ΜΟ-ΠΙΝΑΚΑ-1ΧΝ ΔΕΔΟΜΕΝΑ P:ARRAY[1..N] OF INTEGER; N,X,I: INTEGER; MO: REAL; ΑΡΧΗ ΔΙΑΒΑΣΕ(Ν); Χ:=0; ΓΙΑ Ι:=1 ΕΩΣ Ν ΕΠΑΝΕΛΑΒΕ ΤΥΠΩΣΕ (Ρ[Ι]); Χ:=Χ+Ρ[Ι]; ΓΙΑ-ΤΕΛΟΣ ΜΟ:=Χ/Ν; ΤΥΠΩΣΕ(ΜΟ); ΤΕΛΟΣ Ν Χ Ι P[I] ΜΟ 4 1 14 ? P 1 2 3 4 P[I] 14 5 166 40 ΟΘΟΝΗ ΕΚΤΥΠΩΣΗΣ Δώστε τιμή για το Ν: 4
ΑΛΓΟΡΙΘΜΟΣ ΜΟ-ΠΙΝΑΚΑ-1ΧΝ ΔΕΔΟΜΕΝΑ P:ARRAY[1..N] OF INTEGER; N,X,I: INTEGER; MO: REAL; ΑΡΧΗ ΔΙΑΒΑΣΕ(Ν); Χ:=0; ΓΙΑ Ι:=1 ΕΩΣ Ν ΕΠΑΝΕΛΑΒΕ ΤΥΠΩΣΕ (Ρ[Ι]); Χ:=Χ+Ρ[Ι]; ΓΙΑ-ΤΕΛΟΣ ΜΟ:=Χ/Ν; ΤΥΠΩΣΕ(ΜΟ); ΤΕΛΟΣ Ν Χ Ι P[I] ΜΟ 4 1 14 ? P 1 2 3 4 P[I] 14 5 166 40 ΟΘΟΝΗ ΕΚΤΥΠΩΣΗΣ Δώστε τιμή για το Ν: 4 14
ΑΛΓΟΡΙΘΜΟΣ ΜΟ-ΠΙΝΑΚΑ-1ΧΝ ΔΕΔΟΜΕΝΑ P:ARRAY[1..N] OF INTEGER; N,X,I: INTEGER; MO: REAL; ΑΡΧΗ ΔΙΑΒΑΣΕ(Ν); Χ:=0; ΓΙΑ Ι:=1 ΕΩΣ Ν ΕΠΑΝΕΛΑΒΕ ΤΥΠΩΣΕ (Ρ[Ι]); Χ:=Χ+Ρ[Ι]; ΓΙΑ-ΤΕΛΟΣ ΜΟ:=Χ/Ν; ΤΥΠΩΣΕ(ΜΟ); ΤΕΛΟΣ Ν Χ Ι P[I] ΜΟ 4 14 1 ? P 1 2 3 4 P[I] 14 5 166 40 ΟΘΟΝΗ ΕΚΤΥΠΩΣΗΣ Δώστε τιμή για το Ν: 4 14
ΑΛΓΟΡΙΘΜΟΣ ΜΟ-ΠΙΝΑΚΑ-1ΧΝ ΔΕΔΟΜΕΝΑ P:ARRAY[1..N] OF INTEGER; N,X,I: INTEGER; MO: REAL; ΑΡΧΗ ΔΙΑΒΑΣΕ(Ν); Χ:=0; ΓΙΑ Ι:=1 ΕΩΣ Ν ΕΠΑΝΕΛΑΒΕ ΤΥΠΩΣΕ (Ρ[Ι]); Χ:=Χ+Ρ[Ι]; ΓΙΑ-ΤΕΛΟΣ ΜΟ:=Χ/Ν; ΤΥΠΩΣΕ(ΜΟ); ΤΕΛΟΣ Ν Χ Ι P[I] ΜΟ 4 14 2 5 ? P 1 2 3 4 P[I] 14 5 166 40 ΟΘΟΝΗ ΕΚΤΥΠΩΣΗΣ Δώστε τιμή για το Ν: 4 14
ΑΛΓΟΡΙΘΜΟΣ ΜΟ-ΠΙΝΑΚΑ-1ΧΝ ΔΕΔΟΜΕΝΑ P:ARRAY[1..N] OF INTEGER; N,X,I: INTEGER; MO: REAL; ΑΡΧΗ ΔΙΑΒΑΣΕ(Ν); Χ:=0; ΓΙΑ Ι:=1 ΕΩΣ Ν ΕΠΑΝΕΛΑΒΕ ΤΥΠΩΣΕ (Ρ[Ι]); Χ:=Χ+Ρ[Ι]; ΓΙΑ-ΤΕΛΟΣ ΜΟ:=Χ/Ν; ΤΥΠΩΣΕ(ΜΟ); ΤΕΛΟΣ Ν Χ Ι P[I] ΜΟ 4 14 2 5 ? P 1 2 3 4 P[I] 14 5 166 40 ΟΘΟΝΗ ΕΚΤΥΠΩΣΗΣ Δώστε τιμή για το Ν: 4 14 5
ΑΛΓΟΡΙΘΜΟΣ ΜΟ-ΠΙΝΑΚΑ-1ΧΝ ΔΕΔΟΜΕΝΑ P:ARRAY[1..N] OF INTEGER; N,X,I: INTEGER; MO: REAL; ΑΡΧΗ ΔΙΑΒΑΣΕ(Ν); Χ:=0; ΓΙΑ Ι:=1 ΕΩΣ Ν ΕΠΑΝΕΛΑΒΕ ΤΥΠΩΣΕ (Ρ[Ι]); Χ:=Χ+Ρ[Ι]; ΓΙΑ-ΤΕΛΟΣ ΜΟ:=Χ/Ν; ΤΥΠΩΣΕ(ΜΟ); ΤΕΛΟΣ Ν Χ Ι P[I] ΜΟ 4 19 2 5 ? P 1 2 3 4 P[I] 14 5 166 40 ΟΘΟΝΗ ΕΚΤΥΠΩΣΗΣ Δώστε τιμή για το Ν: 4 14 5
ΑΛΓΟΡΙΘΜΟΣ ΜΟ-ΠΙΝΑΚΑ-1ΧΝ ΔΕΔΟΜΕΝΑ P:ARRAY[1..N] OF INTEGER; N,X,I: INTEGER; MO: REAL; ΑΡΧΗ ΔΙΑΒΑΣΕ(Ν); Χ:=0; ΓΙΑ Ι:=1 ΕΩΣ Ν ΕΠΑΝΕΛΑΒΕ ΤΥΠΩΣΕ (Ρ[Ι]); Χ:=Χ+Ρ[Ι]; ΓΙΑ-ΤΕΛΟΣ ΜΟ:=Χ/Ν; ΤΥΠΩΣΕ(ΜΟ); ΤΕΛΟΣ Ν Χ Ι P[I] ΜΟ 4 19 3 166 ? P 1 2 3 4 P[I] 14 5 166 40 ΟΘΟΝΗ ΕΚΤΥΠΩΣΗΣ Δώστε τιμή για το Ν: 4 14 5
ΑΛΓΟΡΙΘΜΟΣ ΜΟ-ΠΙΝΑΚΑ-1ΧΝ ΔΕΔΟΜΕΝΑ P:ARRAY[1..N] OF INTEGER; N,X,I: INTEGER; MO: REAL; ΑΡΧΗ ΔΙΑΒΑΣΕ(Ν); Χ:=0; ΓΙΑ Ι:=1 ΕΩΣ Ν ΕΠΑΝΕΛΑΒΕ ΤΥΠΩΣΕ (Ρ[Ι]); Χ:=Χ+Ρ[Ι]; ΓΙΑ-ΤΕΛΟΣ ΜΟ:=Χ/Ν; ΤΥΠΩΣΕ(ΜΟ); ΤΕΛΟΣ Ν Χ Ι P[I] ΜΟ 4 19 3 166 ? P 1 2 3 4 P[I] 14 5 166 40 ΟΘΟΝΗ ΕΚΤΥΠΩΣΗΣ Δώστε τιμή για το Ν: 4 14 5 166
ΑΛΓΟΡΙΘΜΟΣ ΜΟ-ΠΙΝΑΚΑ-1ΧΝ ΔΕΔΟΜΕΝΑ P:ARRAY[1..N] OF INTEGER; N,X,I: INTEGER; MO: REAL; ΑΡΧΗ ΔΙΑΒΑΣΕ(Ν); Χ:=0; ΓΙΑ Ι:=1 ΕΩΣ Ν ΕΠΑΝΕΛΑΒΕ ΤΥΠΩΣΕ (Ρ[Ι]); Χ:=Χ+Ρ[Ι]; ΓΙΑ-ΤΕΛΟΣ ΜΟ:=Χ/Ν; ΤΥΠΩΣΕ(ΜΟ); ΤΕΛΟΣ Ν Χ Ι P[I] ΜΟ 4 185 3 166 ? P 1 2 3 4 P[I] 14 5 166 40 ΟΘΟΝΗ ΕΚΤΥΠΩΣΗΣ Δώστε τιμή για το Ν: 4 14 5 166
ΑΛΓΟΡΙΘΜΟΣ ΜΟ-ΠΙΝΑΚΑ-1ΧΝ ΔΕΔΟΜΕΝΑ P:ARRAY[1..N] OF INTEGER; N,X,I: INTEGER; MO: REAL; ΑΡΧΗ ΔΙΑΒΑΣΕ(Ν); Χ:=0; ΓΙΑ Ι:=1 ΕΩΣ Ν ΕΠΑΝΕΛΑΒΕ ΤΥΠΩΣΕ (Ρ[Ι]); Χ:=Χ+Ρ[Ι]; ΓΙΑ-ΤΕΛΟΣ ΜΟ:=Χ/Ν; ΤΥΠΩΣΕ(ΜΟ); ΤΕΛΟΣ Ν Χ Ι P[I] ΜΟ 4 185 40 ? P 1 2 3 4 P[I] 14 5 166 40 ΟΘΟΝΗ ΕΚΤΥΠΩΣΗΣ Δώστε τιμή για το Ν: 4 14 5 166
ΑΛΓΟΡΙΘΜΟΣ ΜΟ-ΠΙΝΑΚΑ-1ΧΝ ΔΕΔΟΜΕΝΑ P:ARRAY[1..N] OF INTEGER; N,X,I: INTEGER; MO: REAL; ΑΡΧΗ ΔΙΑΒΑΣΕ(Ν); Χ:=0; ΓΙΑ Ι:=1 ΕΩΣ Ν ΕΠΑΝΕΛΑΒΕ ΤΥΠΩΣΕ (Ρ[Ι]); Χ:=Χ+Ρ[Ι]; ΓΙΑ-ΤΕΛΟΣ ΜΟ:=Χ/Ν; ΤΥΠΩΣΕ(ΜΟ); ΤΕΛΟΣ Ν Χ Ι P[I] ΜΟ 4 185 40 ? P 1 2 3 4 P[I] 14 5 166 40 ΟΘΟΝΗ ΕΚΤΥΠΩΣΗΣ Δώστε τιμή για το Ν: 4 14 5 166 40
ΑΛΓΟΡΙΘΜΟΣ ΜΟ-ΠΙΝΑΚΑ-1ΧΝ ΔΕΔΟΜΕΝΑ P:ARRAY[1..N] OF INTEGER; N,X,I: INTEGER; MO: REAL; ΑΡΧΗ ΔΙΑΒΑΣΕ(Ν); Χ:=0; ΓΙΑ Ι:=1 ΕΩΣ Ν ΕΠΑΝΕΛΑΒΕ ΤΥΠΩΣΕ (Ρ[Ι]); Χ:=Χ+Ρ[Ι]; ΓΙΑ-ΤΕΛΟΣ ΜΟ:=Χ/Ν; ΤΥΠΩΣΕ(ΜΟ); ΤΕΛΟΣ Ν Χ Ι P[I] ΜΟ 4 225 40 ? P 1 2 3 4 P[I] 14 5 166 40 ΟΘΟΝΗ ΕΚΤΥΠΩΣΗΣ Δώστε τιμή για το Ν: 4 14 5 166 40
ΑΛΓΟΡΙΘΜΟΣ ΜΟ-ΠΙΝΑΚΑ-1ΧΝ ΔΕΔΟΜΕΝΑ P:ARRAY[1..N] OF INTEGER; N,X,I: INTEGER; MO: REAL; ΑΡΧΗ ΔΙΑΒΑΣΕ(Ν); Χ:=0; ΓΙΑ Ι:=1 ΕΩΣ Ν ΕΠΑΝΕΛΑΒΕ ΤΥΠΩΣΕ (Ρ[Ι]); Χ:=Χ+Ρ[Ι]; ΓΙΑ-ΤΕΛΟΣ ΜΟ:=Χ/Ν; ΤΥΠΩΣΕ(ΜΟ); ΤΕΛΟΣ Ν Χ Ι P[I] ΜΟ 4 225 5 ? P 1 2 3 4 P[I] 14 5 166 40 ΟΘΟΝΗ ΕΚΤΥΠΩΣΗΣ Δώστε τιμή για το Ν: 4 14 5 166 40
ΑΛΓΟΡΙΘΜΟΣ ΜΟ-ΠΙΝΑΚΑ-1ΧΝ ΔΕΔΟΜΕΝΑ P:ARRAY[1..N] OF INTEGER; N,X,I: INTEGER; MO: REAL; ΑΡΧΗ ΔΙΑΒΑΣΕ(Ν); Χ:=0; ΓΙΑ Ι:=1 ΕΩΣ Ν ΕΠΑΝΕΛΑΒΕ ΤΥΠΩΣΕ (Ρ[Ι]); Χ:=Χ+Ρ[Ι]; ΓΙΑ-ΤΕΛΟΣ ΜΟ:=Χ/Ν; ΤΥΠΩΣΕ(ΜΟ); ΤΕΛΟΣ Ν Χ Ι P[I] ΜΟ 4 225 5 ? P 1 2 3 4 P[I] 14 5 166 40 ΟΘΟΝΗ ΕΚΤΥΠΩΣΗΣ Δώστε τιμή για το Ν: 4 14 5 166 40
ΑΛΓΟΡΙΘΜΟΣ ΜΟ-ΠΙΝΑΚΑ-1ΧΝ ΔΕΔΟΜΕΝΑ P:ARRAY[1..N] OF INTEGER; N,X,I: INTEGER; MO: REAL; ΑΡΧΗ ΔΙΑΒΑΣΕ(Ν); Χ:=0; ΓΙΑ Ι:=1 ΕΩΣ Ν ΕΠΑΝΕΛΑΒΕ ΤΥΠΩΣΕ (Ρ[Ι]); Χ:=Χ+Ρ[Ι]; ΓΙΑ-ΤΕΛΟΣ ΜΟ:=Χ/Ν; ΤΥΠΩΣΕ(ΜΟ); ΤΕΛΟΣ Ν Χ Ι P[I] ΜΟ 4 225 5 ? 63,75 P 1 2 3 4 P[I] 14 5 166 40 ΟΘΟΝΗ ΕΚΤΥΠΩΣΗΣ Δώστε τιμή για το Ν: 4 14 5 166 40
ΑΛΓΟΡΙΘΜΟΣ ΜΟ-ΠΙΝΑΚΑ-1ΧΝ ΔΕΔΟΜΕΝΑ P:ARRAY[1..N] OF INTEGER; N,X,I: INTEGER; MO: REAL; ΑΡΧΗ ΔΙΑΒΑΣΕ(Ν); Χ:=0; ΓΙΑ Ι:=1 ΕΩΣ Ν ΕΠΑΝΕΛΑΒΕ ΤΥΠΩΣΕ (Ρ[Ι]); Χ:=Χ+Ρ[Ι]; ΓΙΑ-ΤΕΛΟΣ ΜΟ:=Χ/Ν; ΤΥΠΩΣΕ(ΜΟ); ΤΕΛΟΣ Ν Χ Ι P[I] ΜΟ 4 225 5 ? 63,75 P 1 2 3 4 P[I] 14 5 166 40 ΟΘΟΝΗ ΕΚΤΥΠΩΣΗΣ Δώστε τιμή για το Ν: 4 14 5 166 40 63,75
ΑΛΓΟΡΙΘΜΟΣ ΜΟ-ΠΙΝΑΚΑ-1ΧΝ ΔΕΔΟΜΕΝΑ P:ARRAY[1..N] OF INTEGER; N,X,I: INTEGER; MO: REAL; ΑΡΧΗ ΔΙΑΒΑΣΕ(Ν); Χ:=0; ΓΙΑ Ι:=1 ΕΩΣ Ν ΕΠΑΝΕΛΑΒΕ ΤΥΠΩΣΕ (Ρ[Ι]); Χ:=Χ+Ρ[Ι]; ΓΙΑ-ΤΕΛΟΣ ΜΟ:=Χ/Ν; ΤΥΠΩΣΕ(ΜΟ); ΤΕΛΟΣ Ν Χ Ι P[I] ΜΟ 4 225 5 ? 63,75 P 1 2 3 4 P[I] 14 5 166 40 ΟΘΟΝΗ ΕΚΤΥΠΩΣΗΣ Δώστε τιμή για το Ν: 4 14 5 166 40 63,75
ΤΕΛΟΣ