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?

YazilimYasamDongusu.png

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.

VariableDeclaration.png

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 - 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:

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.

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.

İ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.

Ö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.

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.

AlgoritmaKurulumu.png

Problem Çözme

Sağlıklı bir algoritma kurup farklı matematiksel problemlerin çözümünde de sonuç alabiliriz.

ProblemCözme.png

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.

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.

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.

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);
    }
  }
}