RSS

Tag Archives: freepascal

Μαθημα 1ο – Βασικη δομη προγραμματος, μεταβλητες, σταθερες, τυποι, αναθεση τιμων, πραξεις

Θα ξεκινησουμε με καποια βασικα στοιχεια κυριως της Pascal (η γλωσσα που χρησιμοποιει o Lazarus). Αν κατι δεν καταλαβαινετε αφηστε ενα comment ή περιμενετε καποιο απο τα επομενα μαθηματα οπου θα εξηγησω περισσοτερα πραγματα.

Δομη Προγραμματος

Η βασικη δομη ενος προγραμματος στην Pascal ειναι:

PROGRAM ProgramName; // Εδω δηλωνεται το ονομα του προγραμματος

CONST // Εδω δηλωνονται οι σταθερες

TYPE // Εδω δηλωνονται οι τυποι μεταβλητων

VAR // Εδω δηλωνονται οι μεταβλητες

BEGIN
// Εδω, γραφουμε το κυριως προγραμμα
END.

Περισσοτερα σε επομενα μαθηματα… απλως σας δειχνω ενα παραδειγμα της δομης ενος προγραμματος για να καταλαβετε τα παρακατω, σχετικα με τις μεταβλητες και τις σταθερες.


Συνοπτικα

Τα σχόλια ξεκινουν με: // για μια σειρα ή αν εχουμε πολλες σειρες τοτε τα βαζουμε μεσα σε αγκυλες { }

Καθε εντολη τελειωνει με τον χαρακτηρα ; εκτος μερικων εξαιρεσεων

Για να αναθεσουμε σε μια μεταβλητη μια τιμη χρησιμοποιουμε τα συμβολα := πχ. myvar:=5;

Για να αναθεσουμε σε μια σταθερα την τιμη της χρησιμοποιουμε το συμβολο = πχ. myconst=5;

Οταν σε μια εντολη δινουμε καποιο κειμενο, τοτε αυτο υποχρεωτικα πρεπει να εσωκλειεται με τους χαρακτηρες '' πχ. 'κειμενο'


Ονοματολογια Μεταβλητων/Σταθερων

Τα ονοματα των σταθερων/μεταβλητων δεν πρεπει να περιεχουν τους χαρακτηρες: ~ ! @ # $ % ^ & * ( ) + ` - = { } [ ] : " ; ' < > ? , . / | επιτρεπεται ομως ο χαρακτηρας _ (underscope). Επιπλεον δεν πρεπει να εχουν το ιδιο ονομα με καποια εντολη της Pascal. Στην Pascal κεφαλαια και μικρα γραμματα θεωρουνται το ιδιο, ετσι τα παρακατω: myVar, MyVar, MYVAR θεωρουνται το ιδιο. Συνηθιζεται για λογους ευκολιας στην αναγνωση να βαζουμε κεφαλαια το πρωτο γραμμα των λεξεων που σχηματιζουν το ονομα της μεταβλητης μας. πχ LastMonth, NextRecord ή και Last_Month, Next_Record. To μηκος του ονοματος τους δεν εχει καποιο οριο.

Σταθερες

Οι σταθερες δηλωνονται στο ορισμα const και η τιμη τους δεν μπορει να αλλαξει κατα την εκτελεση του προγραμματος. Χρησιμοποιουμε τις σταθερες οταν εχουμε μια τιμη που χρησιμοποιουμε συχνα μεσα στο προγραμμα μας και πιθανον καποια στιγμη στο μελλον χρειαστει να την αλλαξουμε. Ετσι οταν θα χρειαστει να γινει η αλλαγη, αντι να αλλαζουμε την τιμη, καθε φορα που την εχουμε χρησιμοποιησει, την αλλαζουμε μονο στην αρχη που την εχουμε δηλωσει.

* Παραδειγματα *

const
Identifier1 = value;
Identifier2 = value;
Identifier3 = value;

const
Name = ‘Tao Yue’;
FirstLetter = ‘a’;
Year = 1997;
pi = 3.1415926535897932;
UsingNCSAMosaic = TRUE;

Επισης στις σταθερες μπορουμε να δηλωσουμε και τον τυπο τους πχ.

const

a : real = 12; //εδω η τιμη θα ειναι 12.0 γιατι ο τυπος real ειναι πραγματικος/δεκαδικος αριθμος

b : integer = 12; // εδω η θα ειναι 12 γιατι ο τυπος integer ειναι ακεραιος.

Μεταβλητες

Οι μεταβλητες δηλωνονται στο ορισμα Var, η τιμη τους μπορει να αλλαχθει κατα την διαρκεια εκτελεσης του προγραμματος. Οι μεταβλητες στην Pascal πρεπει παντα να δηλωνονται πριν χρησιμοποιηθουν διαφορετικα το πργραμμα θα παρουσιαση σφαλμα. Στις μεταβλητες πρεπει παντα να δηλωνουμε τι τυπο τιμης θα εχουν, δηλαδη αν θα ειναι αριθμος (και τι αριθμος), χαρακτηρας, κειμενο ή αλλο. Οι βασικοι τυποι για μια μεταβλητη ειναι οι παρακατω:

  • integer, δηλωνει ακεραιους αριθμους
  • real, δηλωνει δεκαδικους αριθμους
  • byte, δηλωνει εναν αριθμο του ενος byte
  • word, δηλωνει εναν αριθμο 4αρων bytes
  • set, δηλωνει ενα συνολο
  • pointer, δηλωνει την θεση μιας τιμης, στην μνημη του υπολογιστη
  • string, δηλωνει κειμενο
  • char, δηλωνει εναν χαρακτηρα μονο
  • boolean, δηλωνει μια μεταβλητη που μπορει να παρει μονο τις τιμες false και true

…για περισσοτερες πληροφοριες, δειτε εδω και εδω

* Παραδειγματα *

var
age, year, grade : integer; //πολλες μεταβλητες του ιδιου τυπου χωριζονται με κομμα
circumference : real;
LetterGrade : char;
DidYouFail : Boolean;

Aναθεση τιμης σε μεταβλητη

Για να δωσουμε/αναθεσουμε μια τιμη σε μια μεταβλητη το κανουμε ως εξεις:

myvar:=100; // Αν η μεταβλητη μας ειναι αριθμος πχ. integer.

mystring:='Elton John'; // Aν η μεταβλητη μας ειναι κειμενο, string.

Προσεξτε, χρησιμοποιουμε ανω-κατω τελεια και ισον… οχι μονο το ισον. Στην περιπτωση που η μεταβλητη μας ειναι αριθμος μπορουμε να τις δωσουμε την τιμη ενος αποτελεσματος αριθμητικων πραξεων. Δηλαδη:

some_real := 37573.5 * 37593 + 385.8 / 367.1;

some_real := 37.5 * (-2);

Επισης μπορουμε σε μια μεταβλητη να δωσουμε την τιμη μιας αλλης μεταβλητης. πχ.

var
some_int : integer;
some_real : real;

begin

some_int := 375;
some_real := some_int;

end.

…θα πρεπει ομως να προσεξουμε οι τυποι των μεταβλητων να ειναι ιδιοι ή η μεταβλητη που τις αναθετουμε την τιμη να εχει τετοιο τυπο που να περικλειει και τον τυπο της μεταβλητης που της αναθετουμε. Στο παραπανω παραδειγμα, αναθετουμε μια μεταβλητη τυπου integer σε μια μεταβλητη τυπου real. Ως γνωστων απο τα μαθηματικα οι πραγματικοι αριθμοι, περιεχουν τους ακεραιους.

Το ιδιο μπορουμε να κανουμε και με δυο μεταβλητες με τυπο , κειμενου/string και χαρακτηρα/char αντιστοιχα.

var
some_char : char;
some_string : string;

begin

some_char := ‘x’;
some_string := some_char + some_char + some_char;

End.

Οπως ειδαμε σε παραδειγματα παραπανω, μπορουμε να κανουμε στην Pascal αριθμητικες πραξεις με αριθμους και μεταβλητες αριθμητικου τυπου. Οι πραξεις που υποστηριζει η Pascal ειναι οι παρακατω:

Συμβολο

Πραξη

Τυπος μεταβ.

Αποτελεσμα

+

Προσθεση ή υποδειξη θετικου αριθμου

real ή integer

real ή integer

Αφαιρεση ή υποδειξη αρνητικου αριθμου

real ή integer

real ή integer

*

Πολλαπλασιασμος

real ή integer

real ή integer

/

Διαιρεση πραγματικων αριθμων

real ή integer

real

div

Διαιρεση ακεραιων αριθμων

integer

integer

mod

Υπολοιπο διαιρεσης

integer

integer

* Παραδειγματα *

7 mod 3 δεινει αποτελεσμα 1

7 / 2 δεινει αποτελεσμα 3.5 αφου το / δεινει παντα αποτελεσμα πραγματικο αριθμο ενω, 7 div 2 θα δωσει αποτελεσμα 3 αφου το div δεινει αποτελεσμα παντα ακεραιο αριθμο.

 

Ετικέτες: , , ,

Εξοικειωσει με το περιβαλλον του Lazarus

Μολις ξεκινησετε το Lazarus θα δειτε 4-5 παραθυρα να ανοιγουν. Τα εξης, Object Inspector, Source Editor, Messages, το κυριως menu του lazarus και η φορμα oπου σχεδιαζουμε τα παραθυρα των εφαρμογων μας.

Λιγα λογια για το καθενα… και τι σκοπο εχει…

H εικονα ειναι απο τα Vista, αλλα το περιβαλλον ειναι το ιδιο και στο Ubuntu. Eιπαμε… το lazarus τρεχει παντου!

Οbject Inspector

Σε αυτο το παραθυρο απο πανω προς τα κατω, βλεπεται καταρχας ολα τα controls (κουμπια, memos, checkboxes κτλ) σε μορφη δενδρο-διαγραμματος, το οποιο δειχνει και την σχεση που εχει το καθενα… δηλαδη πιο αντικειμενο ανηκει σε πιο. Μπορειτε με το ποντικι να επιλεξετε οποιοδηποτε control θελετε και να δειτε τις ιδιοτητες και παραμετρους του.

Ακριβως απο κατω, φαινονται οι ιδιοτητες του αντικειμενου. Υπαρχουν πολλες και διαφορες και η καθε μια εκτελει διαφορετικο σκοπο. Ο καλυτερος τροπος για να τις μαθετε και να εξοικιωθειτε ειναι να πειραματιστειτε, αλλαζωντας τις τιμες τους. Οπως θα διαπιστωσετε, υπαρχουν πολλες οι οποιες ειναι κοινες σχεδον σε ολα τα αντικειμενα… και αλλες που ειναι μοναδικες για το συγκεκριμενο αντικειμενο.

Messages

Τιποτα το αξιολογο και δυσκολο. Εδω απλως εμφανιζονται τα μηνηματα του Lazarus, ειτε προκειτε για σφαλματα του προγραμματος ειτε για βοηθητικα μηνηματα που σκοπο εχουν να κανετε καλυτερο τον κωδικα σας.

Source Editor

Ισως το πιο σημαντικο κομματι του Lazarus. Εδω γραφετε και επεξεργαζεστε τον κωδικα του προγραμματος σας. Μπορειτε να το προσαρμοσετε στις απαιτησεις σας απο τις ρυθμισεις του Lazarus. Εχει πολλα μυστικα τα οποια οσο τα ανακαλυπτετε τοσο πιο αποτελεσματικος θα γινεσται στη συγγραφει του κωδικα σας. Περισσοτερες πληροφοριες σε πιο προχωρημενα κομματια του οδηγου.

Κυριως Εφαρμογη

Ειναι το παραθυρο που βρισκεται στο πανω-πανω μερος της οθονης. Εδω βρισκονται τα μενου για τις επιλογες και ρυθμισεις του Lazarus καθως και τα κουμπια ελεγχου του προγραμματος και οι συλλογες με τα αντικειμενα, που μπορειτε να χρησιμοποιεισεται στα προγραμματα σας. Και παλι ο καλυτερος τροπος για να τα μαθετε ειναι να πειραματιστειτε με αυτα.

Form1

Σε αυτο το παραθυρακι, "ζωγραφιζετε" το προγραμμα σας… εδω δηλαδη φτιαχνετε το οπτικο μερος του προγραμματος σας. Πανω εδω, τοποθετητε ολα τα αντικειμενα που θελετε (κουμπια, κειμενο κτλ). Ο σχεδιασμος του GUI (Graphical User Interface) ειναι σημαντικος για ενα προγραμμα.

Aυτα τα λιγα για αρχη. Σιγουρα καποια πραγματα, ειδικα αν ειστε αρχαριος, σας φαινονται ακατανοητα, αλλα μην φοβασται, σιγα-σιγα ολα θα αποκτησουν το νοημα τους. Το μονο που χρειαζεται απο εσας ειναι επιμονη και περιεργεια.

 

Ετικέτες: , , ,

Εγκατασταση του Lazarus στο Ubuntu

Παμε να εγκαταστησουμε το lazarus στο Ubuntu. Θα εγκαταστησουμε την εκδοση που υπαρχει στα αποθετηρια για θεμα ευκολιας και συμβατοτητας. Πολυ απλα ή παμε στο Ubuntu Software Center και κανουμε ερευνα με την λεξη lazarus και εγκαθιστουμε την εφαρμογη ή στο τερματικο δινουμε την εντολη:

sudo apt-get install lazarus

Οταν τελειωσει η εγκατασταση θα βρειτε το προγραμμα στο μενου Programming. Τρεξτε το, ετσι για να δειτε το περιβαλλον.

Θα κανουμε μονο μια μικρη ρυθμιση αρχικα, για να μπορουμε να εχουμε διαθεσιμη την βοηθεια που μας παρεχει το Lazarus. Πηγαινουμε στο μενου Enviroment >Options και στο παραθυρο που εμφανιζεται επιλεγουμε τη κατηγορια Help Options (τερμα κατω αριστερα). Στο group, Viewers επιλεγουμε το browser path και βαζουμε την διαδρομη του browser μας. Στη δικη μου περιπτωση ειναι: /usr/bin/firefox

Κλεινουμε το παραθυρο με ΟΚ και ειμαστε ετοιμοι. Για να βεβαιωθουμε οτι ολα ειναι ενταξει, επιλεξτε με το ποντικι την λεξη TForm (επανω αριστερα) και πατηστε F1. Αν ολα ειναι σωστα, θα πρεπει να ανοιξει ο browser σας και να εμφανισει πληροφοριες σχετικα με την λεξη που επιλεξαμε (ΤForm).

 

Ετικέτες: , , ,

Γιατι να μαθω Lazarus/Pascal;

Πιθανον να μην ειχατε ξανακουσει για το Lazarus. Δυστυχως δεν ειναι και πολυ γνωστο περιβαλλον. Αρα, γιατι να μαθει καποιος να προγραμματιζει σε Lazarus και Pascal;

Θετικα

  • Η γλωσσα προγραμματισμου Pascal θεωρειται και ειναι απο τις πιο ευκολες στην εκμαθηση. Οι περισσοτεροι οροι που χρησιμοποιει ανηκουν στην αγγλικη γλωσσα και ειναι ευκολονοητοι και κατανοητοι.
  • Το lazarus ειναι ολοκληρωμενο πακετο, μολις το εγκαταστησετε, ειστε ετοιμοι να φτιαξετε τα προγραμματα σας
  • Ο Freepascal compiler που χρησιμοποει το Lazarus ειναι αρκετα γρηγορος και εξελιγμενος και συγκρινεται ακομα και με αλλους δημοφιλεστερους οπως της C, C++, C#
  • Οι αρχεις του δομημενου προγραμματισμου που χρησιμοποιει η Pascal ειναι ενα σημαντικο βοηθημα για την εκμαθηση προγραμματισμου ακομα και σε αλλες γλωσσες προγραμματισμου.
  • Τα προγραμματα που φτιαχνονται στο lazarus τρεχουν σε περιβαλλον Linux, Windows, Mac, ακομα και σε Windows Mobile ή αλλα linux συμβατα λειτουργικα για PDAs.

Αρνητικα

  • Δεν ειναι αρκετα δημοφιλης/γνωστη με αποτελεσμα να μην υπαρχει αρκετο υλικο σε παραδειγματα και βοηθεια/υποστηριξη γενικως.
  • Δεν εχει αλλο αρνητικο μην ψαχνεις!

Μαθαινοντας το Lazarus μπορειτε να φτιαξετε οτι προγραμμα θελετε και ηδη υπαρχουν αρκετα εκει εξω που εχουν φτιαχτει με το Lazarus και δεν το ξερετε. Σιγουρα η ελλιπης υποστηριξει σε βοηθεια ειναι μεγαλο θεμα, αλλα μαθαινωντας γενικα pascal εχετε κανει ηδη το πρωτο βημα για να μαθετε και αλλες γλωσσες προγραμματισμου. Συνηθως οσοι μαθαινουν pascal αμεσως το επομενο βημα ειναι να μαθουν καποια C η οποια θεωρειται και το στανταρ στον προγραμματισμο. Μην επιχειρησετε να μαθετε καποια Basic (πχ Visual Basic) και μετα να προσπαθησετε να μαθετε C. Οι διαφορες ειναι μεγαλες… και κυριως στην φιλοσοφια του προγραμματισμου.

Αν σε επεισα… παμε να εγκαταστησουμε το Lazarus σε περιβαλλον Ubuntu. 🙂

 

Ετικέτες: , , ,

Λιγα λογια για το Lazarus και την Freepascal

To lazarus και o Freepascal καταρχας, ειναι δυο διαφορετικα πραγματα/προγραμματα, τα οποια ομως συνδυαζονται τελεια για να δημιουργησουν ενα πολυ ευκολο και γρηγορο περιβαλλον αναπτυξης εφαρμογων (RAD). Kαι τα δυο ειναι open source, projects, συνεπως ο καθενας μπορει ευκολα να τα χρησιμοποιησει χωρις καποιο κοστος και περιορισμους διαθεσης.

Τι ειναι ο Freepascal;

O Freepascal ειναι ενας compiler (μεταγλωτιστης) για την γλωσσα προγραμματισμου Pascal. (!!!!) Kαι τι ειναι compiler θα μου πειτε. Ο compiler, απλα, ειναι ενα προγραμμα που αναλαμβανει να μεταφρασει τις εντολες ενος προγραμματος σε μια γλωσσα που ειναι κατανοητη στον υπολογιστη, καθως ο υπολογιστης δεν καταλαβαινει καποια γλωσσα οπως ο ανθρωπος.

Ο compiler διαβαζει το προγραμμα μας, αναλυει τις εντολες του προγραμματος και δημιουργει ενα νεο αρχειο το οποιο ειναι εκτελεσιμο, στο οποιο περιεχετε ο απαραιτητος κωδικας για να εκτελεσει ο υπολογιστης μας τις εντολες που εχουν δωθει. Αυτο σημαινει οτι για να εκτελεσετε το προγραμμα σας, αρκει μια φορα μονο, να μεταγλωτισετε (να κανετε compile) το προγραμμα σας και μετα απλως τρεχετε το εκτελεσιμο αρχειο.

Πιθανον να εχετε δει σε αλλες γλωσσες προγραμματισμου, οτι για να εκτελεσετε ενα προγραμμα, χρειαζετε να εχετε εγκατεστημενη στον υπολογιστη και την ιδια την γλωσσα προγραμματισμου (πχ. python, παλιες basic κτλ). Αυτο γινεται γιατι οι συγκεκριμενες γλωσσες προγραμματισμου δεν διαθετουν compiler (μεταγλωτιστη) αλλα interpreter (μεταφραστη), ο οποιος αντι να δημιουργει εκτελεσιμο αρχειο, χρειαζετε καθε φορα να εχει τον αρχικο κωδικα του προγραμματος (source code).

Eμεις εδω εχουμε compiler και δεν μας ενδιαφερει ο interpreter. Απλως για να γνωριζετε καποια πραγματα παραπανω αναφερθηκε.

Τι ειναι το Lazarus

To Lazarus ειναι το γραφικο περιβαλλον στο οποιο φτιαχνουμε τα προγραμματα μας. Μεσα σε αυτο μπορουμε να δημιουργησουμε τα παραθυρα του προγραμματος μας, να γραψουμε τον κωδικα μας να βρουμε τυχον λαθη στον κωδικα (debugging). Γενικα τετοιου ειδους περιβαλλοντα ονομαζονται Intergrated Design Enviroments (IDE).

Απο εδω και στο εξεις θα αναφερομαστε με τον ορο Lazarus σε ολο το project, αφου ο compiler (freepascal) περιεχεται μεσα στο Lazarus, για λογους απλοτητας.

 

Ετικέτες: , , ,