Προγραμματισμός με τη Free Pascal - Μέρος 6ο

From Ubuntucy Wiki

Jump to: navigation, search

Συγγραφή: Χατζηκυριάκου Γιώργος


Διαδικασίες – procedures

Διαδικασία ονομάζετε μια ομάδα εντολών με ή χωρίς παραμέτρους, η εκτέλεση της οποίας προκαλείται μέσω μιας κλήσης διαδικασίας. Μαζί με τις συναρτήσεις (functions) μας γλυτώνουν από τον επαναληπτικό προγραμματισμό.

Πρόγραμμα 1

Program Lesson6_Program1;

procedure dia(aa, bb, cc, dd : integer);
  begin
    writeln ('aa :',aa,' bb :', bb,' cc :', cc,' dd :', dd);
  end;

begin
  dia(10,22,37,49);
end.

Βήματα εκτέλεσης:

1.Γίνετε η κλήση της διαδικασίας dia(10, 22, 37, 49); Με ορισματα τους ακεραίους 10, 22, 37, 49.
2.Οι ακέραιοι 10, 22, 37, 49 περνούν σαν ορίσματα στην διαδικασία dia(aa, bb, cc, dd : integer); στις μεταβλητές aa, bb, cc, dd
3.Γίνετε η παρουσίαση των μεταβλητών στην οθόνη και τερματίζετε η διαδικασία.


Ένα άλλο παράδειγμα:

Πρόγραμμα 2

Program Lesson6_Program2;

var a,b:integer;

procedure prosthesi(aa, bb: integer);
begin
  writeln ('prosthesi :',aa+bb);
end;

procedure aferesi(aa, bb: integer);
begin
  writeln ('aferesi :',aa-bb);
end;

begin
  Write('Dose ton 1o akereo :');
  readln(a);
  Write('Dose ton 2o akereo :');
  readln(b);
  prosthesi(a,b);
  aferesi(a,b);
end.

Βήματα εκτέλεσης:

1.Το πρόγραμμα μας ζητά δυο αριθμούς που αποθηκεύονται στις μεταβλητές a και b.
2.Στη συνέχεια καλείτε η διαδικασία prosthesi(a,b); όπου εκτυπώνει την πρόσθεση των δυο μεταβλητών και τερματίζετε η διαδικασία.
3.Μετά καλείτε η διαδικασία aferesi(a,b); όπου εκτυπώνει την αφαίρεση των δυο μεταβλητών και τερματίζετε η διαδικασία.


Συναρτήσεις- functions

Λειτουργούν όπως τις διαδικασίες αλλά οι συναρτήσεις επιστρέφουν μια τιμή στο κυρίως πρόγραμμα μέσω του ονόματος της.

Πρόγραμμα 3

Program Lesson6_Program3;
var a,b,pro,afe:integer;

function prosthesi(aa, bb: integer):integer;
begin
  prosthesi := aa+bb;
end;

function aferesi(aa, bb: integer):integer;
begin
  aferesi := aa-bb;
end;

begin
  Write('Dose ton 1o akereo :');
  readln(a);
  Write('Dose ton 2o akereo :');
  readln(b);
  pro:= prosthesi(a,b);
  afe:= aferesi(a,b);
  writeln('Prosthesh :',pro,' Aferesh :',afe);
end.

Βήματα εκτέλεσης:

1.Το πρόγραμμα μας ζητά δυο αριθμούς που αποθηκεύονται στις μεταβλητές a και b.
2.Στη συνέχεια καλείτε η συνάρτηση prosthesi(a,b); όπου υπολογίζει την πρόσθεση των δυο μεταβλητών το αποτέλεσμα επιστρέφει και γίνετε εκχώρηση τιμής στη μεταβλητή pro του κυρίως προγράμματος.
3.Μετά καλείτε η συνάρτηση aferesi(a,b); όπου υπολογίζει την αφαίρεση των δυο μεταβλητών το αποτέλεσμα επιστρέφει και γίνετε εκχώρηση τιμής στη μεταβλητή afe του κυρίως προγράμματος.
4.Γίνετε παρουσίαση των αποτελεσμάτων στην οθόνη.

Ασκήσεις

1.Τροποποιείστε το Πρόγραμμα 1 ούτως ώστε η διαδικασία dia(10,22,37,49); να εκτελεστεί 10 φορές (να κάνετε χρήση βρόγχου).<br>

2.Να γράψετε μια συνάρτηση (function) στη Pascal που θα δέχεται σαν ορίσματα δυο ακεραίους και να επιστρέφει στο κυρίως 
πρόγραμμα τον μικρότερο. Το διάβασμα των δυο ακεραίων καθώς και η κλήση της συνάρτησης να γίνετε στο κυρίως πρόγραμμα.

Στο επόμενο και τελευταίο μέρος θα δούμε πώς μπορούμε να διαβάσουμε και να γράψουμε σε ένα σειριακό αρχείο κειμένου.