Αλγοριθμική & Δομές Δεδομένων- Γλώσσα Προγραμματισμού Ι (PASCAL) (PASCAL )Βασικά στοιχεία
Αναγνωριστικά (Identifiers) Τα αναγνωριστικά είναι ονόματα με τα οποία μπορούμε να αναφερόμαστε σε αποθηκευμένες τιμές. Αναγνωριστικά είναι: Μεταβλητές (Variables) Σταθερές (Constants) Το όνομα του προγράμματος 2
Κανόνες Ονοματολογίας Πρέπει να ξεκινούν με γράμμα του αγγλικού αλφάβητου. Μετά μπορούμε να χρησιμοποιήσουμε αλφαριθμητικούς χαρακτήρες (a-z, A-Z, 0-9, _). Δεν πρέπει να περιέχουν ειδικούς χαρακτήρες (: ~! @ # $ % ^ & * ( ) _ + ` - = { } [ ] : " ; ' < >?,. / \). Η Pascal δεν ξεχωρίζει τα πεζά από τα κεφαλαία γράμματα (not case sensitive). 3
Σταθερές (Constants) Είναι αναγνωριστικά. Μπορούν να έχουν μόνο μία τιμή. Η τιμή τους αποδίδεται στην αρχή του προγράμματος. Η τιμή είναι αποθηκευμένη σαν σταθερά και δεν μπορεί να αλλάξει. Σύνταξη: const Identifier1 = value; Identifier2 = value; 4
Παράδειγμα(1) const Name = 'Peter the Great'; FirstLetter = 'p'; Year = 2005; pi = 3.1415926535897932; UsingNetscapeNavigator = TRUE; 5
Μεταβλητές (Variables) Είναι παρόμοιες με τις σταθερές. Οι τιμές τους μπορεί να αλλάζουν κατά τη διάρκεια εκτέλεσης του προγράμματος. Πριν τις χρησιμοποιήσουμε θα πρέπει να τις δηλώσουμε. Σύνταξη: o var IdentifierList1 : DataType1; IdentifierList2 : DataType2; H IdentifierList είναι μια σειρά από αναγνωριστικά, χωρισμένα με κόμματα και του ιδίου τύπου δεδομένων. 6
Παράδειγμα(2) var age, year, bathmos : integer; circumference : real; LetterGrade : char; Epityxia : Boolean; 7
Βασικοί Τύποι Δεδομένων integer ακέραιοι με τιμές από -32768 έως 32767 LongInt ακέραιοι με τιμές από -2^31 έως 2^31-1 real πραγματικοί με τιμές από 3.4x10-38 έως 3.4x10 38 char χαρακτήρες, όπως π.χ. 'a', 'B', '+' Boolean παίρνει μόνο δύο τιμές true / false String Αλφαριθμητικό μέγιστου μεγέθους 255 χαρακτήρων, π.χ. «Hello» 8
Εκχώρηση Τιμής Εκχώρηση (assignment) καλείται η διαδικασία απόδοσης τιμής σε μια μεταβλητή Σύνταξη: όνομα_μεταβλητής := έκφραση; Η έκφραση μπορεί να είναι μία μόνο τιμή apotelesma := 385.456; ή μπορεί να είναι μια πολύπλοκη αριθμητική παράσταση apotelesma := 37573.5 * 37593 + 385.8 / 367.1; 9
Αριθμητικοί Τελεστές Τελεστής Πράξη Τελεστέοι Αποτέλεσμα + Πρόσθεση real ή integer real ή integer - Αφαίρεση real ή integer real ή integer * Πολλαπλασιασμός real ή integer real ή integer / Πραγματική διαίρεση real ή integer real div Πηλίκο ακέραιης διαίρεσης integer integer mod Υπόλοιπο ακέραιης διαίρεσης integer integer 10
Παρατηρήσεις Οι τελεστές div και mod εργάζονται μόνο με ακέραιες τιμές. Ο τελεστής / εργάζεται και με ακέραιες και με πραγματικές τιμές αλλά έχει πάντα ως αποτέλεσμα μια πραγματική τιμή. Οι υπόλοιποι τελεστές εργάζονται και με ακέραιες και με πραγματικές τιμές. Για τους τελεστές που δέχονται και ακέραιες και πραγματικές τιμές, το αποτέλεσμα θα είναι ακέραιος αριθμός μόνο αν όλοι οι τελεστέοι είναι ακέραιοι, ενώ θα είναι πραγματικός αριθμός αν έστω και ένας από τους τελεστέους είναι πραγματικός. 11
Κανόνες Προτεραιότητας Πράξεων * / div mod + - Πρώτα υπολογίζονται όλες οι εκφράσεις που βρίσκονται μέσα σε παρενθέσεις, ξεκινώντας από την πιο εσωτερική παρένθεση και συνεχίζοντας προς την πιο εξωτερική. Μετά γίνονται όλοι οι πολλαπλασιασμοί και οι διαιρέσεις, με σειρά από αριστερά προς τα δεξιά. Μετά γίνονται όλες οι προσθέσεις και οι αφαιρέσεις, με σειρά από αριστερά προς τα δεξιά. 12
Πρόγραμμα Program Prosthesi; Var Num1, Num2, Sum : Integer; Begin Write('Input number 1:'); Readln(Num1); Write('Input number 2:'); Readln(Num2); Sum := Num1 + Num2; Writeln('Sum :',Sum); Readln; End. 13
Επεξήγηση Προγράμματος (1/2) Σκοπός να διαβάσει δύο ακεραίους από το πληκτρολόγιο και να τυπώσει το άθροισμα αυτών στην οθόνη. Var Num1, Num2, Sum : Integer; o Δήλωση μεταβλητών. Αυτό γίνεται ξεκινώντας με το Var. Δηλώνουμε τα ονόματα των μεταβλητών που θα χρησιμοποιήσουμε καθώς και τον τύπο τους. Readln(Num1); o Με την συνάρτηση Readln(όνομα_μεταβλητής) το πρόγραμμα περιμένει μέχρι να δοθεί τιμή στην μεταβλητή από το πληκτρολόγιο. 14
Επεξήγηση Προγράμματος (2/2) Sum := Num1 + Num2; Γίνεται εκχώρηση τιμής στην μεταβλητή Sum, το αποτέλεσμα της πρόσθεσης των δύο μεταβλητών. Writeln('Sum :',Sum); Τυπώνει το αποτέλεσμα της πρόσθεσης, δηλαδή την τιμή της μεταβλητής Sum. 15
Παρατηρήσεις Η εντολή Write τυπώνει στην οθόνη και ο κέρσορας δεν αλλάζει γραμμή, ενώ με την εντολή Writeln τυπώνει στην οθόνη και μετά ο κέρσορας αλλάζει γραμμή. Με το := κάνουμε εκχώρηση τιμής σε μεταβλητή μέσα στο πρόγραμμα. Ισχύουν οι πράξεις: +(πρόσθεση), (αφαίρεση), *(πολλαπλασιασμός), /(διαίρεση), ( )(παρενθέσεις). 16
Ανακεφαλαίωση Αναγνωριστικά Κανόνες Ονοματολογίας Σταθερές Μεταβλητές Βασικοί Τύποι Δεδομένων Εκχώρηση Τιμής Αριθμητικοί Τελεστές 17
Άσκηση 1 Γράψτε σε Pascal τον κώδικα που θα σας βγάζει το μήνυμα Hello, world! Λύση program Hello_world; Begin write('hello, world!'); readln; end. 18
Άσκηση 2 Να γράψετε το πρόγραμμα που θα εμφανίζει το άθροισμα δύο ακέραιων αριθμών. 19
Λύση Άσκησης 2 program a8roisma_dyo_ari8mwn; Var a1,a2,sum:integer; begin writeln(το πρόγραμμα θα εμφανίζει το άθροσμα δύο ακέραιων αριθμών που θα εισάγει ο χρήστης'); write( Δώσε τον αριθμό a1:'); read(a1); write( Δώσε τον αριθμό a2 :'); read(a2); sum:=a1+a2;{πρόσθεση} write( Το άθροισμα είναι:'); writeln(sum); readln; end. 20
Τέλος Κεφαλαίου