ιαφάνειες παρουσίασης #4

Σχετικά έγγραφα
ιαφάνειες παρουσίασης #4

Δομές ελέγχου. ομαδοποίηση εντολών εκτέλεση εντολών υπό συνθήκη επανάληψη εντολών

ιαφάνειες παρουσίασης #3

ιαφάνειες παρουσίασης #5

ιαφάνειες παρουσίασης #2

ιαφάνειες παρουσίασης #3

ιαφάνειες παρουσίασης #5

ιαφάνειες παρουσίασης #7

ιαφάνειες παρουσίασης #6

Γ ΤΑΞΗ ΗΜΕΡΗΣΙΟΥ ΕΠΑ.Λ ΜΑΘΗΜΑ ΕΙ ΙΚΟΤΗΤΑΣ ΟΜΗΜΕΝΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΕΚΦΩΝΗΣΕΙΣ

Αποτελέσματα προόδου

Δομή Επανάληψης. Κεφάλαιο 7 Mike Trimos

ΕΚΦΩΝΗΣΕΙΣ ΘΕΜΑ Α. β. Οι πληροφορίες είναι δεδομένα τα οποία δεν έχουν υποστεί επεξεργασία.

IMPLICIT NONE INTEGER :: a, b, c

ΑΠΑΝΤΗΣΕΙΣ ΘΕΜΑ Α A1. 2-Λάθος 3-Λάθος 4-Σωστό 5-Λάθος A2. integer. real. Boolean. char. string A3.

ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΥΠΟΛΟΓΙΣΤΩΝ Κεφάλαιο 10 : Εντολές επιλογής και αποφάσεων

Εντολή Δεδομένα Περιεχόμενα μετά την εκτέλεση 1 read(x) 122 x= 2 read(a,b,c) a= b= c= 3 read(d,e)

ΑΡΧΗ 1ΗΣ ΣΕΛΙ ΑΣ ΠΑΝΕΛΛΑ ΙΚΕΣ ΕΞΕΤΑΣΕΙΣ ΗΜΕΡΗΣΙΩΝ ΕΠΑΓΓΕΛΜΑΤΙΚΩΝ ΛΥΚΕΙΩΝ (ΟΜΑ Α Β ) ΚΑΙ ΜΑΘΗΜΑΤΩΝ ΕΙ ΙΚΟΤΗΤΑΣ

Κεφάλαιο 12 : ΥΠΟΠΡΟΓΡΑΜΜΑΤΑ

TO ΥΠΟΠΡΟΓΡΑΜΜΑ ΣΥΝΑΡΤΗΣΗ

- Αναπαράσταση ακέραιας τιµής : - Εύρος ακεραίων : - Ακέραιοι τύποι: - Πράξεις µε ακεραίους (DIV - MOD)

Η ΔΟΜΗ ΕΠΑΝΑΛΗΨΗΣ Εντολές Επανάληψης REPEAT UNTIL, FOR, WHILE

2. β. Συνθήκη ή επιλογή. 4. δ. Υποπρόγραμμα. 5. ε. ιαδικασία εισόδου ή εξόδου

ΓΛΩΣΣΑ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ PASCAL

2. β. Συνθήκη ή επιλογή. 4. δ. Υποπρόγραμμα. 5. ε. ιαδικασία εισόδου ή εξόδου

ΠΡΟΤΕΙΝΟΜΕΝΑ ΘΕΜΑΤΑ-ΦΡΟΝΤΙΣΤΗΡΙΟ ΑΚΑΔΗΜΑΪΚΟ ΕΠΑΛ- ΚΑΝΙΓΓΟΣ 13- ΤΗΛ

ιαφάνειες παρουσιάσεων

ιαφάνειες παρουσιάσεων

ΠΑΝΕΠΙΣΤΗΜΙΟ ΠΕΙΡΑΙΩΣ ΤΜΗΜΑ ΒΙΟΜΗΧΑΝΙΚΗΣ ΙΟΙΚΗΣΗΣ ΚΑΙ ΤΕΧΝΟΛΟΓΙΑΣ

ΜΑΘΗΜΑ / ΤΑΞΗ : ΔΟΜΗΜΕΝΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ / Γ ΕΠΑΛ ΣΕΙΡΑ: ΗΜΕΡΟΜΗΝΙΑ: 27/01/2013

ΑΡΧΗ 1ΗΣ ΣΕΛΙ ΑΣ ΤΕΛΟΣ 1ΗΣ ΑΠΟ 6 ΣΕΛΙ ΕΣ

ιαφάνειες παρουσίασης #7

ΜΑΘΗΜΑ / ΤΑΞΗ : ΔΟΜΗΜΕΝΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ / ΕΠΑΛ ΣΕΙΡΑ: ΗΜΕΡΟΜΗΝΙΑ:

ΠΙΝΑΚΑΣ ΠΕΡΙΕΧΟΜΕΝΩΝ

Προγραμματισμός PASCAL

ΑΡΧΗ 1ΗΣ ΣΕΛΙ ΑΣ ΝΕΟ ΚΑΙ ΠΑΛΑΙΟ ΣΥΣΤΗΜΑ

Μονάδες 4. β. x=20 και y=10

Pascal. 26 Οκτωβρίου 2011

Μορφοποίηση της εξόδου

Κεφάλαιο 12 : ΕΡΓΑΣΤΗΡΙΑΚΗ ΔΡΑΣΤΗΡΙΟΤΗΤΑ 03 Συναρτήσεις

ιαδικαστικά Μάθηµα: Προγραµµατισµός Η/Υ ιδάσκοντες: Σ. Ζάχος, Ν. Παπασπύρου, Α. Παγουρτζής ιαλέξεις: κάθε Παρασκευή 13:00 16:00

Προχωρημένες έννοιες προγραμματισμού σε Pazcal

ΑΠΑΝΤΗΣΕΙΣ. H διαδικασία ανεύρεσης λογικών λαθών περιλαμβάνει : β- Σωστό. Διαπίστωση του είδους του λάθους γ- Σωστό δ- Λάθος

ΑΠΑΝΤΗΣΕΙΣ. α- Σωστό β- Σωστό γ- Λάθος δ- Λάθος ε- Σωστό στ- Σωστό

Μεταγλωττιστές Βελτιστοποίηση

ΠΡΟΤΕΙΝΟΜΕΝΑ ΘΕΜΑΤΑ ΔΟΜΗΜΕΝΟΥ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Γ ΕΠΑΛ

ιαδικαστικά DRAFT ιαφάνειες παρουσιάσεων 31/10/03 Μάθηµα: Προγραµµατισµός Η/Υ ιδάσκοντες: Σ. Ζάχος, Ν. Παπασπύρου ιαλέξεις: κάθε Παρασκευή 14:30 17:30

ιαφάνειες παρουσίασης #9

ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΥΠΟΛΟΓΙΣΤΩΝ Κεφάλαιο 10 : Εντολές επιλογής και αποφάσεων

ΑΡΧΗ 1ΗΣ ΣΕΛΙ ΑΣ ΝΕΟ ΚΑΙ ΠΑΛΑΙΟ ΣΥΣΤΗΜΑ

Διακριτά Μαθηματικά ΙΙ Χρήστος Νομικός Τμήμα Μηχανικών Η/Υ και Πληροφορικής Πανεπιστήμιο Ιωαννίνων 2018 Χρήστος Νομικός ( Τμήμα Μηχανικών Η/Υ Διακριτά

ιαφάνειες παρουσίασης #8

ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Η/Υ Κανονική εξέταση, Φεβρουάριος 2005

ΚΕΦΑΛΑΙΟ 1ο 3ο. ΚΕΦΑΛΑΙΟ 5ο 6ο. ΚΕΦΑΛΑΙΟ 7ο. Δομημένος Προγραμματισμός - Γενικές Ασκήσεις Επανάληψης

Απλοποιεί τα γεγονότα έτσι ώστε να περιγράφει τι έχει γίνει και όχι πως έχει γίνει.

ιαφάνειες παρουσίασης #1

ΠΛΗΡΟΦΟΡΙΚΗ ΣΤΟ ΕΝΙΑΙΟ ΛΥΚΕΙΟ

Υποπρογράµµατα Συναρτήσεις. Στόχοι Μαθήµατος. Οι µαθητές να µπορούν:

Pascal. 15 Νοεμβρίου 2011

Ανακτήθηκε από την ΕΚΠΑΙΔΕΥΤΙΚΗ ΚΛΙΜΑΚΑ ΑΡΧΗ 1ΗΣ ΣΕΛΙ ΑΣ

Προέλευση της Pazcal ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΗΛΕΚΤΡΟΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΩΝ. Εθνικό Μετσόβιο Πολυτεχνείο Σχολή Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών

Αλγοριθμική & Δομές Δεδομένων- Γλώσσα Προγραμματισμού Ι (PASCAL) (PASCAL ) Εντολές Ελέγχου & Επανάληψης

Διαφάνειες παρουσιάσεων

Διαφάνειες παρουσιάσεων

Ενότητα 1: «Εισαγωγή στην Αλγοριθμική και τον Προγραμματισμό. Απλές ασκήσεις με γλώσσα Pascal»

Διαφάνειες παρουσιάσεων

Διαφάνειες παρουσιάσεων

Γραπτές εξετάσεις στο μάθημα: ΔΟΜΗΜΕΝΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ (Θ) Εισηγητής: Γεωργίου Χρήστος ΘΕΜΑΤΑ & ΑΠΑΝΤΗΣΕΙΣ. Β. Χαρακτήρας(Αλφαριθμητικά)

Διαφάνειες παρουσιάσεων

α. Λογικό διάγραμμα είναι η μέθοδος που χρησιμοποιεί απλά σχήματα που υποστηρίζονται με απλές λέξεις για την αναπαράσταση συγκεκριμένων λειτουργιών.

ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΥΠΟΛΟΓΙΣΜΟΣ Εντολές επιλογής και αποφάσεων 1 ο Φύλλο Εργασιών Εισαγωγικές ασκήσεις για την εντολή if ΑΠΑΝΤΗΣΕΙΣ

Pascal, απλοί τύποι, τελεστές και εκφράσεις

Σκοπός. Εργαστήριο 6 Εντολές Επανάληψης

ιαδικαστικά DRAFT ιαφάνειες παρουσιάσεων 19/11/04

ΑΡΧΗ 1ΗΣ ΣΕΛΙ ΑΣ ΝΕΟ ΚΑΙ ΠΑΛΑΙΟ ΣΥΣΤΗΜΑ

Μαζέρας Αχιλλέας. Οι εντολές επανάληψης στην Pascal (While) Φυσικός Αυτοματιστής M.Sc. Νοέµβριος 2009

ιαφάνειες παρουσίασης #11

ιαφάνειες παρουσίασης #5 (β)

ΔΟΜΗΜΕΝΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ

Διαφάνειες παρουσιάσεων

Προγραμματισμός Ι (HY120)

Διαφάνειες παρουσιάσεων

ΕΠΑΝΑΛΗΠΤΙΚΑ ΘΕΜΑΤΑ 2014

Λογισµικό (Software SW) Γλώσσες

Αλγοριθμική & Δομές Δεδομένων- Γλώσσα Προγραμματισμού Ι (PASCAL)

Π. Σταθοπούλου ή Οµάδα Α (Φοιτητές µε µονό αριθµό Μητρώου ) ιδασκαλία : Παρασκευή 11πµ-13µµ ΗΛ7

Βασικές Έννοιες Αλγορίθμων Τι είναι αλγόριθμος

ΥΠΟΥΡΓΕΙΟ ΠΑΙΔΕΙΑΣ ΚΑΙ ΠΟΛΙΤΙΣΜΟΥ ΔΙΕΥΘΥΝΣΗ ΑΝΩΤΕΡΗΣ ΚΑΙ ΑΝΩΤΑΤΗΣ ΕΚΠΑΙΔΕΥΣΗΣ ΥΠΗΡΕΣΙΑ ΕΞΕΤΑΣΕΩΝ ΠΑΓΚΥΠΡΙΕΣ ΕΞΕΤΑΣΕΙΣ 2009

Προγραμματισμός PASCAL

ΚΕΦΑΛΑΙΟ 10 ΕΝΤΟΛΕΣ ΕΠΙΛΟΓΗΣ (ή εντολές Ελέγχου και Επιλογής ή εντολές Επιλογής και Απόφασης)

Pascal - Βασικές Έννοιες

A3. Μονάδες 5 Α4. Μονάδες 10 ΘΕΜΑ B. Β1. writeln Περιεχόμενα Εντολή Αποτελέσματα Παραμέτρων Μονάδες 20 ΘΕΜΑ Γ.

Στόχοι και αντικείμενο ενότητας. Προτάσεις επανάληψης. Έλεγχος ροής προγράμματος. #5.. Εντολές Επανάληψης

Αλγοριθμική & Δομές Δεδομένων- Γλώσσα Προγραμματισμού Ι (PASCAL)

Υπολογισμός - Εντολές Επανάληψης

ΥΠΟΥΡΓΕΙΟ ΠΑΙ ΕΙΑΣ ΚΑΙ ΠΟΛΙΤΙΣΜΟΥ ΙΕΥΘΥΝΣΗ ΑΝΩΤΕΡΗΣ ΚΑΙ ΑΝΩΤΑΤΗΣ ΕΚΠΑΙ ΕΥΣΗΣ ΥΠΗΡΕΣΙΑ ΕΞΕΤΑΣΕΩΝ ΠΑΓΚΥΠΡΙΕΣ ΕΞΕΤΑΣΕΙΣ 2013

Παράλληλη Επεξεργασία Κεφάλαιο 2 Παραλληλισμός Δεδομένων

Μεταγλωττιστές Βελτιστοποίηση

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΤΕΧΝΟΛΟΓΙΚΗΣ ΚΑΤΕΥΘΥΝΣΗΣ (ΚΥΚΛΟΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΙ ΥΠΗΡΕΣΙΩΝ) Γ ΤΑΞΗΣ 2003

Κεφάλαιο 7 : Είδη, Τεχνικές, και Περιβάλλοντα Προγραµµατισµού

Transcript:

ΕΙΣΑΓΩΓΗ ΣΤΟΝ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ http://www.corelab.ece.ntua.gr/courses/programming/ ιδάσκοντες: Στάθης Ζάχος (zachos@cs.ntua.gr) Νίκος Παπασπύρου (nickie@softlab.ntua.gr) ιαφάνειες παρουσίασης #4!Λοιπές εντολές! οµηµένος προγραµµατισµός! ιαδικασίες και συναρτήσεις!βαθµιαία συγκεκριµενοποίηση!παρουσίαση και συντήρηση Νίκος Παπασπύρου Εισαγωγή στον Προγραµµατισµό 1

Εντολή repeat (iv)! Παράδειγµα program primes(input, output); var p,t : integer; begin writeln(2); p:=1; repeat p:=p+2; t:=1; repeat t:=t+2 until p mod t = 0; if p=t then writeln(p) until p>100 end. Output 2 3 5 7 11... p t 1 3 1 3 5 1 3 5 7 1 3 5 7 9 1 3 11 1... 2

Κλήση διαδικασίας! Συντακτικό διάγραµµα! Παραδείγµατα myproc(x, y+1, 3) write(x+y, 'wednesday', x-y); writeln 3

Κενή εντολή! Συµβολίζεται µε την κενή συµβολοσειρά! εν κάνει τίποτα όταν εκτελείται! Παράδειγµα if x>4 then begin y:=1; x:=x-5; (* εδώ υπάρχει µια κενή εντολή *) end 4

Συντακτικό διάγραµµα εντολής 5

οµηµένος προγραµµατισµός (i)! Ιδέα: κάθε ανεξάρτητη λειτουργία του προγράµµατος πρέπει να αντιστοιχεί σε ανεξάρτητο υποπρόγραµµα! Πλεονεκτήµατα " Ευκολότερη ανάπτυξη προγραµµάτων («διαίρει και βασίλευε») " Ευκολότερη ανίχνευση σφαλµάτων " Επαναχρησιµοποίηση έτοιµων υποπρογραµµάτων 6

οµηµένος προγραµµατισµός (ii) program tasks(input, output); var n1, n2, sum, expr : integer; procedure arith(x,y : integer; var s,e : integer); begin s := x+y; e := sqr(x)+3*y+5 end; begin write(' ώσε το n1: '); readln(n1); write(' ώσε το n2: '); readln(n2); arith(n1, n2, sum, expr); writeln('άθροισµα = ', sum, 'έκφραση = ', expr) end. 7

ιαδικασίες (i)! Ορίζονται στο τµήµα δηλώσεων! Κάθε ορισµός διαδικασίας περιέχει: " την επικεφαλίδα της " τις δικές της δηλώσεις " το σώµα της! Καλούνται µε αναγραφή του ονόµατός τους και απαρίθµηση των παραµέτρων 8

ιαδικασίες (ii)! Εµβέλεια ενός ονόµατος (π.χ. µεταβλητής) είναι το τµήµα του προγράµµατος όπου επιτρέπεται η χρήση του! Τοπικά (local) ονόµατα είναι αυτά που δηλώνονται σε ένα υποπρόγραµµα! Γενικά (global) ονόµατα είναι αυτά που δηλώνονται στο κυρίως πρόγραµµα 9

ιαδικασίες (iii)! Τυπικές (formal) παράµετροι ενός υποπρογράµµατος είναι οι αυτές που ορίζονται στην επικεφαλίδα του! Πραγµατικές (actual) παράµετροι ενός υποπρογράµµατος είναι αυτές που δίνονται κατά την κλήση του! Σε κάθε κλήση, οι πραγµατικές παράµετροι πρέπει να αντιστοιχούν µία προς µία στη σειρά και στον τύπο µε τις τυπικές 10

ιαδικασίες (iv)! Παράµετροι τιµών (κλήση µε τιµή): πέρασµα πληροφοριών από το καλούν (πρόγραµµα) προς το καλούµενο (υποπρόγραµµα)! Παράµετροι µεταβλητών (κλήση µε αναφορά) πέρασµα πληροφοριών από το καλούν (πρόγραµµα) προς το καλούµενο (υποπρόγραµµα) και αντίστροφα 11

ιαδικασίες (v) program tasks2(input, output); var a, b : integer; procedure change(x : integer); var d : integer; begin write('change: ',); d:=2*x; x:=x+d; writeln(x) end; procedure rechange(var y : integer); begin write('rechange: ',); y:=y*2; writeln(y) end; begin a:=1; b:=2; writeln(a,b); change(a); rechange(b); writeln(a,b); change(b); rechange(a); writeln(a,b); end. 12

Συναρτήσεις (i)! Όπως οι διαδικασίες, αλλά επιστρέφουν µια τιµή ως αποτέλεσµα! εν µπορούν να χρησιµοποιηθούν ως εντολές αλλά µόνο σε παραστάσεις 13

Συναρτήσεις (ii)! Παράδειγµα program funcall(input, output); var n1, n2, n3 : integer; function average(a,b,c : integer) : integer; begin average := (a+b+c) div 3 end; begin n1:=10; n2:=15; n3:=20; writeln('average: ', average(n1, n2, n3)) end. 14

Βαθµιαία συγκεκριµενοποίηση! Περιγραφή επίλυσης προβλήµατος " Εισαγωγή και αποθήκευση δεδοµένων τρόπος εισαγωγής δεδοµένων έλεγχος ορθότητας δεδοµένων " Αλγόριθµος επεξεργασίας περιγραφή του αλγορίθµου κωδικοποίηση στη γλώσσα προγραµµατισµού " Παρουσίαση αποτελεσµάτων τρόπος και µορφή παρουσίασης αποτελεσµάτων 15

Εύρεση Μ.Κ.. (i)! Περιγραφή προβλήµατος " ίνονται δύο θετικοί ακέραιοι a, b " Ζητείται ο µέγιστος κοινός διαιρέτης τους! Απλός αλγόριθµος z := min(a, b); while (a mod z <> 0) or (b mod z <> 0) do z := z-1; writeln(z) " Ο αριθµός επαναλήψεων του βρόχου είναι της τάξης του min(a, b) 16

Εύρεση Μ.Κ.. (ii)! Αλγόριθµος µε αφαιρέσεις " Ιδέα: αν i > j τότε gcd(i, j) = gcd(i-j, j) " Αντίστοιχο πρόγραµµα i := a; j := b; while (i>0) and (j>0) do if i>j then i := i-j else j := j-i; writeln(i+j) " Στη χειρότερη περίπτωση, ο αριθµός επαναλήψεων είναι της τάξης του max(a, b) " Στη µέση περίπτωση όµως, αυτός ο αλγόριθµος είναι καλύτερος του προηγούµενου 17

Εύρεση Μ.Κ.. (iii)! Αλγόριθµος του Ευκλείδη " Ιδέα: αντί πολλαπλών αφαιρέσεων χρησιµοποιούµε το υπόλοιπο της διαίρεσης " Αντίστοιχο πρόγραµµα i := a; j := b; while (i>0) and (j>0) do if i>j then i := i mod j else j := j mod i; writeln(i+j) " Στη χειρότερη περίπτωση, ο αριθµός επαναλήψεων είναι της τάξης του log(a+b) 18

Εύρεση Μ.Κ.. (iv) program gcd(input, output); δηλώσεις; begin αρχικό µήνυµα στο χρήστη; repeat µήνυµα που ζητάει είσοδο; διάβασµα δύο ακεραίων; if ορθή είσοδος then begin αρχικοποίηση βρόχου; while δεν τελείωσε do χρήση της ιδέας του Ευκλείδη; παρουσίαση αποτελεσµάτων end else µήνυµα σφάλµατος until συµφωνηµένη είσοδος για τέλος end. Πρώτη προσέγγιση 19

Εύρεση Μ.Κ..! Συγκεκριµενοποίηση " χρήση της ιδέας του Ευκλείδη (v) εύτερη προσέγγιση if i>j then i := i mod j else j := j mod i " συνθήκη «δεν τελείωσε» (i>0) and (j>0) " αρχικοποίηση βρόχου i := a; j := b " διάβασµα δύο ακεραίων readln(a, b) 20

Εύρεση Μ.Κ..! Συγκεκριµενοποίηση (συνέχεια) " ορθή είσοδος (vi) εύτερη προσέγγιση (a>0) and (b>0) " συµφωνηµένη είσοδος για τέλος (a=0) and (b=0) " αποµένουν µόνο: δηλώσεις, µηνύµατα και σχόλια! Συµπληρώνουµε τα παραπάνω στο πρόγραµµα 21

Εύρεση Μ.Κ.. (vii)! Το τελικό πρόγραµµα (* Ευκλείδιος αλγόριθµος Στάθης Ζάχος, 19 Οκτωβρίου 1990 *) program gcd(input, output); var a,b,i,j : integer; begin writeln('θα υπολογίσω το µ.κ.δ. ', 'δύο θετικών ακεραίων'); repeat writeln(' ώσε δύο θετικούς ', 'ακέραιους ή 0 0 για έξοδο'); readln(a, b); 22

Εύρεση Μ.Κ.. (viii)! Το τελικό πρόγραµµα (συνέχεια) if (a>0) and (b>0) then begin i:=a; j:=b; while (i>0) and (j>0) do if i>j then i := i mod j else j := j mod i; writeln('µκδ(', a, ',', b, ') = ', i+j) end else writeln('δεν είναι θετικοί') until (a=0) and (b=0) end. 23

Αθροιστικό πρόγραµµα program addition(input, output); δηλώσεις; begin αρχικό µήνυµα στο χρήστη; repeat µήνυµα που ζητάει είσοδο; άθροιση αριθµών; παρουσίαση αποτελεσµάτων; µήνυµα για να ξέρει ο χρήστης πώς θα συνεχίσει ή θα σταµατήσει until συµφωνηµένη είσοδος για τέλος end. (i) Πρώτη προσέγγιση 24

Αθροιστικό πρόγραµµα! Συγκεκριµενοποίηση " άθροιση αριθµών (ii) εύτερη προσέγγιση αρχικοποίηση βρόχου; repeat είσοδος ενός αριθµού; άθροιση; είσοδος ενός συµβόλου until σύµβολο διάφορο του + 25

Αθροιστικό πρόγραµµα! Περαιτέρω συγκεκριµενοποίηση " άθροιση αριθµών (iii) Τρίτη προσέγγιση sum := 0; repeat read(number); sum := sum + number; read(symbol) until symbol <> '+' 26

Αθροιστικό πρόγραµµα (iv)! Το τελικό πρόγραµµα (* Αθροιστικό πρόγραµµα Στάθης Ζάχος, 19 Οκτωβρίου 1990 *) program addition(input, output); var number,sum : integer; symbol : char; begin writeln('πρόσθεση ακεραίων'); repeat writeln(' ώσε τους ακεραίους ', 'χωρισµένους µε + ', 'ή δώσε = για τέλος'); 27

Αθροιστικό πρόγραµµα (v)! Το τελικό πρόγραµµα (συνέχεια) sum := 0; repeat read(number); sum := sum + number; read(symbol) until symbol <> '+'; if symbol <> '=' then write('='); writeln(sum); write('θέλεις να συνεχίσεις; ', ' ώσε Ν/Ο και µετά enter: '); readln(symbol) until (symbol = 'o') or (symbol = 'O') end. 28

Παρουσίαση και συντήρηση (i)! Ποιοτικά χαρακτηριστικά προγραµµάτων " Αναγνωσιµότητα απλότητα κατάλληλη επιλογή ονοµάτων, π.χ. monthly_income incomebeforetaxes στοίχιση σχόλια " Φιλικότητα προς το χρήστη " Τεκµηρίωση " Συντήρηση " Ενηµέρωση 29

Παρουσίαση και συντήρηση (ii)! Στοίχιση " Πρόγραµµα και υποπρογράµµατα program... procedure... function... δηλώσεις δηλώσεις δηλώσεις begin begin begin εντολές εντολές εντολές end. end end " Απλές εντολές if... then while... do for... do εντολή εντολή εντολή else εντολή 30

Παρουσίαση και συντήρηση (iii)! Στοίχιση (συνέχεια) " Σύνθετες εντολές if... then while... do for... do begin begin begin εντολές εντολές εντολές end end end else begin εντολές end 31

Παρουσίαση και συντήρηση (iv)! Στοίχιση (συνέχεια) " Σύνθετες εντολές (συνέχεια) repeat case... of with... do εντολές τιµή 1 : εντολή 1 ; begin until... τιµή 2 : εντολή 2 ; εντολές... end τιµή n : εντολή n end 32