Merhaaba C diline başlarken her programlama için bir editöre ihtiyaç duyulur C yazmak için öncelikli olarak Dev-C++ Editörünü indirmenizi öneririm. Bu programı bloodshed.net indirebilirsiniz. indireme işlemi tamamlandıktan sonra varsayılan ayarlarla programı yüklemeniz yeterli olacaktır. Program yüklendikten sonra yazmış olduğunuz kaynak kodun derlenip makine diline çevrilmesi gerekmektedir. Bu işlemi ise programın Execute > compile (F9 Kısayolu) sekmesinden derleyebilirsiniz. Aynı zamanda C programlama dili ile yazmış olduğunuz kodları derledikten sonra çalıştırmak için yine Execute > Run (F10 Kısa yolu) sekmesinden çalıştırabilirsiniz. Bunları her ikisini yanı anda yapmak içinse yine Excute > Compile & Run (F11 Kısa yolu) sekmesinden derleyip çalıştırabilirsiniz. Kaynak koddaki her değişiklikten sonra değişikliklerin oluşması için tekrardan derlemeniz (Compile) etmeniz gerekmedir.Editörü kurduktan sonra aşağıdaki kodları uygulayabilirsiniz.
İlk olarak dev c++ editörümüz ile ekrana merhaba dünya yazdıralım. Öncelikle dev C++ programını açın sonra file > new project > empty project tıklayın ve projeyi kaydedeceğiniz dosyayı seçin. Daha sonra aşağıda yazmış olduğumuz kodların açıklama satırıları hariç sayfaya yazın. Daha sonra ctrl + s veya file > save butonuna tıklayın. Dosyanın adını “proje-1” ve uzantısını .c olarak belirleyin ve kadedin. Daha sonra programı execute > compile (F9) butonuna tıklayarak derleyin. Daha sonra execute > run (F10 kısayolu) diyerek programı çalıştırın. Ekrana siyah bir ekran gelecek ve “c ile programlamaya merhaba” yazacaktır. Aynı zamanda compile ile derleme yaptıktan sonra dosyaları kaydettiğiniz dizine .exe uzantılı bir dosyanın daha oluştuğunu göreceksiniz. Bu dosya bizi yazmış olduğumuz programın derlenmiş halider.
C programlama dilinde ekrana bir çıktı vermek için printf(“içerik”,degisken) fonksiyonu kullanılır. Printf fonksiyonunda php deve diğer yazılım dillerinde olduğu gibi değişkenler direk içerisine yazılmaz. Değişkenin geleceği yere
Çevirim | Değiken Tipi |
---|---|
%d | İşretli tam saylar için. (char,short,int,long) |
%u | İşaretsiz tam sayılar. (unsigned char,unsigned short,unsigned int,unsigned long) |
%f | Ondalık sayılar için. (Float) |
%lf | Ondalık Sayı (Float, Double) |
%s | Karakter dizisi. (String) |
%c | Tek karakter (char) |
%e – %E | Ondalıklı sayılar ve üstlü biçimde (double, float) |
%x – %X | Onaltılık Biçinde |
Yukardaki şekilde çevirim operatörleri yerleştirilir ve sonra operatör sırasına göre string tanımlama sonrası virgüllerle ayrılarak değişkenler gelir.
1 2 3 4 5 6 7 8 9 10 |
#include <stdio.h> //printf ve scanf fonksiyonlarını kullanmak için sınıfımızı sayfaya çağırdık int main(){// ana bloğumuz oluşturduk. printf("C ile programlamaya merhaba \n"); // Ekrana merhaba yazdık ve bir satır aşağı indik. getchar(); // konsolun hemen kapanmasını engellemek için bir tuşa basılmsını bekliyoruz. return 0; //işletim sistemine 0 değerini dönderdik } |
C Değişken Tipleri
C programlama dilinde değişken tipler char ile başlayıp long ile bitmektedir. Aşağıda tabloda değişkenlerin Ram’de kaç baytlık yer kapladığı toplomda belirtilmiştir. Dikkat edilmesi gereken konu string değişken tipini aslında birden çok char yani dizi char mantığında olduğunu unutmamanız. Örneğin string a =”caglar”; a değişkeni Ram’da (6*8) 48 baytlık yer kaplamaktadır.Değişken Adı | BIT | Kasadığı Değer |
---|---|---|
unsigned char | 8 | -128:127 |
char | 8 | 0:255 |
short | 16 | -32768:32767 |
unsigned short | 16 | 0:65.535 |
int | 32 | -2147483648:21447484647 |
unsigned int | 32 | 0:4274967295 |
long | 64 | -9223372036854775808:9223372036854775807 |
unsigned long | 64 | 0:18446744073709551615 |
float | 32 | -3.402823e38:3.402823e38 |
double | 64 | -+5.010-324:-+1.7×10308 |
string | 8*1 | Bir karater |
C de Dört İşlem
C programlama dilinde toplama, çıkarma, bölme, çarpma ve mod işlemleri ile ilgili aşağıda bir örnek verilmiştir. Dikkat edilmesi gereken durum bu işlemlerin float bir değer alıp almadığı. Eğer sonuç float bir değer çıkıyor ise diğer değişkenlerde float olarak tanımlanmalıdır. C de dört işlem yaparken sadece sonuç değerinin float olması değerin ondalık bir sayı alabileceği anlamına gelmez.
Operatör | İşlev |
---|---|
+ | Toplama |
– | Çıkarma |
* | Çarpma |
/ | Bölme |
% | Mod |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 |
#include <stdio.h> //printf ve scanf fonksiyonlarını kullanmak için sınıfımızı sayfaya çağırdık int main(){// ana bloğumuz oluşturduk. //topma int a=5,b=10,sonuc; sonuc=a+b; printf("a ve b nin toplami %d \n",sonuc); // Ekrana ekrana toplamı yazdıralım %i integer bir değişken geleceğini belirtik. //çıkarma sonuc=b-a; printf("b-a nin sonucu %d \n",sonuc); //bölme sonuc=b/a; printf("b/a nin sonucu %d \n",sonuc); //çarpma sonuc=b*a; printf("b*a nin sonucu %d \n",sonuc); //mod sonuc=b%a; printf("b mod a nin sonucu %i \n",sonuc); getchar(); // konsolun hemen kapanmasını engellemek için bir tuşa basılmsını bekliyoruz. return 0; //işletim sistemine 0 değerini dönderdik } |
C de Sabit Değişken Tanımlama
C programlama dilinde sabit değişkenler tanımlanırken #define kullanılır ve değişken adı verildikten sonra değişken değeri atanır. Aşağıda bir örneği verilmiştir.
1 2 3 4 5 6 7 8 9 10 |
#include <stdio.h> //printf ve scanf fonskiyonlarını kullanmak için sınıfımızı sayfaya çağırdık #define pi 3.14 int main(){// ana bloğumuz oluşturduk. printf("%lf pi degeri. \n",pi); //değeri alan genişliği ile birlikte verildi. 3.140000 printf("%4.2lf pi degeri.",pi); //Alan genişliğinden kurtulmak için %4.2lf (dört karter genişliğinde . (Nokta) dan sonra iki karater uzunluğunda) kullanıldı getchar(); // konsolun hemen kapanmasını engellemek için bir tuşa basılmasını bekliyoruz. return 0; //işletim sistemine 0 değerini dönderdik } |
C dilinde değişken tanımlanmadan önce değişken tipi yazılır (char,short,int,long vb ) daha sonra değişken tanımlanır. Değiken tanımlanırken:
- Türkçe karakter kullanılmaz
- Sözcüklerde boşluk bırakılmaz _ karater kullanılır.
- Özel karakterler kullanılmaz. (^+%&/()? vb)
- Büyük küçük harf duyarlılığı olduğu için yazımda dikkat edilir
- Programlama dili için özel anlam ifade eden sözcükler kullanılmaz. (define, function, char, short, int vb.)
C’de Kara Yapıları İf Kullanımı
C programlama dilinde kara yapısına örnek aşağıda verilmiştir. İf karar bloğunda birden fazla mantıksal operatör ile karar yapısı kullanılabilir;
C de karar yapılarına geçmeden aşağıdaki operatörleri inceleyelim
Artırma Operatörleri | |
---|---|
Operatör | İşlevi |
++x | Önce x’i bir artır ve daha sonra x değerini kullan |
x++ | Önce x değerini kullan daha sonra x değerini bir artır. |
–x | Önce x değerini bir eksilt daha sonra x değerini kullan |
x– | Önce x değerini kullan daha sonra x değerini bir eksilt |
Eşitlik ve İlişki Operatörleri | |
---|---|
Operatör | İşlevi |
== | Eşitse |
!= | Eşit Değilse |
> | Büyükse |
< | Küçükse |
>= | Küçük Eşit |
<= | Büyük Eşit |
Mantıksal Operatörler | ||
---|---|---|
Operatör | İşlevi | Durum |
&& | VE / AND | true && true = true Diğer hallerde False |
|| | OR | false || false = false Diğer hallerde true |
^ | XOR | true ^ false = true Farlı değerlerde True aynı değerlerde False true ^ true = false |
~ | Değil/Not | a=true | ~a=false |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
#include <stdio.h> //printf ve scanf fonksiyonlarını kullanmak için sınıfımızı sayfaya çağırdık int main(){// ana bloğumuz oluşturduk. int a=1,b=2; if(b>a){ printf("b > a "); }else{ printf("b degeri a degerinden buyuk degil"); } getchar(); // konsolun hemen kapanmasını engellemek için bir tuşa basılmsını bekliyoruz. return 0; //işletim sistemine 0 değerini dönderdik } |
C’de İf-else if Kullanımı
Birden çok karar yapınız varsa else if yapısını kullanabilirsiniz. Dikkat etmeniz gereken durum şartı sağlayan blok çalışır ve sonraki bloklar çalışmaz.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
#include <stdio.h> //printf ve scanf fonksiyonlarını kullanmak için sınıfımızı sayfaya çağırdık int main(){// ana bloğumuz oluşturduk. int a=5,b=1; if(b>a){ printf("b > a "); }else if(a>b){ printf("a > b"); }else{ printf("a == b"); } getchar(); // konsolun hemen kapanmasını engellemek için bir tuşa basılmsını bekliyoruz. return 0; //işletim sistemine 0 değerini dönderdik |
c’de switch Kullanımı
C programlama dilinde if karar yapısına benzer bir yapıdadır. Farkı bir değişkendeki değere göre işlem blokları çalışır. Break komutunu yazmayı unutursanız bir sonraki break; komutuna kadar olan kod bloklarını çalıştırır. Default: bu kısımda case deger: de belirtilmemiş bir değer varsa son olarak çalışan bölümdür. Yani else olarak düşünebiliriz.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 |
#include <stdio.h> //printf ve scanf fonskiyonlarını kullanmak için sınıfımızı sayfaya çağırdık int main(){// ana bloğumuz oluşturduk. int a=40; switch(a){ case 6: printf("Ankara"); break; case 34: printf("Istanbul"); break; case 35: printf("Izmir"); break; case 40: printf("Kirsehir"); break; default: printf("Tanimsiz Plaka"); } getchar(); // konsolun hemen kapanmasını engellemek için bir tuşa basılmasını bekliyoruz. return 0; //işletim sistemine 0 değerini dönderdik } |
C’de Dallanma Komutu GOTO Kullanımı
Kodların yazıldığı alanda bir çapa atıyorsunuz ve daha sonra kodlar satır satır akarken tekrar atmış olduğunuz çapaya giderek oradan devam etmesiniz istiyorsunuz. Yapısal programlamaya aykırı bir durumdur. Eğer size while, for, do while gibi döngüler kullanmadan bir döngü oluşturmanız isteniyorsa go to ile bunu yapabilirsiniz. Aşağıda ekrana 10 kez “MERHABA C” yazdıran bir uygulama yapılmıştır.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
#include <stdio.h> //printf ve scanf fonskiyonlarını kullanmak için sınıfımızı sayfaya çağırdık int main(){// ana bloğumuz oluşturduk. int sayac=0; // döngü için bir sayac tekrar: // goto ile tekrar bu satırdan aşağı doğru kodları işleyecek printf("MERHABA C \n"); //Ekrana Çıktı Veriyoruz. sayac++; //sayacı bir artırıyoruz if(sayac<10){ //ondan küçük olup olmadığının kontrolünü sağlıyoruz. goto tekrar; //şart sağlanırsa goto ile tekrar: yazan çapaya gitmesini istiyoruz. } getchar(); // konsolun hemen kapanmasını engellemek için bir tuşa basılmasını bekliyoruz. return 0; //işletim sistemine 0 değerini dönderdik } |
C’de Döngüler
Bir işi sınırsız veya sınırlı bir şekilde tekrar tekrar yaptırmak istiyorsanız döngüleri kullanmanız gerekmektedir. Döngüler Şartlı Döngüler (while/do While) ve Sabit Döngüler (for) olmak üzere ikiye ayrılır. ilk olarak sabit bir döngü yapalım.
C’de For Döngüsü
For döngüsü üç parametre ile çalışır for(parametre 1; parametre 2; parametre 3). Parametre 1 de döngüyü saymak için değişken oluşturulur ve var sayılan değer atanır. İkinci parametrede döngünün devemını sağlayacak şart girilir. Üçüncü parametrede ise her döngü sonrasında sayaç değişkeninin kaç artacağı belirlenir. Ekrana n.Döngü şeklinde 10 kez dönmesini isteyelim.
1 2 3 4 5 6 7 8 9 10 11 12 13 |
#include <stdio.h> //printf ve scanf fonskiyonlarını kullanmak için sınıfımızı sayfaya çağırdık int main(){// ana bloğumuz oluşturduk. int sayac; for(sayac=0;sayac<10;sayac++){ printf("%d. Dongu\n",sayac); } getchar(); // konsolun hemen kapanmasını engellemek için bir tuşa basılmasını bekliyoruz. return 0; //işletim sistemine 0 değerini dönderdik } |
C’de While Döngüsü
C programlama dilinde döngünün kaç kez döneceğini belli değilse while döngüsü kullanılır. while tek bir parametre ile şart ile çalışır. Şart sağlandığında ise break; komutu ile döngüden çıkılır. Aşağıda for döngüsüne benzer bir yapıyla ve farklı bir yapıda iki tane döngü sağlanmıştır.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
#include <stdio.h> //printf ve scanf fonskiyonlarını kullanmak için sınıfımızı sayfaya çağırdık int main(){// ana bloğumuz oluşturduk. int sayac=0; //sayac oluşturuldu while(sayac<10){ //while şartı belirlendi. printf("%d. Dongu \n",sayac);//Ekrana çıktı verildi. sayac++;//sayaç bir artırıldı. } getchar(); // konsolun hemen kapanmasını engellemek için bir tuşa basılmasını bekliyoruz. return 0; //işletim sistemine 0 değerini dönderdik } |
Diğer bir örnek:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
#include <stdio.h> //printf ve scanf fonskiyonlarını kullanmak için sınıfımızı sayfaya çağırdık int main(){// ana bloğumuz oluşturduk. int sayac=0; //sayac oluşturuldu while(sayac<82){ //while şartı belirlendi. printf("%d. Dongu\n",sayac); if(sayac==40){ //döngüyü sonandıracak şart belirlendi printf("Kirsehir");// şart sağlandığında ekrana yazacak; break;// dögüden çıkmamızı sağlayacak } sayac++;//sayaç bir artırıldı. } getchar(); // konsolun hemen kapanmasını engellemek için bir tuşa basılmasını bekliyoruz. return 0; //işletim sistemine 0 değerini dönderdik } |
C’de Do while Kullanımı
Do while aslında while yapısı ile aynı tek farkı while kullanımında önce şartı sağlanması isternirke dowhile de ise önce kodlar çalıştırlıyor daha sonra şartı sağlayıp sağlamama durumuna göre döngü devam ediyor.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
#include <stdio.h> //printf ve scanf fonskiyonlarını kullanmak için sınıfımızı sayfaya çağırdık int main(){// ana bloğumuz oluşturduk. int sayac=1; //sayac oluşturuldu do{ printf("%d. Dongu",sayac); sayac++; sayac++; }while(sayac<=1); getchar(); // konsolun hemen kapanmasını engellemek için bir tuşa basılmasını bekliyoruz. return 0; //işletim sistemine 0 değerini dönderdik |
C’de Continue Kullanımı
for-while-do whil gibi döngülerde istenen bir şart sağlandığında döngünün çalışmaması isteniyorsa continue kullanılır. Aşağıdaki kod bloğu çalıştığında 5. Dongu yazmadığı anlaşılacaktır. Çünkü verilen şartta döngü 5’e geldiğinde döngü tekrar bir sonraki sayaç değerine atlayarak çalışyor.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
#include <stdio.h> //printf ve scanf fonskiyonlarını kullanmak için sınıfımızı sayfaya çağırdık int main(){// ana bloğumuz oluşturduk. int sayac=1; //sayac oluşturuldu for(;sayac<10;sayac++){ if(sayac==5){ continue; } printf("%d. Dongu\n",sayac); } getchar(); // konsolun hemen kapanmasını engellemek için bir tuşa basılmasını bekliyoruz. return 0; //işletim sistemine 0 değerini dönderdik } |