Άρθρωμα
Περιεχόμενα
Δείκτης 🔎︎

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

Παρακάτω περιγράφεται η βασική χρήση των μεταβλητών στην 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 υποστηρίζει τέσσερις κλάσεις μεταβλητών:

- Οι Αριθμητικές μεταβλητές μπορούν να περιέχουν τιμές αριθμού. Μερικές μεταβλητές χρησιμοποιούνται για να αποθηκεύουν μεγάλους ή μικρούς αριθμούς και άλλες χρησιμοποιούνται για αριθμούς κινητής υποδιαστολής ή κλασματικούς αριθμούς.

- Οι μεταβλητές συμβολοσειράς περιέχουν τις συμβολοσειρές χαρακτήρων.

- Οι μεταβλητές Μπουλ περιέχουν είτε την τιμή TRUE είτε την τιμή FALSE.

- Οι μεταβλητές Object μπορούν να αποθηκεύουν αντικείμενα διάφορων τύπων, όπως πίνακες και έγγραφα μέσα σε ένα έγγραφο.

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

Οι ακέραιες μεταβλητές κυμαίνονται από -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