344 γραμμές
25 KiB
Markdown
344 γραμμές
25 KiB
Markdown
|
+++
|
|||
|
title = 'XBASIC'
|
|||
|
date = '2000-07-01T00:00:00Z'
|
|||
|
description = ''
|
|||
|
author = 'Κ. Τσακάλογλου Tsakf@hellug.gr(mailto:%20Tsakf@hellug.gr)'
|
|||
|
issue = ['Magaz 25']
|
|||
|
issue_weight = 4
|
|||
|
+++
|
|||
|
|
|||
|
----------------------------------------------------------------------------------------------------------------------------------------------------------------
|
|||
|
|
|||
|
*Σε αυτό το τεύχος του magaz Θα κάνουμε μια πρώτη προσπάθεια θα γράψουμε ένα πάρα πολύ απλό πρόγραμμα για να δούμε πως λειτουργεί το περιβάλλον και μελετήσουμε
|
|||
|
τα βασικά στοιχεία που αποτελούν τη δομή ενός προγράμματος Xbasic.*
|
|||
|
|
|||
|
----------------------------------------------------------------------------------------------------------------------------------------------------------------
|
|||
|
|
|||
|
**1. Αρχικές ενέργειες**
|
|||
|
-------------------------------------------------
|
|||
|
|
|||
|
**2. Το πρόγραμμά μας**
|
|||
|
------------------------------------------------
|
|||
|
|
|||
|
**3. Ανάλυση προγράμματος**
|
|||
|
----------------------------------------------------
|
|||
|
|
|||
|
**4. Δεδομένα: Μεταβλητές και σταθερές.**
|
|||
|
------------------------------------------------------------------
|
|||
|
|
|||
|
- [4.1 Μεταβλητές](#ss4.1)
|
|||
|
- [4.2 Αριθμητικές μεταβλητές](#ss4.2)
|
|||
|
- [4.3 Σκοπός μεταβλητών](#ss4.3)
|
|||
|
- [4.4 Σταθερές](#ss4.4)
|
|||
|
|
|||
|
**5. Επίλογος 2ου μέρους**
|
|||
|
---------------------------------------------------
|
|||
|
|
|||
|
|
|||
|
### [1. Αρχικές ενέργειες]{#s1}
|
|||
|
|
|||
|
Ξεκινάμε δίνοντας την εντολή στο περιβάλλον εργασίας της Xbasic για κατασκευή νέου προγράμματος επιλέγοντας από το **File\>New**. Θα εμφανιστεί παράθυρο για να
|
|||
|
επιλεγεί το είδος του κειμένου που θέλουμε να δημιουργήσουμε. Επιλέγουμε την επιλογή program και το περιβάλλον δημιουργεί τις αρχικές εντολές που απαιτούνται
|
|||
|
για το νέο πρόγραμμα.
|
|||
|
|
|||
|
Θα δούμε ότι έχουν δημιουργηθεί δύο ενότητες.
|
|||
|
|
|||
|
- 1\. PROLOG
|
|||
|
- 2\. ENTRY
|
|||
|
|
|||
|
Μπορούμε να επιλέξουμε ποια θα βλέπουμε με την επιλογή **view\>function** και εμφανίζεται παράθυρο επιλογών από όπου διαλέγουμε την επιθυμητή ενότητα.
|
|||
|
Επιλέγοντας το PROLOG βλέπουμε ότι το περιβάλλον έχει δημιουργήσει κάποιες εντολές για να μας βοηθήσει στο στήσιμο του νέου προγράμματος μας.
|
|||
|
|
|||
|
|
|||
|
### [2. Το πρόγραμμά μας]{#s2}
|
|||
|
|
|||
|
Θα κατασκευάσουμε ένα απλό πρόγραμμα για να δούμε την δομή του αναλυτικά. Ο κώδικας που θα δούμε περιέχει αριθμούς γραμμής που στην πραγματικότητα δεν
|
|||
|
χρειαζόμαστε. Μπήκαν απλά για να μπορεί να γίνει κατανοητή η εξήγηση των ενοτήτων.
|
|||
|
|
|||
|
----------------------------------------------------------------------------------------------------------------------------------------------------------------
|
|||
|
|
|||
|
1. '
|
|||
|
2. ' ####################
|
|||
|
3. ' ##### PROLOG #####
|
|||
|
4. ' ####################
|
|||
|
5. '
|
|||
|
|
|||
|
6. PROGRAM "multiply" ' 1-8 char program/file name without .x or any .extent
|
|||
|
7. VERSION "1.0000" ' version number - increment before saving altered program
|
|||
|
8. '
|
|||
|
9. ' You can stop the PDE from inserting the following PROLOG comment lines
|
|||
|
10.' by removing them from the prolog.xxx file in your \xb\xxx directory.
|
|||
|
11.'
|
|||
|
12.' Programs contain: 1: PROLOG - no executable code - see below
|
|||
|
13.' 2: Entry function - start execution at 1st declared func
|
|||
|
14.' * = optional 3: Other functions - everything else - all other functions
|
|||
|
15.'
|
|||
|
16.' The PROLOG contains (in this order):
|
|||
|
17.' * 1. Program name statement PROGRAM "progname"
|
|||
|
18.' * 2. Version number statement VERSION "0.0000"
|
|||
|
19.' * 3. Import library statements IMPORT "libName"
|
|||
|
20.' * 4. Composite type definitions TYPE <typename> ... END TYPE
|
|||
|
21.' 5. Internal function declarations DECLARE/INTERNAL FUNCTION Func (args)
|
|||
|
22.' * 6. External function declarations EXTERNAL FUNCTION FuncName (args)
|
|||
|
23.' * 7. Shared constant definitions $$ConstantName = literal or constant
|
|||
|
24.' * 8. Shared variable declarations SHARED variable
|
|||
|
25.'
|
|||
|
26.' ****** Comment libraries in/out as needed *****
|
|||
|
27.'
|
|||
|
28.' IMPORT "xma" ' Math library : SIN/ASIN/SINH/ASINH/LOG/EXP/SQRT...
|
|||
|
29.' IMPORT "xcm" ' Complex library : complex number library (trig, etc)
|
|||
|
30. IMPORT "xst" ' Standard library : required by most programs
|
|||
|
31.' IMPORT "xgr" ' GraphicsDesigner : required by GuiDesigner programs
|
|||
|
32.' IMPORT "xui" ' GuiDesigner : required by GuiDesigner programs
|
|||
|
33.'
|
|||
|
34.
|
|||
|
35.DECLARE FUNCTION Entry ()
|
|||
|
36.DECLARE FUNCTION multiply (numa%,numb%)
|
|||
|
37.'
|
|||
|
38.'
|
|||
|
39.' ######################
|
|||
|
40.' ##### Entry () #####
|
|||
|
41.' ######################
|
|||
|
42.'
|
|||
|
43.' Programs contain:
|
|||
|
44.' 1. A PROLOG with type/function/constant declarations.
|
|||
|
45.' 2. This Entry() function where execution begins.
|
|||
|
46.' 3. Zero or more additional functions.
|
|||
|
47.'
|
|||
|
48.FUNCTION Entry ()
|
|||
|
49. STATIC prompt$,inpu$
|
|||
|
50. STATIC numa%, numb%,numc%
|
|||
|
51. inpu$=INLINE$("Enter a number 1..100 ")
|
|||
|
52. numa%=SSHORT(inpu$)
|
|||
|
53. inpu$=INLINE$("Enter a number 1..100 ")
|
|||
|
54. numb%=SSHORT(inpu$)
|
|||
|
|
|||
|
55. numc%=multiply(numa%,numb%)
|
|||
|
56. PRINT numc%
|
|||
|
57.
|
|||
|
58.END FUNCTION
|
|||
|
59.'
|
|||
|
60.'
|
|||
|
61.' #########################
|
|||
|
62.' ##### multiply () #####
|
|||
|
63.' #########################
|
|||
|
64.'
|
|||
|
65.FUNCTION multiply (numa%,numb%)
|
|||
|
66.STATIC p1%
|
|||
|
67.
|
|||
|
68.p1%=numa%*numb%
|
|||
|
69.
|
|||
|
70.END FUNCTION p1%
|
|||
|
71.END PROGRAM
|
|||
|
|
|||
|
----------------------------------------------------------------------------------------------------------------------------------------------------------------
|
|||
|
|
|||
|
|
|||
|
### [3. Ανάλυση προγράμματος]{#s3}
|
|||
|
|
|||
|
**Γραμμές 6-7** Χαρακτηριστικά προγράμματος
|
|||
|
|
|||
|
Γράφουμε το όνομα του προγράμματος και την έκδοσή του.
|
|||
|
|
|||
|
**Γραμμές 28-32** Βιβλιοθήκες
|
|||
|
|
|||
|
Γράφουμε τα ονόματα των βιβλιοθηκών που θα συμπεριληφθούν στο πρόγραμμα. Η εντολή είναι:
|
|||
|
|
|||
|
----------------------------------------------------------------------------------------------------------------------------------------------------------------
|
|||
|
|
|||
|
IMPORT όνομα βιβλιοθήκης
|
|||
|
|
|||
|
----------------------------------------------------------------------------------------------------------------------------------------------------------------
|
|||
|
|
|||
|
Οι βιβλιοθήκες είναι ξεχωριστά αρχεία στον σκληρό δίσκο και προστίθενται αυτόματα στον κώδικα που έχουμε γράψει κατά την εκτέλεση του. Μαζί με την Xbasic έχουν
|
|||
|
έρθει οι βιβλιοθήκες.
|
|||
|
|
|||
|
**xma** για μαθηματικά, **xcm** για πολύπλοκες μαθηματικές πράξεις, (τριγωνομετρία κλπ.) **xst** είναι η βιβλιοθήκη που χρησιμοποιούμε πάντα και έχει τις
|
|||
|
βασικές εντολές, **xgr** και xui που χρησιμοποιούνται όταν κατασκευάζουμε προγράμματα με γραφικό περιβάλλον (φόρμες, κουμπιά κλπ.). Η εντολή IMPORT είναι κάτι
|
|||
|
αντίστοιχο της \#include της γλώσσας C.
|
|||
|
|
|||
|
Στο συγκεκριμένο παράδειγμα χρησιμοποιείται μόνο η βιβλιοθήκη xst έτσι μπροστά από την εντολή δεν υπάρχει το \"\'\" που δηλώνει ότι η εντολή πρέπει να αγνοηθεί.
|
|||
|
|
|||
|
**Γραμμές 35-36** Ορισμός παραμέτρων συναρτήσεων του προγράμματος
|
|||
|
|
|||
|
Για να μπορεί να εκτελεστεί μια συνάρτηση που κατασκευάζουμε στο πρόγραμμα μας πρέπει να ορισθούν το όνομα, τυχόν παράμετροι κλπ. Εδώ δεν βάζουμε τον κώδικα της
|
|||
|
συνάρτησης αλλά απλά τον ορισμό της. Ο κώδικας της συνάρτησης μπαίνει παρακάτω όπως θα δούμε στις γραμμές 65-70.
|
|||
|
|
|||
|
Αυτά τα τρία κομμάτια κώδικα αποτελούν το PROLOG όπως αναφέρεται και στο παράθυρο του γραφικού περιβάλλοντος. άλλα στοιχεία του PROLOG που δεν τα χρησιμοποιούμε
|
|||
|
στο παράδειγμά μας είναι:
|
|||
|
|
|||
|
- Ορισμός τύπων μεταβλητών.
|
|||
|
- Ορισμός εσωτερικών μεταβλητών (του κώδικα που έχουμε και γράφουμε).
|
|||
|
- Ορισμός εξωτερικών μεταβλητών (του κώδικα που υπάρχει σε άλλο αρχείο).
|
|||
|
- Ορισμός σταθερών.
|
|||
|
|
|||
|
**Γραμμές 48-58** Η κύρια συνάρτηση Entry
|
|||
|
|
|||
|
Η πραγματική δουλειά της Xbasic γίνεται εδώ. Οι εντολές της γλώσσας εμφανίζουν μηνύματα στο παράθυρο κονσόλας, δέχονται είσοδο από το πληκτρολόγιο, εκτελούν
|
|||
|
μαθηματικές πράξεις, καλούν άλλες συναρτήσεις, διαβάζουν ή γράφουν σε αρχεία στον δίσκο και οποιαδήποτε άλλη εργασία ένα πρόγραμμα χρειάζεται να εκτελέσει.
|
|||
|
|
|||
|
Οι εντολές που βλέπουμε εδώ είναι οι:
|
|||
|
|
|||
|
**Γραμμές 51,53** INLINE\$
|
|||
|
|
|||
|
Αυτή η συνάρτηση εμφανίζει ένα μήνυμα στο παράθυρο κονσόλας και περιμένει εισαγωγή αλφαριθμητικών χαρακτήρων, συνοδευόμενη από το ENTER.
|
|||
|
|
|||
|
**Γραμμές 52,54** SSHORT
|
|||
|
|
|||
|
Αυτή η συνάρτηση μετατρέπει την σειρά αλφαριθμητικών χαρακτήρων σε αριθμητική μεταβλητή για να μπορούν να γίνουν μαθηματικές πράξεις.
|
|||
|
|
|||
|
**Γραμμή 55** κλήση συνάρτησης
|
|||
|
|
|||
|
Εδώ γίνεται η κλήση της συνάρτησης multiply που ορίζεται στις γραμμές 65-70.
|
|||
|
|
|||
|
**Γραμμή 56** PRINT
|
|||
|
|
|||
|
Αυτή η συνάρτηση εμφανίζει μηνύματα στο παράθυρο κονσόλας.
|
|||
|
|
|||
|
**Γραμμές 65-70** Η συνάρτηση multiply
|
|||
|
|
|||
|
Οι συναρτήσεις είναι ανεξάρτητα κομμάτια κώδικα που γράφτηκαν να κάνουν μια συγκεκριμένη δουλειά. Κάθε συνάρτηση έχει όνομα, παραμέτρους και τιμή επιστροφής. Ο
|
|||
|
κώδικας της συνάρτησης εκτελείται μόλις σε κάποιο άλλο σημείο του προγράμματος την καλέσουμε με το όνομά της. Το απολύτως απαραίτητο για μια συνάρτηση είναι το
|
|||
|
όνομά της ενώ μπορεί να μην έχει παραμέτρους ούτε τιμή επιστροφής.
|
|||
|
|
|||
|
**Γραμμή 68** Πολλαπλασιασμός
|
|||
|
|
|||
|
Στο παράδειγμά μας η συνάρτηση υπολογίζει το γινόμενο των μεταβλητών numa% και numb% και το τοποθετεί στην μεταβλητή p1%.
|
|||
|
|
|||
|
**Γραμμή 70** END FUNCTION
|
|||
|
|
|||
|
Εδώ τελειώνει ο κώδικας της συνάρτησης. Μπορούμε να βάλουμε δίπλα την μεταβλητή που θέλουμε να επιστρέψει η συνάρτηση. Στο παράδειγμά μας θέλουμε, να
|
|||
|
επιστρέψουμε στην καλούσα συνάρτηση το γινόμενο, γι\' αυτό γράφουμε δίπλα την μεταβλητή που θέλουμε να επιστρέψει.
|
|||
|
|
|||
|
**Γραμμές 1-5,8-29,31-33,37-47 και 59-64** σχόλια
|
|||
|
|
|||
|
Σε αυτές στις γραμμές υπάρχει το σύμβολο \"\'\" που δηλώνει ότι η γραμμή αυτή είναι γραμμή σχολίων και έτσι δεν εκτελείται τίποτα απλά υπάρχει για να μπορεί ο
|
|||
|
προγραμματιστής να βάζει σχόλια και να θυμάται μετά από καιρό τι έχει κάνει.
|
|||
|
|
|||
|
|
|||
|
### [4. Δεδομένα: Μεταβλητές και σταθερές.]{#s4}
|
|||
|
|
|||
|
Στο παράδειγμά μας στις γραμμές 49,50,66 γίνεται ο ορισμός μεταβλητών. Τα προγράμματα συνήθως χρησιμοποιούν διαφορετικής μορφής δεδομένα και χρειάζεται ένα
|
|||
|
τρόπο να τα αποθηκεύει. Αυτά τα δεδομένα μπορεί να είναι ή αριθμοί ή γράμματα (χαρακτήρες). Η Xbasic έχει δύο τρόπους να αποθηκεύει δεδομένα -μεταβλητές και
|
|||
|
σταθερές- όπου κάθε περίπτωση έχει τις ιδιότητές της.
|
|||
|
|
|||
|
### [4.1 Μεταβλητές]{#ss4.1}
|
|||
|
|
|||
|
Οι μεταβλητές χρησιμοποιούνται για να αποθηκεύσουμε δεδομένα του προγράμματος και να τα χρησιμοποιήσουμε σε κάποιο άλλο σημείο τους. Οι μεταβλητές στην
|
|||
|
πραγματικότητα δείχνουν σε κάποια θέση μνήμης στον υπολογιστή που είναι αποθηκευμένα τα δεδομένα που αντιστοιχούν στην μεταβλητή. Τα ονόματα των μεταβλητών
|
|||
|
ξεκινάνε πάντα με τουλάχιστον ένα πεζό αγγλικό γράμμα. Τα κεφαλαία τα χρησιμοποιούμε αποκλειστικά να γράφουμε τις εντολές της Xbasic. Είναι απαραίτητο να γίνει
|
|||
|
αυτό γιατί εντολή που έχει έστω και ένα πεζό γράμμα δεν αναγνωρίζεται. Στα ονόματα των μεταβλητών η γλώσσα δεν μετατρέπει σε κεφαλαία ή πεζά ότι μοιάζει και
|
|||
|
έτσι οι μεταβλητές numa και numA είναι διαφορετικές. Τα ονόματα μεταβλητών δεν μπορούν να περιέχουν σύμβολα εκτός από το την υπογράμμιση (Underscore \_).
|
|||
|
|
|||
|
### [4.2 Αριθμητικές μεταβλητές]{#ss4.2}
|
|||
|
|
|||
|
Στην Xbasic υπάρχουν διάφορα είδη αριθμητικών μεταβλητών. Ανάλογα με το είδος της μεταβλητής υπάρχουν διαφορετικές απαιτήσεις μνήμης και διαφέρουν ως προς τον
|
|||
|
τρόπο που γίνονται οι μαθηματικές πράξεις σε αυτές. Π.χ. Μικρές αριθμητικές τιμές 1,10,100,-5 χρειάζονται λιγότερη μνήμη για να αποθηκευθούν από ότι οι τιμές
|
|||
|
3.14 ή 312.45687632 και λιγότερη ώρα για τον υπολογισμό τους. Με την κατάλληλη χρήση των μεταβλητών εξασφαλίζεται η γρήγορη και αποτελεσματική λειτουργία του
|
|||
|
προγράμματός μας. Οι αριθμητικές μεταβλητές διακρίνονται σε τρία βασικά είδη:
|
|||
|
|
|||
|
- Ακέραιες μεταβλητές όπου και αυτές διακρίνονται σε δύο ομάδες (με πρόσημο και χωρίς πρόσημο).
|
|||
|
- Μεταβλητές κινητής υποδιαστολής όπου τα περιεχόμενά τους μπορούν να είναι κει δεκαδικοί αριθμοί.
|
|||
|
- Μεταβλητές συστήματος.
|
|||
|
|
|||
|
Παραθέτω ένα πίνακα με τα είδη των ακεραίων αριθμητικών μεταβλητών που διαθέτει η Xbasic με το επίθεμά τους, το όνομα τους, το χώρο (σε bits) που καταλαμβάνουν
|
|||
|
στην μνήμη, και τις ελάχιστες και μέγιστες τιμές που μπορούν να έχουν.
|
|||
|
|
|||
|
- Μεταβλητές με πρόσημο (signed).
|
|||
|
|
|||
|
----------------------------------------------------------------------------------------------------------------------------------------------------------------
|
|||
|
|
|||
|
@ SBYTE (8 bits) -128 έως 127
|
|||
|
% SSHORT (16 bits) -32768 έως 32767
|
|||
|
& SLONG (32 bits) -2147483648 έως 2147483647
|
|||
|
|
|||
|
----------------------------------------------------------------------------------------------------------------------------------------------------------------
|
|||
|
|
|||
|
- Μεταβλητές χωρίς πρόσημο (Unsigned).
|
|||
|
|
|||
|
----------------------------------------------------------------------------------------------------------------------------------------------------------------
|
|||
|
|
|||
|
@@ UBYTE (8 bits) 0 έως 255
|
|||
|
%% USHORT (16 bits) 0 έως 65535
|
|||
|
&& ULONG (32 bits) 0 έως 4294967295
|
|||
|
|
|||
|
----------------------------------------------------------------------------------------------------------------------------------------------------------------
|
|||
|
|
|||
|
- Μεταβλητή συστήματος XLONG
|
|||
|
|
|||
|
Η μεταβλητή αυτή μπορεί να είναι 32 ή 64 bit ανάλογα με το σύστημα που χρησιμοποιούμε.
|
|||
|
|
|||
|
Οι μεταβλητές κινητής υποδιαστολής είναι δύο τύπων.
|
|||
|
|
|||
|
----------------------------------------------------------------------------------------------------------------------------------------------------------------
|
|||
|
|
|||
|
! SINGLE (32 bits) σύμφωνα με την κωδικοποίηση IEEE
|
|||
|
# DOUBLE (64 bits) σύμφωνα με την κωδικοποίηση IEEE
|
|||
|
|
|||
|
----------------------------------------------------------------------------------------------------------------------------------------------------------------
|
|||
|
|
|||
|
Οι μεταβλητές κινητής υποδιαστολής ανάλογα με το είδος τους μπορούν να έχουν ακρίβεια 8 δεκαδικών ψηφίων ο τύπος SINGLE και 16 δεκαδικών ψηφίων ο τύπος DOUBLE.
|
|||
|
|
|||
|
### [4.3 Σκοπός μεταβλητών]{#ss4.3}
|
|||
|
|
|||
|
**AUTO AUTOX STATIC SHARED (/όνομα ομάδας/) EXTERNAL (/όνομα ομάδας/)**
|
|||
|
|
|||
|
**EXTERNAL** ορίζονται οι μεταβλητές που το περιεχόμενό τους είναι διαθέσιμο για οποιοδήποτε κομμάτι προγράμματος ακόμη και αν αυτό είναι σε βιβλιοθήκη και
|
|||
|
γίνεται σύνδεση (link) μετά την μεταγλώττισή του (compile).
|
|||
|
|
|||
|
**SHARED** ορίζονται οι μεταβλητές που το περιεχόμενό τους είναι διαθέσιμο σε όλες τις συναρτήσεις του τρέχοντος προγράμματος.
|
|||
|
|
|||
|
**STATIC** ορίζονται οι μεταβλητές που ανήκουν στην τρέχουσα συνάρτηση και κρατούν τις τιμές τους για διαδοχικές κλήσεις της συνάρτησης.
|
|||
|
|
|||
|
**AUTO** και **AUTOX** ορίζονται οι μεταβλητές που ανήκουν στην τρέχουσα συνάρτηση και για κάθε κλήση της συνάρτησης κάθε φορά παίρνουν νέα τιμή.
|
|||
|
|
|||
|
Οι μεταβλητές **SHARED** και **EXTERNAL** συνήθως ορίζονται στο τμήμα PROLOG όπως αναφέρθηκε προηγούμενα.
|
|||
|
|
|||
|
### [4.4 Σταθερές]{#ss4.4}
|
|||
|
|
|||
|
Όπως οι μεταβλητές έτσι και οι σταθερές καταλαμβάνουν κάποιο χώρο στην μνήμη. Οι σταθερές διαφέρουν από τις μεταβλητές στο ότι τα περιεχόμενά τους δεν αλλάζουν
|
|||
|
κατά την εκτέλεση του προγράμματος. Οι σταθερές έχουν όνομα όπως και οι μεταβλητές και οι περιορισμοί στην ονοματολογία τους είναι ίδια με αυτή των μεταβλητών
|
|||
|
όπως αναφέραμε παραπάνω. Οι σταθερές είναι χρήσιμες όταν γράφουμε προγράμματα που έχουν κάποια βασική παράμετρο που δεν αλλάζει. Π.χ. ο αριθμός π=3.14\...
|
|||
|
|
|||
|
----------------------------------------------------------------------------------------------------------------------------------------------------------------
|
|||
|
|
|||
|
Λ.χ.
|
|||
|
perim=3.14*(2*R)
|
|||
|
emb=3.14*R*R
|
|||
|
|
|||
|
----------------------------------------------------------------------------------------------------------------------------------------------------------------
|
|||
|
|
|||
|
Αντί να γράφουμε τον αριθμό 3.14 κάθε φορά που θέλουμε να βάλουμε τον αριθμό π στους υπολογισμούς μας ορίζουμε σαν σταθερά την pi=3.14
|
|||
|
|
|||
|
Έτσι το πρόγραμμα διαμορφώνεται σε:
|
|||
|
|
|||
|
----------------------------------------------------------------------------------------------------------------------------------------------------------------
|
|||
|
|
|||
|
$pi=3.14
|
|||
|
|
|||
|
perim=$pi*(2*R)
|
|||
|
emb=$pi*R*R
|
|||
|
|
|||
|
----------------------------------------------------------------------------------------------------------------------------------------------------------------
|
|||
|
|
|||
|
Με αυτόν τον τρόπο ο κώδικας είναι ευανάγνωστος και εύκολα κατανοητός. Εκτός όμως από την πιο εύκολη αναγνωσιμότητα του προγράμματος μπορούμε πολύ εύκολα να
|
|||
|
αλλάξουμε την σταθερά π μόνο σε ένα σημείο στο πρόγραμμα και αυτό θα επηρεάσει όλα τα σημεία του προγράμματος που έχουν την σταθερά ενώ αν δεν την είχαμε
|
|||
|
χρησιμοποιήσει θα έπρεπε να αλλάξουμε σε κάθε σημείο τον αριθμό 3.14.
|
|||
|
|
|||
|
Οι σταθερές στην Xbasic είναι δύο ειδών.
|
|||
|
|
|||
|
- Οι τοπικές σταθερές που ορίζονται αρχικά μέσα σε μια συνάρτηση και στο όνομά τους προηγείται ένα \$ Π.χ. \$YES
|
|||
|
- Οι σταθερές που αφορούν όλο το πρόγραμμα και ορίζονται στο κομμάτι PROLOG στην αρχή του προγράμματος και στο όνομα τους προηγούνται δύο \$. Π.χ. \$\$READ
|
|||
|
|
|||
|
Υπάρχουν και οι σταθερές συστήματος που τις δίνει η Xbasic και είναι διαθέσιμες σε όλα τα προγράμματα όπως \$\$TRUE και \$\$FALSE.
|
|||
|
|
|||
|
|
|||
|
### [5. Επίλογος 2ου μέρους]{#s5}
|
|||
|
|
|||
|
Είδαμε μέχρι στιγμής πως μπορούμε να κατασκευάσουμε ένα πρόγραμμα Xbasic. Πρέπει να προσεχτεί ιδιαίτερα από τους έμπειρους σε άλλες BASIC η σημασία της ενότητας
|
|||
|
ENTRY. Εκεί αρχίζει η εκτέλεση του προγράμματος και στο END FUNCTION τελειώνει. Αυτό βέβαια για τους προγραμματιστές C είναι γνωστό από την συνάρτηση MAIN.
|
|||
|
Πιστεύω ότι για κάποιον που έχει συνηθίσει BASIC και θέλει να αλλάξει γλώσσα και να πάει στην C, καλό είναι να περάσει πρώτα από την XBASIC. Θα έχει τις γνωστές
|
|||
|
εντολές (BASIC) με μικροδιαφορές αλλά η δομή του προγράμματος μοιάζει πιο πολυ με την C. Έτσι αφού εξοικειωθεί με την δομή της XBASIC τότε η αλλαγή στην C θα
|
|||
|
είναι πάρα πολύ εύκολη.
|
|||
|
|