ΕΙΣΑΓΩΓΗ ΣΤΟΝ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ Διδάσκοντες:Στάθης Ζάχος Νίκος Παπασπύρου

Slides:



Advertisements
Παρόμοιες παρουσιάσεις
(READ – WRITE) ΚΑΙ ΤΥΠΟΙ ΔΕΔΟΜΕΝΩΝ (INTEGER,REAL,CHAR)
Advertisements

Προγραμματισμός PASCAL
Κεφάλαιο Τμηματικός προγραμματισμός
7.3.8 Μεταφραστές Ελληνογαλλική Σχολή Καλαμαρί - Τίκβα Χριστίνα.
ΥΠΟΠΡΟΓΡΑΜΜΑΤΑ ΥΠΟΡΟΥΤΙΝΕΣ
ΥΠΟΠΡΟΓΡΑΜΜΑΤΑ ΤΜΗΜΑΤΙΚΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ
Κεφάλαιο 6 Υλοποίηση Γλωσσών Προγραμματισμού
ΛΟΓ102: Τεχνολογία Λογισμικού Ι Διδάσκων: Νίκος Παπασπύρου 1Νίκος ΠαπασπύρουΛΟΓ102:
HY100 : ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΕΠΙΣΤΗΜΗ ΥΠΟΛΟΓΙΣΤΩΝ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ, ΣΧΟΛΗ ΘΕΤΙΚΩΝ ΕΠΙΣΤΗΜΩΝ, ΤΜΗΜΑ ΕΠΙΣΤΗΜΗΣ ΥΠΟΛΟΓΙΣΤΩΝ ΔΙΔΑΣΚΟΝΤΕΣ Αντώνιος Σαββίδης, Χρήστος.
Διαφάνειες παρουσίασης #5
ΕΙΣΑΓΩΓΗ ΣΤΟΝ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ Διδάσκοντες:Στάθης Ζάχος Νίκος Παπασπύρου
Συναρτήσεις Κληση/Επιστροφη Παραμετροι
Προγραμματισμός PASCAL Πληροφορική Γ' Λυκείου μέρος γ
Προγραμματισμός PASCAL Πληροφορική Γ' Λυκείου μέρος ε
Προγραμματισμός PASCAL Πληροφορική Γ' Λυκείου μέρος α
Προγραμματισμός PASCAL Πληροφορική Γ' Λυκείου μέρος δ
ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΙΑΣ ΤΜΗΜΑ ΜΗΧΑΝΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ ΒΙΟΜΗΧΑΝΙΑΣ Διάλεξη 5: Επαναληπτικές και εξωτερικές συναρτήσεις και διαδικασίες Εαρινό εξάμηνο 2009.
Γενική μορφή προγράμματος Pascal
Η αλληλουχία των ενεργειών δεν είναι πάντα μία και μοναδική!!!
Σχεδίαση αλγορίθμων (2ο μέρος)
Προγραμματισμός PASCAL
Διαφάνειες παρουσίασης #3
Πάνω προς Κάτω Σχεδιασμός και Συναρτήσεις
ΕΙΣΑΓΩΓΗ ΣΤΟΝ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ Διδάσκοντες:Στάθης Ζάχος Νίκος Παπασπύρου
ΕΙΣΑΓΩΓΗ ΣΤΟΝ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ Διδάσκοντες:Στάθης Ζάχος Νίκος Παπασπύρου
Η αλληλουχία των ενεργειών δεν είναι πάντα μία και μοναδική!!!
Διαφάνειες παρουσίασης Πίνακες (συνέχεια) Αριθμητικοί υπολογισμοί Αναδρομή.
ΘΕΜΑΤΙΚΗ ΕΝΟΤΗΤΑ: ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΤΟ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΤΗΣ ΓΛΩΣΣΑΣ PASCAL ΠΑΡΟΥΣΙΑΣΗ ΠΑΡΑΔΕΙΓΜΑΤΟΣ: ΕΚΤΕΛΕΣΗ ΠΡΟΓΡΑΜΜΑΤΟΣ ΜΕ ΤΙΣ ΤΡΕΙΣ ΕΠΑΝΑΛΗΠΤΙΚΕΣ.
HY100 : ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΕΠΙΣΤΗΜΗ ΥΠΟΛΟΓΙΣΤΩΝ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ, ΣΧΟΛΗ ΘΕΤΙΚΩΝ ΕΠΙΣΤΗΜΩΝ, ΤΜΗΜΑ ΕΠΙΣΤΗΜΗΣ ΥΠΟΛΟΓΙΣΤΩΝ ΔΙΔΑΣΚΟΝΤΕΣ Αντώνιος Σαββίδης, Χρήστος.
Κεφάλαιο 10 – Υποπρογράμματα
ΛΟΓ102: Τεχνολογία Λογισμικού Ι Διδάσκων: Νίκος Παπασπύρου 1Νίκος ΠαπασπύρουΛΟΓ102:
ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΗΛΕΚΤΡΟΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΩΝ Διδάσκοντες:Στάθης Ζάχος Νίκος Παπασπύρου
ΕΙΣΑΓΩΓΗ ΣΤΟΝ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ Διδάσκοντες:Στάθης Ζάχος Νίκος Παπασπύρου
Διαφάνειες παρουσίασης #2
ΛΟΓ102: Τεχνολογία Λογισμικού Ι Διδάσκων: Νίκος Παπασπύρου 1Νίκος ΠαπασπύρουΛΟΓ102:
ΗΥ150 – ΠρογραμματισμόςΚώστας Παναγιωτάκης ΗΥ-150 Προγραμματισμός Συναρτήσεις.
Διαφάνειες παρουσίασης Ορθότητα (συνέχεια) Τακτικοί τύποι και τύποι υποπεριοχής Πίνακες.
ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΕΣ ΤΕΧΝΙΚΕΣ Διδάσκοντες:Γιάννης Μαΐστρος Στάθης Ζάχος Νίκος Παπασπύρου
ΛΟΓ102: Τεχνολογία Λογισμικού Ι Διδάσκων: Νίκος Παπασπύρου 1Νίκος ΠαπασπύρουΛΟΓ102:
ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΗΛΕΚΤΡΟΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΩΝ Διδάσκοντες:Στάθης Ζάχος Νίκος Παπασπύρου
ΛΟΓ102: Τεχνολογία Λογισμικού Ι Διδάσκων: Νίκος Παπασπύρου 1Νίκος ΠαπασπύρουΛΟΓ102:
ΕΙΣΑΓΩΓΗ ΣΤΟΝ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ Διδάσκοντες:Στάθης Ζάχος Νίκος Παπασπύρου
ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΕΣ ΤΕΧΝΙΚΕΣ Διδάσκοντες:Γιάννης Μαΐστρος Στάθης Ζάχος Νίκος Παπασπύρου
ΕΙΣΑΓΩΓΗ ΣΤΟΝ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ Διδάσκοντες:Στάθης Ζάχος Νίκος Παπασπύρου
ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΕΣ ΤΕΧΝΙΚΕΣ Διδάσκοντες:Γιάννης Μαΐστρος Στάθης Ζάχος Νίκος Παπασπύρου
ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΕΣ ΤΕΧΝΙΚΕΣ Διδάσκοντες:Γιάννης Μαΐστρος Στάθης Ζάχος Νίκος Παπασπύρου
Επιστημονικός Υπολογισμός Ι Πρώτο Εργαστήριο Εισαγωγή στο matlab 15 Οκτωβρίου 2010 Γιώργος Δρακόπουλος ΤΜΗΥΠ.
ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΗΛΕΚΤΡΟΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΩΝ Διδάσκοντες:Στάθης Ζάχος Νίκος Παπασπύρου
Οι εντολές επανάληψης Σε πολλά προβλήματα απαιτείται η επανάληψη ενός συνόλου ενεργειών προκειμένου να λυθεί το πρόβλημα. Θα αναφέρουμε δύο χαρακτηριστικά.
ΕΙΣΑΓΩΓΗ ΣΤΟΝ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ Διδάσκοντες:Στάθης Ζάχος Νίκος Παπασπύρου
Βασικά στοιχεία της Java
ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΕΣ ΤΕΧΝΙΚΕΣ Διδάσκοντες:Γιάννης Μαΐστρος Στάθης Ζάχος Νίκος Παπασπύρου
ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΗΛΕΚΤΡΟΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΩΝ Διδάσκοντες:Στάθης Ζάχος Νίκος Παπασπύρου
ΗΥ150 – ΠρογραμματισμόςΚώστας Παναγιωτάκης ΗΥ-150 Προγραμματισμός Τύποι Μεταβλητών Τελεστές Βασική Είσοδος/Έξοδος.
ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΗΛΕΚΤΡΟΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΩΝ Διδάσκοντες:Στάθης Ζάχος Νίκος Παπασπύρου
ΚΕΦΑΛΑΙΟ Το αλφάβητο της ΓΛΩΣΣΑΣ
1 Προγραμματισμός Ι Ενότητα 6 : Υποπρογράμματα III Αλέξανδρος Τζάλλας Ελληνική Δημοκρατία Τεχνολογικό Εκπαιδευτικό Ίδρυμα Ηπείρου.
Γλώσσες Προγραμματισμού Μεταγλωττιστές Πίνακας Συμβόλων Πανεπιστήμιο Μακεδονίας Τμήμα Εφαρμοσμένης Πληροφορικής Ηλίας Σακελλαρίου.
Για μτ από ατ μέχρι ττ [με_βήμα β] εντολές Τέλος_επανάληψης : περιοχή εντολών μτ : η μεταβλητή της οποίας η τιμή θα περάσει από την αρχική.
Βρόχος Do … Loop Σκοπός Μαθήματος Χρήση Do… Loop για την εκτέλεση μιας ομάδας εντολών μέχρι να εκπληρωθεί μια συγκεκριμένη συνθήκη. Αθήνα, 2015.
ΑΛΓΟΡΙΘΜΟΣ ΠΡΟΒΛΗΜΑ ΑΛΓΟΡΙΘΜΟΣ ΛΥΣΗ
Η Γλώσσα Pascal Εντολή If
Εφαρμογές Υπολογιστών
ενισχυτική διδασκαλία
Ενισχυτική διδασκαλία
ΠΑΡΑΜΕΤΡΟΙ ΥΠΟΠΡΟΓΡΑΜΜΑΤΩΝ Τυπικές Παράμετροι Πραγματικές Παράμετροι
Τεχνολογία και Προγραμματισμός Υπολογιστών
Η Γλώσσα Pascal Υποπρογράμματα
Κεφάλαιο 7 10/11/2018 Ξένιος Αντωνιάδης.
Λήψη Αποφάσεων και Συναρτήσεις Ελέγχου
Μεταγράφημα παρουσίασης:

ΕΙΣΑΓΩΓΗ ΣΤΟΝ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ Διδάσκοντες:Στάθης Ζάχος Νίκος Παπασπύρου 1Νίκος ΠαπασπύρουΕισαγωγή στον Προγραμματισμό Διαφάνειες παρουσίασης #4 Λοιπές εντολές Δομημένος προγραμματισμός Διαδικασίες και συναρτήσεις Βαθμιαία συγκεκριμενοποίηση Παρουσίαση και συντήρηση

2Νίκος Παπασπύρου Εισαγωγή στον Προγραμματισμό Εντολή repeat(iv) u Παράδειγμα 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. p t Output

3Νίκος Παπασπύρου Εισαγωγή στον Προγραμματισμό Κλήση διαδικασίας u Συντακτικό διάγραμμα u Παραδείγματα myproc(x, y+1, 3) write(x+y, 'wednesday', x-y); writeln

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

5Νίκος Παπασπύρου Εισαγωγή στον Προγραμματισμό Συντακτικό διάγραμμα εντολής

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

7Νίκος Παπασπύρου Εισαγωγή στον Προγραμματισμό Δομημένος προγραμματισμός(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.

8Νίκος Παπασπύρου Εισαγωγή στον Προγραμματισμό Διαδικασίες(i) u Ορίζονται στο τμήμα δηλώσεων u Κάθε ορισμός διαδικασίας περιέχει: l την επικεφαλίδα της l τις δικές της δηλώσεις l το σώμα της u Καλούνται με αναγραφή του ονόματός τους και απαρίθμηση των παραμέτρων

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

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

11Νίκος Παπασπύρου Εισαγωγή στον Προγραμματισμό Διαδικασίες(iv) u Παράμετροι τιμών (κλήση με τιμή): πέρασμα πληροφοριών από το καλούν (πρόγραμμα) προς το καλούμενο (υποπρόγραμμα) u Παράμετροι μεταβλητών (κλήση με αναφορά) πέρασμα πληροφοριών από το καλούν (πρόγραμμα) προς το καλούμενο (υποπρόγραμμα) και αντίστροφα

12Νίκος Παπασπύρου Εισαγωγή στον Προγραμματισμό Διαδικασίες(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.

13Νίκος Παπασπύρου Εισαγωγή στον Προγραμματισμό Συναρτήσεις(i) u Όπως οι διαδικασίες, αλλά επιστρέφουν μια τιμή ως αποτέλεσμα u Δεν μπορούν να χρησιμοποιηθούν ως εντολές αλλά μόνο σε παραστάσεις

14Νίκος Παπασπύρου Εισαγωγή στον Προγραμματισμό Συναρτήσεις(ii) u Παράδειγμα 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.

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

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

17Νίκος Παπασπύρου Εισαγωγή στον Προγραμματισμό Εύρεση Μ.Κ.Δ.(ii) u Αλγόριθμος με αφαιρέσεις l Ιδέα: αν i > j τότε gcd(i, j) = gcd(i-j, j) l Αντίστοιχο πρόγραμμα 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) l Στη χειρότερη περίπτωση, ο αριθμός επαναλήψεων είναι της τάξης του max(a, b) l Στη μέση περίπτωση όμως, αυτός ο αλγόριθμος είναι καλύτερος του προηγούμενου

18Νίκος Παπασπύρου Εισαγωγή στον Προγραμματισμό Εύρεση Μ.Κ.Δ.(iii) u Αλγόριθμος του Ευκλείδη l Ιδέα: αντί πολλαπλών αφαιρέσεων χρησιμοποιούμε το υπόλοιπο της διαίρεσης l Αντίστοιχο πρόγραμμα 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) l Στη χειρότερη περίπτωση, ο αριθμός επαναλήψεων είναι της τάξης του log(a+b)

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

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

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

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

23Νίκος Παπασπύρου Εισαγωγή στον Προγραμματισμό Εύρεση Μ.Κ.Δ.(viii) u Το τελικό πρόγραμμα (συνέχεια) 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.

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

25Νίκος Παπασπύρου Εισαγωγή στον Προγραμματισμό Αθροιστικό πρόγραμμα(ii) u Συγκεκριμενοποίηση l άθροιση αριθμών αρχικοποίηση βρόχου ; repeat είσοδος ενός αριθμού ; άθροιση ; είσοδος ενός συμβόλου until σύμβολο διάφορο του + Δεύτερη προσέγγιση

26Νίκος Παπασπύρου Εισαγωγή στον Προγραμματισμό Αθροιστικό πρόγραμμα(iii) u Περαιτέρω συγκεκριμενοποίηση l άθροιση αριθμών sum := 0; repeat read(number); sum := sum + number; read(symbol) until symbol <> '+' Τρίτη προσέγγιση

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

28Νίκος Παπασπύρου Εισαγωγή στον Προγραμματισμό Αθροιστικό πρόγραμμα(v) u Το τελικό πρόγραμμα (συνέχεια) 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.

29Νίκος Παπασπύρου Εισαγωγή στον Προγραμματισμό Παρουσίαση και συντήρηση(i) u Ποιοτικά χαρακτηριστικά προγραμμάτων l Αναγνωσιμότητα απλότητα κατάλληλη επιλογή ονομάτων, π.χ. monthly_income incomeBeforeTaxes στοίχιση σχόλια l Φιλικότητα προς το χρήστη l Τεκμηρίωση l Συντήρηση l Ενημέρωση

30Νίκος Παπασπύρου Εισαγωγή στον Προγραμματισμό Παρουσίαση και συντήρηση(ii) u Στοίχιση l Πρόγραμμα και υποπρογράμματα program... procedure... function... δηλώσεις δηλώσεις δηλώσεις beginbeginbegin εντολές εντολές εντολές end.endend l Απλές εντολές if... thenwhile... dofor... do εντολή εντολή εντολή else εντολή

31Νίκος Παπασπύρου Εισαγωγή στον Προγραμματισμό Παρουσίαση και συντήρηση(iii) u Στοίχιση (συνέχεια) l Σύνθετες εντολές if... thenwhile... dofor... do beginbeginbegin εντολές εντολές εντολές endendend else begin εντολές end

32Νίκος Παπασπύρου Εισαγωγή στον Προγραμματισμό Παρουσίαση και συντήρηση(iv) u Στοίχιση (συνέχεια) l Σύνθετες εντολές (συνέχεια) repeatcase... ofwith... do εντολές τιμή 1 : εντολή 1 ; begin until... τιμή 2 : εντολή 2 ; εντολές... end τιμή n : εντολή n end