Προγραμματισμός PASCAL 1
Εντολές Διακλάδωσης Εντολή IF/THEN Eντολή IF/THEN/ELSE Ένθετη Διακλάδωση Πολλαπλή Διακλάδωση 2
Εντολή IF-THEN (2) READLN (X,Y); IF X>Y THEN WRITELN( Η MΕΤΑΒΛΗΤΗ Χ ΕΙΝΑΙ ΜΕΓΑΛΥΤΕΡΗ ΤΗΣ ΜΕΤΑΒΛΗΤΗΣ Υ ); WRITELN( ΤΕΛΟΣ ); 4
Εντολή IF-THEN (3) READLN(X,Y); IF X>=Y THEN BEGIN X:=X+Y; Y:=Y-5; END; WRITELN(X,Y); 5
Εντολή IF-THEN-ELSE IF <συνθήκη> THEN <διαδικασία 1> ELSE <διαδικασία 2>; ψευδής Διαδικασία2 συνθήκη αληθής Διαδικασία1 Επόμενη εντολή 6
Εντολή IF-THEN-ELSE (2) IF K>15 THEN K:=K+5 ELSE K:=K-5; WRITELN(K); IF Q>=100 THEN BEGIN WRITE( ΕΚΠΤΩΣΗ ); COST:=Q*6.5 END ELSE BEGIN WRITE( ΧΩΡΙΣ ΕΚΠΤΩΣΗ); COST:=Q*7 END; WRITELN( ΤΕΛΟΣ ); 7
Ένθετες Διακλαδώσεις IF <συνθήκη> THEN IF <συνθήκη> THEN.. IF <συνθήκη> THEN <Διαδικασία> 8
Ένθετες Διακλαδώσεις (2) συνθήκη1 όχι ναι συνθήκη2 όχι ναι συνθήκην όχι ναι διαδικασία Έπόμενη εντολή 9
Ένθετες Διακλαδώσεις (3) IF a<0 THEN IF b>0 THEN IF c=0 THEN BEGIN WRITELN( negative ); WRITELN( positive ); WRITELN( zero ); END; WRITELN( ΤΕΛΟΣ ); 10
Πολλαπλή Διακλάδωση CASE <έκφραση επιλογής> OF <τιμή επιλογής >:<διαδικασία>; <τιμή επιλογής >:<διαδικασία>;. <τιμή επιλογής >:<διαδικασία>; ELSE <εναλλακτική διαδικασία> END; 11
Πολλαπλή Διακλάδωση (2) διαδικασία1 διαδικασία3 διαδικασία2 διαδικασίαν Εναλλακτική διαδικασία 12
Πολλαπλή Διακλάδωση (3) READLN(GRAMMA); CASE GRAMMA OF A : WRITELN( ΑΡΙΣΤΟΣ ); B : WRITELN( ΠΟΛΥ ΚΑΛΟΣ ); C : WRITELN( ΚΑΛΟΣ ); D : WRITELN( ΜΕΤΡΙΟΣ ); E : WRITELN( ΚΑΚΟΣ ) ELSE WRITELN( ΛΑΘΟΣ ΧΑΡΑΚΤΗΡΑΣ ) END; WRITELN( ΤEΛΟΣ ); 13
Πολλαπλή Διακλάδωση (3) CASE MONTH OF END; 1,3,5,7, 8,10,12 : DAYS:=31; 4,6,9,11 : DAYS:=30; 2 : IF (YEAR MOD 4=0) THEN DAYS:=29 ELSE DAYS:=28 14
Επαναληπτικές Δομές FOR /DO WHILE/DO REPEAT/UNTIL Ένθετες Επαναληπτικές Δομές 15
Επαναληπτκή Δομή FOR-DO FOR <μεταβλητή ελέγχου>:= <αρχική τιμή> ΤΟ <τελική τιμή> DO <σώμα της Δομής>; 16
Επαναληπτκή Δομή FOR-DO (2) m -μετρητής m:=1 * όχι * m<=5 ναι A:=a*b * FOR M:=1 TO 5 DO A:=A*B; m:=m+1 * 17
Επαναληπτκή Δομή FOR-DO (3) m -μετρητής m:=5 * * M>=0 ναι όχι A:=a*b * FOR M:=5 DOWNTO 0 DO A:=A*B; m:=m-1 * 18
Εντολή WHILE-DO WHILE <συνθήκη> DO <συνθήκη> 19
Εντολή WHILE-DO (2) m -μετρητής M:=1; while m<=5 do begin όχι m:=1 m<=5 ναι A:=a*b a:=a*b; m:=m+1 end; m:=m+1 20
Εντολή WHILE-DO (3) m -μετρητής M:=1; repeat a:=a*b; όχι m:=1 m<=5 ναι A:=a*b m:=m+1 until m>5; m:=m+1 21
Διαφορές Επαναληπτικών Δομών Στην εντολή WHILE/DO πρώτα ελέγχεται η συνθήκη και μετά ανάλογα, εκτελείται ή όχι το σώμα της δομής. Στην εντολή REPEAT/UNTIL πρώτα εκτελείται μιά φορά το σώμα της δομής και μετά ελέγχεται η συνθήκη. 22
Διαφορές Επαναληπτικών Δομών (2) Στην εντολή WHILE/DO το σώμα δομής μπορεί να μην εκτελεστεί ούτε μιά φορά. Στην εντολή REPEAT/UNTIL εκτελείται πάντοτε τουλάχιστον μιά φορά. Η εντολή WHILE/DO σταματά τη λειτουργία της όταν η συνθήκη γίνει ψευδής. Η εντολή REPEAT/UNTIL σταματά τη λειτουργία της όταν η συνθήκη γίνει αληθής. 23
Διαφορές Επαναληπτικών Δομών (3) Στην εντολή WHILE/DO το σώμα της δομής, όταν αποτελείται από 2 ή περισσότερες εντολήες, πρέπει να τοποθετείται μεταξύ των εντολών BEGIN και END. Στην εντολή REPEAT/UNTIL δε χρειάζονται τα BEGIN και END. Όταν το σώμα της δομής αποτελείται από μία εντολή τότε, στη δομή WHILE/DO πρέπει να συνοδεύεται από το σύμβολο ; Στην εντολή REPETA/UNTIL το σύμβολο ; δεν είναι απαραίτητο. 24
Τύποι Δεδομένων Integer real char string boolean 25
Δεδομένα Βαθμωτού Τύπου TYPE όνομα = σύνολο τιμών; π.χ. TYPE day=(mon,tues,wed); number=integer; color=(blue,red,green); DayNum=1..31; 26
TYPE DAYS=(Deytera,Triti,Tetarti,Pempti, Paraskevi,Sabbato,Kiriaki); VAR Δεδομένα Βαθμωτού Τύπου (2) Argia=Sabbato..Kiriaki; meres:days; weekend:argia; ergasimes:deytera..paraskevi; 27
Δεδομένα Βαθμωτού Τύπου (3) Οι τιμές βαθμωτού τύπου είναι διατεταγμένες, σύμφωνα με τη σειρά που εμφανίζονται στον ορισμό του τύπου. Π.χ. Η τιμή Triti είναι μεγαλύτερη από την τιμή Deytera διότι τοποθετήθηκε μετά. Οι τιμές βαθμωτού τύπου δε μπορούν να χρησιμοποιηθούν σε συνδυασμό με τις εντολές READ/READLN και WRITE/WRITELN. Γι αυτό χρησιμοποιείται η εντολή CASE. 28
FOR ergasimes:=deytera TO Paraskevi DO CASE ergasimes OF END; Deytera Triti Tetarti Pempti :writeln(δευτερα); :writeln(τριτη); :writeln(τεταρτη); :writeln(πεμπτη); Paraskevi :writeln(παρασκευη); 29
Αριθμητικές Συναρτήσεις ABS(num) FRAC(num) INT(num) SQR(num) SQRT(num) abs(-2.54)=2.54 frac(3.78)=0.78 int(3.78)=3.0 sqr(2)=4 sqrt(9)=3 30
Βαθμωτές Συναρτήσεις PRED(num) π.χ. Pred(10)=9 ODD(num) -περιττός π.χ. Odd(7)=true SUCC(num) π.χ. Succ(10)=11 31
ORD(num) π.χ. (A,B,C,D,E,F) Ord(C)=2 ROUND(num) π.χ. Round(3.78)=4 TRUNC(num) π.χ. Trunc(3.78)=3 Συναρτήσεις Μετατροπής 32