Pawno | C# | C++ Temel Giriş

Prânk

Odunlara Vur Vur Vur!
Katılım
14 Mart 2019
Mesajlar
49
En iyi cevaplar
0
Elmaslar
26
Puanlar
240
Steam
Prânk
Minecraft
SametKRPNR
Öncelikle şans eseri gördüm bu forumu. Kimin neyidir, nesidir en ufak fikrim yok. Baktım ki yeni forum katkım olsun dedim. :şeytan:

Bu anlatımda sadece pawn değil, diğer programlama dillerinin mantığını kapsayan detaylı bir anlatım olacak.Bu anlatımı anlamanız için elimden geldiğince yalın bir dil kullanmaya çalışıcam. Eğer mantığı kaparsanız, diğer dillere çok rahat uyum sağlayabilirsiniz.

Öncelikle pawn nedir, ne deyildir ona bir göz atalım.


Pawn

Pawn aslında bir programlama dili değildir. Türkçe karşılığı eklenti anlamına gelen bir scripting dildir. Platform'dan bağımsız çalışabilir, microcontroller gibi devrelerin logic (mantık) programlamalarında kullanılabilir. Derlediğiniz tüm kodlar P-Code (bytecode) olarak derlenir. Ayrıca amx32.dll ile beraber C#, C, C++ vb. programlarınıza entegre ederek, programlarınızın dışarıdan 3. şahıslar tarafından yapılan scriptler ile genişletebilirsiniz (Örn: C# ile yapmış olduğunuz bir editör var ve pawn desteği eklediniz ve yayımladınız. Dışarıdan herhangi biri pawn ile editörünüz için plug-in yazabilir ve entegre ederbilir)


1: Syntax

Pawn syntax yapısı C diline benzer bir yapıya sahiptir. Bazı tanımlamalar haricin'de syntax yapısını C dilinden almaktadır.


2: Değişkenler & Veri Yapıları

Gelelim en civcivli bölüme. Bir kısır benim için ne ise, tüm programlama/scripting dilleri içinde değişkenler odur. Değişkenler olmadan, hiçbir programın işlevi olmaz. İşte bu yüzden değişkenleri bilmeniz ve hakim olmanız gerekmektedir.

Pawn dilinde bir değişken tanımlamak için new anahtar kelimesini kullanırız ve değişkenimize isim tanımlarız. Verdiğimiz değişken isimlerinin özel karakter veya rakamlarla başlamadığına çok dikkat edin. Çünkü hiç bir zaman değişken isimleri özel karakter veya rakamlarla başlamaz.

Pawn dilinde 4 farklı veri yapısı bulunur. Bunlar;


    • String
      Integer
      Float
      Boolean

Bu veri türleri, bellekte tutmak istediğiniz verilerin türüdür. Değişkende sayısal bir verimi veya metinsel bir verimi tutmak istediğinizde kullanılır. Detaylı açıklayacak olursak

String

Metinsel/karaktersel verileri tutmanızı sağlar ve bellekte saklanır.

Integer

Sadece tam sayılar'dan oluşan sayısal verileri saklamanızı sağlar

Float

Ondalık sayısal verilerin saklanmasında kullanılır

Boolean

Sadece mantıksal verilerin saklanmasında kullanılır (true-false)


Şimdi değişkenleri ve veri yapılarını örneklerle bekiştirelim. Önce string veri yapısını tanıyalım. Bir değişkenin string değişken olduğunu tanımlamanız için değişken isminin sonuna [] taglarını eklemeniz yetecektir.

new benimIsmim[] = "Alimşah Yıldırım";
new seninIsmin[32] = "İskende Tereyağlı Sos";



Şimdi yukarıda iki tane string değişken örneği verdik. Ancak tanımlamaları dikkat ederseniz farklı. Peki benimIsmim[] ile seninIsmin[32] değişkenleri arasındaki fark ne?

benimIsmim değişkeninde tutulacak maksimum karakter sayısı verilmedi. Bu sayede derleyici, scripti derlerken sadece bellekte 17 karakterlik bir yer ayıracak. Eğer tanımlamayı şu şekilde yapsaydım;

new benimIsmim[32] = "Alimşah Yıldırım";

Bellekte boşu boşuna 15 karakterlik yer israfı yapıp, performansı düşürecektim. Şimdi gelelim seninIsmin değişkenine. Bu değişkende maksimum karakter limiti 32 olarak belirlenmiş. Yani gireceğiniz herhangi isim veya metin maksimum 32 karakter içermek zorunda. 32 karakterden fazlası girildiğinde derleyici tarafından hata alırsınız. Ayrıca şunu unutmayın. Her bir karakter bellekte 1 byte yer kaplamaktadır. Bir string değişkenin bellekte ayıracağı alanı şu formülle hesaplayabilirsiniz.

Ayrılan bölüm = 1 * maksimum limit;

Örn: Ayrılan bölüm = 1 * 32 = 32 byte

Bu yüzden dialoglarınız'da yazacak olan mesajlara limit koymak yerine dinamik yaparsanız, bellekte fazladan yer tutmaz ve performans'da artış görebilirsiniz.


Şimdi gelelim integer değişkenlere. Integer değişkenler sadece ve sadece tam sayılardan oluşan sayısal verileri saklamak için kullanılır (Örn: ...., -3, -2, -1, 0, 1, 2, 3,.....). new anahtar kelimesi ile değişken ismi tanımlamak yeterlidir
new pozitifDeger = 10;
new negatifDeger = -10;



Float ondalık veriler için değiken isminin başına Float: tagını eklemeniz yeterlidir.

new FloatomgndalikVeri = 45.5;
new FloatomgndalikVeri2 = 88.7658;



Gelelim son olarak boolean değişkenlere. Boolean değişkenler sadece true ve false mantıksal değerleri alırlar. Bir değişkenin boolean değişkeni olarak tanımlamak için başına bool: yazmanız yeterli olacaktırç

new girisYaptimi = true;
new cikisYaptimi = false;



Değşkenlerin pawn'da tanımlamaları, tuttukları veriler bu şekildedir. Değişkenler üzerinde işlem yapmamız için operatörleri ve koşulları kullanırız


Koşullar & Operatörler

Değişkenlere değer atamalarında operatörler, değişkenlerin kontrollerinde koşullar kullanılır. Operatörler ve koşulları scriptin mantıklı işleyişinde kullanırız.

Operatörler ile değişkenler üzerinde aritmetik işlemler yapmamızın yanı sıra, koşullarda şartları belirleyici etken olarak kullanırız. Mesala bir değişkenin diğer değişkenden farklı olup olmadığı veya değişkenin mevcut değerinin kontrolü buna bir örnek olabilir. Bu bölümde ilk olarak operatörleri gösterip, ne işe yaradıklarını ne zaman kullanmamız gerektiğinin'den bahsedicem.

=

Eşittir (=) operatörü, bir değişkene değer ataması yapacağımız zaman kullandığımız bir operatördür. Bunun örneğini yukarıda bulunan Değişkenler & Veri Yapıları bölümün'de görebilirsiniz. Bu operatör sayesinde, değeri daha önceden girilmiş olan değişkenin değerini, yeni bir değişken oluşturmadan yeni değeri atayabilirsiniz.

Detaylı örnek:

new degiskenim = 10; // 1. satır burası farz edelim ve varsayılan değerini 10 olarak atayalım
...
degiskenim = 20; // Burayıda 400. satır olarak farz edin. 1. satırda değerini 10 olarak tanımladığımız değişkenin değerini artık 20 olarak değiştirdik


Bu operatörün önüne veya arkasına başka bir operatör gelmediği sürece başka bir numarası yoktur. Önüne veya arkasına gelen diğer operatörler'den bahsedicem az sabır. :;p

+

Artı (+) operatörü, pawn dilinde sadece sayısal değişkenlere değer eklemek için kullanılır (Diğer programlama dillerinde metin birleştirmede de kullanılır). Mevcut olan bir değişkene değer eklemek istediğimiz zaman bu operatörü kullanırız.

Örneğin
new degiskenim = 10;
degiskenim = degiskenim + 10;
Bu örnekte, degiskenim isimli değişkenin değerine +10 daha ekleyerek tekrardan değişkene tanımlama yaptık. Sonuç olarak değişkenimizin değeri 20 olmuş oldu



-

Eksi (-) operatörü, Artı (+) operatörü gibi kullanımı aynıdır. Bu sefer değişkenin değerini arttırmak yerine, varolan değerini düşürmek için kullanırız
[pawn]new degiskenim = 10;
degiskenim = degiskenim - 10;[/pawn]
Örnekde görmüş olduğunuz gibi değeri 10 olan değişkenimiz'den -10 daha çıkartarak değişkenin değerini sıfıra eşitledik



/

Bölü (/) operatörü, matematik gibi sayısaları bölmeye yarar. bir değişkenin değerini istediğiniz bir sayıya bu operatör sayesinde gerçekleştirebilirsiniz.

new sayi = 50;
sayi = sayi / 2; // Sonuc = 25





*

Çarpı (*) operatörü, pawn dilinde sayıları birbirine çarpmaya yarar. Ancak bazı programlama dillerinde bu operatör çarpma işlemi haricinde Pointer tanımlarında kullanılabilmektedir. Kullanımı anlaşılacağı üzere kolaydır.
new sayi = 5;
sayi = sayi * 2;





--

Eksi eksi (--) operatörü, integer değişkenin'de bulunan değeri 1 düşür.

new sayi = 100;

sayi--; // 100'den 1 düşürdü. Değişkenin değeri 99 oldu




++

Bu operatör ise değişkenin var olan değerini 1 arttırır

new sayi = 99;

sayi++; // Değişkenin değerini 1 arttırdık. Yeni değeri 100 oldu
[automerge]1552624120[/automerge]
Elmas verir misiniz?
 

YigitReisOffical

❤ Atatürk Sevdalısı ❤
Editör Şefi
Sosyal Medya Sorumlusu
Premium
Katılım
28 Ekim 2017
Mesajlar
5.602
En iyi cevaplar
1
Elmaslar
3.927
Puanlar
9.390
Steam
YigitReisFG
Discord
Yiğit Efe Okur
Skype
Yiğit Winner
Minecraft
Yigit20

Gerçekten bu alanı anlayan insan sayısı çok az. Bu yararlı konu için çok teşekkür ederiz. Elmasımı hak ettin.
 

Prânk

Odunlara Vur Vur Vur!
Katılım
14 Mart 2019
Mesajlar
49
En iyi cevaplar
0
Elmaslar
26
Puanlar
240
Steam
Prânk
Minecraft
SametKRPNR
C++ ile ilgili videolu eğitim seti yayınlanacaktır.
 

Alpho320

Beyin hücrelerini kim yönetir?
Moderatör
Onaylı Satıcı
Yardımsever Üye
Katılım
20 Haziran 2018
Mesajlar
1.396
En iyi cevaplar
0
Elmaslar
1.250
Puanlar
2.545
Steam
Alpho320
Discord
Alpho320 #7408
Skype
alpho320
Minecraft
Alpho320
Öncelikle şans eseri gördüm bu forumu. Kimin neyidir, nesidir en ufak fikrim yok. Baktım ki yeni forum katkım olsun dedim. :şeytan:

Bu anlatımda sadece pawn değil, diğer programlama dillerinin mantığını kapsayan detaylı bir anlatım olacak.Bu anlatımı anlamanız için elimden geldiğince yalın bir dil kullanmaya çalışıcam. Eğer mantığı kaparsanız, diğer dillere çok rahat uyum sağlayabilirsiniz.

Öncelikle pawn nedir, ne deyildir ona bir göz atalım.


Pawn

Pawn aslında bir programlama dili değildir. Türkçe karşılığı eklenti anlamına gelen bir scripting dildir. Platform'dan bağımsız çalışabilir, microcontroller gibi devrelerin logic (mantık) programlamalarında kullanılabilir. Derlediğiniz tüm kodlar P-Code (bytecode) olarak derlenir. Ayrıca amx32.dll ile beraber C#, C, C++ vb. programlarınıza entegre ederek, programlarınızın dışarıdan 3. şahıslar tarafından yapılan scriptler ile genişletebilirsiniz (Örn: C# ile yapmış olduğunuz bir editör var ve pawn desteği eklediniz ve yayımladınız. Dışarıdan herhangi biri pawn ile editörünüz için plug-in yazabilir ve entegre ederbilir)


1: Syntax

Pawn syntax yapısı C diline benzer bir yapıya sahiptir. Bazı tanımlamalar haricin'de syntax yapısını C dilinden almaktadır.


2: Değişkenler & Veri Yapıları

Gelelim en civcivli bölüme. Bir kısır benim için ne ise, tüm programlama/scripting dilleri içinde değişkenler odur. Değişkenler olmadan, hiçbir programın işlevi olmaz. İşte bu yüzden değişkenleri bilmeniz ve hakim olmanız gerekmektedir.

Pawn dilinde bir değişken tanımlamak için new anahtar kelimesini kullanırız ve değişkenimize isim tanımlarız. Verdiğimiz değişken isimlerinin özel karakter veya rakamlarla başlamadığına çok dikkat edin. Çünkü hiç bir zaman değişken isimleri özel karakter veya rakamlarla başlamaz.

Pawn dilinde 4 farklı veri yapısı bulunur. Bunlar;


    • String
      Integer
      Float
      Boolean

Bu veri türleri, bellekte tutmak istediğiniz verilerin türüdür. Değişkende sayısal bir verimi veya metinsel bir verimi tutmak istediğinizde kullanılır. Detaylı açıklayacak olursak

String

Metinsel/karaktersel verileri tutmanızı sağlar ve bellekte saklanır.

Integer

Sadece tam sayılar'dan oluşan sayısal verileri saklamanızı sağlar

Float

Ondalık sayısal verilerin saklanmasında kullanılır

Boolean

Sadece mantıksal verilerin saklanmasında kullanılır (true-false)


Şimdi değişkenleri ve veri yapılarını örneklerle bekiştirelim. Önce string veri yapısını tanıyalım. Bir değişkenin string değişken olduğunu tanımlamanız için değişken isminin sonuna [] taglarını eklemeniz yetecektir.

new benimIsmim[] = "Alimşah Yıldırım";
new seninIsmin[32] = "İskende Tereyağlı Sos";



Şimdi yukarıda iki tane string değişken örneği verdik. Ancak tanımlamaları dikkat ederseniz farklı. Peki benimIsmim[] ile seninIsmin[32] değişkenleri arasındaki fark ne?

benimIsmim değişkeninde tutulacak maksimum karakter sayısı verilmedi. Bu sayede derleyici, scripti derlerken sadece bellekte 17 karakterlik bir yer ayıracak. Eğer tanımlamayı şu şekilde yapsaydım;

new benimIsmim[32] = "Alimşah Yıldırım";

Bellekte boşu boşuna 15 karakterlik yer israfı yapıp, performansı düşürecektim. Şimdi gelelim seninIsmin değişkenine. Bu değişkende maksimum karakter limiti 32 olarak belirlenmiş. Yani gireceğiniz herhangi isim veya metin maksimum 32 karakter içermek zorunda. 32 karakterden fazlası girildiğinde derleyici tarafından hata alırsınız. Ayrıca şunu unutmayın. Her bir karakter bellekte 1 byte yer kaplamaktadır. Bir string değişkenin bellekte ayıracağı alanı şu formülle hesaplayabilirsiniz.

Ayrılan bölüm = 1 * maksimum limit;

Örn: Ayrılan bölüm = 1 * 32 = 32 byte

Bu yüzden dialoglarınız'da yazacak olan mesajlara limit koymak yerine dinamik yaparsanız, bellekte fazladan yer tutmaz ve performans'da artış görebilirsiniz.


Şimdi gelelim integer değişkenlere. Integer değişkenler sadece ve sadece tam sayılardan oluşan sayısal verileri saklamak için kullanılır (Örn: ...., -3, -2, -1, 0, 1, 2, 3,.....). new anahtar kelimesi ile değişken ismi tanımlamak yeterlidir
new pozitifDeger = 10;
new negatifDeger = -10;



Float ondalık veriler için değiken isminin başına Float: tagını eklemeniz yeterlidir.

new FloatomgndalikVeri = 45.5;
new FloatomgndalikVeri2 = 88.7658;



Gelelim son olarak boolean değişkenlere. Boolean değişkenler sadece true ve false mantıksal değerleri alırlar. Bir değişkenin boolean değişkeni olarak tanımlamak için başına bool: yazmanız yeterli olacaktırç

new girisYaptimi = true;
new cikisYaptimi = false;



Değşkenlerin pawn'da tanımlamaları, tuttukları veriler bu şekildedir. Değişkenler üzerinde işlem yapmamız için operatörleri ve koşulları kullanırız


Koşullar & Operatörler

Değişkenlere değer atamalarında operatörler, değişkenlerin kontrollerinde koşullar kullanılır. Operatörler ve koşulları scriptin mantıklı işleyişinde kullanırız.

Operatörler ile değişkenler üzerinde aritmetik işlemler yapmamızın yanı sıra, koşullarda şartları belirleyici etken olarak kullanırız. Mesala bir değişkenin diğer değişkenden farklı olup olmadığı veya değişkenin mevcut değerinin kontrolü buna bir örnek olabilir. Bu bölümde ilk olarak operatörleri gösterip, ne işe yaradıklarını ne zaman kullanmamız gerektiğinin'den bahsedicem.

=

Eşittir (=) operatörü, bir değişkene değer ataması yapacağımız zaman kullandığımız bir operatördür. Bunun örneğini yukarıda bulunan Değişkenler & Veri Yapıları bölümün'de görebilirsiniz. Bu operatör sayesinde, değeri daha önceden girilmiş olan değişkenin değerini, yeni bir değişken oluşturmadan yeni değeri atayabilirsiniz.

Detaylı örnek:

new degiskenim = 10; // 1. satır burası farz edelim ve varsayılan değerini 10 olarak atayalım
...
degiskenim = 20; // Burayıda 400. satır olarak farz edin. 1. satırda değerini 10 olarak tanımladığımız değişkenin değerini artık 20 olarak değiştirdik


Bu operatörün önüne veya arkasına başka bir operatör gelmediği sürece başka bir numarası yoktur. Önüne veya arkasına gelen diğer operatörler'den bahsedicem az sabır. :;p

+

Artı (+) operatörü, pawn dilinde sadece sayısal değişkenlere değer eklemek için kullanılır (Diğer programlama dillerinde metin birleştirmede de kullanılır). Mevcut olan bir değişkene değer eklemek istediğimiz zaman bu operatörü kullanırız.

Örneğin
new degiskenim = 10;
degiskenim = degiskenim + 10;
Bu örnekte, degiskenim isimli değişkenin değerine +10 daha ekleyerek tekrardan değişkene tanımlama yaptık. Sonuç olarak değişkenimizin değeri 20 olmuş oldu



-

Eksi (-) operatörü, Artı (+) operatörü gibi kullanımı aynıdır. Bu sefer değişkenin değerini arttırmak yerine, varolan değerini düşürmek için kullanırız
[pawn]new degiskenim = 10;
degiskenim = degiskenim - 10;[/pawn]
Örnekde görmüş olduğunuz gibi değeri 10 olan değişkenimiz'den -10 daha çıkartarak değişkenin değerini sıfıra eşitledik



/

Bölü (/) operatörü, matematik gibi sayısaları bölmeye yarar. bir değişkenin değerini istediğiniz bir sayıya bu operatör sayesinde gerçekleştirebilirsiniz.

new sayi = 50;
sayi = sayi / 2; // Sonuc = 25





*

Çarpı (*) operatörü, pawn dilinde sayıları birbirine çarpmaya yarar. Ancak bazı programlama dillerinde bu operatör çarpma işlemi haricinde Pointer tanımlarında kullanılabilmektedir. Kullanımı anlaşılacağı üzere kolaydır.
new sayi = 5;
sayi = sayi * 2;





--

Eksi eksi (--) operatörü, integer değişkenin'de bulunan değeri 1 düşür.

new sayi = 100;

sayi--; // 100'den 1 düşürdü. Değişkenin değeri 99 oldu




++

Bu operatör ise değişkenin var olan değerini 1 arttırır

new sayi = 99;

sayi++; // Değişkenin değerini 1 arttırdık. Yeni değeri 100 oldu
[automerge]1552624120[/automerge]
Elmas verir misiniz?
Pawn'ı ilk defa senden öğrendim, daha önce hiç duymamıştım. Hoşuma gitmedi değil aslında :D. Devamını getirmen dileğiyle.
 
Yukarı