Autoplay Media Studio Eğitimi 1

guclusat

Tanınmış Üye
Süper Moderatör
DEĞİŞKENLER (Variable)

* Değişkenler için programlamada yapı taşları diyebiliriz. Değişkenleri içlerine veri depolamak, daha sonra depoladığımız verileri istersek değiştirmek, başka değişken veya değerlerle birleştirmek, ekrana yazdırmak, hesaplama yapmak gibi bir çok işlemde kullanabiliriz.

Örnek:


isim = "ahmet"



Burda isim değişkenine ahmet değerini depoladık. Şimdi bunu istediğimiz yerde kullanabiliriz.

Dialog.Message("Adamın ismi:", isim)

Bu kod ekrana ahmet değerini yazdıracaktır. İstersek

Dialog.Message("Adamın ismi:", "ahmet")



kodunuda kullanabilirdik, sonuç değişmezdi fakat, programlamada ilerledikçe çok uzun değerler, birleştirilmesi gereken değerler gibi olaylarla çalışmaya başladığınız zaman değişken olayının işinizi çok kolaylaştıracağını göreceksiniz. Örneğin 10 sayfalık bir projede her sayfada bir INI dosyasından veri alacaksınız. INI dosyasıda diyelimki C:\Documents and Settings\selami\desktop\programlar\adresler.ini adresinde. Burdan veri çekmek için her sayfadaki kodu şu şekilde kullanmanız gerekiyor:

INIFile.GetValue("C:\\Documents and Settings\\selami\\desktop\\programlar\\adresler.ini", "Ev", "adres1")



fakat her kodda bu kadar uzun yol kullanmak yerine şu şekilde yapsaydık daha derli toplu bir görüntü oluşurdu:

sDosyaYolu = "C:\\Documents and Settings\\selami\\desktop\\programlar\\adresler.ini";

INIFile.GetValue(sDosyaYolu, "Ev", "adres1")



Gördüğünüz gibi sadece değişkenimizi yazdık ve veriyi çektik.

* Değişkendeki veriyi, kendine ekleme yaparakda değiştirebiliriz.

Örnek:

sayi = 10
sayi = sayi + 10



Bu şekilde yaptigimiz zaman ilk satirda sayi degiskenine 10 sayısını depolarız ve ikinci satırda sayi degiskenini 10 ile toplayip depoladigi veriyi degistirebiliriz.

*** Global Functionsda örneğin isim = "selami" değişkenini tanımladıktan sonra projenin başka yerinde isim değişkenine başka bir veri depolarsak son depoladığımız veri geçerli olmaktadır.


a = 10;
b = a;
Dialog.Message("değer", B);



Bu örnektede b değişkenine a değişkenini depoluyoruz, a değişkenine daha önce 10 değerini depoladığımız için b değişkenini ekrana yazdırdığımızda karşımıza 10 değeri gelecektir.


*** Değişkenler sayı ile başlayamaz, operatorler isimleri kullanilamaz, boşluk karakteri kullanılamaz ve değişkenlerde türkçe karakter kullanılamaz!.

Hatalı değişkenlere örnekler:

1
1data
%MyValue%
$strData
for
local
_FirstName+LastName_
User Name




NUMARALAR (number)

Numaralar Numerik değerlerdir. AMS de kullanılabilecek geçerli numara örnekleri şunlardır:

4 4. .4 0.4 4.57e-3 0.3e12





DEĞERLER (string)

Değerlerden sıkça bahsettik, şimdi ne olduğuna bakalım. Değerler, birleşik karakterlerdir. Örneğin “Joe2” 4 karakterli bir değerdir. Büyük J ile başlar, 2 sayısı ile biter. Karakter sınırı yoktur, bir kelimeden, bir cümleden yada bir kitabı tamamen içerebilir.

Değerler her zaman "" karakterleri içinde gösterilir:

isim = "selami"
sehir = "istanbul"
adres = "12 nolu sk. 78. cadde"




Eğer değerlerin için "" tırnak işareti kullanmak istiyorsanız kullanacağınız tırnak işaretlerinden önce \ karakterini kullanmanız gerekir:

cumle = "Orda bir köy var uzakta, Köyün ismi \"abacılar köyü\" dür."



Bu şekilde kullanılmazsa syntax hatası verir.

Değerlerin içinde satırlar kullanmak isterseniz \n ibaresini kullanmanız gerekir:

Lines = "Line one.\nLine two.\nLine three";
Dialog.Message("Here is the String", Lines);



http://www.indigorose.com/webhelp/a..._guide/ams60_scripting_three_lines_dialog.png

Dosya yolu belirtirken \ karakterinden iki adet kullanmanız gerekir.

dosya_yolu = "C:\\Program Files\\MSN\\msn.exe"



Eğer değer sadece sayı içeriyorsa ams bunu direk sayıya dönüştürecektir.

a = "10" + 1 -- sonuç 11 olacaktır.



Ama değerin kendi içinde hesaplama yaptırılamaz.

a = "10+1" -- ekrana yazdırıldığında 10+1 olarak görünecektir.

a = 10+1 -- hesaplamada doğru yol budur.





FONKSİYONLAR (function)

Büyük projelerinizde kod karmaşından kurtulmak için yardımınıza koşacak aracımız fonksiyonlardır. Hazırlayacağınız fonksiyon kodlarıyla, aynı kodları tekrar tekrar kullanmaktan kurtursunuz. Kullanımı şu şekildedir:

function fonksiyon_adı (argümanlar)
fonksiyon kodları
return dönüş_değeri;
end



Örnek:

function hosgeldin()
Dialog.Message("merhaba","Hoşgeldiniz!");
end



Programın giriş bölümüne

hosgeldin()

kodunu yazdığınız zaman Dialog penceresini açıp hoşgeldiniz diyecektir. Tabi bu basit bir örnek. Sınırı hayalgücünüzle doğru orantılıdır...



TABLOLAR (table)

Tablolar indekslenmiş değerleri liste halinde tek bir isimde depolamanın en güçlü ve kolay yoludur.

Örnek:

isimler = {"Ahmet", "Selami", "Mustafa"}

Dialog.Message("Tablodaki ikinci kişi:", isimler[2])



bu kod ekrana selami ismini yazdıracaktır. çünkü isimler[2] dediğimizde isimler tablosunda 2. sıradaki değeri alacaktır.

İkinci tablolama şekli:

tSarkici = {}
tSarkici.isim = "şebnem"
tSarkici.soyisim = "ferah"
tSarkici.yas = "35"

Dialog.Message(tSarkici.isim, tSarkici.soyisim)



bu kod şebnem ve ferah değerlerini yazdıracaktır.

Tablolamada şöyle bir yazım tarzı daha vardır;

tVeriler = {Meyve="Elma",Renk="Kırmızı"}
Dialog.Message("", tVeriler.Meyve);



AMS8'de pairs espriside bu tablolardaki Meyve ve Renk yazılarını göstermemizi sağlıyor..

pairs argümanını şu şekildede kullanabiliriz:

tMeyveler = {"Elma", "Armut", "Portakal"}

for i in pairs(tMeyveler) do
Dialog.Message("Meyveler:", tMeyveler)
end



Bu kodu çalıştırdığımız zaman tMeyveler tablosundaki öğeleri sırayla ekrana yazdıracaktır. i argümanının esprisi daha öncede belirttiğimiz gibi tablonun içindeki öğelerin indeks numaralarıdır.



KONTROL YAPILARI (KOŞULLANDIRMA)

Kodlarınıza koşullar ve kontrol yapıları ile yön verebilirsiniz.

Kontrol Yapı operatorleri if, while, repeat ve for'dur.

- if

eğer anlamına gelen if ile koşullandırma yapıyoruz. Yapısı basitçe şu şekildedir:

if şartlandırma then
koşul gerçekleşirse çalışacak kodlar
end




Örnek:

x = 50;
if x > 10 then -- eğer x 10 sayısından büyükse
Dialog.Message("result", "x, 10'dan büyüktür"); -- mesajı görüntüle.
end



else operatoru ile koşullandırmamıza şartlar koşabiliriz:

x = 50;
if x > 10 then -- eğer x 10 sayısından büyükse
Dialog.Message("result", "x, 10'dan büyüktür"); -- mesajı görüntüle.
else -- değilse
Dialog.Message("result", "x, 10'dan küçüktür"); -- mesajı görüntüle.
end



elseif kullanarak koşullandırmamızdaki doğru sonuca ulaşınca çalıştırılacak kodları belirleyebiliriz:

x = 5;
if x == 10 then
Dialog.Message("", "x eşittir 10");
elseif x == 11 then
Dialog.Message("", "x eşittir 11");
elseif x == 12 then
Dialog.Message("", "x eşittir 12");
else
Dialog.Message("", "x eşit değildir 10/11/12 ");
end



eğer x ordaki hiç bir sayıya eşit olmadığı için else den sonraki eşit değildir mesajı görüntülenecektir. fakat x = 10 olsaydı ilk mesaj, 11 olsaydı 2. mesaj, 12 olsaydı 2. mesaj görüntülenecekti.



- While

While döngüsü, koyduğumuz şart yerine gelene kadar kodu tekrarlayacaktır. Basit yapı şu şekildedir:

while şartlandırma do
çalıştılacak kodlar
end



Örnek:

a = 1;
while a < 10 do
a = a + 1;
end



Bu kodda a = a + 1 kodu 9 defa çalıştırılacaktır. Çünkü şartımızda a < 10 (a 10'dan küçükse) dedik ve a = 1, yani 10 sayısına ulaşmak için 9 kere 1 ile toplamamız gerekiyor a = a + 1 dediğimizde a+1+1+1+1+1+1+1+1 şeklinde çalışacak ve sayı 10'a ulaşında duracaktır.


while döngüsü esnasında yine şartlandırma yaparak break argümanı ile döngüyü durdurmak mümkün.

count = 1;
while count < 100 do -- count 100 den küçükse yap
count = count + 1; -- count'a 1 ekle
if count == 50 then -- eğer count 50'ye eşitse
break; -- döngüyü durdur
end
end



count 50 sayısına ulaştığında break argümanı döngüyü durduracaktır.



- For

for ifadesi kısaca kod tekrarı yaparken kullanılır. Basitçe yapısı şu şekildedir:

for değişken = başlama, durma, adım do
çalışacak kodlar
end




Örnek:

for i = 1,10,1 do
Dialog.Message("Number", i);
end



Burda i harfi döngüde dönen sayıyı belirtir. i=1,10,1 şu demektir;

i = döngü sayısı
1 = başlangıç
10 = bitiş
1 = adım


yani 1 den 10 a kadar 1'er 1'er say ve i harfinde depola

daha sonrada Dialog.Message("Number", i); yazarak dialogda sayıları gösterir.

Bitiş sayısı kaç ise o sayıya kadar döngü tekrarlanır.



- repeat:

Repeat döngüsü for döngüsüne çok benzerlik göstermektedir. Verilen koşulu until şartlandırmasına kadar tekrar eder.

Örnek:

x = 50;

repeat

x = x + 1; - altta x >= 100 diye koşul koyduk bu koşul sağlanana kadar x'in üzerine bir ekleyecek..

until

x >= 100 - koşulumuz x değişkeni 100e eşit olursa veya büyük olursa bu koşul sağlanınca döngü duracak



*** break argümanı for döngüsünde, repeat döngüsünde ve while döngüsünde döngüyü durdurmak için kullanılır.



OPERATORLER

- Aritmetik Operatorler:

Aritmetik Operatorler Matematiksel işlemlerde kullanılır. Şu operatorler desteklenmektedir:

+ (toplama)
- (çıkarma)
* (çarpma)
/ (bölme)
% (yüzde)
^ (üssü)
unary - (olumsuzluk)


Örnek:

a = 5 + 2; -- 5+2 yi topla ve a değişkeninde depola
b = a * 100; -- a değişkeninde depolanan sayıyı 100 ile çarp
Dialog.Message("Sonuç:", B) -- b'yi yazdır



Denediğiniz zaman 700 sonucu çıktığını göreceksiniz.



- İlişkisel Operatorler:

İlişkisel operatorler iki değeri karşılaştırmak için kullanılır. Şu operatorler desteklenmektedir:

> (Büyükse)
< (Küçükse)
<= (küçükse yada eşitse)
>= (büyükse yada eşitse)
~= (eşit değilse)
== (eşitse)


Örnek:

a = 5
b = 1

if a > b then -- eğer a, b'den büyükse
Dialog.Message("Sonuç:", "a, b'den büyüktür.")
end



Kod bu şekilde çalıştırıldığında "a, b'den büyüktür" şeklinde bir dialog penceresi çıkacaktır. a ve b deki sayılar yer değiştirildiğinde hiç bir yanıt vermeyecektir. Kodlamada büyük-küçük harf duyarlılığına dikkat ediniz. Şöyleki;

"ahmet" == "ahmet" -- eşittir
"Ahmet" == "ahmet" -- eşit değildir.





- Yerel Operatorler:

Yerel operatorler Boolean işlemlerde kullanılır. (Boolean'in tam bir türkçe karşılığı yok, true veya false alan değerler diyoruz kısaca. Yani bu işlemlerin sonucunda geri dönen değer true yada false dır.). Desteklenen operatorler şunlardır:

and (and içeren değerler aynı dönüşü vermelidir)
or (or içeren değerlerden en az biri istenen dönüşü vermelidir)
not (değerin zıttını verir)


*** Burdan nil operatorunede değinmek isterim. nil demek boş, geçersiz demektir. yani a = nil derseniz a'nın karşılığında birşey dönmez. Global Functions'da boş bir değer tanımlamak ve daha sonradan bunun içine farklı veriler depolamak için bu tekniği kullanabilirsiniz. Bu bilgi kenarda kalsın.



a = true;
b = false;
c = a and b; -- c değişkenine false değeri depolanır. a = true olsada b = false'dır çünkü.
d = a and nil; -- d değişkenine false depolanır.
e = not b; -- b = false olduğu için not operatörüde zıttını vereceği için e değişkenine true depolanır.



Dialog.Message("Sonuç:", e) derseniz sonucu göreceksiniz.

Örnek:

a = true;
b = true;

if a and b then -- eğer a ve b true ise
Dialog.Message("Sonuç:", "tüm değerler: true")
else -- değilse
Dialog.Message("Sonuç:", "bazı değerler false içeriyor!")
end



Yukarıdaki örnekte tüm değerler true mesajını alırsınız. Eğer a yada b değerlerinden birini false yaparsanız ikinci mesajı alırsınız. Eğer a and b yerine a or b derseniz değerlerden herhangi birinin true olması, tüm değerler true mesajını almanız için yeterlidir.



- Uzunluk Operatoru:

Bu operator yani #, değerin karakter uzunluğunu alır ve yazdırır.

Örnek:

nLength = #"Hey"; -- nLength değişkenine Hey kelimesinin karakterlerini sayar ve depolar (Yani 3)





NOTLAR:

Her zaman kullandığımız fakat ayrıntılarına pek değinmediğimiz şeylerden burda bahsedelim...



- Birleştirme:

Birleştirmeden kastımız; iki değerin, iki değişkenin yada iki komutun birleştirilmesidir. Bu argümanları birleştirmek için ..kullanılır. Örneğin;

x = "ali"
y = "veli"

Dialog.Message("İsim:" x .. y)

dediğimiz zaman ekrana aliveli şeklinde yazdıracaktır. eğer x .. " " .. y deseydik ekrana ali veli şeklinde yazdıracaktır. Yani iki değerin arasında boşluk koyduk.
 
Geri
Yukarı