Προγραμματισμός PASCAL 1
PASCAL Η PASCAL σχεδιάστηκε από τον Worth το 1968 στη Ζυρίχη, αρχικά σαν εργαλείο για τη διδασκαλία προγραμματισμού. Είναι γλώσσα για σειριακό προγραμματισμό. 2
Απλή και εύκολη στην εκμάθηση Περιλαμβάνει ικανοποιητικό σύνολο εντολών ελέγχου Διαχειρίζεται πολλούς τύπους δεδομένων Είναι γλώσσα γενικού σκοπού Πλεονεκτήματα Υπάρχουν μεταφραστές της PASCAL για τα περισσότερα υπολογιστικά συστήματα Ιδανική για διδασκαλία βασικών αρχών προγραμματισμού 3
ΒΑΣΙΚΑ ΣΤΟΙΧΕΙΑ ΕΝΟΣ PASCAL ΠΡΟΓΡΑΜΜΑΤΟΣ Σύνολο χαρακτήρων Γράμματα : a.. Z, A.. Z Ψηφία : 0..9 Ειδικά σύμβολα: + - * / :,. = < > ( ) ^.. { } [ ] 4
ονόματα αριθμοί χαρακτήρες αλυσίδες χαρακτήρων τελεστές διαχωριστές λέξεις κλειδιά Λεξιλόγιο 5
Ονόματα Αποτελούνται από ένα γράμμα που ακολουθείται από έναν ή οποιοδήποτε αριθμό γραμμάτων και ψηφίων π.χ. Value1, result, mkd, Το μήκος τους είναι μέχρι και 12 χαρακτήρες επιτρέπεται η χρήση του χαρακτήρα _, p.x. value_1, value_of_x δεν επιτρέπεται η χρήση ονομάτων με ειδική σημασία στην PASCAL 6
Επιτρεπτά ονόματα Μη επιτρεπτά Ονόματα Αιτιολογία Name Elem_number K1 ForNumbers F10KL2 Name s Elem-Number Elem Number For 2Def Περιέχει το χαρακτήρα Περιέχει το χαρακτήρα - Περιέχει κενό χαρακτήρα Ειδική σημασία στην Pascal Αρχίζει από ψηφίο 7
ακέραιοι (integers). Ακολουθίες ψηφίων που μπορεί να προηγείται το πρόσημο + (προαιρετικό) ή - Οι τιμές είναι : [ -MAXINT,..-1,0,+1,..,+MAXINT ] MAXINT=32767 Αριθμοί 8
Επιτρεπτοί ακέραιοι Μη επιτρεπτοί ακέραιοι Αιτιολογία 45 0-8 32000 43,600 2.5786 Περιέχει χαρακτήρα μηψηφίο, Περιέχει χαρακτήρα μηψηφίο. 9
Αριθμοί αρνητικοί ή θετικοί που μπορεί να περιέχουν και δεκαδικά ψηφία. Περιέχουν υποδιαστολή ή είναι εκφρασμένοι σε εκθετική μορφή π.χ. 38Ε27 38x10 27-0,092Ε-19-0,092x10-19 Πραγματικοί / real 10
Επιτρεπτοί πραγματικοί Μη επιτρεπτοί Πραγματικοί Αιτιολογία 23.56-49.375 9674785.0 34Ε21-14.487Ε6 23. 45,89 1.345.78 36Ε2*6-8.2Ε4.1 Δεν έχει δεκαδικά ψηφία Περιέχει κόμμα Περιέχει 2 δεκαδικά ψηφία Περιέχει το χαρακτήρα * Ο εκθέτης δεν είναι ακέραιος 11
είναι χαρακτήρες από το σύνολο των χαρακτήρων που υποστηρίζει το υπολογιστικό σύστημα μέσα σε αποστρόφους. Π.χ. α, Α, &, 4 5 διαφέρει από το 5 Α διαφέρει από το α ο κενός χαρακτήρας Χαρακτήρες 12
Αλυσίδα χαρακτήρων (string) είναι μια ακολουθία χαρακτήρων μεταξύ αποστρόφων. Π.χ. algorithm, Pascal Vers, 5 236, 5+2 Αλυσίδες Χαρακτήρων 13
Είναι σύμβολα που δηλώνουν μια αριθμητική ή λογική πράξη μεταξύ αριθμητικών ή αλφαριθμητικών δεδομένων. Αριθμητικοί σύγκρισης λογικοί Τελεστές 14
15
Τελεστές σύγκρισης = <>ή >< < > <= ή =< >= ή => Λειτουργία Ισότητα Διάφορο Μικρότερο Μεγαλύτερο Μικρότερο ή ίσο Μεγαλύτερο ή ίσο Σύνταξη X=Y X<>Y X><Y X<Y X>Y X<=Y ή X=<Y X>=Y ή X=>Y 16
Λογικοί Τελεστές X Y NOTX XANDYXORY A Α Ψ Α Α A Ψ Ψ Ψ Α Ψ Α Α Ψ Α Ψ Ψ Α Ψ Ψ 17
Είναι χαρακτήρες με συγκεκριμένη λειτουργία στην PASCAL. := ( ) καταχώρηση παρενθέσεις [ ] αγκύλες για τους πίνακες και τα σύνολα,.;: σημεία στίξης Διαχωριστές 18
Δεσμευμένες Λέξεις And end array begin case const div do downto else mod file for function goto if in label Nil not of or packed procedure program record repeat set then to type until var while with 19
integer : τα δεδομένα παίρνουν ακέραιες τιμές real : τα δεδομένα παίρνουν πραγματικές τιμές boolean : παίρνουν μόνο από τις δύο λογικές τιμές TRUE ή FALSE char : δέχονται σαν τιμές ένα χαρακτήρα π.χ. a, G, 4, & string : αλυσίδα χαρακτήρων π.χ. Monday, Στέφανος Τύποι Δεδομένων 20
Εκφράσεις Σειρά προτεραιότητας NOT * / DIV MOD AND + - OR = <> > < >= <= 21
Δομή ενός προγράμματος PASCAL Επικεφαλίδα του προγράμματος Τμήμα Δηλώσεων επιγραφές, σταθερές, τύποι, μεταβλητές υποπρογράμματα Τμήμα προτάσεων 22
Επικεφαλίδα Προγραμματος PROGRAM όνομα (αρχείο1,..); π.χ. Program Factorial; Program Second_example; Program test(input,output); 23
Περιοχή Σταθερών CONST όνομα = τιμή; π.χ. CONST meres=5; pi=3.14159; flag=true; aster= * ; 24
Περιοχή Μεταβλητών VAR όνομα : τύπος δεδομένων; π.χ. VAR letter:char; aktina:real; ok:boolean; mikos:integer; weekday:day; 25
Τελεστής Ανάθεσης Όνομα μεταβλητής:= έκφραση; π.χ. a:=5+2; b:=4.1*2; c:= F ; x:=3>1; 26
Εισαγωγή τιμών από τη μονάδα εισόδου και ανάθεση τους σε μεταβλητές READ(input,v1,v2,..vn) ή READ(v1,v2,..vn); π.χ. READ(x); READ(a,b); Εντολή READ 27
Η επόμενη εισαγωγή δεδομένων γίνεται από την αρχή της επόμενης σειράς δεδομένων. READLN(input,v1,v2,..vn) ή READLN(v1,v2,..vn); π.χ. READLN(x); READLN(a,b); Εντολή READLN 28
Παράδειγμα της READLN Δεδομένα: 23 4 7 10 8 79 6 84 91 30 readln(a,b);readln(c);readln(d,e); αποτέλεσμα: a=23, b=4, c=10, d=84, e=91 29
Εντολή WRITE Μεταφέρει δεδομένα στη μονάδα εξόδου WRITE(output,v1,v2,..vn) ή WRITE(v1,v2,..vn); π.χ. WRITE(x); WRITE(a,b); WRITE( a=,a, b=,b, sum=,a+b); 30
Η επόμενη εντολή εξόδου θα ξεκινήσει την εγγραφή δεδομένων στη νέα σειρά WRITELN(output,v1,v2,..vn) ή WRITELN(v1,v2,..vn); π.χ. WRITELN(x); WRITELN(a,b); WRITELN; κενή γραμμή Εντολή WRITELN 31
Παράδειγμα της WRITELN Writeln(5+2,5-2,5*2); writeln(5 div 2, 5 mod 2); αποτέλεσμα: 7 3 10 2 1 32
Program όνομα; const δήλωση σταθεράς..δήλωση σταθ; type δήλωση τύπου..δήλωση τύπου; var δήλωση μεταβλητής..δήλ.μεταβλ ; ορισμοί διαδικασιών και συναρτήσεων begin πρόταση..πρόταση; end. 33
Παράδειγμα προγράμματος στην PASCAL Program sum_dif(input,output); var x,y,sum,dif:integer; begin read(x,y); sum:=x+y; dif:=x-y; writeln( άθροισμα=,sum); writeln( διαφορά=,dif); end. επικεφαλίδα δηλώσεις προτάσεις 34