Κεφάλαιο 8
Η γλώσσα Pascal.
Εισαγωγή στην Pascal. Σχεδιάστηκε από τον διάσημο Ελβετό επιστήμονα της Πληροφορικής Nicklaus Wirth (1967) και αναθεωρήθηκε το 1972. Δημιουργήθηκε για να ξεπεραστούν τα μειονεκτήματα των γλωσσών προγραμματισμού της δεκαετίας του 60. Το όνομά της δόθηκε προς τιμήν του μαθηματικού και φιλοσόφου Blaise Pascal. Πολύ καλή ως διδακτικό εργαλείο εκμάθησης προγραμματισμού Η/Υ. Χρησιμοποιήθηκε τον πρώτο καιρό όμως και στην βιομηχανία. Πρόκειται για μία γλώσσα γενικής χρήσης, απλή, εύκολη στην εκμάθηση και πλήρης. Υποστηρίζει τις αρχές προγραμματισμού.
2
του
1/11/2013
Δομημένου
και
Τμηματικού
Κέρος Α. Ιωάννης
Ιδιαίτερα χαρακτηριστικά της Pascal. Δυνατότητα δημιουργίας νέων τύπων δεδομένων. Χρήση μεταβλητών τύπου δείκτη δυναμικής διαχείρισης της μνήμης.
(pointers)
και
δυνατότητα
Χρήση σύνθετων εντολών (compound statement) ως μία συμπαγής εντολή.
3
1/11/2013
Κέρος Α. Ιωάννης
Εισαγωγή στην Pascal. Όπως και όλες οι γλώσσες προγραμματισμού αναθεωρήθηκε πολλές φορές. Αρχικά είχε αδυναμία συμβολοσειρών (string).
στον
αποτελεσματικό
αρχείων
και
Σήμερα, θεωρείται πρότυπο στον προγραμματισμό υπολογιστών.
4
1/11/2013
Κέρος Α. Ιωάννης
Ορισμοί. Γλώσσα προγραμματισμού: Σύνολο κανόνων, συμβόλων και ειδικών λέξεων που χρησιμοποιούνται για την δημιουργία ενός προγράμματος. Συντακτικό: Σύνολο τυπικών κανόνων που προσδιορίζουν πως γράφονται έγκυρες εντολές σε μία γλώσσα προγραμματισμού. Σημασιολογία: Σύνολο κανόνων που προσδιορίζουν την σημασία των εντολών σε μία γλώσσα προγραμματισμού.
5
1/11/2013
Κέρος Α. Ιωάννης
Αλφάβητο της Pascal. Το επιτρεπτό σύνολο χαρακτήρων για την δημιουργία ενός προγράμματος είναι: Τα γράμματα του ελληνικού – λατινικού αλφαβήτου. Τα αριθμητικά ψηφία 0-9. Ειδικά σύμβολα +, -, *, ; κλπ.
6
1/11/2013
Κέρος Α. Ιωάννης
Κανόνες ονοματολογίας. Για να είναι αποδεκτό ένα όνομα μίας μεταβλητής ή σταθεράς στην Pascal, θα πρέπει να πληροί τους εξής κανόνες: 1. Να αποτελείται μόνο από γράμματα, ψηφία και την _ . 2. Να μην περιέχει κενά. 3. Να ξεκινά πάντα με γράμμα. 4. Να μην είναι το όνομα μίας δεσμευμένης λέξης. Είναι καλό τα ονόματα να είναι ενδεικτικά του περιεχομένου της μεταβλητής.
7
1/11/2013
Κέρος Α. Ιωάννης
Κανόνες ονοματολογίας. Αποδεκτά ονόματα μεταβλητών: plithos M_O Μη αποδεκτά ονόματα μεταβλητών: 1plithos
MO Write
8
Bath&mos 1/11/2013
Κέρος Α. Ιωάννης
Τύποι Δεδομένων της Pascal. Ορισμός: Ο τύπος των δεδομένων είναι μία τυπική περιγραφή των τιμών που μπορούν να αποθηκευτούν σε μία σταθερά ή μεταβλητή καθώς και των πράξεων που μπορούν να εκτελεστούν με τις τιμές αυτές. Απλοί τύποι της Pascal:
Σύνθετοι τύποι της Pascal:
Integer (Ακέραιος).
String (Αλφαριθμητικός).
Real (Πραγματικός). Boolean (Λογικός). Char (Χαρακτήρας).
9
1/11/2013
Κέρος Α. Ιωάννης
Integer. Πρόκειται για αρνητικούς και θετικούς ακεραίους από το -∞ έως το + ∞ (θεωρητικά). Παράδειγμα 4, -9 κλπ. Πρακτικά, όμως περιορίζονται από –MAXINT-1 έως +ΜΑΧΙΝΤ, όπου ο MAXINT είναι ο μεγαλύτερος ακέραιος που μπορεί να αναπαρασταθεί στον υπολογιστή, συνήθως MAXINT=32767. Επιτρεπτές πράξεις με integer:
+, -, *, /, div, mod. :=. >, >=, <, <=, =, <>.
10
1/11/2013
Κέρος Α. Ιωάννης
Integer (συνέχεια…). Συνηθισμένες υποκατηγορίες ακεραίων: Ονομασία
11
Εύρος τιμών
Μέγεθος
Byte
0..255
1 byte
Shortint
-128..127
1 byte
Integer
-32768..32767
2 bytes
Word
0..65535
2 bytes
Longint
-2148483648 .. 2147483647
4 bytes
1/11/2013
Κέρος Α. Ιωάννης
Real. Πρόκειται για αρνητικούς και θετικούς πραγματικούς από το -∞ έως το + ∞ (θεωρητικά). Παράδειγμα 4.56, -9.6 κλπ. Πρακτικά, όμως περιλαμβάνει ένα υποσύνολο των πραγματικών αριθμών, το οποίου το εύρος και η ακρίβεια των δεκαδικών ψηφίων εξαρτάται από τον τύπο του υπολογιστή και του μεταφραστικού προγράμματος. Για την Pascal ότι δεν είναι ακέραιος ή δεν είναι μέσα στα όρια των ακεραίων θεωρείται πραγματικός.
+, -, *, /. Επιτρεπτές πράξεις με real:
:=. >, >=, <, <=, =, <>.
12
1/11/2013
Κέρος Α. Ιωάννης
Real
(συνέχεια…).
Συνήθως πρόκειται για αριθμούς από 10-38 έως 1038 με 6 έως 20 σημαντικά ψηφία (ανάλογα με την έκδοση της Pascal). Πως εκφράζονται οι πραγματικοί αριθμοί στην Pascal;
13
4.934456 E +04
4.934456 x10+04
49344.56
49344.56 E -04
49344.56 x10-04
4.934456
1/11/2013
Κέρος Α. Ιωάννης
Real (συνέχεια…). Συνηθισμένες υποκατηγορίες πραγματικών: Ονομασία
14
Εύρος τιμών
Μέγεθος
Single
-1.5x10-45 .. 3.4x1038
4 bytes
Real
-2.9x10-39 .. 1.7x1038
6 bytes
Double
-5.0x10-324 .. 1.7x10308
8 bytes
Comp
-263+1..263-1
8 bytes
Extended
-3.4x10-4932 .. 1.1x104932
10 bytes
1/11/2013
Κέρος Α. Ιωάννης
Παραδείγματα πράξεων με Integer – Real. 27 DIV 6 16 DIV 17 36 DIV 6 27 MOD 6
15
4 0 6
16 MOD 17
3 16
36 MOD 6 8/2 9/2
0 4.0 4.5
1/11/2013
Κέρος Α. Ιωάννης
Boolean. Η τυπική περιγραφή του τύπου αυτού προέρχεται από την άλγεβρα Boole.
Οι τιμές των λογικών μεταβλητών μπορεί να είναι δύο: True και False. Επιτρεπτές πράξεις με boolean: and, or, not, xor. :=. =, <>.
16
1/11/2013
Κέρος Α. Ιωάννης
Λογικοί Τελεστές. Πίνακας αληθείας λογικών τελεστών:
17
P
Q
P and Q Σύζευξη
P or Q Διάζευξη
P xor Q Αποκλειστική διάζευξη
not P Άρνηση
True
True
True
True
False
False
True
False
False
True
True
False
False
True
False
True
True
True
False
False
False
False
False
True
1/11/2013
Κέρος Α. Ιωάννης
Char. Η περιγραφή των τιμών του τύπου αυτού εξαρτάται από το σύνολο των χαρακτήρων που διαθέτει ο υπολογιστής (ASCII). Στον κώδικα ASCII υπάρχει διάταξη των χαρακτήρων, για παράδειγμα : 0, 1, 2, …, 9, Α, Β, C, …, Z, a, b, c, …,z, Α, Β, Γ,…,Ω, α, β, γ, …, ω Επιτρεπτές πράξεις με char: <. <=, >, >=, =, <>. :=.
18
1/11/2013
Κέρος Α. Ιωάννης
String. Πρόκειται για μία σειρά από 255 το πολύ χαρακτήρες. (Εάν δεν δηλωθεί το μήκος του λαμβάνεται το μέγιστο, δηλαδή 255 χαρακτήρες)
Παραδείγματα: ‘Τομέας Πληροφορικής’ ‘Vathmos’ ‘1236’
Προσοχή !!!
19
Vathmos
Μεταβλητή
‘Vathmos’
Περιεχόμενο μεταβλητής τύπου string 1/11/2013
Κέρος Α. Ιωάννης
Οι () πάντα προηγούνται
Αριθμητικές εκφράσεις. Πρόκειται για απεικονίσεις αριθμητικών παραστάσεων με σταθερές, μεταβλητές, συναρτήσεις, αριθμητικά σύμβολα και παρενθέσεις. Προτεραιότητα αριθμητικών τελεστών
1. *, /, DIV, MOD 2. +, 20 DIV 3 *4 20 MOD 3 *4
24 8
6*3/2*4
36
6*3/(2*4) 6+3/(2*4)
20
Σε ίδια προτεραιότητα εκτελούνται από αριστερά προς τα δεξιά
2.25 6.375 1/11/2013
Κέρος Α. Ιωάννης
Οι () πάντα προηγούνται
Λογικές εκφράσεις. Πρόκειται για απεικονίσεις παραστάσεων με σταθερές, μεταβλητές, συναρτήσεις, αριθμητικά σύμβολα, σχεσιακούς και λογικούς τελεστές και παρενθέσεις. Μπορούν να πάρουν μία λογική τιμή (True/False). Προτεραιότητα τελεστών 1. NOT 2. *, /, DIV, MOD, AND 3. +, -, XOR,OR
Σε ίδια προτεραιότητα εκτελούνται από αριστερά προς τα δεξιά
4. =, <>, >, >=, <, <=
21
1/11/2013
Κέρος Α. Ιωάννης
Λογικές εκφράσεις (συνέχεια). (2<>10) or (6<3) and (4<9) 20 div 3 <=6
True True
Προσοχή !!! ΛΑΘΟΣ
x>1 and x<10 ΣΩΣΤΟ (x>1) and (x<10)
22
1/11/2013
Κέρος Α. Ιωάννης
Δομή Προγράμματος Pascal. Program όνομα (input, output); Const pososto=18; Μονάδες εισόδου – εξόδου η αρχεία που θα nomos=‘Kilkis’; χρησιμοποιήσει το max=100.5; πρόγραμμα. (Προαιρετικό) ok=True; Type Δηλώσεις νέων τύπων (εκτός ύλης) Var epidoma, MO: real; eponimo, onoma: string[25]; Δηλώσεις Procedures - Functions Begin . .
23
End.
Επικεφαλίδα
Δηλώσεις σταθερών
Δηλώσεις νέων τύπων (Εάν υπάρχουν)
Δηλώσεις μεταβλητών Δηλώσεις υποπρογραμμάτων (Εάν υπάρχουν) Κύριο πρόγραμμα
1/11/2013
Κέρος Α. Ιωάννης
Παράδειγμα Προγράμματος Pascal. Program example; (PC8Exe1.pas) Const p=3.14; Var Akt,Emb: real; Begin Write(‘Δώστε την ακτίνα: ’); Readln(Akt); Emb:=p*Akt*Akt; Write(‘Το εμβαδόν είναι: ’,Emb); End.
24
1/11/2013
Προσοχή στα ; Κάθε εντολή τελειώνει με ;
Προσοχή στο End.
Κέρος Α. Ιωάννης