380 likes | 558 Views
Προγραμματισμός PASCAL Πληροφορική Γ' Λυκείου μέρος γ. ΠΡΥ019 - Πληροφορική Δρ.Βάσος Βασιλείου. PASCAL. Η PASCAL σχεδιάστηκε από τον Worth το 1968 στη Ζυρίχη, αρχικά σαν εργαλείο για τη διδασκαλία προγραμματισμού. Είναι γλώσσα για σειριακό προγραμματισμό. Πλεονεκτήματα.
E N D
Προγραμματισμός PASCALΠληροφορική Γ' Λυκείουμέρος γ ΠΡΥ019 - Πληροφορική Δρ.Βάσος Βασιλείου
PASCAL • Η PASCALσχεδιάστηκε από τον Worth το 1968 στη Ζυρίχη, αρχικά σαν εργαλείο για τη διδασκαλία προγραμματισμού. • Είναι γλώσσα για σειριακό προγραμματισμό.
Πλεονεκτήματα • Απλή και εύκολη στην εκμάθηση • Περιλαμβάνει ικανοποιητικό σύνολο εντολών ελέγχου • Διαχειρίζεται πολλούς τύπους δεδομένων • Είναι γλώσσα γενικού σκοπού • Υπάρχουν μεταφραστές της PASCAL για τα περισσότερα υπολογιστικά συστήματα • Ιδανική για διδασκαλία βασικών αρχών προγραμματισμού
ΒΑΣΙΚΑ ΣΤΟΙΧΕΙΑ ΕΝΟΣ PASCALΠΡΟΓΡΑΜΜΑΤΟΣ • Σύνολο χαρακτήρων • Γράμματα : a. . Z , A. . Z • Ψηφία : 0. .9 • Ειδικά σύμβολα: + - * / : , . ΄= < > ( ) ^ .. { } [ ]
Λεξιλόγιο • ονόματα • αριθμοί • χαρακτήρες • αλυσίδες χαρακτήρων • τελεστές • διαχωριστές • λέξεις κλειδιά
Ονόματα • Αποτελούνται από ένα γράμμα που ακολουθείται από έναν ή οποιοδήποτε αριθμό γραμμάτων και ψηφίων π.χ. Value1, result, mkd, • Το μήκος τους είναι μέχρι και 12 χαρακτήρες • επιτρέπεται η χρήση του χαρακτήρα “_”, p.x. value_1, value_of_x • δεν επιτρέπεται η χρήση ονομάτων με ειδική σημασία στην PASCAL
Αριθμοί • ακέραιοι (integers). Ακολουθίες ψηφίων που μπορεί να προηγείται το πρόσημο + (προαιρετικό) ή - • Οι τιμές είναι : [ -MAXINT,..-1,0,+1,..,+MAXINT ] • MAXINT=32767
Πραγματικοί / real Αριθμοί αρνητικοί ή θετικοί που μπορεί να περιέχουν και δεκαδικά ψηφία. • Περιέχουν υποδιαστολή ή είναι • εκφρασμένοι σε εκθετική μορφή π.χ. 38Ε27 38x1027 -0,092Ε-19 -0,092x10-19
Χαρακτήρες • είναι χαρακτήρες από το σύνολο των χαρακτήρων που υποστηρίζει το υπολογιστικό σύστημα μέσα σε αποστρόφους. Π.χ. ‘α’, ‘Α’, ‘&’, ‘4’ • ‘5’ διαφέρει από το 5 • ‘Α’ διαφέρει από το ‘α’ • ‘ ‘ ο κενός χαρακτήρας
Αλυσίδες Χαρακτήρων • Αλυσίδα χαρακτήρων (string) είναι μια ακολουθία χαρακτήρων μεταξύ αποστρόφων. Π.χ. ’algorithm’ , ‘Pascal Vers’, ‘5’ ‘236’, ‘5+2’
Τελεστές • Είναι σύμβολα που δηλώνουν μια αριθμητική ή λογική πράξη μεταξύ αριθμητικών ή αλφαριθμητικών δεδομένων. • Αριθμητικοί • σύγκρισης • λογικοί
Διαχωριστές • Είναι χαρακτήρες με συγκεκριμένη λειτουργία στην PASCAL. • := καταχώρηση • ( ) παρενθέσεις • [ ] αγκύλες για τους πίνακες και τα σύνολα • ,.;: σημεία στίξης
Nil set not then of to or type packed until procedure var program while record with repeat Δεσμευμένες Λέξεις • And end • array file • begin for • case function • const goto • div if • do in • downto label • else mod
Τύποι Δεδομένων • integer : τα δεδομένα παίρνουν ακέραιες τιμές • real : τα δεδομένα παίρνουν πραγματικές τιμές • boolean : παίρνουν μόνο από τις δύο λογικές τιμές TRUE ή FALSE • char : δέχονται σαν τιμές ένα χαρακτήρα π.χ. ‘a’ , ‘G’ , ‘4’ , ‘&’ • string : αλυσίδα χαρακτήρων π.χ. ‘Monday’, ‘Στέφανος’
Εκφράσεις Σειρά προτεραιότητας • NOT • * / DIV MOD AND • + - OR • = <> > < >= <=
Αριθμητικές Συναρτήσεις • ABS(num) abs(-2.54)=2.54 • COS(num) • EXP(num) • FRAC(num) frac(3.78)=0.78 • INT(num) int(3.78)=3.0 • SQR(num) sqr(2)=4 • SQRT(num) sqrt(9)=3
Βαθμωτές Συναρτήσεις • PRED(num) π.χ. Pred(10)=9 • ODD(num) -περιττός π.χ. Odd(7)=true • SUCC(num) π.χ. Succ(10)=11
Συναρτήσεις Μετατροπής • ORD(num) π.χ. (A,B,C,D,E,F) Ord(C)=2 • ROUND(num) π.χ. Round(3.78)=4 • TRUNC(num) π.χ. Trunc(3.78)=3
Δομή ενός προγράμματος PASCAL • Επικεφαλίδα του προγράμματος • Τμήμα Δηλώσεων • επιγραφές, σταθερές, • τύποι, μεταβλητές • υποπρογράμματα • Τμήμα προτάσεων
Επικεφαλίδα Προγραμματος PROGRAM όνομα (αρχείο1,..); π.χ. ProgramFactorial; Program Second_example; Program test(input,output);
Περιοχή Σταθερών CONST όνομα = τιμή; π.χ. CONST meres=5; pi=3.14159; flag=true; aster=‘*’;
Περιοχή Τύπων TYPE όνομα = σύνολο τιμών; π.χ. TYPEday=(Mon,Tues,Wed); number=integer; color=(blue,red,green); DayNum=1..31;
Περιοχή Μεταβλητών VAR όνομα : τύπος δεδομένων; π.χ. VAR letter:char; aktina:real; ok:boolean; mikos:integer; weekday:day;
Τελεστής Ανάθεσης Όνομα μεταβλητής:= έκφραση; π.χ. a:=5+2; b:=4.1*2; c:=‘F’; x:=3>1;
Εντολή READ Εισαγωγή τιμών από τη μονάδα εισόδου και ανάθεση τους σε μεταβλητές READ(input,v1,v2,..vn) ή READ(v1,v2,..vn); π.χ. READ(x); READ(a,b);
Εντολή READLN Η επόμενη εισαγωγή δεδομένων γίνεται από την αρχή της επόμενης σειράς δεδομένων . READLN(input,v1,v2,..vn) ή READLN(v1,v2,..vn); π.χ. READLN(x); READLN(a,b);
Παράδειγμα της 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
Εντολή WRITE Μεταφέρει δεδομένα στη μονάδα εξόδου WRITE(output,v1,v2,..vn) ή WRITE(v1,v2,..vn); π.χ. WRITE(x);WRITE(a,b); WRITE(‘a=‘,a,’b=‘,b,’sum=‘,a+b);
Εντολή WRITELN Η επόμενη εντολή εξόδου θα ξεκινήσει την εγγραφή δεδομένων στη νέα σειρά WRITELN(output,v1,v2,..vn) ή WRITELN(v1,v2,..vn); π.χ. WRITELN(x);WRITELN(a,b); WRITELN; κενή γραμμή
Παράδειγμα της WRITELN Writeln(5+2,5-2,5*2); writeln(5 div 2, 5 mod 2); αποτέλεσμα: 7 3 10 2 1
Program όνομα; const δήλωση σταθεράς..δήλωση σταθ; type δήλωση τύπου..δήλωση τύπου; var δήλωση μεταβλητής..δήλ.μεταβλ; ορισμοί διαδικασιών και συναρτήσεων begin πρόταση ..πρόταση; end.
Παράδειγμα προγράμματος στην 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. δηλώσεις προτάσεις