Σελ.109 Θεωρία Αριθμών Είσοδος Επεξεργασία Έξοδος ΜΚΔΕΚΠ Εισαγωγή Ακέραιου Κατανομή του κώδικα σε υποπρογράμματα βάσει της Ιεραρχικής Σχεδίασης. Επιμέλεια: Π. Τσάκωνας
ΣΥΝΑΡΤΗΣΗ ΜΚΔ(α,β):ΑΚΕΡΑΙΑ ΜΕΤΑΒΛΗΤΕΣ ΜΕΤΑΒΛΗΤΕΣ ΑΚΕΡΑΙΕΣ:α,β,x,y,z ΑΚΕΡΑΙΕΣ:α,β,x,y,z ΑΡΧΗ ΑΡΧΗ x α x α y β y β ΟΣΟ y<>0 ΕΠΑΝΑΛΑΒΕ ΟΣΟ y<>0 ΕΠΑΝΑΛΑΒΕ z x MOD y z x MOD y x y x y y z y z ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ ΜΚΔ x ΜΚΔ x ΤΕΛΟΣ_ΣΥΝΑΡΤΗΣΗΣ ΜΚΔ Η κωδικοποίηση θα ξεκινήσει από τα χαμηλότερο επίπεδο της Ιεραρχικής Σχεδίασης. ΣΥΝΑΡΤΗΣΗ ΕΚΠ(α,β):ΑΚΕΡΑΙΑ ΜΕΤΑΒΛΗΤΕΣ ΜΕΤΑΒΛΗΤΕΣ ΑΚΕΡΑΙΕΣ:α,β ΑΚΕΡΑΙΕΣ:α,β ΑΡΧΗ ΑΡΧΗ ΕΚΠ α * β / ΜΚΔ(α,β) ΕΚΠ α * β / ΜΚΔ(α,β) ΤΕΛΟΣ_ΣΥΝΑΡΤΗΣΗΣ ΕΚΠ Θεωρία Αριθμών Είσοδος Επεξεργασία Έξοδος ΜΚΔΕΚΠ Εισαγωγή Ακέραιου ΔΙΑΔΙΚΑΣΙΑ Επεξεργασία(α,β,μδ,επ) ΜΕΤΑΒΛΗΤΕΣ ΜΕΤΑΒΛΗΤΕΣ ΑΚΕΡΑΙΕΣ:α,β,μδ,επ ΑΚΕΡΑΙΕΣ:α,β,μδ,επ ΑΡΧΗ ΑΡΧΗ μδ ΜΚΔ(α,β) μδ ΜΚΔ(α,β) επ ΕΚΠ(α,β) επ ΕΚΠ(α,β) ΤΕΛΟΣ_ΔΙΑΔΙΚΑΣΙΑΣ Επεξεργασία Επιμέλεια: Π. Τσάκωνας
ΔΙΑΔΙΚΑΣΙΑ ΕισαγωγήΑκέραιου(α) ΜΕΤΑΒΛΗΤΕΣ ΜΕΤΑΒΛΗΤΕΣ ΑΚΕΡΑΙΕΣ:α ΑΚΕΡΑΙΕΣ:α ΠΡΑΓΜΑΤΙΚΕΣ:x ΠΡΑΓΜΑΤΙΚΕΣ:x ΑΡΧΗ ΑΡΧΗ ΑΡΧΗ_ΕΠΑΝΑΛΗΨΗΣ ΑΡΧΗ_ΕΠΑΝΑΛΗΨΗΣ ΓΡΑΨΕ “Δώσε ακέραιο” ΓΡΑΨΕ “Δώσε ακέραιο” ΔΙΑΒΑΣΕ x ΔΙΑΒΑΣΕ x ΜΕΧΡΙΣ_ΟΤΟΥ x = Α_Μ(x) ΜΕΧΡΙΣ_ΟΤΟΥ x = Α_Μ(x) α Α_Μ(x) α Α_Μ(x) ΤΕΛΟΣ_ΔΙΑΔΙΚΑΣΙΑΣ ΕισαγωγήΑκέραιου Η κωδικοποίηση θα ξεκινήσει από τα χαμηλότερο επίπεδο της Ιεραρχικής Σχεδίασης. Θεωρία Αριθμών Είσοδος Επεξεργασία Έξοδος ΜΚΔΕΚΠ Εισαγωγή Ακέραιου ΔΙΑΔΙΚΑΣΙΑ Είσοδος(α,β) ΜΕΤΑΒΛΗΤΕΣ ΜΕΤΑΒΛΗΤΕΣ ΑΚΕΡΑΙΕΣ:α,β ΑΚΕΡΑΙΕΣ:α,β ΑΡΧΗ ΑΡΧΗ ΚΑΛΕΣΕ ΕισαγωγήΑκέραιου(α) ΚΑΛΕΣΕ ΕισαγωγήΑκέραιου(α) ΚΑΛΕΣΕ ΕισαγωγήΑκέραιου(β) ΚΑΛΕΣΕ ΕισαγωγήΑκέραιου(β) ΤΕΛΟΣ_ΔΙΑΔΙΚΑΣΙΑΣ Είσοδος Επιμέλεια: Π. Τσάκωνας
ΔΙΑΔΙΚΑΣΙΑ Έξοδος(α,β,μδ,επ) ΜΕΤΑΒΛΗΤΕΣ ΜΕΤΑΒΛΗΤΕΣ ΑΚΕΡΑΙΕΣ:α,β,μδ,επ ΑΚΕΡΑΙΕΣ:α,β,μδ,επ ΑΡΧΗ ΑΡΧΗ ΓΡΑΨΕ “ΜΚΔ(”, α, “,”, β, “)=”, μδ ΓΡΑΨΕ “ΜΚΔ(”, α, “,”, β, “)=”, μδ ΓΡΑΨΕ “ΕΚΠ(”, α, “,”, β, “)=”, επ ΓΡΑΨΕ “ΕΚΠ(”, α, “,”, β, “)=”, επ ΤΕΛΟΣ_ΔΙΑΔΙΚΑΣΙΑΣ Έξοδος Η κωδικοποίηση θα ξεκινήσει από τα χαμηλότερο επίπεδο της Ιεραρχικής Σχεδίασης. Θεωρία Αριθμών Είσοδος Επεξεργασία Έξοδος ΜΚΔΕΚΠ Εισαγωγή Ακέραιου ΠΡΟΓΡΑΜΜΑ ΘεωρίαΑριθμών ΜΕΤΑΒΛΗΤΕΣ ΜΕΤΑΒΛΗΤΕΣ ΑΚΕΡΑΙΕΣ:α,β,μδ,επ ΑΚΕΡΑΙΕΣ:α,β,μδ,επ ΑΡΧΗ ΑΡΧΗ ΚΑΛΕΣΕ Είσοδος(α,β) ΚΑΛΕΣΕ Είσοδος(α,β) ΚΑΛΕΣΕ Επεξεργασία(α,β,μδ,επ) ΚΑΛΕΣΕ Επεξεργασία(α,β,μδ,επ) ΚΑΛΕΣΕ Έξοδος(α,β,μδ,επ) ΚΑΛΕΣΕ Έξοδος(α,β,μδ,επ) ΤΕΛΟΣ_ΠΡΟΓΡΑΜΜΑΤΟΣ ΘεωρίαΑριθμών Επιμέλεια: Π. Τσάκωνας
Σελ.110 Επιμέλεια: Π. Τσάκωνας
Κλάσματα Είσοδος Επεξεργασία Έξοδος ΜΚΔ ΕΚΠ Εισαγωγή Κλάσματος Εισαγωγή Ακέραιου Απλοποίηση Ομώνυμα Άθροισμα Κάποια υποπρογράμματα υπάρχουν ήδη στη βιβλιοθήκη του προγραμματιστή!
ΔΙΑΔΙΚΑΣΙΑ Απλοποίηση(Αρ1,Παρ1,Αρ2,Παρ2) ΜΕΤΑΒΛΗΤΕΣ ΜΕΤΑΒΛΗΤΕΣ ΑΚΕΡΑΙΕΣ:Αρ1,Παρ1,Αρ2,Παρ2,μ ΑΚΕΡΑΙΕΣ:Αρ1,Παρ1,Αρ2,Παρ2,μ ΑΡΧΗ ΑΡΧΗ μ ΜΚΔ(Αρ1,Παρ1) μ ΜΚΔ(Αρ1,Παρ1) Αρ2 Αρ1 / μ Αρ2 Αρ1 / μ Παρ2 Παρ1 / μ Παρ2 Παρ1 / μ ΤΕΛΟΣ_ΔΙΑΔΙΚΑΣΙΑΣ Απλοποίηση Επιμέλεια: Π. Τσάκωνας ΔΙΑΔΙΚΑΣΙΑ Ομώνυμα(α1,β1,α2,β2,x1,y1,x2,y2) ΜΕΤΑΒΛΗΤΕΣ ΜΕΤΑΒΛΗΤΕΣ ΑΚΕΡΑΙΕΣ:α1,β1,α2,β2,x1,y1,x2,y2 ΑΚΕΡΑΙΕΣ:α1,β1,α2,β2,x1,y1,x2,y2 ΑΚΕΡΑΙΕΣ:Καπελάκι1,Καπελάκι2,επ ΑΚΕΡΑΙΕΣ:Καπελάκι1,Καπελάκι2,επ ΑΡΧΗ ΑΡΧΗ επ ΕΚΠ(β1,β2) επ ΕΚΠ(β1,β2) Καπελάκι1 επ / β1 Καπελάκι1 επ / β1 Καπελάκι2 επ / β2 Καπελάκι2 επ / β2 x1 α1 * Καπελάκι1 x1 α1 * Καπελάκι1 x2 α2 * Καπελάκι2 x2 α2 * Καπελάκι2 y1 επ y1 επ y2 επ y2 επ ΤΕΛΟΣ_ΔΙΑΔΙΚΑΣΙΑΣ Ομώνυμα
ΔΙΑΔΙΚΑΣΙΑ Άθροισμα(x1,y1,x2,y2,x,y) ΜΕΤΑΒΛΗΤΕΣ ΜΕΤΑΒΛΗΤΕΣ ΑΚΕΡΑΙΕΣ:x1,y1,x2,y2,x,y ΑΚΕΡΑΙΕΣ:x1,y1,x2,y2,x,y ΑΡΧΗ ΑΡΧΗ x x1 + x2 x x1 + x2 y y1 y y1 ΤΕΛΟΣ_ΔΙΑΔΙΚΑΣΙΑΣ Άθροισμα Επιμέλεια: Π. Τσάκωνας ΔΙΑΔΙΚΑΣΙΑ Επεξεργασία(Αρ1,Παρ1,Αρ2,Παρ2,Αρ,Παρ) ΜΕΤΑΒΛΗΤΕΣ ΜΕΤΑΒΛΗΤΕΣ ΑΚΕΡΑΙΕΣ:Αρ1,Παρ1,Αρ2,Παρ2,Αρ,Παρ ΑΚΕΡΑΙΕΣ:Αρ1,Παρ1,Αρ2,Παρ2,Αρ,Παρ ΑΚΕΡΑΙΕΣ:α1,β1,α2,β2,x1,y1,x2,y2,x,y ΑΚΕΡΑΙΕΣ:α1,β1,α2,β2,x1,y1,x2,y2,x,y ΑΡΧΗ ΑΡΧΗ ΚΑΛΕΣΕ Απλοποίηση(Αρ1,Παρ1,α1,β1) ΚΑΛΕΣΕ Απλοποίηση(Αρ1,Παρ1,α1,β1) ΚΑΛΕΣΕ Απλοποίηση(Αρ2,Παρ2,α2,β2) ΚΑΛΕΣΕ Απλοποίηση(Αρ2,Παρ2,α2,β2) ΚΑΛΕΣΕ Ομώνυμα(α1,β1,α2,β2,x1,y1,x2,y2) ΚΑΛΕΣΕ Ομώνυμα(α1,β1,α2,β2,x1,y1,x2,y2) ΚΑΛΕΣΕ Άθροισμα(x1,y1,x2,y2,x,y) ΚΑΛΕΣΕ Άθροισμα(x1,y1,x2,y2,x,y) ΚΑΛΕΣΕ Απλοποίηση(x,y,Αρ,Παρ) ΚΑΛΕΣΕ Απλοποίηση(x,y,Αρ,Παρ) ΤΕΛΟΣ_ΔΙΑΔΙΚΑΣΙΑΣ Επεξεργασία
ΔΙΑΔΙΚΑΣΙΑ ΕισαγωγήΚλάσματος(x,y) ΜΕΤΑΒΛΗΤΕΣ ΜΕΤΑΒΛΗΤΕΣ ΑΚΕΡΑΙΕΣ:x,y ΑΚΕΡΑΙΕΣ:x,y ΑΡΧΗ ΑΡΧΗ !Εισαγωγή αριθμητή !Εισαγωγή αριθμητή ΚΑΛΕΣΕ ΕισαγωγήΑκέραιου(x) ΚΑΛΕΣΕ ΕισαγωγήΑκέραιου(x) !Εισαγωγή Παρανομαστή !Εισαγωγή Παρανομαστή ΑΡΧΗ_ΕΠΑΝΑΛΗΨΗΣ ΑΡΧΗ_ΕΠΑΝΑΛΗΨΗΣ ΚΑΛΕΣΕ ΕισαγωγήΑκέραιου(y) ΚΑΛΕΣΕ ΕισαγωγήΑκέραιου(y) ΜΕΧΡΙΣ_ΟΤΟΥ y<>0 ΜΕΧΡΙΣ_ΟΤΟΥ y<>0 ΤΕΛΟΣ_ΔΙΑΔΙΚΑΣΙΑΣ ΕισαγωγήΚλάσματος Επιμέλεια: Π. Τσάκωνας ΔΙΑΔΙΚΑΣΙΑ Είσοδος(Αρ1,Παρ1,Αρ2,Παρ2) ΜΕΤΑΒΛΗΤΕΣ ΜΕΤΑΒΛΗΤΕΣ ΑΚΕΡΑΙΕΣ:Αρ1,Παρ1,Αρ2,Παρ2 ΑΚΕΡΑΙΕΣ:Αρ1,Παρ1,Αρ2,Παρ2 ΑΡΧΗ ΑΡΧΗ ΚΑΛΕΣΕ ΕισαγωγήΚλάσματος(Αρ1,Παρ1) ΚΑΛΕΣΕ ΕισαγωγήΚλάσματος(Αρ1,Παρ1) ΚΑΛΕΣΕ ΕισαγωγήΚλάσματος(Αρ2,Παρ2) ΚΑΛΕΣΕ ΕισαγωγήΚλάσματος(Αρ2,Παρ2) ΤΕΛΟΣ_ΔΙΑΔΙΚΑΣΙΑΣ Είσοδος
ΔΙΑΔΙΚΑΣΙΑ Έξοδος(α1,β1,α2,β2,α,β) ΜΕΤΑΒΛΗΤΕΣ ΜΕΤΑΒΛΗΤΕΣ ΑΚΕΡΑΙΕΣ:α1,β1,α2,β2,α,β ΑΚΕΡΑΙΕΣ:α1,β1,α2,β2,α,β ΑΡΧΗ ΑΡΧΗ ΓΡΑΨΕ α1, “/”, β1, “+”, α2, “/”, β2, “=”, α, “/”, β ΓΡΑΨΕ α1, “/”, β1, “+”, α2, “/”, β2, “=”, α, “/”, β ΤΕΛΟΣ_ΔΙΑΔΙΚΑΣΙΑΣ Έξοδος Επιμέλεια: Π. Τσάκωνας ΠΡΟΓΡΑΜΜΑ Κλάσματα ΜΕΤΑΒΛΗΤΕΣ ΜΕΤΑΒΛΗΤΕΣ ΑΚΕΡΑΙΕΣ:α1,β1,α2,β2,α,β ΑΚΕΡΑΙΕΣ:α1,β1,α2,β2,α,β ΑΡΧΗ ΑΡΧΗ ΚΑΛΕΣΕ Είσοδος(α1,β1,α2,β2) ΚΑΛΕΣΕ Είσοδος(α1,β1,α2,β2) ΚΑΛΕΣΕ Επεξεργασία(α1,β1,α2,β2,α,β) ΚΑΛΕΣΕ Επεξεργασία(α1,β1,α2,β2,α,β) ΚΑΛΕΣΕ Έξοδος(α1,β1,α2,β2,α,β) ΚΑΛΕΣΕ Έξοδος(α1,β1,α2,β2,α,β) ΤΕΛΟΣ_ΠΡΟΓΡΑΜΜΑΤΟΣ Κλάσματα Ακολουθεί παραλλαγή για τους πολύ μερακλήδες!
ΔΙΑΔΙΚΑΣΙΑ ΕισαγωγήΚλάσματος2(x,y) ΜΕΤΑΒΛΗΤΕΣ ΜΕΤΑΒΛΗΤΕΣ ΑΚΕΡΑΙΕΣ:x,y ΑΚΕΡΑΙΕΣ:x,yΑΡΧΗ !Εισαγωγή αριθμητή !Εισαγωγή αριθμητή ΚΑΛΕΣΕ ΕισαγωγήΑκέραιου2(x,TRUE) !Επιτρέπεται η τιμή 0 ΚΑΛΕΣΕ ΕισαγωγήΑκέραιου2(x,TRUE) !Επιτρέπεται η τιμή 0 !Εισαγωγή Παρανομαστή !Εισαγωγή Παρανομαστή ΚΑΛΕΣΕ ΕισαγωγήΑκέραιου2(y,FALSE) !Δεν επιτρέπεται η τιμή 0 ΚΑΛΕΣΕ ΕισαγωγήΑκέραιου2(y,FALSE) !Δεν επιτρέπεται η τιμή 0 ΤΕΛΟΣ_ΔΙΑΔΙΚΑΣΙΑΣ ΕισαγωγήΚλάσματος2 Επιμέλεια: Π. Τσάκωνας ΔΙΑΔΙΚΑΣΙΑ ΕισαγωγήΑκέραιου2(α,AllowZero) ΜΕΤΑΒΛΗΤΕΣ ΜΕΤΑΒΛΗΤΕΣ ΑΚΕΡΑΙΕΣ:α ΑΚΕΡΑΙΕΣ:α ΛΟΓΙΚΕΣ:AllowZero ΛΟΓΙΚΕΣ:AllowZero ΑΡΧΗ ΑΡΧΗ ΑΡΧΗ_ΕΠΑΝΑΛΗΨΗΣ ΑΡΧΗ_ΕΠΑΝΑΛΗΨΗΣ ΓΡΑΨΕ “Δώσε ακέραιο” ΓΡΑΨΕ “Δώσε ακέραιο” ΑΝ AllowZero = FALSE ΤΟΤΕ ΓΡΑΨΕ “διάφορο του μηδενός” ΑΝ AllowZero = FALSE ΤΟΤΕ ΓΡΑΨΕ “διάφορο του μηδενός” ΔΙΑΒΑΣΕ x ΔΙΑΒΑΣΕ x ΜΕΧΡΙΣ_ΟΤΟΥ x = Α_Μ(x) ΚΑΙ (x<>0 Ή AllowZero = TRUE) ΜΕΧΡΙΣ_ΟΤΟΥ x = Α_Μ(x) ΚΑΙ (x<>0 Ή AllowZero = TRUE) α Α_Μ(x) α Α_Μ(x) ΤΕΛΟΣ_ΔΙΑΔΙΚΑΣΙΑΣ ΕισαγωγήΑκέραιου2 Η ακόλουθη παραλλαγή μεταφέρει τον έλεγχο εγκυρότητας αποκλειστικά στη Διαδικασία ΕισαγωγήΑκέραιου2, η οποία προσαρμόζεται ανάλογα με το αν ζητείται αριθμητής ή παρανομαστής, χάρη στη λογική μεταβλητή.