From Clomosy Docs

No edit summary
 
(10 intermediate revisions by one other user not shown)
Line 1: Line 1:
= 1. Ders =
<h2> 1. Ders </h2>
== 1.Kısım ==
<h3> Yazılım nedir? </h3>
=== 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.
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? ===
<h3> Clomosy nedir? </h3>
Bulut tabanlı mobil uygulama geliştirme platformudur.
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? ===
<h3> Yazılım Yaşam Döngüsü nedir? </h3>


[[File:YazilimYasamDongusu.png|frameless|200px]]<br>
[[File:YazilimYasamDongusu.png|frameless|200px]]<br>
Line 13: Line 12:
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.  
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.  


== 2.Kısım ==
<h3> Clomosy Teknolojisi  </h3>
=== Clomosy Teknolojisi  ===
<h4> Derleyici( Compiler) Nedir? </h4>
==== 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.
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? ====
<h4> Yorumlayıcı ( Interpreter) Nedir? </h4>
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.<br>
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.<br>
Derleyicilerin tersine kodun işlenmeyen satırları üzerinden hiç geçilmez ve buralardaki hatalar ile ilgilenilmez. Örnek olarak, Google Chrome, Clomosy gösterilebilir.  
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 ===
<h3> TRObject Teknolojisi </h3>
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.  
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.  


 
<h3> Programlamaya Giriş </h3>
== 3.Kısım ==
=== Programlamaya Giriş ===
Bilgisayarın donanıma nasıl davranacağını anlatan, bilgisayara yön veren komutlar, kelimeler, aritmetik işlemlerdir.  
Bilgisayarın donanıma nasıl davranacağını anlatan, bilgisayara yön veren komutlar, kelimeler, aritmetik işlemlerdir.  


=== Algoritma Nedir? ===
<h3> Algoritma Nedir? </h3>
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.
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? ===
<h3> Söz Dizimi (Syntax) Nedir? </h3>
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.<br>
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.<br>
Clomosy platformu, iki farklı dil yapısı olan TRObject ve Base dil yapısını sunar. Bu diller, farklı programlama paradigmalarına uygun tasarlanmış, geliştiricilere çeşitli seçenekler sunmaktadır. İşte her iki dilin ana özellikleri:<br>
Clomosy platformu, TRObject dil yapısını sunar.<br>
TRObject Dil Yapısı (.tro Dosya Uzantılı):
TRObject Dil Yapısı (.tro Dosya Uzantılı):
:*TRObject, C benzeri süslü parantezli bir dil yapısına sahiptir.
:*TRObject, C benzeri süslü parantezli bir dil yapısına sahiptir.
:*Dosyaları .tro dosya uzantısı ile tanımlanmaktadır.
:*Dosyaları .tro dosya uzantısı ile tanımlanmaktadır.
Base Dil Yapısı (.base Dosya Uzantılı):
:*Base, BASIC benzeri bir dil yapısına sahiptir.
:*Dosyaları .base dosya uzantısı ile tanımlanmaktadır.


Her iki dil yapısı Clomosy platformunda esneklik ve özelleştirme sağlar. Geliştiriciler, projelerinin ihtiyaçlarına ve kendilerine daha uygun olan dil yapısını seçerek verimli bir şekilde çalışabilirler. Bu iki yapının kullanımı, döngü, koşul, fonksiyon ve prosedür tanımlamaları ilerleyen bölümlerde ele alınmıştır.
Dil yapısı Clomosy platformunda esneklik ve özelleştirme sağlar.


== 4.Kısım ==
<h3> Hello World </h3>
=== 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.<br>
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.


<gallery widths=300px heights=450px mode="nolines">
<gallery widths=300px heights=450px mode="nolines">
Line 54: Line 46:
</gallery>
</gallery>


=== Kod Bloğu Nedir? ===
<h3> Kod Bloğu Nedir? </h3>
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.
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.


[[File:CodeBlock.png|frameless|150px]]
<pre>
var
i : Integer;
{
i = 5;
ShowMessage(i);
}
</pre>


== 5.Kısım ==
<h3> Değişken Nedir? </h3>
=== 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.  
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? ===
<h3> Clomosy’de Sık Kullanılan Değişkenler Nelerdir? </h3>
''Integer'': Sayısal ifadeleri temsil eder. Boyutu, 4 byte’dır.
*<b>Integer</b>: 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.  
*<b>String</b>: 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 ===
<h3> Değişken Tanımlama </h3>
Değişkenleri tanımlarken, değişkenin İngilizce karşılığı olan “Variable” kelimesinin kısaltması, “var” komutu ile kodlamaya başlanır.  
Değişkenleri tanımlarken, değişkenin İngilizce karşılığı olan “Variable” kelimesinin kısaltması, “var” komutu ile kodlamaya başlanır.<br>


[[File:VariableDeclaration.png|frameless|150px]]
[[File:VariableDeclaration.png|frameless|150px]]


==== String Değişken Tanımlama Örneği ====
<h4> String Değişken Tanımlama Örneği </h4>


[[File:StringVariableDefinition.png|frameless|250px]]
<pre>
var
s : String;
{
s = 'Merhaba';
ShowMessage(s);
}
</pre>


==== Integer Değişken Tanımlama Örneği  ====
<h4> Integer Değişken Tanımlama Örneği  </h4>


[[File:IntegerVariableDefinition.png|frameless|250px]]
<pre>
var
i : Integer;
{
i = 1;
ShowMessage(i);
}
</pre>


<h2> 2.Ders </h2>


= 2.Ders =
<h3> If  İfadesi </h3>
== 1.Kısım ==
If’ den sonra yazılan koşul doğru ise işlem yapılır.<br>
=== If - Then İfadesi ===
IF’ den sonra yazılan koşul doğru ise THEN’ den sonraki işlem yapılır.<br>
IF ifadesi aşağıdaki biçimde tasarlanmıştır:<br>
IF ifadesi aşağıdaki biçimde tasarlanmıştır:<br>
IF ...koşul... THEN ...operasyon...
<div class="alert alert-secondary" role="alert" data-bs-theme="light">
IF ...koşul... { ...işlemler...}
</div>


=== If - Then - Else İfadesi ===
<h3> If - Else İfadesi </h3>
If-Then komutunda koşul sağlanmadığı zaman program bir alt satırdan devam edecektir. Ancak Else komutu ile koşul sağlanmadığı zaman yapılacak işlem belirtilebilir.
"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: <br>
IF ifadesi aşağıdaki biçimde tasarlanmıştır: <br>
IF ...koşul... THEN
<div class="alert alert-secondary" role="alert" data-bs-theme="light">
  //koşul karşılanırsa yapılacak işlem
if ...koşul...  
ELSE
://koşul karşılanırsa yapılacak işlem
  //koşul karşılanmazsa yapılacak işlem
else
://koşul karşılanmazsa yapılacak işlem
</div>


[[File:IfThenElse.png|frameless|350px]]
<pre>
var
  yas : Integer;
{
  yas = 19;
  if (yas >= 18)
    ShowMessage('Ehliyet alabilirsin.');
  else
    ShowMessage('Ehliyet alamazsın.');
}
</pre>


=== If – Then - Else If – Then - Else ===
<h3> If – Else If – Else </h3>
Eğer ikiden fazla koşul varsa bu yapı kullanılabilir.<br>
Eğer ikiden fazla koşul varsa bu yapı kullanılabilir.<br>
IF …koşul 1… THEN
<div class="alert alert-secondary" role="alert" data-bs-theme="light">
  //koşul 1 sağlanırsa yapılacak işle  
if …koşul 1…  
ELSE IF …koşul 2… THEN
://koşul 1 sağlanırsa yapılacak işle  
  //koşul 2 sağlanırsa yapılacak işlem  
else if …koşul 2…
ELSE
://koşul 2 sağlanırsa yapılacak işlem  
  //tüm koşullar yanlış ise yapılacak işlem  
else
şeklinde kullanılabilir.<br>
://tüm koşullar yanlış ise yapılacak işlem şeklinde kullanılabilir.<br>
 
</div>
[[File:IfThenElseIfThenElse.png|frameless|300px]]


== 2.Kısım ==
<pre>
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.');
}
</pre>


=== Operatörler ===
<h3> Operatörler </h3>
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.<br>
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.<br>
İş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.
İş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.


==== Matematiksel Operatörler ====
<h4> Atama Operatörü </h4>
Operatörler arasında temel bazı matematiksel işlemleri yerine getirebilen operatörlerdir. Örnek olarak, - , + , * , / verilebilir. (sayısal işlemler bölümünde örnekler verilmiştir.)
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.
 
<pre>
ad = 'Clomosy';
</pre>
 
<h4> Aritmetik Operatörler </h4>
Operatörler arasında temel bazı matematiksel işlemleri yerine getirebilen operatörlerdir.<br>
Örnek olarak, " - ", " + ", " * ", " / ", "div", "mod", "^" verilebilir.
<div class="alert alert-warning" role="alert" data-bs-theme="light">
Sayısal İşlemler bölümünde örnekler verilmiştir.
</div>
 
<h4> İlişkisel Operatörler  </h4>
Operatörler arasında büyüklük, küçüklük, eşitlik gibi karşılaştırma işlemleri yapabilen operatörlerdir.<br>
Örnek olarak, " < ", " > ", " >= ", " <= ", " == ", " < > ","not" gösterilebilir.


==== Karşılaştırma Operatörleri  ====
<h4> Mantıksal Operatörler </h4>
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, “ < “, “ > “, “ >= ”, “ <= “ gösterilebilir.
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.<br>
Örnek olarak, " && ", " || ", " xor " gibi operatörleri gösterebiliriz.  


==== Mantıksal Operatörler ====
<h3> Sayısal İşlemler </h3>
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, “ and “, “ or “, “ xor “ gibi operatörleri gösterebiliriz.


==== Atama Operatörü ====
<pre>
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.
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);
}
</pre>


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.


== 3.Kısım ==
<h3> Sayısal İşlemler 2 </h3>
=== Sayısal İşlemler ===
[[File:SayisalIslemler.png|frameless|350px]]<br>


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.
<pre>
var
  sayi1,sayi2,topla,fark,bol, carp  : Integer;
{
  sayi1 = 3;
  sayi2 = 8;
  topla = sayi1 + sayi2;


=== Sayısal İşlemler 2 ===
  if (topla > 10)
[[File:SayisalIslemler2.png|frameless|350px]]<br>
    ShowMessage('Toplam 10''dan büyüktür.');
  else
    ShowMessage('Toplam 10''dan küçüktür.');
}
</pre>


Yukarıdaki kod bloğunda, iki sayı belirleyip, 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ık. Mevcut örnekte, sayıların toplamı 10’dan büyük olduğu için, ShowMessage’da belirttiğimiz mesajı ekrana yazdırdık.  
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.  


<h2> 3.Ders </h2>


= 3.Ders =
<h3> Fonksiyon(Function) ve Prosedür(Procedure) Kavramları </h3>
== 1.Kısım ==
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.<br>
=== 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?  ====
<h4> Fonksiyon (Function) Nedir?  </h4>
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.)<br>
Fonksiyonlar, belirli bir işlevi yerine getiren ve değer döndüren kod bloklarıdır.<br>
İşlevler, 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.<br>
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.)<br>
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.<br>
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.
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.


[[File:Fonksiyon.png|frameless|350px]]
<div class="alert alert-warning" role="alert" data-bs-theme="light">
<b>Result</b>, 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.
</div>
 
<div class="alert alert-secondary" role="alert" data-bs-theme="light">
Function <fonksiyon_ismi> (<parametre listesi>): <dönüş_değeri_tipi>;
<yerel bildirimler>
{
://istenilen ifadeler yazılır
}
</div>
 
<b>Örnek</b><br>
 
<pre>
var
  G  : Integer;
const
  pi = 3.14;
function DaireninAlani(r: Integer): Integer;
{
  Result = pi * (r*r);
}
 
{
  ShowMessage(DaireninAlani(5));
}
</pre>
 
<h4> Prosedür (Procedure) Nedir? </h4>
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.<br>
 
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.<br>


==== Prosedür (Procedure) Nedir? ====
TRObject prosedür belirli bir işlevi yerine getiren ve değer döndürmeyen kod bloklarını tanımlamak için kullanılır. Prosedürler, 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.<br>
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. Prosedürler, kodun okunabilirliğini ve sürdürülebilirliğini artırabilir, çünkü belirli bir işlevin açık bir şekilde tanımlanmasını ve bir isim altında organize edilmesini sağlar.<br>
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.
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.


[[File:Prosedür.png|frameless|350px]]
<div class="alert alert-secondary" role="alert" data-bs-theme="light">
void <void_ismi>;
<yerel bildirimler>
{
://istenilen ifadeler yazılır
}
</div>
 
Prosedür (void) parametreli ve parametresiz olarak tanımlanabilir.<br>
 
<h5> Parametresiz Prosedür </h5>
Parametresiz prosedürler, belirli bir işlem veya işlemler dizisini gerçekleştirmek için kullanılan kod bloklarıdır.
<pre>
void MesajYazdir;
{
ShowMessage('Bu bir parametresiz void yapısıdır.');
}
{
MesajYazdir;
}
</pre>
 
<h5> Parametreli Prosedür </h5>
parametresiz prosedürlerden farkı çalışması için bazı başlangıç değerlerinin verilmesidir.<br>
 
<pre>
void Tatile(Belde: String);
{
ShowMessage('Bu yaz nereye gidelim: '+Belde);
}
{
Tatile('Antalya');
}
</pre>


== 2.Kısım ==
<h3> Algoritma Kurulumu </h3>
=== Algoritma Kurulumu ===
Algoritma bir işin nasıl yapılacağını adım adım açıklayan bir dokümandır.<br>
Algoritma bir işin nasıl yapılacağını adım adım açıklayan bir dokümandır.<br>
Örneğin, açılmayan bir bilgisayar problemi için çözüm yolu şu sıralamada olmalıdır:<br>
Örneğin, açılmayan bir bilgisayar problemi için çözüm yolu şu sıralamada olmalıdır:<br>
Line 168: Line 305:
Eğer fişi takılı ise monitörün açık olup olmadığını kontrol etmeliyiz.<br>
Eğer fişi takılı ise monitörün açık olup olmadığını kontrol etmeliyiz.<br>
Eğer açık değilse monitörü açmalıyız.<br>
Eğer açık değilse monitörü açmalıyız.<br>
Monitör de açık ise bilgisayarı bir tamirciye götürmeliyiz.
Monitör de açık ise bilgisayarı bir tamirciye götürmeliyiz.<br>


[[File:AlgoritmaKurulumu.png|frameless|450px]]
[[File:AlgoritmaKurulumu.png|frameless|450px]]


=== Problem Çözme ===
<h3> Problem Çözme </h3>
Sağlıklı bir algoritma kurup farklı matematiksel problemlerin çözümünde de sonuç alabiliriz.<br>
Sağlıklı bir algoritma kurup farklı matematiksel problemlerin çözümünde de sonuç alabiliriz.<br>


[[File:ProblemCözme.png|left|200px]]
[[File:ProblemCözme.png|frameless|200px]]<br>
Yan tarafta verilen şekilde, dikdörtgenin içerisinde bulunan dairenin, dışında kalan alanı hesaplayan kodu beraber yazalım;<br>
 
Yukarıda verilen şekilde, dikdörtgenin içerisinde bulunan dairenin, dışında kalan alanı hesaplayan kodu beraber yazalım;<br>
 
<pre>
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));
}
</pre>
 
<h2> 4.Ders </h2>


[[File:ProblemCözmeKod.png|frameless|350px]]<br>
<h3> Döngüler </h3>
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.


<h4> For Döngüsü </h4>
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.<br>
Döngü başlangıcında kullanılan değişkene döngü içinde müdahale edilerek tekrar sayısı değiştirilebilir.


= 4.Ders =
<div class="alert alert-secondary" role="alert" data-bs-theme="light">
== 1.Kısım ==
for ( Döngü sayacı = Başlangıç değeri to Son Değer )
=== Döngülerin Tanımı ===
{
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. Genellikle bir programlama dilinde birden fazla döngü çeşidi bulunmaktadır.
:// Belirtilen koşul sağlandığı sürece bu kod bloğu tekrar tekrar çalışır
}
</div>


=== For Döngüsü ===
<pre>
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);
}
}
</pre>


[[File:ForDongusu.png|frameless|350px]]<br>


Yukarıda verilen kod bloğunda 1-5 arasında yer alan sayıların, sırasıyla tek ya da çift sayı olduğunu mesaj olarak vermesini sağlıyoruz.  
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ü ===
<h4> While Döngüsü </h4>
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 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.


[[File:WhileDongusu.png|frameless|300px]]<br>
<div class="alert alert-secondary" role="alert" data-bs-theme="light">
while (koşul)
{
:// Koşul doğru olduğu sürece bu kod bloğu tekrar tekrar çalışır
}
</div>
 
<pre>
var
  i  : Integer;
 
{
  i = -10;
  while (i <= 0)
  {
    ShowMessage(abs(i));
    i = i + 1;
  }
}
</pre>
 
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ı.
 
<h4> Repeat - Until Döngüsü </h4>
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.<br>
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.<br>
 
<div class="alert alert-secondary" role="alert" data-bs-theme="light">
repeat
{
:// Bu kod bloğu en az bir kez çalışır
}
until (koşul); //koşul False olduğunda devam eder.
</div>
 
<pre>
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ı.');
}
</pre>
 
 
 
 
<h2> Örnekler </h2>


Yan taraftaki kod bloğunda While döngüsünü de kullanarak, 10’dan 0’a kadar sayan bir sayaç kodu çalıştırdık.
<b> Örnek 1 </b><br>


For Downto kullanarak 10’dan geriye doğru sayalım.<br>


== 2.Kısım ==
<pre>
=== Örnekler ===
var
'' 1’den N’e kadar olan sayıların toplamını verdirelim.''<br>
  i, toplam: Integer;
{
  toplam = 0;
  for (i = 10 downto 1)
    ShowMessage(i);
}
</pre>


[[File:Ornek1.png|frameless|300px]]
<b> Örnek 2 </b><br>


''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.''<br>
Girilen sayının, “Pozitif, Negatif, Sıfır” olduğunu söyleyen kod.<br>


[[File:Ornek2.png|frameless|300px]]
<pre>
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.');
}
</pre>


''While örneğinde sonsuz döngüye giren kod (i:=i-1 şeklinde tanım yaparsak düzelecektir)''<br>
<b> Örnek 3</b><br>  


[[File:Ornek3.png|frameless|300px]]
1’den N’e kadar olan sayıların toplamını verdirelim.<br>
<pre>
var
  N, i, toplam: Integer;
{
  N = 10;
  toplam = 0;
 
  for(i = 1 to N)
  {
    if(i mod 2 == 1)
      toplam = toplam + i;
  }
 
  ShowMessage(toplam);
}
</pre>


''For Downto kullanarak 10’dan geriye doğru sayalım.''<br>
<b> Örnek 4 </b><br>


[[File:Ornek4.png|frameless|300px]]
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.<br>


''Girilen sayının, “Pozitif, Negatif, Sıfır” ve “Çift ya da Tek” olduğunu söyleyen kod.''<br>
<pre>
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);
    }
  }
}
</pre>
{{#seo:|title=Clomosy Türkçe Dökümanları - Clomosy Docs}}


[[File:Ornek5.png|frameless|300px]]
{{#seo:|description=Clomosy hakkında, uygulama geliştirme sürecinizi kolaylaştıracak rehberler ve bilgiler.}}

Latest revision as of 11:26, 23 December 2024

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