From Clomosy Docs
1. Ders
Yazılım nedir?
Yazılım, bilgisayar dili kullanılarak oluşturulmuş anlamlı anlatımlar bütünüdür ve bir problemi çözmek amacıyla kullanılır.
Clomosy nedir?
Clomosy, web tabanlı bir platformda bulut teknolojilerini kullanarak entegre ve çapraz platform mobil uygulama geliştirme ortamı sunar. Clomosy ile geliştirilen uygulamalar bulutta saklanır ve uygulamaların verileri, yerel ya da bulut ortamında tutulur.
Yazılım Yaşam Döngüsü nedir?
Yazılım yaşam döngüsü, bir yazılımın geliştirme sürecini ifade eder. Bu süreçte öncelikle problem ele alınır ve analiz edilir. Ardından iş planı yapılıp tasarım aşamasına geçilir. Geliştirme aşamasında yoğun bir kodlama gerçekleştirilir. Kodlama tamamlandıktan sonra yazılan kodlar test edilir ve testler başarıyla tamamlandıysa nihai proje kullanıcıya teslim edilir. Kullanıcı geri bildirimleri doğrultusunda gerekli düzenlemeler yapılır ve süreç bu şekilde devam eder.
Clomosy Teknolojisi
Derleyici( Compiler) Nedir?
Derleyiciler kaynak kodları makine koduna derleme görevine hizmet eden yazılımlardır. Bir programlama dilinin derleyicisi, o programlama dili kullanılarak yazılmış olan kodu hedef işlemci mimarisine göre uygun şekilde makine koduna derler ve genellikle çıktı olarak yürütülebilir dosyasının (exeutable file) elde edilmesini sağlar. Bu eyleme derleme denir. Örnek olarak, Pascal, C++, C# verilebilir.
Yorumlayıcı ( Interpreter) Nedir?
Yorumlayıcı, yazılımı kısım kısım ele alarak doğrudan çalıştırır. Yorumlayıcılar standart bir çalıştırılabilir kod üretmezler. Yorumlama işlemi aşama aşama yapılmadığı için genellikle ilk hatanın bulunduğu yerde programın çalışması kesilir. Yorumlayıcılar genelde kaynak koddan, makine diline anlık olarak dönüşüm yaparlar.
Derleyicilerin tersine kodun işlenmeyen satırları üzerinden hiç geçilmez ve buralardaki hatalar ile ilgilenilmez. Örnek olarak, Google Chrome, Clomosy gösterilebilir.
TRObject Teknolojisi
TRObject, Clomosy’nin kendine has dilidir. Object Pascal’dan türetilmiş, farklı dillerin efektif özelliklerini de içeren türev bir dildir. Hemen hemen her yazılım dilinde olduğu gibi altyapısı İngilizce olarak tasarlanmıştır.
Programlamaya Giriş
Bilgisayarın donanıma nasıl davranacağını anlatan, bilgisayara yön veren komutlar, kelimeler, aritmetik işlemlerdir.
Algoritma Nedir?
Algoritma, belli bir problemi çözmek veya belirli bir amaca ulaşmak için tasarlanan yol olarak ifade edilebilir. Algoritmalar bir programlama dili vasıtasıyla bilgisayarlar tarafından işletilebilirler.
Söz Dizimi (Syntax) Nedir?
Syntax, bir programlama dilinde kod yazmak için uyulması gereken kurallardır. Bir program yazarken takip edilmesi gereken zorunlu kurallar dizisine sözdizimi kuralları (syntax) denir. Bunu konuşma dilinde, dilin anlaşılabilir olmasını sağlayan dil bilgisi kurallarına benzetebiliriz.
Clomosy platformu, TRObject dil yapısını sunar.
TRObject Dil Yapısı (.tro Dosya Uzantılı):
- TRObject, C benzeri süslü parantezli bir dil yapısına sahiptir.
- Dosyaları .tro dosya uzantısı ile tanımlanmaktadır.
Dil yapısı Clomosy platformunda esneklik ve özelleştirme sağlar.
Hello World
Her yazılımcının yazılıma başlarken yazdığı ilk kod olarak ifade edilir. İlk defa Brain Kernighan tarafından B programlama dili öğretilirken kullanılmıştır. Sonrasında 1990 yılında yayınlanan ‘C Programlama Dili” kitabı içerisinde de kullanılmış ve tüm dünyada programlama dili eğitiminin temeli haline gelmiştir.
Kod Bloğu Nedir?
Kod bloğu, programlama dillerinde bir grup kod satırının bir araya gelerek belli bir işlevi yerine getiren bir yapıdır. Bir kod bloğu, genellikle bir işlevin veya döngünün başlangıcını ve sonunu belirlemek için kullanılır. Kod blokları, programın çalışma akışını kontrol etmek, belirli bir görevi gerçekleştirmek veya bir sonucu hesaplamak için kullanılan kodun bir bölümünü içerebilir.
var i : Integer; { i = 5; ShowMessage(i); }
Değişken Nedir?
Değişken herhangi bir yazılım dilinde bir veri tipinin değerini tutan bir kapsayıcıdır. Bir değişken herhangi bir veri tipinde olabilir. Değişkenin kapladığı boyut içerdiği veri tipine göre değişkenlik gösterir.
Clomosy’de Sık Kullanılan Değişkenler Nelerdir?
- Integer: Sayısal ifadeleri temsil eder. Boyutu, 4 byte’dır.
- String: Alfasayısal (metin veya karakter) ifadeleri temsil eder. Boyutu, text’in uzunluğuna göre değişkenlik gösterir.
Değişken Tanımlama
Değişkenleri tanımlarken, değişkenin İngilizce karşılığı olan “Variable” kelimesinin kısaltması, “var” komutu ile kodlamaya başlanır.
String Değişken Tanımlama Örneği
var s : String; { s = 'Merhaba'; ShowMessage(s); }
Integer Değişken Tanımlama Örneği
var i : Integer; { i = 1; ShowMessage(i); }
2.Ders
If İfadesi
If’ den sonra yazılan koşul doğru ise işlem yapılır.
IF ifadesi aşağıdaki biçimde tasarlanmıştır:
IF ...koşul... { ...işlemler...}
If - Else İfadesi
"If" komutunda koşul sağlanmadığı zaman program else satırdan devam edecektir. Bu şekilde "Else" komutu ile koşul sağlanmadığı zaman yapılacak işlem belirtilebilir.
IF ifadesi aşağıdaki biçimde tasarlanmıştır:
if ...koşul...
- //koşul karşılanırsa yapılacak işlem
else
- //koşul karşılanmazsa yapılacak işlem
var yas : Integer; { yas = 19; if (yas >= 18) ShowMessage('Ehliyet alabilirsin.'); else ShowMessage('Ehliyet alamazsın.'); }
If – Else If – Else
Eğer ikiden fazla koşul varsa bu yapı kullanılabilir.
if …koşul 1…
- //koşul 1 sağlanırsa yapılacak işle
else if …koşul 2…
- //koşul 2 sağlanırsa yapılacak işlem
else
- //tüm koşullar yanlış ise yapılacak işlem şeklinde kullanılabilir.
var x,y : Integer; { x = 3; y = 2; if (x > y) ShowMessage('x, y''den büyüktür.'); else if (x < y) ShowMessage('x, y''den küçüktür.'); else ShowMessage('x, y''e eşittir.'); }
Operatörler
Operatörler önceden tanımlanmış birtakım matematiksel ya da mantıksal işlemleri yapmak için kullanılan özel karakter ya da karakterler topluluğudur.
İşlem basamaklarımızın oluşturulmasında yeri geldikçe bazı temel operatörlerden yararlanmamız gerecektir. Örneğin iki sayının toplamını almak için, bölümden kalanını bulmak için veya üssünü hesaplamak için… Ya da iki sayıdan büyük olana karar vermek, aralarındaki eşitliği bulmak için gibi.
Atama Operatörü
Atama operatörü, programcılıkta atama işlemleri için kullanılmaktadır. Atama işlemi; sağdaki ifadenin hesaplanarak soldaki değişkene aktarılması şeklinde gerçekleşir. Kullanılan ifade " = " olarak gösterilir.
ad = 'Clomosy';
Aritmetik Operatörler
Operatörler arasında temel bazı matematiksel işlemleri yerine getirebilen operatörlerdir.
Örnek olarak, " - ", " + ", " * ", " / ", "div", "mod", "^" verilebilir.
Sayısal İşlemler bölümünde örnekler verilmiştir.
İlişkisel Operatörler
Operatörler arasında büyüklük, küçüklük, eşitlik gibi karşılaştırma işlemleri yapabilen operatörlerdir.
Örnek olarak, " < ", " > ", " >= ", " <= ", " == ", " < > ","not" gösterilebilir.
Mantıksal Operatörler
Günlük hayatta da sıkça kullandığımız bu operatörler bilgisayar dünyasında da sıklıkla kullanılmaktadırlar. Operatörlerin, mantıksal olarak birbirine bağlarlar. Kullanılan işlemler “ve”, “veya” ya da “değil”i gibi mantıksal işlemler olabilir.
Örnek olarak, " && ", " || ", " xor " gibi operatörleri gösterebiliriz.
Sayısal İşlemler
var sayi1,sayi2,topla,fark,bol, carp : Integer; { sayi1 = 10; sayi2 = 5; topla = sayi1 + sayi2; fark = sayi1 - sayi2; bol = sayi1 / sayi2; carp = sayi1 * sayi2; ShowMessage(topla); ShowMessage(fark); ShowMessage(bol); ShowMessage(carp); }
Yukarıdaki kod bloğu çalıştırıldığında, "sayi1" ve "sayi2" değişkenleri için sırasıyla, Toplama, Çıkarma, Bölme ve Çarpma işlemleri yapılıp, peşi sıra mesaj ile ekranda gösterilecektir.
Sayısal İşlemler 2
var sayi1,sayi2,topla,fark,bol, carp : Integer; { sayi1 = 3; sayi2 = 8; topla = sayi1 + sayi2; if (topla > 10) ShowMessage('Toplam 10''dan büyüktür.'); else ShowMessage('Toplam 10''dan küçüktür.'); }
Yukarıdaki kod bloğunda, iki sayı belirlenip bu sayıların toplamının 10’dan küçük ya da büyük olma durumunda iki farklı mesaj verecek şekilde bir kod çalıştırdı. Mevcut örnekte, sayıların toplamı 10’dan büyük olduğu için ShowMessage da belirtilen mesaj ekrana yazdırılır.
3.Ders
Fonksiyon(Function) ve Prosedür(Procedure) Kavramları
Prosedür ve Fonksiyon arasındaki en büyük fark, prosedür değer döndürmezken, fonksiyon bir değer döndürür.
Fonksiyon (Function) Nedir?
Fonksiyonlar, belirli bir işlevi yerine getiren ve değer döndüren kod bloklarıdır.
Fonksiyonlar, bir programın belirli bir noktasında çağrılarak çalıştırılır ve bir değer hesaplayarak geri döner. (Her tür değişken tipinde yani hem sayısal hem alfa sayısal dönüş yapabilir.)
Fonksiyonlar, belirli bir hesaplama yapmak, veri dönüşümleri yapmak, veri kontrolü gerçekleştirmek veya bir işlemi gerçekleştirmek için kullanılabilir.
Fonksiyonlar, bir başlık (header) ve bir gövde (body) içerir. Başlık, fonksiyonun adını, parametrelerini (isteğe bağlı) ve döndürdüğü değerin veri tipini tanımlar. Gövde ise fonksiyonun içindeki gerçek işlemleri ve dön ifadesini içerir.
Result, bir fonksiyonun geri döndüreceği değeri belirlemek için kullanılan özel bir anahtar kelimedir. Bir fonksiyon içinde Result değişkenine atanan değer, fonksiyonun çağrıldığı yere döndürülür. Result, fonksiyonun geri dönüş tipine uygun bir değişken gibi davranır ve fonksiyonun dönüş tipine uygun bir değeri saklar.
Function <fonksiyon_ismi> (<parametre listesi>): <dönüş_değeri_tipi>; <yerel bildirimler> {
- //istenilen ifadeler yazılır
}
Örnek
var G : Integer; const pi = 3.14; function DaireninAlani(r: Integer): Integer; { Result = pi * (r*r); } { ShowMessage(DaireninAlani(5)); }
Prosedür (Procedure) Nedir?
Prosedür belirli bir işlevi yerine getiren ve değer döndürmeyen kod bloklarını tanımlamak için kullanılır. Bir programın belirli bir noktasında çağrılarak çalıştırılır ve genellikle belirli bir işlemi gerçekleştirmek veya bir işlemi yürütmek için kullanılır.
Prosedürler, tekrar kullanılan kod parçalarını gruplamak ve yönetmek için kullanışlıdır. İşlevleri modülerleştirmek ve kodun yeniden kullanılabilirliğini artırmak için prosedürler kullanılabilir.
Bir prosedür tanımlanırken, başlık (header) ve gövde (body) içerir. Başlık, prosedürün adını ve gerekirse parametrelerini tanımlar. Gövde, prosedürün içindeki gerçek işlemleri içerir.
void <void_ismi>; <yerel bildirimler> {
- //istenilen ifadeler yazılır
}
Prosedür (void) parametreli ve parametresiz olarak tanımlanabilir.
Parametresiz Prosedür
Parametresiz prosedürler, belirli bir işlem veya işlemler dizisini gerçekleştirmek için kullanılan kod bloklarıdır.
void MesajYazdir; { ShowMessage('Bu bir parametresiz void yapısıdır.'); } { MesajYazdir; }
Parametreli Prosedür
parametresiz prosedürlerden farkı çalışması için bazı başlangıç değerlerinin verilmesidir.
void Tatile(Belde: String); { ShowMessage('Bu yaz nereye gidelim: '+Belde); } { Tatile('Antalya'); }
Algoritma Kurulumu
Algoritma bir işin nasıl yapılacağını adım adım açıklayan bir dokümandır.
Örneğin, açılmayan bir bilgisayar problemi için çözüm yolu şu sıralamada olmalıdır:
Öncelikle bilgisayarın fişi takılı mı diye kontrol etmeliyiz. Fişi takılı değil ise fişini takıp açabiliriz.
Eğer fişi takılı ise monitörün açık olup olmadığını kontrol etmeliyiz.
Eğer açık değilse monitörü açmalıyız.
Monitör de açık ise bilgisayarı bir tamirciye götürmeliyiz.
Problem Çözme
Sağlıklı bir algoritma kurup farklı matematiksel problemlerin çözümünde de sonuç alabiliriz.
Yukarıda verilen şekilde, dikdörtgenin içerisinde bulunan dairenin, dışında kalan alanı hesaplayan kodu beraber yazalım;
var G : Integer; const pi = 3.14; function DaireninAlani(r: Integer): Integer; { Result = pi * (r*r); } function DikdortgeninAlani(a,b: Integer): Integer; { Result = a * b - (DaireninAlani(b/2)); } { ShowMessage(DikdortgeninAlani(10,6)); }
4.Ders
Döngüler
Döngü (loop) deyimleri, bir işlemi yerine getiren kod kümesinin belli bir koşul altında tekrar edilmesi için kullanılır. Bir değişken belirli bir değerden başlayıp, son değeri alıncaya kadar belirtilen işlemler tekrarlanır.
For Döngüsü
For döngüsü, programlama dillerinde temel olarak bir kod bloğunu belirli bir sayıda ve üst üste çalıştırmak için kullanılan bir döngüdür.
Döngü başlangıcında kullanılan değişkene döngü içinde müdahale edilerek tekrar sayısı değiştirilebilir.
for ( Döngü sayacı = Başlangıç değeri to Son Değer ) {
- // Belirtilen koşul sağlandığı sürece bu kod bloğu tekrar tekrar çalışır
}
var Sayi:Integer; { for (Sayi=1 to 3) { ShowMessage(Sayi); } }
Yukarıda verilen kod bloğunda 1-3 arasında yer alan sayılar sırasıyla mesaj penceresinde gösteriliyor.
While Döngüsü
While döngüsü bir koşulun doğru olduğu sürece belirli bir kod bloğunu tekrar tekrar çalıştırmak için kullanılır. Genel anlamda iki amacı vardır. Birincisi, belirli bir koşulun gerçekleşip gerçekleşmediğini kontrol etmek. İkincisi ise, belirli bir işlemi tekrarlamak.
while (koşul) {
- // Koşul doğru olduğu sürece bu kod bloğu tekrar tekrar çalışır
}
var i : Integer; { i = -10; while (i <= 0) { ShowMessage(abs(i)); i = i + 1; } }
Yukarıdaki kod bloğunda "While" döngüsünü de kullanarak 10’dan 0’a kadar sayan bir sayaç kodu çalıştırıldı.
Repeat - Until Döngüsü
Repeat-until döngüsü, belirli bir koşul sağlanana kadar belirli bir kod bloğunu tekrar tekrar çalıştıran bir döngüdür.
Bu döngü türü, koşulun döngü içinde değil, döngünün sonunda kontrol edildiği bir yapıya
sahiptir. Bu nedenle, repeat-until döngüsü, döngü bloğunun en az bir kez çalışmasını garanti eder.
repeat {
- // Bu kod bloğu en az bir kez çalışır
} until (koşul); //koşul False olduğunda devam eder.
var Sayi: Integer; { Sayi = 0; repeat Sayi = Sayi + 4; ShowMessage('Sayı: ' + IntToStr(Sayi)); until (Sayi > 10); ShowMessage('Sayı 10 dan büyük olduğu için döngüden çıkıldı.'); }
Örnekler
Örnek 1
For Downto kullanarak 10’dan geriye doğru sayalım.
var i, toplam: Integer; { toplam = 0; for (i = 10 downto 1) ShowMessage(i); }
Örnek 2
Girilen sayının, “Pozitif, Negatif, Sıfır” olduğunu söyleyen kod.
var sayi: Integer; { sayi = 200; if(sayi > 0) ShowMessage('Girilen sayi pozitiftir.'); else if (sayi < 0) ShowMessage('Girilen sayi negatiftir.'); else ShowMessage('Girilen sayi sıfırdır.'); }
Örnek 3
1’den N’e kadar olan sayıların toplamını verdirelim.
var N, i, toplam: Integer; { N = 10; toplam = 0; for(i = 1 to N) { if(i mod 2 == 1) toplam = toplam + i; } ShowMessage(toplam); }
Örnek 4
1 ile 10 arasında birer birer, 10 ile 100 arasında onar onar, 100 ile 600 arasında yüzer yüzer saydıran bir dizi oluşturup 562’de bitirelim.
var i, HedefSayi: Integer; { HedefSayi = 562; i = 0; while (i <= HedefSayi) { if(i < 10) { i = i + 1; ShowMessage(i); } else if ((i >= 10) && (i<100)) { i = i + 10; ShowMessage(i); } else if ((i >= 100) && (i<HedefSayi-100)) { i = i + 100; ShowMessage(i); } else { i = HedefSayi + 1; ShowMessage(i); } } }