Επόμενο Προηγούμενο Περιεχόμενα
Παρακάτω ακολουθεί ένα παράδειγμα συνάρτησης στην XBASIC.
1.'
2.'
3.' ####################
4.' ##### PROLOG #####
5.' ####################
6.'
7.PROGRAM "progname" ' 1-8 char program/file name without .x or any .extent
8.VERSION "0.0000" ' version number - increment before saving altered program
9.'
10.' You can stop the PDE from inserting the following PROLOG comment lines
11.' by removing them from the prolog.xxx file in your \xb\xxx directory.
12.'
13.' Programs contain: 1: PROLOG - no executable code - see below
14.' 2: Entry function - start execution at 1st declared func
15.' * = optional 3: Other functions - everything else - all other functions
16.'
17.' The PROLOG contains (in this order):
18.' * 1. Program name statement PROGRAM "progname"
19.' * 2. Version number statement VERSION "0.0000"
20.' * 3. Import library statements IMPORT "libName"
21.' * 4. Composite type definitions TYPE <typename> ... END TYPE
22.' 5. Internal function declarations DECLARE/INTERNAL FUNCTION Func (args)
23.' * 6. External function declarations EXTERNAL FUNCTION FuncName (args)
24.' * 7. Shared constant definitions $$ConstantName = literal or constant
25.' * 8. Shared variable declarations SHARED variable
26.'
27.' ****** Comment libraries in/out as needed *****
28.'
29.' IMPORT "xma" ' Math library : SIN/ASIN/SINH/ASINH/LOG/EXP/SQRT...
30.' IMPORT "xcm" ' Complex library : complex number library (trig, etc)
31.' IMPORT "xst" ' Standard library : required by most programs
32.' IMPORT "xgr" ' GraphicsDesigner : required by GuiDesigner programs
33.' IMPORT "xui" ' GuiDesigner : required by GuiDesigner programs
34.'
35.DECLARE FUNCTION Entry ()
36.DECLARE FUNCTION SLONG cube (SLONG x)
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. SLONG inpu, answer
50. STRING inpus
51.
52. inpus=INLINE$("Enter number :")
53. inpu=SLONG(inpus)
54. answer = cube(inpu)
55. PRINT answer
56.
57.
58.
59.END FUNCTION
60.'
61.'
62.' #####################
63.' ##### cube () #####
64.' #####################
65.'
66.FUNCTION SLONG cube (SLONG x)
67.
68. x_cube = x * x * x
69.
70.END FUNCTION(x_cube)
71.END PROGRAM
Ας προσπαθήσουμε όμως να κάνουμε μια ανάλυση του παραπάνω
προγράμματος. Έχουμε λοιπόν.
Γραμμές 1..34
Εδώ έχουμε τους αρχικούς ορισμούς και το κομμάτι PROLOG
όπως έχουμε αναλύσει και στα προηγούμενα τεύχη.
Γραμμή 35
Εδώ έχουμε το ορισμό της συνάρτησης Entry() όπου
αναλύοντας τον βλέπουμε ότι αυτή η συνάρτηση δεν έχει
παράμετρο.
Γραμμή 36
Σε αυτή την γραμμή ορίζεται η συνάρτηση cube και από τον
ορισμό της βλέπουμε ότι αυτή η συνάρτηση είναι τύπου
SLONG που σημαίνει ότι θα μας επιστρέψει κάποια τιμή
SLONG. Στην λίστα παραμέτρων (αυτή που υπάρχει ανάμεσα
στις παρενθέσεις) βλέπουμε ότι η cube δέχεται σαν
παράμετρο μια SLONG μεταβλητή για να κάνει τον
υπολογισμό. Στο παράδειγμά μας έχουμε ορίσει και την cube
και την παράμετρό της ίδιου τύπου. Αυτό δεν είναι
δεσμευτικό, μπορούμε να έχουμε μία ή και πολλές
παραμέτρους διαφορετικού τύπου από τον τύπο της
οριζόμενης συνάρτησης.
Γραμμές 48..55
Στην γραμμές 49 και 50 ορίζουμε τις μεταβλητές που θα
χρησιμοποιηθούν μέσα στην Entry. Στην γραμμή 52 παίρνουμε
την πληκτρολόγηση του χρήστη στην μεταβλητή τύπου string
inpus. Στην γραμμή 53 την μετατρέπουμε σε SLONG για να
μπορεί να χρησιμοποιηθεί από την cube. Στην γραμμή 54
καλείται η συνάρτηση cube να κάνει τον υπολογισμό και να
επιστρέψει το αποτέλεσμα στην μεταβλητή answer.
Στην γραμμή 55 εμφανίζουμε το αποτέλεσμα στο console
window της Xbasic.
Γραμμές 66..71
Εδώ βρίσκεται ο κώδικας της συνάρτησης cube. Στην γραμμή
66 υπάρχει ο ορισμός των παραμέτρων και στην συνέχεια
έχουμε τον κώδικα υπολογισμού. Σε αυτή την συνάρτηση
έχουμε απλά το υπολογισμό του κύβου (ύψωση στην τρίτη
δύναμη) της παραμέτρου x, που βρίσκεται στην γραμμή 68.
Στην γραμμή 70, η τοποθέτηση του αποτελέσματος σε
παρένθεση κάνει την Xbasic να δώσει την τιμή αυτή σαν
αποτέλεσμα υπολογισμού στην συνάρτηση cube και να το
επιστρέψει στην μεταβλητή που χρησιμοποιήσαμε για την
κλήση της, την answer.
Με αυτό το απλό παράδειγμα φαίνεται πόσο χρήσιμο είναι να
χρησιμοποιούμε συναρτήσεις, εφόσον αν ξαναχρειαστούμε
μέσα στο πρόγραμμα να υπολογίσουμε τον κύβο ενός αριθμού
δεν έχουμε παρά να καλέσουμε την συνάρτηση.
Π.χ.
SLONG x1,x2
x1 = 10
x2 = cube(x1)
Επόμενο Προηγούμενο Περιεχόμενα