<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title> &#187; C Dersleri</title>
	<atom:link href="http://www.yarimekanik.com/category/programlama/c-dersleri/feed" rel="self" type="application/rss+xml" />
	<link>http://www.yarimekanik.com</link>
	<description></description>
	<lastBuildDate>Thu, 19 Jan 2012 22:01:08 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>C Programlama Dili – While / Do-While Döngüsü</title>
		<link>http://www.yarimekanik.com/c-programlama-dili-while-do-while-dongusu.html</link>
		<comments>http://www.yarimekanik.com/c-programlama-dili-while-do-while-dongusu.html#comments</comments>
		<pubDate>Tue, 04 Aug 2009 08:59:06 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[C Dersleri]]></category>
		<category><![CDATA[Genel Konular]]></category>
		<category><![CDATA[c dilinde mantıksal operatörler]]></category>
		<category><![CDATA[c programlama dili dersleri]]></category>
		<category><![CDATA[c programlama kod örnekleri]]></category>
		<category><![CDATA[do-while döngüsü]]></category>
		<category><![CDATA[while döngüsü]]></category>

		<guid isPermaLink="false">http://www.yarimekanik.com/?p=1341</guid>
		<description><![CDATA[Programlama dilinde döngülerin önemini daha önce yazmıştım.Bu kez konumuz WHILE döngüsü.Peki sizce neden tek bir döngüye değilde birden fazla döngüye ihtiyaç olabilir ? Böyle bir sorunun cevabı yapılacak işlem ile alakalıdır.Örneğin FOR döngüsü kullanarak önce kontrol sonra işlemi yaptırıyorduk.While içinde durum aynıdır ancak bir de DO-WHILE döngüsü vardır ki esas konuda zaten bu.Şöyle ki : [...]]]></description>
			<content:encoded><![CDATA[<p><img class="aligncenter size-full wp-image-1346" title="cprogramlamadili" src="http://www.yarimekanik.com/wp-content/uploads/2009/08/cprogramlamadili.jpg" alt="cprogramlamadili" width="315" height="314" /></p>
<p>Programlama dilinde döngülerin önemini daha önce yazmıştım.Bu kez konumuz<strong> WHILE</strong> döngüsü.Peki sizce neden tek bir döngüye değilde birden fazla döngüye ihtiyaç olabilir ?</p>
<p>Böyle bir sorunun cevabı yapılacak işlem ile alakalıdır.Örneğin <strong>FOR</strong> döngüsü kullanarak önce kontrol sonra işlemi yaptırıyorduk.While içinde durum aynıdır ancak bir de <strong>DO-WHILE</strong> döngüsü vardır ki esas konuda zaten bu.Şöyle ki :</p>
<p><strong>* Önce işi yap,</strong> sonra koşulu kontrol et<br />
<strong>* Önce koşulu kontrol et,</strong> sonra işi yap</p>
<p>Öncelikle While kullanımına bir örnek yapalım :</p>
<p><code>#include &lt;stdio.h&gt;<br />
#include &lt;cstdlib&gt;<br />
int main ()<br />
{<br />
       int sayi = 0 ;<br />
       while ( sayi &lt; 10 )<br />
         {<br />
             printf("Sayi su anda : %d \n",sayi);<br />
             sayi++;<br />
         }<br />
       system ("pause");<br />
       return 0;<br />
}</code></p>
<p>Gördüğünüz gibi koşulumuz sayı değişkeninin <strong>10 olması</strong> ile alakalı.Sayı 10 olana kadar döngü devam edecek ( ekrana 9 olarak yansıyacaktır ) ama dikakt etmeniz gereken nokta orada ki sayi değişkenini her defasında <strong>+1 arttırmamız.</strong>Bunu yapmadığımız zaman WHILE döngüsü gerekli koşulu yerine getiremeyeceği için <strong>durmayacaktır</strong>.</p>
<p>Bu arada yeri gelmişken bir kaç mantıksal operatöre de göz atalım :</p>
<p>Küçük / Küçük &#8211; Eşit : <span style="color: #ff0000;"><strong>&lt; <span style="color: #0000ff;">/</span> &lt;=<br />
</strong></span>Büyük / Büyük Eşit  :<span style="color: #ff0000;"> <strong>&gt; <span style="color: #0000ff;">/</span>  &gt;=</strong></span><br />
Eşit / Eşit Değil :<strong> </strong><span style="color: #ff0000;"><strong>== <span style="color: #0000ff;">/</span> =!<br />
</strong><span style="color: #000000;">Ve / Veya : <span style="color: #ff0000;"><strong>&amp;&amp; <span style="color: #0000ff;">/</span> ||</strong></span><br />
</span></span><span style="color: #ff0000;"><span style="color: #000000;"><br />
Bu konuya sonra ki yazılarda değinmeye devam edeceğiz.</span></span></p>
<p>Diğer konumuz olan <strong>DO-WHILE</strong> döngüsünde ise mantık önce işi yap daha sonra durumu kontrol et şeklinde gelişir.Yani siz kodunuzu yazdığınızda illa ki<strong> bir kereliğe mahsus</strong> döngü çalışır.Bu döngü çeşidi aslında çok güçlü olmakla birlikte yazılan programların güvenilirliliğini de sıkıntıya sokabilir.Bir tane örnek yapalım :</p>
<p><code>#include &lt;stdio.h&gt;<br />
#include&lt;cstdlib&gt;<br />
int main ()<br />
{<br />
       int sayi;<br />
       do<br />
         {<br />
           printf ("MENU\n");<br />
           printf ("--------------------------\n");<br />
           printf ("Oku [ 1 ]\n");<br />
           printf ("Yaz [ 2 ]\n");<br />
           printf ("Sil [ 3 ]\n");<br />
           printf ("Cikis [ 4 ]\n");<br />
           printf ("Yapmak istediginiz islem : ");<br />
           scanf ("%d",&amp;sayi);<br />
              } while ( sayi &lt; 4 );<br />
       system ("pause");<br />
       return 0;<br />
}</code></p>
<p>Programı derlediğinizde göreceksiniz ki <strong>ilk olarak döngü çalışacak</strong> ve bu menüyü sizin önünüze getirecek.Bir önce ki örnekte <strong>sayi</strong> değişkenini arttırarak koşulu yerine getiriyorduk ama bu sefer <strong>sayi </strong>değişkenini klavyeden gelecek olan girişe göre değerlendiriyoruz ve programımızı buna göre yönlendiriyoruz.Yani <strong>sayi</strong> değişkeni 4 ten küçükse her halukarda menü görünmeye devam edecektir.Bunu farklı şekillerde de ifade etme şansımız var, kendiniz farklı koşullar deneyerek bu konuyu daha iyi anlayabilirsiniz.Örneğin bir <strong>sayı tahmin </strong>oyunu yapabilirsiniz.</p>
<p>Kolay gelsin.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.yarimekanik.com/c-programlama-dili-while-do-while-dongusu.html/feed</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>C Programlama Dili &#8211; For Döngüsü</title>
		<link>http://www.yarimekanik.com/c-programlama-dili-for-dongusu.html</link>
		<comments>http://www.yarimekanik.com/c-programlama-dili-for-dongusu.html#comments</comments>
		<pubDate>Mon, 20 Jul 2009 12:27:18 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[C Dersleri]]></category>
		<category><![CDATA[Genel Konular]]></category>
		<category><![CDATA[c dilinde döngüler]]></category>
		<category><![CDATA[C dilinde for döngüsü]]></category>
		<category><![CDATA[C programlama dili]]></category>
		<category><![CDATA[döngü nedir]]></category>

		<guid isPermaLink="false">http://www.yarimekanik.com/?p=1186</guid>
		<description><![CDATA[C dilinde amaca uygun olarak kullanılabilecek bir kaç çeşit döngü vardır.Bu döngüler bir koşula bağlanırlar ve koşul yerine getirilene kadar döngü devam eder.Bunu şayet yazı ile ifade etmek gerekirse şunu söyleyebiliriz : Babası Ahmet&#8217;i saat 17:00 da eve gönderecek : Döngü -&#62; Saat 17:00 mı ? Döngü -&#62; Hayır 15:00, o zaman bekle. Döngü -&#62; [...]]]></description>
			<content:encoded><![CDATA[<p><img class="aligncenter size-full wp-image-1193" title="c_l" src="http://www.yarimekanik.com/wp-content/uploads/2009/07/c_l.jpg" alt="c_l" width="315" height="314" /></p>
<p>C dilinde amaca uygun olarak kullanılabilecek bir kaç çeşit döngü vardır.Bu döngüler bir koşula bağlanırlar ve koşul yerine getirilene kadar döngü devam eder.Bunu şayet yazı ile ifade etmek gerekirse şunu söyleyebiliriz :</p>
<p><strong>Babası Ahmet&#8217;i saat 17:00 da eve gönderecek :</strong></p>
<p>Döngü -&gt; Saat 17:00 mı ?<br />
Döngü -&gt; Hayır 15:00, o zaman bekle.<br />
Döngü -&gt; Saat 17 mi ?<br />
Döngü -&gt; Hayır 16:00, o zaman bekle.<br />
Döngü -&gt; Saat 17 mi ?<br />
Döngü -&gt; Evet 17:00, o zaman Ahmet gidebilir.</p>
<p>Gördüğünüz gibi ortada &#8221; <strong>Saat 17:00 oldu mu eve gönder</strong> &#8220;  diye bir koşul var.Bu koşul yerine gelmeden Ahmet evine gidemiyor.Birde koşul yerine gelmediği zaman ortaya çıkan &#8220;<strong> o zaman bekle </strong>&#8221; durumu söz konusu.İşte programlama dillerinin hepsinde mevcut olan döngü senaryosu budur.Şimdi bunu C dilinde &#8221; <strong>FOR</strong> &#8221; döngüsünü anlatarak öğrenelim.</p>
<p><strong>For döngüsünün kullanımı şu örnek şeklindedir :</strong></p>
<pre>for ( i = 0 ; i &lt; 17 ; i++ )
{
//bir şeyler yap
}</pre>
<p>Yine taşları yerine koyalım, &#8221; <strong>i</strong> &#8221; değişkeni burda <strong>Ahmet&#8217;</strong>i ifade eder.&#8221; &lt; &#8220; ifadesi ile Ahmet için saati sorguluyoruz ve saati 17 ye tamamlamak için &#8221; <strong>i </strong>&#8221; değişkenini &#8221; <strong>++</strong> &#8221; operatörü ile arttırıyoruz.&#8221; <strong>bir şeyler yap </strong>&#8221; ise senaryomuz da &#8221; o halde bekle &#8221; olarak ifade edilmişti.</p>
<p><strong>Gerçek bir kod yazarak örneği tamamlayalım :</strong></p>
<pre>#include &lt;stdio.h&gt;
int main ()
{
    int ahmet;
    int saat = 17;
    for ( ahmet=1; ahmet &lt; 17; ahmet++ )    
        {
        printf ("Ahmet eve gidemez, henuz saat : %d:00\n",ahmet);
        }
    printf ("Ahmet artik eve gidelibir, cunku saat %d:00\n", ahmet);
    system ("pause");
    return 0;
}</pre>
<p>Başka bir örnek ise alfabede ki harfleri ekrana yazdırıyor.Bu örnekteki tür dönüşümü konusunu daha önce kısaca anlatmıştım :</p>
<pre>#include &lt;stdio.h&gt;
int main ()
{
int sayac = 91; //Alfabe 29 Harftir
int harf;
for ( harf = 65 ; harf &lt; sayac; harf++ ) {
printf ("Harf : %c \n",harf); //Tür dönüşümü serbestliği ile sayıdan
 harfe çıkış aldık
}
system ("pause");
return 0;
}</pre>
<p>Döngüleri pek çok işte kullanacağınız için bur tür bir örnek ile basite almamanız gerekir.Örneği bir veritabanından verileri aktarırken kullanılacak koşul, tutulacak bir sayaç ve veritabanının son satırına ulaşılıp ulaşılmadığıdır.Bu döngü içerisinde yapılacak aksiyon ise tablolardan alınan verilerin başka bir alanda ekrana yazılması olabilir.Kısacası For ile başlayan döngü maceramızı çok iyi anlamanızı ve <strong>örnekler yapmanızı </strong>tavsiye ediyorum.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.yarimekanik.com/c-programlama-dili-for-dongusu.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>C Programlama Dili &#8211; Fonksiyonlar ile Çalışmak</title>
		<link>http://www.yarimekanik.com/c-programlama-dili-fonksiyonlar-ile-calismak.html</link>
		<comments>http://www.yarimekanik.com/c-programlama-dili-fonksiyonlar-ile-calismak.html#comments</comments>
		<pubDate>Wed, 15 Jul 2009 10:51:54 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[C Dersleri]]></category>
		<category><![CDATA[Genel Konular]]></category>
		<category><![CDATA[C dili öğrenmek]]></category>
		<category><![CDATA[C dili operatörler]]></category>
		<category><![CDATA[C dilinde fonksiyonlar]]></category>
		<category><![CDATA[C programlama dersleri]]></category>
		<category><![CDATA[C programlama dili]]></category>
		<category><![CDATA[C programlama örnekleri]]></category>
		<category><![CDATA[Kolay C öğrenme]]></category>
		<category><![CDATA[Örnekler le C dersleri]]></category>

		<guid isPermaLink="false">http://www.yarimekanik.com/?p=1133</guid>
		<description><![CDATA[İyi programlamanın temelinde sadece çok iyi algoritma bilgisi bulunmaz.İyi programcı aynı kodlarını en iyi şekilde tasarlayan kişidir.Yazdığınız bir programın kalitesi aynı zamanda o programın kodlarıyla uğraşacak başka kişilerin sizin yazdığınız kodları ne kadar iyi anladığı ile alakalıdır.Hatta bu durum sizi daha sonra zor durumlara da sokabilir. Programcının hazırladığı kodları minimal derecede dahi olsa parçalara ayırması [...]]]></description>
			<content:encoded><![CDATA[<p><img class="aligncenter size-full wp-image-1134" title="ccpl" src="http://www.yarimekanik.com/wp-content/uploads/2009/07/ccpl.jpg" alt="ccpl" width="315" height="314" /></p>
<p>İyi programlamanın temelinde sadece çok iyi algoritma bilgisi bulunmaz.İyi programcı aynı kodlarını en iyi şekilde tasarlayan kişidir.Yazdığınız bir programın kalitesi aynı zamanda o programın kodlarıyla uğraşacak başka kişilerin sizin yazdığınız kodları ne kadar iyi anladığı ile alakalıdır.Hatta bu durum sizi daha sonra zor durumlara da sokabilir.</p>
<p>Programcının hazırladığı kodları minimal derecede dahi olsa parçalara ayırması demek beraberinde bir çok konuyu da rahatlıkla çözümleyebileceği anlamına gelir.Burada ki parçalara ayırmakta ki kasıt en ufak bir operasyonu bile fonksiyonlara bölerek kodu çalışır hale getirmektir.Fonksiyonlar şu şekilde ifade edilir :</p>
<p><strong>int fonksiyonadi ()<br />
void fonksiyonadi ()</strong></p>
<p>Ancak kafanız karışmasın, fonksiyonlar daha bir çok ifade ile de tanımlanabilir.<strong>Biz şimdilik temel konulara değineceğiz</strong>.</p>
<p>Hemen bir önce ki yazıda verdiğim örnek ile konuyu destekleyelim :</p>
<pre>#include <stdio.h>
int main ()
{
int sayi = 'a';
char harf = 15;
printf ("INT Veri turu su anda : %d\n", sayi);
printf ("INT Veri turu su anda : %c\n\n", sayi);
printf ("CHAR Veri turu su anda : %d\n", harf);
printf ("INT Veri turu su anda : %c\n", harf);
system ("pause");
return 0;
}</pre>
<p>Burada yaptığımız işlemi tek fonksiyon ile bitirdik.Basit gibi görünen bu kod yapısı yüzlerce satır kodun olduğu bir yapı içerisinde içinden çıkılamaz bir hale gelecektir.Şimdi bu kodumuzu fonksiyonlara ayırdığımızı düşünelim :</p>
<pre>#include <stdio.h>
void goster ()
{
int sayi = 'a';
char harf = 15;
printf ("INT Veri turu su anda : %d\n", sayi);
printf ("INT Veri turu su anda : %c\n\n", sayi);
printf ("CHAR Veri turu su anda : %d\n", harf);
printf ("INT Veri turu su anda : %c\n", harf);
}
int main ()
{
goster ();
system ("pause");
return 0;
}</pre>
<p>Bu aşamadan sonra &#8220;<strong> goster ()</strong> &#8221; fonksiyonu içerisinde yapacağınız değişklikler &#8220;<strong> main ()</strong> &#8221; fonksiyonunu pekte ilgilendirmemektedir.</p>
<p>Fonksiyonlar kendi aralarında veri alışverişinde bulunabilirler.Buna en güzel örnek ise basit bir hesap makinası kodu örneği olabilir :</p>
<pre>#include <stdio.h>
int topla ( int sayi1, int sayi2 )
{
int sonuc;
sonuc = sayi1 + sayi2;
return sonuc;
}
int cikar ( int sayi1, int sayi2 )
{
int sonuc;
sonuc = sayi1 - sayi2;
return sonuc;
}
int bol ( int sayi1, int sayi2 )
{
int sonuc;
sonuc = sayi1 / sayi2;
return sonuc;
}
int carp ( int sayi1, int sayi2 )
{
int sonuc;
sonuc = sayi1 * sayi2;
return sonuc;
}
int islem ()
{
int sayi1;
int sayi2;
int islemTuru = 0;
int sonuc;
printf ("Islem Yapilacak 1. sayi : ");
scanf ("%d", &amp;sayi1);
printf ("Islem Yapilacak 2. sayi : ");
scanf ("%d", &amp;sayi2);
printf ("Yapilacak islem icin operator secin \n\n Toplama [1]\n
Bolme [2]\n Carpma [3]\n Cikarma [4] : ");
scanf ("%d", &amp;islemTuru);
switch (islemTuru)
{
case 1 :
{
sonuc = topla ( sayi1, sayi2 );
printf ("Islem sonucu : %d \n", sonuc);
break;
}
case 2 :
{
sonuc = bol ( sayi1, sayi2 );
printf ("Islem sonucu : %d \n", sonuc);
break;
}
case 3 :
{
sonuc = carp ( sayi1, sayi2 );
printf ("Islem sonucu : %d \n", sonuc);
break;
}
case 4 :
{
sonuc = cikar ( sayi1, sayi2 );
printf ("Islem sonucu : %d \n", sonuc);
break;
}
default :
{
printf ("Hatali giris");
break;
}
}
}
int main ()
{
islem ();
system ("pause");
return 0;
}</pre>
<p>Kod içerisinde göreceğiniz gibi henüz daha aşina olmadığımız bazı konular var.Onları sonra ki yazılarda zaten göreceğimiz için ben size şimdilik hem değişkenler hem de operatörler hakkında kısa kısa bilgiler vereceğim.</p>
<p>Dikkat ederseniz bir değişkene &#8221; <strong>degisken = 10</strong> &#8221; demek yerine &#8221; <strong>degisken = degisken1 * degisken2</strong> &#8221; ifadesini kullanabiliyoruz ve bunda bir sorun yok.Ama aynı değişkeni &#8221; <strong>int degisken</strong> &#8220;  ifadesiyle tanımlamak yerine &#8221; <strong>int degisken = degisken1 * degisken2</strong> &#8221; olarakta tanımlayabilirdik, fakat bu kötü programcılığa girecektir.</p>
<p>Diğer bir konuda aynı isimlerde bir çok degişken tanımlayabiliyor olmamız ancak sakın unutmayın, değişkenler global olarak tanımlanmadıkları sürece fonksiyon blokları içerisinde oluşturulur ve yok edilirler.Globalden kasıt ise fonksiyonların başlama noktasının dahi üzerinde ki tanımlama alanıdır.Örneğin :</p>
<pre>#include
int degisken; // bu değişken artık tüm kod satırlarında kullanılabilir.
int birseyyap ()
{
        int degisken2; // bunun ömrü birseyyap fonksiyonu çalışıp durana kadardır
        degisken = 5; // global değişken artık 5 değerini aldı ve ömrü devam ediyor.
}</pre>
<p>Fonksiyonlarınızı hazırlarken mümkün olduğu kadar bulunabilir olmasına dikkat etmelisiniz.Yapılacak işlem ile alakalı isimler verdiğiniz fonksiyonlarınız programcılık hayatınızı daha da kolaylaştıracaktır.Ayrıca fonksiyonlarınıza isim verirken iki kelime kullanmanız gereken durumlarda &#8220;<strong> _</strong> &#8221; kullanabilirsiniz :</p>
<p><strong>int toplama_Islemi ()</strong></p>
<p>Veya ikinci kelimenin ilk harfi büyük olabilir :</p>
<p><span style="color: #0000ff;"><strong>int toplamaIslemi ()</strong></span></p>
<p>Bu şekilde de yazabilirsiniz ancak arada ki görsel farka dikkat edin :</p>
<p><strong><span style="color: #ff0000;">int toplamaislemi ()</span></strong></p>
<p>Örnek olarak verdiğim kodda değer döndüren fonksiyonların çalışma mantığını çok rahatlıkla anlayabileceğinize inanıyorum.Ancak 2 değer alan bir fonksiyona<strong> 3. değer gönderemeyeceğinizi unutmayın</strong>.Ayrıca kod içerisinde bahsi geçen &#8221; <strong>islem ()</strong> &#8221; fonksiyonunun kod bloğunu, fonksiyonlar da ki sıralama ve kod derleme mantığını anlayabilmek için en tepeye çıkararak neler olduğunu görmeniz sizin için iyi bir deneyim olacaktır.</p>
<p>Bu arada 4 işlem operatörünü de kısaca görmüş oldunuz.</p>
<p>( Code Snippet ile ilgili bir sorundan dolayı <strong>&amp;</strong> ifadesi <strong>&amp;amp</strong> olarak görünmekte.Bu yüzden o bölümü sadece &amp; olarak değiştirmelisiniz )</p>
<p>Kolay gelsin.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.yarimekanik.com/c-programlama-dili-fonksiyonlar-ile-calismak.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>C Programlama Dili &#8211; Değişkenler</title>
		<link>http://www.yarimekanik.com/c-programlama-dili-degiskenler.html</link>
		<comments>http://www.yarimekanik.com/c-programlama-dili-degiskenler.html#comments</comments>
		<pubDate>Tue, 14 Jul 2009 10:22:54 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[C Dersleri]]></category>
		<category><![CDATA[Genel Konular]]></category>
		<category><![CDATA[C programlama değişkenler]]></category>
		<category><![CDATA[c programlama dili dersleri]]></category>
		<category><![CDATA[c programlama dili ile çalışmak]]></category>
		<category><![CDATA[c programlama dili öğrenmek]]></category>
		<category><![CDATA[c programlama dili tür dönüşümleri]]></category>
		<category><![CDATA[c programlama dilinde veri tipleri]]></category>

		<guid isPermaLink="false">http://www.yarimekanik.com/?p=1117</guid>
		<description><![CDATA[Bir kod yazmaya başladığınız zaman ihtiyaç duyacağınız en önemli nesne değişkenlerdir.Değişken ismi kafanızı karıştırabilir ancak daha iyi anlayabilmeniz için onları birer &#8220;bardak&#8221; olarak düşünebilirsiniz.&#8221;Bardak&#8221; olarak adlandırmamın sebebi, içlerine devamlı bir şeyleri doldurup boşaltabilecek olmanızdır.Bildiğiniz gibi bardaklar da içerisine alabildikleri sıvıların hacmine göre de guruplandırılabilirler.1 litre sıvı alabilen bardak varken sadece 100 Ml sıvı alabilen bardaklar da [...]]]></description>
			<content:encoded><![CDATA[<p><img class="aligncenter size-full wp-image-1118" title="cpl" src="http://www.yarimekanik.com/wp-content/uploads/2009/07/cpl.jpg" alt="cpl" width="315" height="314" /></p>
<p>Bir kod yazmaya başladığınız zaman ihtiyaç duyacağınız en önemli nesne değişkenlerdir.Değişken ismi kafanızı karıştırabilir ancak daha iyi anlayabilmeniz için onları birer &#8220;<strong>bardak</strong>&#8221; olarak düşünebilirsiniz.&#8221;<strong>Bardak</strong>&#8221; olarak adlandırmamın sebebi, içlerine devamlı bir şeyleri doldurup boşaltabilecek olmanızdır.Bildiğiniz gibi bardaklar da içerisine alabildikleri sıvıların hacmine göre de <strong>guruplandırılabilirler</strong>.1 litre sıvı alabilen bardak varken sadece 100 Ml sıvı alabilen bardaklar da mevcuttur.<strong>Fakat hepsinin görevi de aynıdır </strong>; kendilerine atanan verileri tutmak.</p>
<p>Programcılıkta değişkenlerin kullanma amacını kısaca anlatmış olduk.Size kalan sadece hangi tür bardağı kullanacağınızı bilmektir.Çünkü yanlış bardak seçimi gerçek hayatta sizi hem yorar hemde üzerinde içebileceğinizden fazla ya da içmek istediğinizden az sıvı içeriyorsa bu sizin için hoş olmaz.Biz en basit şekilde devam edeceğimiz için şimdilik en sade değişken tiplerini bilmemizde fayda var :</p>
<p><span style="color: #000080;"><strong>CHAR = -128 ile 127 ( Harf )<br />
INT = -32768) ile 32767 ( Sayı )<br />
FLOAT = 3,4E-38 ile 3,4E+38 ( Ondalık Sayı )<br />
DOUBLE = 1,7E-308 ile 1,17E+308 ( Daha büyük ondalık sayı )</strong></span></p>
<p>Değişken türleri bunlarla sınırlı değildir.Ancak biz şimdilik bilmemiz gerekenleri tanıyalım istiyorum.</p>
<p>Rakamlar kafanızı karıştırmasın, bilmeniz gereken iki şey var :</p>
<p><strong>1- Hangi</strong> değişkeni hangi durumda kullanmanız gerektiğini bilmek.<br />
<strong>2- Hatalı</strong> değişken seçiminin belleği ve programın işlemci kullanımını arttıracağını kavramak.</p>
<p>C dilinde bir değişken basitçe şu şekilde tanımlanır :</p>
<pre><span style="color: #000080;">int degisken;
char degisken;
float degisken;
double degisken;</span></pre>
<p>Aynı türde aynı isimde değişken tanımlayamazsınız, yani &#8220;<strong>degisken</strong>&#8221; adında başka bir<strong> INT</strong> türünde değişken tanımlamanız hataya yol açar.Ancak farklı türde aynı isimde değişken tanımlayabilirsiniz.Ayrıca değişkeni tanımladığınız blok çok önemlidir, buna birazdan döneceğiz.Değişkenlere ilk değer verilebilir.Neden ilk değer vermek zorunda kalırız diye düşünürseniz geriye doğru sayan bir sayaç kodu yazmanız gerektiğini düşünebilirsiniz.</p>
<pre><span style="color: #000080;">int sayi = 10;
char harf = ' a ';</span></pre>
<p>C dili esnek olmakla birlikte aynı zamanda bazı yönleri ile güvensiz olduğu iddia edilir.Ufak programlar yazarken sorun teşkil etmese de büyük çapta bir projede gerçekten devasa sorunlara yol açabilir.Değişkenlere Bunu neden anlattığımı örnek ile göstermek istiyorum :</p>
<pre><span style="color: #000080;">int sayi = ' a ';</span></pre>
<p>C editörünüz bu duruma itiraz etmeyecektir.Bunun çıktısını görmek için şu kodu editörünüze yapıştırın :</p>
<pre>#include <stdio.h>
#include <cstdlib>
int main ()
{
int sayi = 'a';
char harf = 15;
printf ("INT Veri turu su anda : %d\n", sayi);
printf ("INT Veri turu su anda : %c\n\n", sayi);
printf ("CHAR Veri turu su anda : %d\n", harf);
printf ("CHAR Veri turu su anda : %c\n", harf);
system ("pause");
return 0;
}</pre>
<p>Şunu unutmayın ki her programlama dilinde bu şekilde <strong>esneklik </strong>göremeyeceksiniz.<strong>Tür dönüşümleri</strong> C dili sonrasında ki dillerde bellek yönetimini korumak adına bazı fonksiyonlar vasıtası ile yapılmaktadır.Biraz karmaşıktır ancak öğrenmesi de kolaydır.</p>
<p>Gelelim az önce yarım bıraktığımız bloklar ve değişkenlerin önemine.Bir fonksiyon içerisinde deklare edilen bir değişken o fonksiyonun <strong>her yerinde kullanılabilir</strong>.Fakat bir kod bloğunun içerisinde deklare edilen bir değişken o kod bloğunun dışında <strong>çağırılamaz</strong>.Bu durum ile ilgili örneği sonra ki yazılarda göreceğiniz &#8220;<strong>Döngüler</strong>&#8221; konusunda daha iyi anlayacaksınız.</p>
<p>Bu yazıda <strong>değişken nedir</strong>,<strong> türleri nelerdir</strong>,  <strong>ilk değer nasıl atanır</strong> ve <strong>tür dönüşümü nasıl yapılır</strong> hakkında bazı bilgiler okudunuz.Ben sizlere elimden geldiği kadar basit bir şekilde konuları aktarmaya çalışıyorum fakat kendinizi geliştirip araştırma yaparak kod yazmadığınız sürece ilerlemeniz mümkün olmayacaktır.</p>
<p>Kolay gelsin</p>
]]></content:encoded>
			<wfw:commentRss>http://www.yarimekanik.com/c-programlama-dili-degiskenler.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>C Programlama Diline İlk Adım</title>
		<link>http://www.yarimekanik.com/c-programlama-diline-ilk-adim.html</link>
		<comments>http://www.yarimekanik.com/c-programlama-diline-ilk-adim.html#comments</comments>
		<pubDate>Sat, 11 Jul 2009 20:37:31 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[C Dersleri]]></category>
		<category><![CDATA[Genel Konular]]></category>
		<category><![CDATA[C dilini öğrenmek]]></category>
		<category><![CDATA[C ile programlamaya giriş]]></category>
		<category><![CDATA[C programlama öğrenmek]]></category>
		<category><![CDATA[Prgramcılık]]></category>

		<guid isPermaLink="false">http://www.yarimekanik.com/?p=1095</guid>
		<description><![CDATA[C programlama dilini diğer dillerden ayıran en büyük özelliklerden bir tanesi Açık Kaynak projesi içerisinde yer alması ve her türlü ihtiyaca cevap verebilecek kütüphane dosyalarına sahip olmasıdır.İleri derecede C programlama yeteneğine sahip bir programcının uygulayamayacağı algoritma neredeyse yok gibidir.Fakat bir çok işte olduğu gibi bu işte de sabır çok önemlidir. C ile kod yazmak için [...]]]></description>
			<content:encoded><![CDATA[<p><img class="aligncenter size-full wp-image-1098" title="cpro1" src="http://www.yarimekanik.com/wp-content/uploads/2009/07/cpro1.jpg" alt="cpro1" width="329" height="312" /></p>
<p>C programlama dilini diğer dillerden ayıran en büyük özelliklerden bir tanesi <strong>Açık Kaynak</strong> projesi içerisinde yer alması ve her türlü ihtiyaca cevap verebilecek kütüphane dosyalarına sahip olmasıdır.İleri derecede C programlama yeteneğine sahip bir programcının uygulayamayacağı algoritma neredeyse yok gibidir.Fakat bir çok işte olduğu gibi bu işte de sabır çok önemlidir.</p>
<p>C ile kod yazmak için öncelikle bir editöre ihtiyacınız var.Bu editöre notepad dahi olabilir.Neticede derleyici ufak bir programdan ibarettir ve bu sayede istediğini her ortamda kodunuzu yazmaya devam edebilirsiniz.Ancak bir editörün verdiği rahatlık vazgeçilmezdir.Yaptığınız işin düzenli olması yapacağınız işe olan şevkinizi arttıracağı için editör kullanmanız her zaman avantajınızadır.Tavsiye olarak &#8220;<strong>DEV-Cpp</strong>&#8221; editörünü kullanabilirsiniz.</p>
<p>C dilinin temelinde kütüphane dosyaları yatmaktadır.Bu dosyaların uzantısı ise &#8220;<strong> *.H</strong> &#8221; dir.Bu konuyu çok iyi anlamak zorundasınız çünkü ileri ki aşamalarda sizinde kendinize ait kütüphane dosyalarınız olacak.Kütüphane dosyalarının kullanım şekli ise :</p>
<p><code>#include kütüphanedosyası</code></p>
<p>şeklindedir.&#8221;<strong>INCLUDE</strong>&#8221; direk çeviri manası ile aynı anlamda kullanılır.Yani kütüphaneden bir kitap çıkardınız ve o kitabın içeriğinden bir kaç şeyi kendi yazmakta olduğunuz kitaba ekliyorsunuz, hepsi bu.Gerçek bir örnek vermek gerekirse :</p>
<p><code>#include stdio.h</code></p>
<p>Burada bahsi geçen<strong> stdio.h</strong> kütüphane dosyası &#8220;<strong>Standart Input &#8211; Output</strong>&#8221; cümlesinin kısaltılmışıdır.Bunu dahil ettiğiniz bir C projenizde artık bir takım fonksiyonları rahatlıkla kullanabilirsiniz.Demin ki örneği iyi düşünün, kitabı kütüphanede ki rafından aldık ve içinden bir şeyleri kullanacağız.Bu kütüphane dosyasının içerisinde &#8220;<strong>Koşmak</strong>&#8221; adında bir fonksiyon varsa o zaman sizde kendi kodlarınızın içerisine direkt olarak &#8220;<strong>Koşmak</strong>&#8221; adında bir fonksiyon çağırabilirsiniz.Bu kütüphane dosyasını projenize dahil etmediyseniz o zaman fonksiyonu kendiniz yazmak zorunda kalırdınız,  ya da çağırırken hata mesajı alırdınız.</p>
<p><strong>Demek ki kendi yazdığımız fonksiyonları sonradan çağırıp kullanabilmek için birer kütüphane dosyası haline getirebiliriz değil mi ?</strong></p>
<p>Fonksiyondan bahsediyoruz ama henüz ne olduğunu anlatmadım, aslında çok basit olduğu için anlatma gereği duymadım fakat yine de basitçe üzerinden geçelim :</p>
<p><code>int fonksiyon ()</code></p>
<p>Her arabanın bir sınıfı vardır ( <strong>A segment, B segment gibi</strong> ) . Her fonksiyonun da bir türü vardır fakat henüz yolun başında olduğumuz için şimdilik şunu söyleyebilirim ki başlangıç olarak kullanacağımız fonksiyon türleri &#8220;<strong>INT</strong>&#8221; ve &#8220;<strong>VOID</strong>&#8221; türleridir.Fonksiyonlar matematik bilgisi iyi olanların tahmin edeceği gibi bir takım değerler alabilir, bu değerleri başka fonksiyonlara döndürebilir.</p>
<p><code>int fonksiyon ( int a, int b )</code></p>
<p>C dilinde her kod yumağı bir &#8220;<strong>MAIN</strong>&#8221; fonksiyona ihtiyaç duyar.Program bu &#8220;<strong>MAIN</strong>&#8221; fonksiyonundan başlayarak aşağıya doğru derlenir.<strong>MAIN</strong> fonksiyonu yoksa zaten derleme sonucunda hata mesajları alırsınız.<strong>MAIN</strong> fonksiyonu kod yumağının en tepesinde bulunsa her açıdan avantajdır fakat bunu yapmak zorunda değilsiniz.Ya da 5 ayrı fonksiyon yazdığınızı düşünün ve bunlar döndürdükleri değer itibariyle biraz karışık bloklarda bulunuyorlar.Bu durum için çözüm kodun derlenmeye başlandığı <strong>en üst bloğa bu fonksiyonların olduğunu anlatmaktır</strong>.İleride yazacağımız örneklerde bu konuyu daha iyi anlayabileceksiniz.</p>
<p>Ve en önemli unsurlardan bir tanesi, C dilinde fonksiyonların ifade edildiği satırlar dışında ki her satır &#8221; <strong>; </strong>&#8221; ile biter.Bu programcıların dalgınlıkla yaptıkları en büyük hatalardan bir tanesidir.Çünkü derleyici &#8220;<strong> ;</strong> &#8220; bulunmayan bir satırda, <strong>bu ifade yoktur diye uyarı vermez</strong>.Hele ki yüzlerce satırın olduğu bir kod yumağında bu sorunu bulmak inanın çok zordur.</p>
<p>Bu yazıyı sonuna kadar okuduysanız C standarları ile ilgili bir kaynak bulmanız sizin için çok iyi olacaktır.Bir sonra ki konuda ilk kodlarınızı yazmaya başlayacaksınız.Bu yüzden &#8220;<strong>DEV-Cpp</strong>&#8221; indirip bilgisayarınıza kurmayı unutmayın.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.yarimekanik.com/c-programlama-diline-ilk-adim.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

