İçerikler

# Değişkenlerin Kullanımı

LibreOffice Basic'de değişkenlerin temel kullanımı açıklanmaktadır.

## Değişken Tanımlayıcıları için Adlandırma Kuralları

Bir değişken ismi en fazla 255 karakter içerebilir. Değiken isminin ilk karakteri bir A-Z ya da a-z harfi olmalıdır. Sayılar da değişken ismine dahil edilebilir. Alt çizgi ("_") dışında noktalama işaretlerine ve özel karakterlere izin verilmez. LibreOffice Basic'te değişken tanımlayıcılar büyük-küçük harf duyarlı değildir. Değişken isimleri boşluk içerebilir ancak bu durumda köşeli parantezlerle kapatılmalıdır.

Değişken kimlikleri için örnekler:

        MyNumber=5      'Doğru'
        MyNumber5=15      'Doğru'
        MyNumber_5=20   'Doğru'
        My Number=20    'Geçersiz, boşluk içeren değişken köşeli parantez içine alınmalı'
        [My Number]=12  'Doğru'
        DéjàVu=25       'Geçersiz, özel karakterlere izin verilmez'
        5MyNumber=12    'Geçersiz, değişken, bir sayıyla başlayamaz'
        Number,Mine=12  'Geçersiz, noktalama işaretlerine izin verilmez'

## Değişken Bildirimleri

LibreOffice Basic'te bir değişkeni açıkça belirtmek zorunda değilsiniz. Bir değişken bildirimi Dim ifadesi ile yapılabilir. İsimleri virgülle yırarak bir seferde birden fazla değişken bildirebilirsiniz. Değişken tipi tanımlamak için, ya isimden sonra tip-bildirim işareti ya da uygun anahtar kelimeyi kullanın.

Değişken tanımlamaları için örnekler:

        Dim a$               ' "a" değişkenini Metin(String) olarak tanımlar'
        Dim a As String      ' "a" değişkenini Metin (String) olarak tanımlar'
        Dim a$, b As Integer 'Bir değişkeni Metin (String) ve diğerini Tamsayı (Integer) olarak belirtir'
        Dim c As Boolean     'c'yi TRUE veya FALSE olabilen bir Boolean değişkeni olarak bildirir'

Bir değişkeni belli bir tipte bildiğiniz zaman aynı isimle başka bir tipte bir değişken bildiremesiniz!

Tek bir kod satırında birden fazla değişken bildirdiğinizde, her değişkenin türünü belirtmeniz gerekir. Bir değişkenin türü açıkça belirtilmezse, Basic değişkenin Varyant türünde olduğunu varsayacaktır.

      ' "a" ve "b" değişkenlerinin her ikisi de Integer türündedir
      Dim a As Integer, b As Integer
      ' "c" Değişkeni bir Varyant ve "d" bir Tamsayıdır
      Dim c, d As Integer
      ' Bir değişken açıkça Varyant olarak da bildirilebilir
      Dim e As Variant, f As Double

Varyant türü, her türlü değeri saklayabilen özel bir veri türüdür. Daha fazla bilgi edinmek için aşağıdaki Varyant türü bölümüne bakın.

### Değişken Tanımlarının Zorunlu Kılınması

Değişkenlerin tanımlanmasını zorunlu kılmak için, aşağıdaki komutu kullanın:

    Option Explicit

Option Explicit ifadesi ilk SUB ' dan önce modül içindeki ilk satır olmak zorundadır. Genellikle, sadece dizilerin açıkça tanımlanması gerekmektedir. Diğer tüm değişkenler tip-tanımlama karakterine göre tanımlanır, veya - eğer belirtilmediyse - Single varsayılan tipinde olduğu gibi.

## Değişken Tipleri

LibreOffice Basic dört değişken sınıfını destekler:

- Numeric değişkenler sayı değerleri içerir. Bazı değişkenler büyük ya da küçük sayıları, diğerleri de kayan-noktalı ya da kesirli sayıları depolamak için kullanılır.

- String değişkenler karakter dizisi içerir.

- Boolean değişkenler TRUE ya da FALSE değer içerir.

- Nesne değişkenleri bir belge içinde tablolar ve belgeler gibi, değişken türünün farklı nesnelerini depolayabilir.

### Tam Sayı Değişkenleri

Tam sayı değişkenler -32768 ile 32767 arasındadır. Eğer bir kayan-noktalı değeri tamsayı değişkene atarsanız, ondalık kısım bir sonraki tam sayıya yuvarlanır. Tam sayı değişkenler yordamlarda hızlıca hesaplanır ve döngülerde sayaç değişkeni olarak uygundur. Bir tam sayı değişkeni sadece iki byte belleğe ihtiyaç duyar. "%" tip-bildirim karakteridir.

    Dim Variable%
    Dim Variable As Integer

### Uzun Tam Sayı Değişkenleri

Uzun tamsayı değişkenler -2147483648 ile 2147483647 aralığındadır. Eğer kayan-noktalı bir değeri uzun tam sayı değişkene atarsanız, ondalık kısım bir sonraki tam sayı değere yuvarlanır. Uzun tamsayı değişkenleri yordamlarda hızlıca hesaplanır ve büyük değerler için döngülerde sayaç değişkeni olarak kullanılmaya uygundur. Bir uzun tam sayı değişkeni dört byte belleğe ihtiyaç duyar. "&" tip-bildirim karakteridir.

    Dim Variable&
    Dim Variable As Long

### Ondalıklı Değişkenler

Ondalık değişkenler pozitif, negatif sayılar veya sıfır değeri alabilir. Duyarlılık 29. basamağa kadardır.

Ondalık sayılar için önek olarak artı (+) veya eksi (-) işaretleri kullanılabilir. ( boşluklu ya da boşluksuz ).

Bir ondalık sayı bir tamsayı değişkenine atanmışsa, LibreOffice Basic ondalıklı sayıyı aşağı veya yukarıdaki bir değere yuvarlar.

### Tekil Değişkenler

Single variables can take positive or negative values ranging from 3.402823 x 10E38 to 1.401298 x 10E-45. Single variables are floating-point variables, in which the decimal precision decreases as the non-decimal part of the number increases. Single variables are suitable for mathematical calculations of average precision. Calculations require more time than for Integer variables, but are faster than calculations with Double variables. A Single variable requires 4 bytes of memory. The type-declaration character is "!".

    Dim Variable!
    Dim Variable As Single

### Çift Değişkenler

Double variables can take positive or negative values ranging from 1.79769313486232 x 10E308 to 4.94065645841247 x 10E-324. Double variables are floating-point variables, in which the decimal precision decreases as the non-decimal part of the number increases. Double variables are suitable for precise calculations. Calculations require more time than for Single variables. A Double variable requires 8 bytes of memory. The type-declaration character is "#".

    Dim Variable#
    Dim Variable As Double

### Para Birimi Değişkenleri

Para Birimi değişkenleri 64-bit sayılar şeklinde (8 bayt) dahili olarak depolanır ve 4 ondalık kısım ile 15 ondalık olmayan kısımdan oluşan sabit ondalıklı sayılar şeklinde gösterilir. Değer aralığı -922337203685477,5808'den +922337203685477,5807'ye kadardır. Para birimi değerlerinin yüksek hassasiyetle hesaplanması için kullanılırlar. Tip bildirim karakteri "@" işaretidir.

    Dim Variable@
    Dim Variable As Currency

### Literals for integers

Numbers can be encoded using octal and hexadecimal forms.

      xi = &o13 '    8 + 3
      ci = &h65 ' 6*16 + 5
      MAX_Integer =  &o77777 '  32767 = &h7FFF
      MIN_Integer = &o100000 ' -32768 = &h8000
      MAX_Long = &h7fffffff '  2147483647 = &o17777777777
      MIN_Long = &h80000000 ' -2147483648 = &o20000000000

### Dizi Değişkenleri

String variables can hold character strings with up to 2,147,483,648 characters. Each character is stored as the corresponding Unicode value. String variables are suitable for word processing within programs and for temporary storage of any non-printable character up to a maximum length of 2 Gbytes. The memory required for storing string variables depends on the number of characters in the variable. The type-declaration character is "$".

In BASIC String functions, the first character of the string has index 1.

    Dim Variable$
    Dim Variable As String

### Mantıksal Değişkenler

Boolean değişkenleri iki değerden sadece birini depolar: DOĞRU ya da YANLIŞ. Sadece 0 YANLIŞ, diğer tüm değerler DOĞRU kabul edilir.

    Dim Variable As Boolean

### Tarih Değişkenleri

Tarih değişkenleri sadece dahili biçimde depolanan tarih ve zaman değerlerini içerir. Değişkenler Tarih değişkenine Dateserial, Datevalue, Timeserial ya da Timevalue ile atanırlarve otomatik olarak dahili formata dönüştürülürler. Tarih değişkenleri Day, Month, Year or the Hour, Minute, Second fonksiyonları kullanılarak normal sayılara dönüştürülürler. Dahili biçim iki sayı arasındaki farkı hesaplayarak tarih/zaman karşılaştırması yapabilir. Bu değişkenler sadece Date anahtar kelimesiyle tanımlanabilir.

    Dim Variable As Date

### Tarihler için Değişmez Değerler

Date literals allow to specify unambiguous date variables that are independent from the current language. Literals are enclosed between hash signs #. Possible formats are:

- #yyyy-mm-dd#

- #mm/dd/yyyy#

      start_date = #12/30/1899# ' = 1
      dob = #2010-09-28#

## The Variant type

Variables declared as Variant can handle any data type. This means that the actual data type is defined during runtime as a value is assigned to the variable.

There are three main ways to create a Variant variable, as shown below:

      Dim varA            ' The type is not specified, hence the variable is a Variant
      Dim varB as Variant ' The variable is explicitly declared as a Variant
      varC = "abc"        ' Previously undeclared variables are treated as Variants

The example below uses the TypeName function to show how the type of a Variant variable changes upon assignment.

      Dim myVar As Variant
      MsgBox TypeName(myVar) ' Empty
      myVar = "Hello!"
      MsgBox TypeName(myVar) ' String
      myVar = 10
      MsgBox TypeName(myVar) ' Integer

A Variant variable is initialized with the Empty special data type. You can use the IsEmpty function to test if a variable is an Empty Variant.

You can also use the keyword Any to declare a variable as a Variant. However, Any is deprecated and is available for backward compatibility.

Arguments with type Variant or Any passed in function calls are not checked for their types.

      Dim myVar As Any ' Variable "myVar" is a Variant

## Değişkenlerin Başlangıç Değerleri

Değişkenler tanımlandıklarında otomatik olarak "Null" değerini alırlar. Aşağıdaki kurallara dikkat edin:

Sayısal değişkenlere tanımlandıklarında otomatik olarak "0" değeri atanır.

Tarih değişkenleri dahili olarak 0 değerine atanır; aynı şekilde Gün, Hafta, Yıl ya da Saat, Dakika, Saniye fonksiyonlarıyla da değeri "0" a dönüşür.

Karakter dizisi değişkenleri tanımlandığında, boş bir ("") karakter dizisi atanır.

## Diziler

LibreOffice Basic özel bir değişken tipi tarafından tanımlanmış tek veya çok boyutlu dizileri tanır. Diziler programlardaki listeleri ve tabloları düzenlemek için uygundur. Bir dizinin özel öğeleri sayısal bir indeksle adreslenebilir.

Diziler Dim durumu ile tanımlanmak zorundadır. Bir dizinin dizin aralığını tanımlamanın farklı yolları vardır:

        Dim Text$(20)       '21 elements numbered from 0 to 20'
        Dim Text$(5,4)      '30 elements (a matrix of 6 x 5 elements)'
        Dim Text$(5 To 25)  '21 elements numbered from 5 to 25'
        Dim Text$(-15 To 5) '21 elements (including 0), numbered from -15 to 5'

Dizin aralığı pozitif ve negatif sayılar içerebilir.

## Sabitler

Sabitler değişmez bir değere sahiptir. Programda bir kere tanımlanırlar ve tekrar tanımlanamazlar:

    Const ConstName=Expression

İlgili Konular

Basic Constants

Dim Statement