Η γλώσσα προγραμματισμού
PASCAL
Η γλώσσα
PASCAL πήρε το όνομά της από το Γάλλο μαθηματικό και φιλόσοφο Blaise Pascal. Η πρώτη έκδοσή της παρουσιάστηκε το 1968 από τον Niklaus Wirth. Η Turbo Pascal κατασκευάστηκε το 1983 από την εταιρία Borland.
Μορφή Turbo Pascal προγράμματοςprogram όνομα προγράμματος;
var
δηλώσεις μεταβλητών
;begin
εντολές
;end.
Παράδειγμα
program greeting;
begin
write('H E L L O'); Εμφανίζει στην οθόνη H E L L O
readln;
end.
Κάθε εντολή της
Pascal πρέπει να έχει στο τέλος (;)Παρατηρήσεις
1.
Το όνομα προγράμματος μπορεί να αποτελείται από λατινικά γράμματα, αριθμούς και την υπογράμμιση (Shift & -). Πρέπει ν' αρχίζει από γράμμα και δεν πρέπει να ξεπερνά τους 118 χαρακτήρες.2.
Οι εντολές του κυρίως προγράμματος μπαίνουν ανάμεσα σε begin και end. (Προσέξτε ότι το τελευταίο end του προγράμματος έχει στο τέλος τελεία).3.
Η εντολή readln μπαίνει στο τέλος των προγραμμάτων για να μπορούμε να δούμε τα αποτελέσματα στην οθόνη. Χωρίς αυτή η turbo pascal μας επαναφέρει στον editor (εκεί όπου γράφουμε το πρόγραμμα) χωρίς να προλάβουμε να δούμε τα αποτελέσματα.Παράδειγμα
program absum;
var
a,b,sum: real; (* Δηλώσεις των μεταβλητών *)
begin
a:=10.75;
b:=20;
sum:=a+b;
writeln(sum);
readln;
end.
Όλες οι μεταβλητές ενός
Pascal προγράμματος πρέπει να δηλώνονται. Με τη δήλωση μιας μεταβλητής, δεσμεύεται ο απαιτούμενος χώρος στη μνήμη του Η/Υ. Οι δηλώσεις των μεταβλητών γίνονται στο τμήμα δηλώσεων var (βλ. παρακάτω Δηλώσεις μεταβλητών).
Ονοματολογία μεταβλητώνΤα ονόματα των μεταβλητών πρέπει να ακολουθούν τους παρακάτω κανόνες
:α
) Να αποτελούνται από 63 το πολύ χαρακτήρες. β) Μπορούν να περιέχουν λατινικά γράμματα, αριθμούς και την υπογράμμιση ( _ ). γ) Πρέπει ν' αρχίζουν από γράμμα. δ) Δεν πρέπει να είναι δεσμευμένες λέξεις π.χ. program, var, end κλπ. ε) Το όνομα του προγράμματος δεν πρέπει να έχει το ίδιο όνομα με κάποια μεταβλητή του προγράμματος. Στην περίπτωση αυτή εμφανίζεται το μήνυμα λάθους dublicate identifier.Σωστά ονόματα
: a, alpha, m2, Number_of_studentsΛανθασμένα ονόματα
: first+a, 2nd, begin, example 2Ερωτήσεις
1) Μπορεί να χρησιμοποιηθεί μια μεταβλητή χωρίς να δηλωθεί; ........
2) Ποια από τα παρακάτω ονόματα μεταβλητών είναι λάθος και γιατί; a1, 2b, a1b2c3, a$, sum no, end
Δηλώσεις μεταβλητών (var)To τμήμα δηλώσεων var μπαίνει πριν από το κυρίως πρόγραμμα (το οποίο αρχίζει με begin)var μεταβλητή : τύπος; Αν υπάρχουν πολλές μεταβλητές του ίδιου τύπου μπορούμε να τις δηλώσουμε στην ίδια γραμμή, χωρίζοντάς τες με κόμμα.
Παράδειγμα
var
aker:integer; x,y:real; name:string; epil:char;
a,b,c : integer; Προσέξτε ότι το όνομα της μεταβλητής χωρίζεται από τον τύπο της με (:)
ΒΑΣΙΚΟΙ ΤΥΠΟΙ ΤΗΣ
TURBO PASCAL
Όνομα τύπου real (πραγματικός) integer (ακέραιος) string (σειρά χαρακτήρων) longint (ακέραιος) |
Εύρος τιμών
-32768 .. 32767 Μέχρι 255 χαρακτήρες-2147483648 .. 2147483648 |
Χώρος στη μνήμη 6 bytes 2 bytes 256 bytes 4 bytes |
Ο ακέραιος τύπος
integer: Δηλώνεται integer μια μεταβλητή που η τιμή της θα βρίσκεται μεταξύ του -32768 και του 32767 και θα είναι ακέραιος αριθμός. Σωστές τιμές: 1234, 0, -234 Λανθασμένες τιμές: 1.25 (είναι πραγματικός και όχι ακέραιος), 200000 (είναι μεγαλύτερος του 32767)1) Όταν διαιρούμε τις τιμές δύο μεταβλητών ακέραιου τύπου, το αποτέλεσμα πρέπει να καταχωρείται σε μεταβλητή τύπου real.
2) Αν δηλώσουμε μία μεταβλητή τύπου integer και στη συνέχεια της δώσουμε π.χ. την τιμή 10.5 (η οποία δεν είναι ακέραιος αριθμός), κατά την εκτέλεση του προγράμματος θα εμφανιστεί το μήνυμα Type mismatch.
Σημείωση
: Προσοχή στις πράξεις με ακέραιους. Π.χ. στον πολλαπλασιασμό δύο integer, μπορεί το γινόμενο, να ξεπερνά τα όρια του τύπου integer. Σ' αυτή την περίπτωση, το αποτέλεσμα θα είναι λανθασμένο, ακόμη κι αν η μεταβλητή του γινομένου δηλωθεί real ή longint. Για να έχουμε σωστό αποτέλεσμα, υπάρχουν δύο τρόποι:α
) η μία από τις δύο μεταβλητές που πολλαπλασιάζονται και η μεταβλητή του γινομένου να δηλωθούν τύπου longint ή real γιατί το γινόμενο integer * real δίνει αποτέλεσμα real και το γινόμενο integer * longint δίνει αποτέλεσμα longint.β
) Οι δύο μεταβλητές που πολλαπλασιάζονται ( π.χ. i και j ) να δηλωθούν integer, η μεταβλητή του γινομένου ( π.χ. ginomeno ) να δηλωθεί real και η εντολή καταχώρισης να είναι ως εξής:ginomeno := 1.0 * i *j
έτσι ώστε το γινόμενο 1.0 που θεωρείται real επί τους 2 ακέραιους να δίνει αποτέλεσμα real.Ο πραγματικός τύπος
realO τύπος real χρησιμοποιείται για να καταχωρίσουμε στις μεταβλητές δεκαδικές τιμές ή ακέραιες τιμές που είναι έξω από τα όρια του longint.
Ο τύπος
stringO τύπος string χρησιμοποιείται για μεταβλητές, η τιμή των οποίων είναι μια σειρά χαρακτήρων (γράμματα, ψηφία, σύμβολα). Μια μεταβλητή τύπου string καταλαμβάνει στη μνήμη χώρο 256 bytes αλλά η τιμή της μπορεί να είναι μέχρι 255 χαρακτήρες.Σημείωση
: Το ένα επιπλέον byte δεσμεύεται για να κρατηθεί εκεί το πραγματικό μήκος του string δηλ. πόσους πραγματικά χαρακτήρες πληκτρολογήσαμε για τιμή του string. Π.χ. έστω η μεταβλητή onoma είναι τύπου string και της δώσαμε την τιμή ΜΑΡΙΑ. Στη μνήμη δεσμεύτηκαν 256 bytes αλλά η τιμή της είναι 5 χαρακτήρες. Ο αριθμός 5 αποθηκεύεται στο ένα επιπλέον byte που κρατήθηκε στη μνήμη.Μπορούμε στον τύπο
string να δηλώσουμε πόσους το πολύ χαρακτήρες θα περιέχει η τιμή της μεταβλητής. Αυτό γίνεται με τη δήλωση string[n] όπου το n είναι ένας αριθμός από το 1 μέχρι το 255 και συμβολίζει το μέγιστο πλήθος των χαρακτήρων που μπορεί να δεχθεί η τιμή της μεταβλητής. Π.χ. αν δηλώσουμε μια μεταβλητή τύπου string[10], η τιμή της μπορεί να περιέχει το πολύ 10 χαρακτήρες. (Σ' αυτή την περίπτωση δεσμεύονται στη μνήμη 11 bytes.)
Βασικές εντολές της
Pascal
Η εντολή clrscrclrscr
Με την εντολή
clrscr (clear screen) "καθαρίζουμε" την οθόνη.Για να εκτελεσθεί απ' την
Pascal η εντολή clrscr, πρέπει κάτω από τη γραμμή Program όνομα προγράμματος; να γράψουμε την εντολή uses crt; H crt είναι μία μονάδα (unit) της Pascal που περιέχει χρήσιμες εντολές της γλώσσας.
H εντολή καταχώρισηςΓενικός τύπος
μεταβλητή
:= σταθερά; ήμεταβλητή
:= άλλη μεταβλητή; ήμεταβλητή
:= παράσταση;Υπολογίζεται η τιμή δεξιά του
:= και τοποθετείται στη μεταβλητή αριστερά του :=Η τιμή στο 2ο μέλος
, θα πρέπει να είναι του ίδιου τύπου με τη μεταβλητή στο 1ο μέλος. Μία εξαίρεση σ' αυτόν τον κανόνα είναι η εξής: μεταβλητή τύπου real := τιμή ακέραιου τύπου. Το αντίστροφο δεν γίνεται και εμφανίζεται το μήνυμα λάθους Type mismatch.Παραδείγματα
1. a=2;
b:=3;
sum:=a+b;
Υπολογίζεται η παράσταση του 2ου μέλους
2+3 και η τιμή 5 καταχωρείται στη μεταβλητή sum.2. a:=2;
b:=a;
To a παίρνει την τιμή 2 και το b την τιμή του a δηλ. το 2, άρα το b παίρνει την τιμή 2.
3. a:=1; Η μεταβλητή a παίρνει την τιμή 1
b:=2; Η μεταβλητή b παίρνει την τιμή 2
t:=a; H μεταβλητή t παίρνει την τιμή της a δηλ. 1
a:=b; Η μεταβλητή a παίρνει την τιμή της b δηλ. 2 (άρα χάνει την τιμή 1 που είχε)
b:=t; Η μεταβλητή b παίρνει την τιμή της t δηλ. 1 (άρα χάνει την τιμή 2 που είχε)
4. a:=5;
a:=a+1; Η μεταβλητή a παίρνει την τιμή που είχε δηλ. 5 + 1 δηλ. η νέα τιμή της a είναι 6.
5. s:='Η ΓΛΩΣΣΑ PASCAL';
Η μεταβλητή
s παίρνει τιμή τη σειρά χαρακτήρων Η ΓΛΩΣΣΑ PASCAL.
Οι εντολές write και writelnΜε τις εντολές αυτές τυπώνονται
(εμφανίζονται) στην οθόνη τα αποτελέσματα των προγραμμάτων κ.λ.π.Μορφές της εντολής
writeΕμφανίζει στην οθόνη την τιμή της μεταβλητής και στη συνέχεια δεν αλλάζει γραμμή εκτύπωσης
.Εμφανίζει στην οθόνη τις τιμές των μεταβλητών
, όλες στην ίδια γραμμή χωρίς κανένα κενό (εκτός από τις μεταβλητές τύπου real που αν η τιμή τους είναι θετική αφήνεται ένα κενό για το πρόσημο +) και στη συνέχεια δεν αλλάζει γραμμή εκτύπωσης.Εμφανίζει τη σειρά χαρακτήρων όπως είναι και στη συνέχεια δεν αλλάζει γραμμή εκτύπωσης
.Εμφανίζει τη σειρά χαρακτήρων όπως είναι και δίπλα
(στην ίδια γραμμή χωρίς κανένα κενό) την τιμή της μεταβλητής και στη συνέχεια δεν αλλάζει γραμμή εκτύπωσης.Μορφές της εντολής
writelnΕμφανίζει στην οθόνη την τιμή της μεταβλητής και στη συνέχεια αλλάζει γραμμή εκτύπωσης
.Εμφανίζει στην οθόνη τις τιμές των μεταβλητών
, όλες στην ίδια γραμμή χωρίς κανένα κενό (εκτός από τις μεταβλητές τύπου real που αν η τιμή τους είναι θετική αφήνεται ένα κενό για το πρόσημο +) και στη συνέχεια αλλάζει γραμμή εκτύπωσης.Εμφανίζει τη σειρά χαρακτήρων όπως είναι και στη συνέχεια αλλάζει γραμμή εκτύπωσης
.Εμφανίζει τη σειρά χαρακτήρων όπως είναι και δίπλα
(στην ίδια γραμμή χωρίς κανένα κενό) την τιμή της μεταβλητής και στη συνέχεια αλλάζει γραμμή εκτύπωσης.Αλλάζει απλώς η γραμμή εκτύπωσης
. Χρησιμοποιείται συνήθως για να αφήσουμε μια κενή γραμμή.Αλλαγή της γραμμής εκτύπωσης σημαίνει ότι μία επόμενη
write ή writeln θα τυπώσει στην επόμενη γραμμή.Παραδείγματα
1) writeln('PASCAL');
Εμφανίζεται στην οθόνη η λέξη
PASCAL2) a:=5;
writeln(a); (* Εμφανίζεται η τιμή της μεταβλητής a δηλ. 5. *)
x:=15; y:=10;
sum:=x+y;
writeln('Το άθροισμα του ',x, ' και του ',y,' είναι ',sum);
Εμφανίζεται στην οθόνη
:Το άθροισμα του
15 και του 10 είναι 25________________________________________________________________________
Οι αριθμοί τύπου
real τυπώνονται σε εκθετική μορφή:x.xxxxxxxxxxΕxx όπου x: ψηφία
Π.χ. ο real 1.5000000000Ε+05 είναι ο αριθμός 150000 -5.0000000000E+00 είναι ο αριθμός -5
Για να εμφανιστούν σε δεκαδική μορφή
μπορούμε στις εντολές write και writeln να χρησιμοποιήσουμε τη μορφή:Πραγματική μεταβλητή
:n:mόπου
n και m ακέραιοi αριθμoί.Σ'αυτή την περίπτωση, τυπώνεται η τιμή της μεταβλητής σε n θέσεις συνολικά (στις οποίες συμπεριλαμβάνεται το πρόσημο και η υποδιαστολή (.), με m δεκαδικά ψηφία. Αν η τιμή αποτελείται από λιγότερα ψηφία, αφήνονται από αριστερά ανάλογα κενά.Π
.χ. a:=12.5;writeln(a:7:2);
Θα εμφανίσει στην οθόνη τον αριθμό
12.50 αφήνοντας όμως από αριστερά του αριθμού δύο κενά (το ένα είναι του πρόσημου που είναι το +).Σημείωση
: Αν η τιμή της μεταβλητής έχει περισσότερα ακέραια ψηφία από τον αριθμό n, τυπώνεται ολόκληρη (δηλ. το n αυξάνεται αυτόματα όσο χρειάζεται). Αν η τιμή της μεταβλητής έχει περισσότερα δεκαδικά ψηφία από τον αριθμό m τότε τα επιπλέον δεν εμφανίζονται.Παράδειγμα
Δίνονται το όνομα, το επώνυμο, οι ώρες εργασίας και η αμοιβή ανά ώρα ενός υπαλλήλου. Να υπολογισθεί το ημερομίσθιό του και να τυπωθούν τα αποτελέσματα ως εξής:
ΠΕΤΡΟΥ ΙΩΑΝΝΗΣ
Ώρες εργασίας
: 5Αμοιβή ανά ώρα
: 3000Ημερομίσθιο
: 15000
program misthodosia;
var onom,epon:string[20];
wres:integer; amoib, hmerom:longint;
begin
onom:='ΙΩΑΝΝΗΣ';
epon:='ΠΕΤΡΟΥ';
wres:=5;
amoib:=3000;
hmerom:=wres*amoib;
writeln(epon,' ',onom);
writeln('Ώρες εργασίας : ',wres);
writeln('Αμοιβή ανά ώρα: ', amoib);
writeln('Ημερομίσθιο : ',hmerom);
readln;
end.
Η εντολή readlnreadln(μεταβλητή);
Η εντολή
readln χρησιμοποιείται για να δώσουμε τιμή σε μια μεταβλητή την ώρα της εκτέλεσης του προγράμματος. Συνήθως πριν από την εντολή readln χρησιμοποιούμε την εντολή write έτσι ώστε να εμφανισθεί στην οθόνη ένα σχόλιο σχετικό με τη μεταβλητή που πρόκειται να πάρει τιμή από τη readln που ακολουθεί.Παράδειγμα
program greetings;
var
onom:string[20];
begin
write('Πως σε λένε; ');
readln(onom);
writeln;
writeln('Γεια σου, ',onom);
readln;
end.
Η εντολή
readln χωρίς μεταβλητές χρησιμοποιείται για να καθυστερήσουμε κάποιες φορές την εκτέλεση του προγράμματος μέχρι να πατηθεί το ENTER. δηλ. περιμένει μέχρι να πατηθεί το ENTER.Ασκήσεις
Βαθμοί Κελσίου
=5*(Βαθμοί fahreneit-32)/9
Η εντολή if1η μορφή
if συνθήκη then εντολή;Αν ισχύει η συνθήκη τότε θα εκτελεσθεί η εντολή.
Παράδειγμα
readln(n);
if n>=10 then writeln('ΠΡΟΑΓΕΤΑΙ');
2η μορφή
if συνθήκη then εντολή1 else εντολή2;
Αν ισχύει η συνθήκη τότε θα εκτελεσθεί η εντολή1
. Αν δεν ισχύει η συνθήκη τότε θα εκτελεσθεί η εντολή2.Παράδειγμα
readln(n);
if n>=10 then writeln('ΠΡΟΑΓΕΤΑΙ') else writeln('ΑΠΟΡΡΙΠΤΕΤΑΙ');
3η μορφή
if συνθήκη then (* όχι ; *)
begin
εντολή
; εντολή; ........end;
Αν ισχύει η συνθήκη τότε θα εκτελεσθούν οι εντολές που βρίσκονται μεταξύ του
begin και του end;Παράδειγμα
readln(n);
if n>0 then
begin
writeln('ΘΕΤΙΚΟΣ ΑΡΙΘΜΟΣ');
r:=sqrt(n);
writeln('Τετραγωνική ρίζα=',r:7:2);
end;
4η μορφή
if συνθήκη then
begin
εντολή
; εντολή; ........end (* Προσοχή αυτό το end δεν έχει ; *)
else
begin
εντολή
; εντολή; ........end;
Αν ισχύει η συνθήκη τότε θα εκτελεσθούν οι εντολές που βρίσκονται μεταξύ του πρώτου
begin .. end Αν δεν ισχύει η συνθήκη τότε θα εκτελεσθούν οι εντολές που βρίσκονται μεταξύ του δεύτερου begin .. end;Παράδειγμα
program emvada;
uses crt;
var
epil,b,y,m,p:integer;
e:real;
begin
clrscr;
writeln('1. Εμβαδό τριγώνου - 2. Εμβαδό ορθογωνίου');
write('Επιλέξτε 1 ή 2 :'); readln(epil);
if epil=1 then
begin
write('Βάση τριγώνου:'); readln(b);
write('Ύψος τριγώνου:'); readln(y);
e:=b*y/2;
end
else
begin
write('Μήκος:'); readln(m);
write('Πλάτος:'); readln(p);
e:=m*p;
end;
writeln('Εμβαδό=',e:7:1);
readln;
end.
Ερώτηση
: Αν ο χρήστης δώσει στη μεταβλητή epil την τιμή 3, ποιες εντολές θα εκτελεστούν;Στη συνθήκη της
if μπορεί να χρησιμοποιηθούν οι λογικοί τελεστές and και or. Σ' αυτή την περίπτωση κλείνουμε τις επιμέρους συνθήκες σε παρενθέσεις.Παράδειγμα
readln(x); readln(y);if (x=0) and (y=0) then writeln('ΜΗΔΕΝ');
if (x=3) or (y=3) then writeln('ΛΑΘΟΣ');
Ασκήσεις
Η εντολή repeat ... untilrepeat
εντολή1
; εντολή2; ...........until συνθήκη;
Με την εντολή
repeat, οι εντολές (μεταξύ του repeat και του until) επαναλαμβάνονται μέχρι η συνθήκη του until να γίνει αληθής (να ισχύσει).Παρατήρηση
Οι εντολές εκτελούνται τουλάχιστον μία φορά, γιατί ο έλεγχος της συνθήκης γίνεται στο τέλος. Έτσι ακόμη και αν η συνθήκη ισχύει, οι εντολές θα εκτελεσθούν μια φορά και μετά θα συνεχισθεί η εκτέλεση με την εντολή που βρίσκεται κάτω απ' την until.
Προσοχή
Οι εντολές εκτελούνται όσο η συνθήκη δεν ισχύει.Παράδειγμα
Να γραφεί πρόγραμμα στο οποίο θα δίνεται ένας αριθμός x και θα υπολογίζεται το τετράγωνό του. Η διαδικασία θα επαναλαμβάνεται μέχρι να δοθούν συνολικά 10 αριθμοί.
program tetragona;
var
i:integer; x,t:longint;
begin
i:=0;
repeat
i:=i+1;
write(i,'ος αριθμός:'); readln(x);
t:=sqrt(x);
writeln('Τετράγωνο=',t);
until i=10;
readln;
end.
Ασκήσεις
Η εντολή for1η μορφή
for μεταβλητή := τιμή1 to τιμή2 do
begin
εντολή1
;εντολή2
;.....
end;
H μεταβλητή αρχικά παίρνει την τιμή1, εκτελούνται οι εντολές μεταξύ του begin και του end, στη συνέχεια η μεταβλητή αυξάνεται κατά 1, εκτελούνται πάλι οι εντολές μεταξύ του begin και του end κ.ο.κ. μέχρι που η μεταβλητή παίρνει την τιμή2 και εκτελούνται για τελευταία φορά οι εντολές μεταξύ του begin και του end.
Παρατηρήσεις
Η μεταβλητή δεν πρέπει να είναι τύπου real ή string.
H τιμή της μεταβλητής της for μπορεί να χρησιμοποιηθεί στις εντολές μέσα στη for, αλλά καλό είναι να μην αλλάζει μέσα στη for.
Κατά την έξοδο από το βρόγχο της
for, η μεταβλητή έχει την τιμή2.Aν η τιμή2 είναι μικρότερη της τιμής1
, οι εντολές δεν θα εκτελεσθούν καμία φορά και θα συνεχισθεί η εκτέλεση με την εντολή που βρίσκεται κάτω απ' το end.Για μία μόνο εντολή
, δεν χρειάζεται begin και end.Παράδειγμα
Να γραφεί πρόγραμμα που να υπολογίζει το άθροισμα 10 ακέραιων αριθμών που δίνονται από το χρήστη.
program athroisma;
uses crt;
var
x,i,sum:integer;
begin
clrscr; sum:=0;
for i:=1 to 10 do
begin
write(i,'ος αριθμός:'); readln(x);
sum:=sum+x;
end;
writeln('Aθροισμα = ',sum); readln;
end.
2η μορφή
for μεταβλητή := τιμή1 downto τιμή2 do
begin
εντολή1
;εντολή2
;.....
end;
H μεταβλητή αρχικά παίρνει την τιμή1, εκτελούνται οι εντολές μεταξύ του begin και του end, στη συνέχεια η μεταβλητή μειώνεται κατά 1, εκτελούνται πάλι οι εντολές μεταξύ του begin και του end κ.ο.κ. μέχρι που η μεταβλητή παίρνει την τιμή2 και εκτελούνται για τελευταία φορά οι εντολές μεταξύ του begin και του end. Η τιμή1 πρέπει να είναι μεγαλύτερη της τιμής2.
Ασκήσεις
Procedures (διαδικασίες) χωρίς παραμέτρουςΟι
Procedures είναι τμήματα του προγράμματος με αυτόνομη κατά κάποιο τρόπο εργασία. Όπως σε ένα κείμενο χωρίζουμε παραγράφους για να είναι πιο ευανάγνωστο, έτσι ένα πρόγραμμα Pascal μπορούμε να το χωρίσουμε σε procedures που η καθεμιά εκτελεί μία ανεξάρτητη εργασία.Procedures procedure όνομα διαδικασίας;
var
τοπικές μεταβλητές
;begin
εντολές
;.............
end;
Οι τοπικές μεταβλητές που ορίζονται μέσα σε μια
procedure ισχύουν μόνο μέσα σ' αυτή και καταστρέφονται μετά την έξοδο από την procedure.Για να καλέσουμε μια
procedure χωρίς παραμέτρους από κάποιο σημείο του προγράμματός μας, γράφουμε απλώς το όνομά της.Οι
procedures γράφονται πριν από το κυρίως πρόγραμμα και πριν από το σημείο που καλούνται.Παράδειγμα
program add_subtract;
var Οι μεταβλητές του κυρίως προγράμματος ονομάζονται ολικές μεταβλητές και ισχύουν σε όλο το πρόγραμμα
a,b:real;
epil:integer;
procedure add;
var Η μεταβλητή sum ισχύει μόνο μέσα στην add
sum:real;
begin
sum:=a+b;
writeln('Αθροισμα=',sum:5:1);
end;
procedure subtract;
var Η μεταβλητή sub ισχύει μόνο μέσα στην substact
sub:real;
begin
sub:=a-b;
writeln('Διαφορά=',sub:5:1);
end;
procedure wait;
begin
write('Πατήστε enter για συνέχεια');
readln;
end;
begin (* κυρίως προγράμματος *)
write('1ος αριθμός: '); readln(a);
write('2ος αριθμός: '); readln(b);
repeat
write('1. Πρόσθεση 2. Αφαίρεση : '); readln(epil);
until (epil=1) or (epil=2);
if epil=1 then add else subtract;
wait;
end.
Ασκήσεις
ΠΡΑΞΕΙΣ ΣΕ
PASCAL
ΠΡΑΞΗ |
PASCAL |
Πρόσθεση |
+ |
Αφαίρεση |
- |
Πολλαπλασιασμός |
* |
Διαίρεση |
/ |
Ακέραια διαίρεση |
a div b |
Υπόλοιπο διαίρεσης |
a mod b |
Τετραγωνική ρίζα |
sqrt(x) |
Ύψωση στο τετράγωνο |
sqr(x) |
Ημίτονο x |
sin(x) x σε rad, όχι σε μοίρες |
Συνημίτονο x |
cos(x) x σε rad, όχι σε μοίρες |
Απόλυτη τιμή |
abs(x) |
Αποκοπή δεκαδικών |
trunc(x) ή int(x) * |
Δεκαδικό μέρος πραγματικού αριθμού |
frac(x) ** |
Στρογγύλευση δεκαδικού αριθμού |
round(x) |
* Το αποτέλεσμα της trunc είναι longint, ενώ της int είναι real.** Π.χ. frac(12.57) = 0.57
Βασικές λειτουργίες της Turbo Pascal
1. Εισαγωγή στην Turbo Pascal
Εισερχόμαστε στον
editor της Turbo Pascal όπου μπορούμε να γράψουμε το πρόγραμμά μας.Για να βγούμε από τον
editor στο μενού, πατάμε F10, ενώ από το μενού για να εισέλθουμε πάλι στον editor πατάμε ESC.2. Εκτέλεση προγράμματος (RUN)
Μόλις γράψουμε το πρόγραμμά μας
, πρέπει να το εκτελέσουμε (RUN). Πατώντας το πλήκτρο F10 βγαίνουμε στο μενού. Με δεξί βελάκι επιλέγουμε RUN και πατάμε ENTER δύο φορές.3. Αποθήκευση του προγράμματος (SAVE)
Βγαίνουμε με
F10 στο μενού FILE (αν δεν είναι ήδη επιλεγμένο, χρησιμοποιούμε τα βελάκια για να το επιλέξουμε). και πατάμε ENTER. Επιλέγουμε με το κάτω βελάκι SAVE και πατάμε ENTER. Στο παράθυρο που εμφανίζεται πληκτρολογούμε το όνομα που θέλουμε να δώσουμε στο πρόγραμμά μας και πατάμε ENTER.4. Άνοιγμα προγράμματος (OPEN)
Από το μενού
FILE, επιλέγουμε OPEN πατάμε ENTER και στο παράθυρο που εμφανίζεται πατάμε πάλι ENTER. Εμφανίζεται νέο παράθυρο με όλα τα προγράμματα που υπάρχουν π.χ. στη δισκέτα. Επιλέγουμε με τα βελάκια αυτό που θέλουμε και πατάμε ENTER..5. Έξοδος από την Turbo Pascal (QUIT)
Βγαίνουμε στο μενού
FILE (με F10), επιλέγουμε με το κάτω βελάκι QUIT και πατάμε ENTER.