Χρήση μεταβλητών

Παρακάτω περιγράφεται η βασική χρήση των μεταβλητών στην LibreOffice Basic.

Συμβάσεις ονοματοδοσίας για τα αναγνωριστικά μεταβλητών

Το όνομα μιας μεταβλητής μπορεί να αποτελείται το πολύ από 255 χαρακτήρες. Ο πρώτος χαρακτήρας του ονόματος μιας μεταβλητής πρέπει να είναι κάποιο γράμμα από A-Z ή από a-z. Μπορούν επίσης να χρησιμοποιηθούν και αριθμοί στο όνομα μιας μεταβλητής, ωστόσο δεν επιτρέπεται η χρήση σημείων στίξης και ειδικών χαρακτήρων, με εξαίρεση του χαρακτήρα υπογράμμισης ("_"). Στο LibreOffice Basic τα αναγνωριστικά μεταβλητής δεν κάνουν διάκριση πεζών-κεφαλαίων. Τα ονόματα μεταβλητών μπορούν να περιέχουν κενά, αλλά τότε θα πρέπει να περικλείονται σε αγκύλες.

Παραδείγματα για τα αναγνωριστικά μεταβλητών:

MyNumber=5

Σωστό

MyNumber5=15

Σωστό

MyNumber_5=20

Σωστό

My Number=20

Μη έγκυρο, μεταβλητές με διαστήματα πρέπει να περικλείονται σε αγκύλες

[My Number]=12

Σωστό

DéjàVu=25

Μη έγκυρο, δεν επιτρέπονται ειδικοί χαρακτήρες

5MyNumber=12

Μη έγκυρο, η μεταβλητή δεν πρέπει να αρχίζει με αριθμό

Number,Mine=12

Μη έγκυρο, δεν επιτρέπονται σημεία στίξης


Δηλώσεις μεταβλητών

Στη LibreOffice Basic, δεν χρειάζεται να δηλώσετε ρητά τις μεταβλητές. Η δήλωση της μεταβλητής μπορεί να γίνει με την πρόταση Dim. Μπορείτε να δηλώσετε περισσότερες από μία μεταβλητές κάθε φορά, διαχωρίζοντάς τα ονόματά τους με κόμμα. Για να καθορίσετε τον τύπο της μεταβλητής, χρησιμοποιήστε ένα σύμβολο δήλωσης τύπου μετά το όνομα ή την κατάλληλη λέξη-κλειδί.

Παραδείγματα για τις δηλώσεις μεταβλητών:

Dim a$

Δηλώνει τη μεταβλητή "a" ως συμβολοσειρά

Dim a As String

Δηλώνει τη μεταβλητή "a" ως συμβολοσειρά

Dim a$, b As Integer

Δηλώνει μία μεταβλητή ως συμβολοσειρά και μία ως ακέραιο αριθμό

Dim c As Boolean

Δηλώνει την c ως μεταβλητή Μπουλ με τιμές TRUE-ΑΛΗΘΕΣ ή FALSE-ΨΕΥΔΕΣ


Είναι πολύ σημαντικό όταν δηλώνετε μεταβλητές να χρησιμοποιείτε τον χαρακτήρα δήλωσης τύπου κάθε φορά, ακόμα και αν έχει χρησιμοποιηθεί στη δήλωση αντί για μια λέξη-κλειδί. Επομένως, οι ακόλουθες προτάσεις είναι άκυρες:

Dim a$

Δηλώνει την "a" ως συμβολοσειρά

a="TestString"

Λείπει η δήλωση τύπου: "a$="


Εικονίδιο προειδοποίησης

Αφού δηλώσετε μια μεταβλητή με συγκεκριμένο τύπο, δεν μπορείτε να δηλώσετε την μεταβλητή με το ίδιο όνομα ξανά ως διαφορετικό τύπο!


Επιβάλλοντας την δήλωση μεταβλητών

Για να επιβάλετε τη δήλωση των μεταβλητών, χρησιμοποιήστε την ακόλουθη εντολή:

Option Explicit

Η πρόταση Option Explicit πρέπει να είναι η πρώτη γραμμή της ενότητας, πριν από την πρώτη SUB. Γενικά, μόνο οι πίνακες πρέπει να δηλωθούν ρητά. Όλες οι άλλες μεταβλητές δηλώνονται σύμφωνα με το χαρακτήρα δήλωσης τύπου, ή - εάν παραλείπεται - ως ο προεπιλεγμένος τύπος Single.

Τύποι μεταβλητών

Η LibreOffice Basic υποστηρίζει τέσσερις κλάσεις μεταβλητών:

Ακέραιες μεταβλητές

Οι ακέραιες μεταβλητές κυμαίνονται από -32768 έως 32767. Εάν ορίζετε μια τιμή κινητής υποδιαστολής σε μια μεταβλητή ακέραιου, οι δεκαδικές θέσεις στρογγυλοποιούνται στον επόμενο ακέραιο. Οι μεταβλητές ακέραιων υπολογίζονται γρήγορα στις διαδικασίες και είναι κατάλληλες για μεταβλητές μετρητών στους βρόχους. Μια μεταβλητή ακέραιου απαιτεί μόνο δύο ψηφιολέξεις μνήμης. Το "%" είναι ο χαρακτήρας δήλωσης τύπου.

Dim Variable%

Dim Variable As Integer

Μεταβλητές ακεραίων μεγάλου μήκους

Οι μεγάλες ακέραιες μεταβλητές περιλαμβάνουν τους αριθμούς από -2147483648 έως 2147483647. Εάν ορίζετε μια τιμή κινητής υποδιαστολής σε μεταβλητή μεγάλου ακέραιου, οι δεκαδικές θέσεις στρογγυλεύονται στον επόμενο ακέραιο. Οι μεταβλητές μεγάλων ακέραιων υπολογίζονται γρήγορα στις διαδικασίες και είναι κατάλληλες ως μεταβλητές μετρητών σε βρόχους για μεγάλες τιμές. Μια μεταβλητή μεγάλου ακέραιου απαιτεί τέσσερις ψηφιολέξεις της μνήμης. Το "&" είναι ο χαρακτήρας δήλωσης τύπου.

Dim Variable&

Dim Variable As Long

Δεκαδικές μεταβλητές

Οι δεκαδικές μεταβλητές μπορούν να πάρουν θετικούς ή αρνητικούς αριθμούς ή το μηδέν. Η ακρίβεια είναι μέχρι 29 ψηφία.

Μπορείτε να χρησιμοποιήσετε τα πρόσημα συν (+) ή μείον (-) ως προθέματα για δεκαδικούς αριθμούς (με ή χωρίς κενά).

Εάν ένας δεκαδικός αριθμός ανατεθεί σε μια μεταβλητή ακέραιου, η LibreOffice Basic στρογγυλεύει τον αριθμό προς τα πάνω ή προς τα κάτω.

Μεταβλητές απλής ακριβείας

Οι απλές μεταβλητές μπορούν να πάρουν θετικές ή αρνητικές τιμές που κυμαίνονται από 3,402823 x 10E38 ως 1,401298 x 10E-45. Οι απλές μεταβλητές είναι μεταβλητές κινητής υποδιαστολής, στις οποίες η δεκαδική ακρίβεια μειώνεται καθώς το μη-δεκαδικό μέρος του αριθμού αυξάνεται. Οι απλές μεταβλητές είναι κατάλληλες για μαθηματικούς υπολογισμούς μέσης ακριβείας. Οι υπολογισμοί απαιτούν περισσότερο χρόνο από τις μεταβλητές ακέραιου, αλλά είναι γρηγορότεροι από τους υπολογισμούς με μεταβλητές τύπου διπλής ακρίβειας. Η απλή μεταβλητή απαιτεί 4 ψηφιολέξεις της μνήμης. Ο χαρακτήρας δήλωσης τύπου είναι "!".

Dim Variable!

Dim Variable As Single

Μεταβλητές διπλής ακριβείας

Οι μεταβλητές διπλής ακρίβειας μπορούν να πάρουν θετικές ή αρνητικές τιμές που κυμαίνονται από 1,79769313486232 x 10E308 έως 4,94065645841247 x 10E-324. Οι μεταβλητές διπλής ακρίβειας είναι μεταβλητές κινητής υποδιαστολής, στις οποίες η δεκαδική ακρίβεια μειώνεται ενώ το μη-δεκαδικό μέρος του αριθμού αυξάνεται. Οι μεταβλητές διπλής ακρίβειας είναι κατάλληλες για ακριβείς υπολογισμούς. Οι υπολογισμοί απαιτούν περισσότερο χρόνο από τις μεταβλητές απλής ακρίβειας. Η μεταβλητή διπλής ακρίβειας απαιτεί 8 ψηφιολέξεις της μνήμης. Ο χαρακτήρας δήλωσης τύπου της μεταβλητής είναι "#".

Dim Variable#

Dim Variable As Double

Μεταβλητές νομίσματος

Οι μεταβλητές νομίσματος είναι εσωτερικά αποθηκευμένες ως αριθμοί 64 δυαδικών ψηφίων (8 ψηφιολέξεις) και εμφανίζονται ως σταθεροί δεκαδικοί αριθμοί με 15 μη-δεκαδικές και 4 δεκαδικές θέσεις. Οι τιμές κυμαίνονται από -922337203685477,5808 έως +922337203685477,5807. Οι μεταβλητές νομίσματος χρησιμοποιούνται για να υπολογίσουν νομισματικές τιμές με υψηλή ακρίβεια. Ο χαρακτήρας δήλωσης τύπου είναι "@".

Dim Variable@

Dim Variable As Currency

Μεταβλητές συμβολοσειράς

Οι μεταβλητές συμβολοσειράς μπορούν να κρατούν συμβολοσειρές μέχρι και 65.535 χαρακτήρες. Κάθε χαρακτήρας αποθηκεύεται ως μία αντίστοιχη τιμή Unicode. Οι μεταβλητές συμβολοσειράς είναι κατάλληλες για την επεξεργασία κειμένου στα προγράμματα και για την προσωρινή αποθήκευση οποιουδήποτε μη-εκτυπώσιμου χαρακτήρα μέχρι το μέγιστο μήκος των 64 Kb. Η μνήμη που απαιτείται για την αποθήκευση των μεταβλητών συμβολοσειράς εξαρτάται από τον αριθμό των χαρακτήρων στη μεταβλητή. Ο χαρακτήρας δήλωσης τύπου είναι "$".

Dim Variable$

Dim Variable As String

Μεταβλητές Μπουλ

Οι μεταβλητές Μπουλ κρατούν μόνο μια από τις δύο τιμές: TRUE (Αληθές) ή FALSE (Ψευδές). Ο αριθμός 0 αξιολογείται ως FALSE, κάθε άλλη τιμή αξιολογείται ως TRUE.

Dim Variable As Boolean

Μεταβλητές ημερομηνίας

Οι μεταβλητές ημερομηνίας μπορούν μόνο να περιέχουν ημερομηνίες και χρονικές τιμές που αποθηκεύονται με μία προκαθορισμένη μορφή. Τιμές που αποδίδονται σε μεταβλητές ημερομηνίας με τις Dateserial (σειριακή ημερομηνία), Datevalue (τιμή ημερομηνίας), Timeserial (σειριακό χρόνο) ή Timevalue (τιμή χρόνου) μετατρέπονται αυτόματα στην εσωτερική μορφή. Οι μεταβλητές ημερομηνίας μετατρέπονται σε κανονικούς αριθμούς με τη χρήση των συναρτήσεων Day, Month, Year ή των Hour, Minute, Second. Η εσωτερική μορφή ενεργοποιεί μια σύγκριση των τιμών ημερομηνίας/χρόνου με τον υπολογισμό της διαφοράς μεταξύ των δύο αριθμών. Αυτές οι μεταβλητές μπορούν μόνο να δηλωθούν με τη λέξη κλειδί Date.

Dim Variable As Date

Αρχικές τιμές μεταβλητών

Μόλις η μεταβλητή δηλωθεί, αποκτά αυτόματα την τιμή "Null". Σημειώστε τις ακόλουθες συμβάσεις:

Στις μεταβλητές Numeric (αριθμητικές) ανατίθεται αυτόματα η τιμή "0" μόλις δηλωθούν.

Στις Date variables (μεταβλητές ημερομηνίας) αποδίδεται η τιμή 0 εσωτερικά· ισοδυναμεί με τη μετατροπή σε τιμή "0" με τις συναρτήσεις Day, Month, Year ή με τις συναρτήσεις Hour, Minute, Second.

Οι μεταβλητές συμβολοσειράς αποκτούν αυτόματα την τιμή της κενής συμβολοσειράς ("") όταν δηλώνονται.

Πίνακες

Η LibreOffice Basic χρησιμοποιεί μονοδιάστατους ή πολυδιάστατους πίνακες, οι οποίοι προσδιορίζονται από ένα συγκεκριμένο τύπο μεταβλητής. Οι πίνακες είναι κατάλληλοι για την επεξεργασία καταλόγων και πινάκων σε προγράμματα. Ατομικά στοιχεία ενός πίνακα μπορούν να προσπελαστούν μέσω ενός αριθμητικού δείκτη.

Οι πίνακες πρέπει να δηλώνονται με την χρήση της πρότασης Dim. Υπάρχουν διάφοροι τρόποι να καθοριστεί η περιοχή δεικτών ενός πίνακα:

Dim Text$(20)

21 στοιχεία αριθμημένα από το 0 έως το 20

Dim Text$(5,4)

30 στοιχεία (μια μήτρα με 6 x 5 στοιχεία)

Dim Text$(5 To 25)

21 στοιχεία αριθμημένα από το 5 έως το 25

Dim Text$(-15 To 5)

21 στοιχεία (μαζί με το 0), αριθμημένα από το -15 έως το 5


Η περιοχή δεικτών μπορεί να περιλάβει θετικούς καθώς επίσης και αρνητικούς αριθμούς.

Σταθερές

Οι σταθερές έχουν μια σταθερή τιμή. Ορίζονται μόνο μία φορά στο πρόγραμμα και δεν μπορούν να επαναπροσδιοριστούν αργότερα:

Const ConstName=Expression