Üye ol
Şifremi unuttum | Onay kodum gelmedi
Yardım

C / C++ Programlama Diline Giriş Ders Notları
sendetiklat
Sahip
sendetiklat


sendetiklat şu anda çevrimdışı
Gönderilme Tarihi: 23 Kasım 2009 17:26:06

Tarihçe

C Programlama Dili genel amaçlı orta seviyeli ve yapısal bir programlama dilidir. 1972 yılında Dennis Ritchie tarafından Bell Telefon Labaratuvarında Unix işletim sistemi ile kullanılmak için tasarlanmıştır. C, özellikle sistem programlamada sembolik makine dili (Asembler) ile tercih edilmektedir. İşletim sistemleri, derleyiciler ve debug gibi aşağı seviyeli sistem programlarının yazılımında yoğun olarak C programlama dili kullanılır.
C'nin yayılması ve gelişmesi, büyük bir bölümü C dili ile yazılan UNIX işletim sisteminin popüler olmasıyla başlamıştır. C Programlama Dili, hemen her alanda kullanılmaktadır. Günümüzde nesneye yönelik programlama dilleri (C++, Java) ve script dilleri (JavaScript, JavaApplet, PHP) gibi programlama dilleri C Programlama Dili'nden esinlenmiştir.
C taşınabilir (portable) bir dildir. Yani herhangi bir C programı hiçbir değişikliğe uğramadan, veya çok az bir değişimle, başka bir derleyicide ve/veya işletim sisteminde derlenebilir. Örneğin, Windows işletim sistemlerinde yazılan bir C kodu, Linux veya UNIX gibi işletim sistemlerinde de derlenebilir.

C dilinin Avantajları
C Programlama Dili'ni popüler kılan önemli nedenler aşağıda listelenmiştir: C, güçlü ve esnek bir dildir. C ile işletim sistemi veya derleyici yazabilir, kelime işlemciler oluşturabilir veya grafik çizebilirsiniz.
C, iyi bir yazılım geliştirme ortamına sahiptir.
C, özel komut ve veri tipi tanımlamasına izin verir.
C, taşınabilir bir dildir.
C, gelişimini tamamlamış ve standardı oluşmuş bir dildir.
C, yapısal bir dildir. C kodları fonksiyon olarak adlandıralan alt programlardan oluşmuştur.
C++, Java, JavaScript, JavaApplet, PHP, C#, ... gibi diller C dilinden esinlenmiştir.

C Derleyicileri
En sık kullanılan C derleyicileri TURBO C, DEVC++,MICROSOFT VISUAL C++ dır.
C Program Yapısı
/* Önişlemci talimatı. Belirli bir dosyanın içeriğini bilgisayara yüklemesini söyler. */
#include <stdio.h>
/* program çalışmaya main fonksiyonu ile başlar */
main()
{
Komut1;
Komut2;
Komutn;
} /* main fonksiyonunun bitişi */_



C Program yapısı

main()
C programları bir yada daha fazla fonksiyon içerebilirler. Ama bunların içinden mutlaka bir tanesi main olmak zorundadır.
Parentezler fonksiyon olduğunu gösterir.
Küme parantezi ({ ve }) bir blok olduğunu gösterir.
Her fonksiyonun gövde kodları küme parantezleri içinde yazılır.

C kütüphaneleri(header dosyaları)
<stdio.h> standart giriş/çıkış işlemlerine izin verir.
<string.h> String fonksiyonlarını içerir
<math.h> Matematik fonksiyonlarını içerir.
<stdlib.h> min, max gibi iki makronun, exit_failure gibi standart birkac degerin, bazi ana limitlerin, kalanli bolum structure'larinin tanimini, ve birkac standart fonksiyonun prototipini icerir.


Printf komutu
Ekrana çıkış alma komutudur.
Kullanımı:
1: Printf(“Ekrana yazılacak bilgi”);
Eğer yazdırma işleminden sonra programın bir işlem yapması isteniyorsa şöyle yazılır:
2: printf(“Deneme\n”);
İşaretler ve anlamları
\n İmlec yeni satırın başına geçer.
\t Tab işareti.
\\ Ters bölü işareti.
\” Çift tırnak işareti.

Örnek
main()
{
printf( "C diline " );
printf( "hoş geldiniz\n" );
}_


Printf formatlı yazdırma
Printf komutuyla ekrana değer yazdırmak için aşağıdaki semboller kullanılır.
%d=Tamsayı değişkenleri yazdırmada kullanılır.
%f=Ondalık sayı değişenleri yazdırmada kullanılır.
%c=String değişkenleri karakter karakter yazdırmada kullanılır.
%s=String değişkenleri yazdırma kullanılır.


Örnek-1
#include <stdio.h>
main()
{
int sayi=5;
printf("%d",sayi);
} _


Örnek-2
#include <stdio.h>
main()
{
float sayi=5.35;
printf("%1.2f",sayi);
}_

Örnek-3
#include <stdio.h>
main()
{
char ad[10]="ali";
printf("%s",ad);
}_

Örnek-4
#include <stdio.h>
main()
{
char ad[10]="ali";
printf("%c",ad[0]);
}_


Scanf Komutu
Klavyeden veri girişi yapmak için kullanılan komuttur.
Scanf komutunun kullanımı aşağıdaki gibidir.
Scanf(“okuma formatı”, değişken)
Örnek
#include <stdio.h>
main()
{
char c;
c=getche();//getch komutu da kullanılır.
printf("girilen harf : %c\n",c);
}_


Scanf formatlı okuma
Scanf komutuyla ekrandan değer okutmak için aşağıdaki semboller kullanılır.
%d=Tamsayı değişkenleri okutmada kullanılır.
%f=Ondalık sayı değişkenleri okutmada kullanılır.
%c=String değişkenleri karakter karakter okutmada kullanılır.
%s=String değişkenleri okutmada kullanılır.


Örnek-1
#include <stdio.h>
main()
{
int sayi;
scanf("%d",&sayi);
printf("girilen sayı : %d\n",sayi);
}_

Örnek-2
#include <stdio.h>
main()
{
float sayi;
scanf("%f",&sayi);
printf("girilen sayı : %1.1f\n",sayi);
}_

Anahtar kelimeler:
, c++


sendetiklat
Sahip
sendetiklat


sendetiklat şu anda çevrimdışı
Gönderilme Tarihi: 23 Kasım 2009 17:39:44 | # 1

Değişkenler
Değişkenler bilgisayar hafızasındaki yerlere karşılık gelen konumları belirtir.
Her değişkenin bir ismi, tipi, boyutu ve bir değeri vardır.
Bir değişkene yeni bir değer atandığı zaman önceki değer silinir, yeni değer onun yerine yerleşir.
Hafızadan değişkenleri okumak ile değerleri değişmez.

Temel Değişken Tipleri
C dilinin değişken tipleri tanımlamak için aşağıdaki komutlar kullanılır.
 
• int (integer) - tamsayı
• float (floating point) - ondalıklı sayı
• double – çift duyarlıklı ondalıklı sayı
• char (character) – karakter türünde veri

İşaretli (Signed) ve İşaretsiz (Unsigned) Değişken Kavramları

Değişkenler bellekte kapladıkları alanla orantılı olarak değer alabilirler. Yani değişken bellekte ne kadar çok yer kaplıyorsa o kadar geniş bir değer aralığına sahiptir. Ancak bu değer aralığını genişletmenin bir yöntemi daha var. O da ‘unsigned’ yani ‘işaretsiz’ tanımlaması. Eğer tanımlayacağımız değişkenin negatif değer alma ihtimali yoksa; örneğin yaş, boy, nüfus, yakıt durumu, yüzde gibi veriler kullanılacaksa, bu durumda ‘unsigned’ tanımlanması tercih edilebilir. Bir değişkeni ‘unsigned’ tanımladığımız zaman değişkenin tüm bitlerini değer aralığı için kullanabiliriz. Aksi taktirde değişkenin en soldaki biti ‘negatif - pozitif’ durumunu kontrol etmek için kullanılır.

Örnek
#include <stdio.h>
main(){
unsigned int sayi;
printf(" sayı giriniz:" );
scanf("%d",&sayi);
printf("%d",sayi);
}_

Değişken tanımlamak
Programcı ne tür bir program yazıyor olursa olsun, programın tasarlanması aşamasında en çok dikkat etmesi gereken faktörlerden biri değişken tanımlamalarıdır. Değişkenin tipinin ve isminin yanlış seçilmesi o an için bir problem teşkil etmeyebilir ancak aradan belli bir zaman geçtikten sonra çok büyük sorunlara neden olabilir. Öyle ki kesirli işlemler yapılacağı halde birtakım değişkenler tamsayı belirlenmişse ve test aşamasında şansa kesirli sonuçlar vermeyen değerler girildiğinde o an için program düzgün çalışıyormuş gibi gözükebilir. Ayrıca değişkenlere anlamsız isimler verildiğinde yine o an için bir sorun çıkmasa da programcının üç beş ay sonra yeniden aynı programla uğraşmaya başladığında hangi değişkenin ne amaçla kullanıldığını bulabilmek için programı başından sonuna adım adım takip etmesi gerekebilir. Büyük bir projede karmaşa yüzünden adım adım takip de mümkün olmayabilir. Bu tür durumlarla karşılaşmamak için değişkenlere her zaman anlamlı isimler vermek daha doğrudur. O anda ‘x yolu’ diye aklınızdan geçen bir şey varsa o değişkene ‘x’ adını vermek yerine ‘yol’ demek sonrası için daha iyi olacaktır.

Değişken tanımlama kuralları
C dili komutları değişken adı olarak verilemez. (Örneğin if, for, case gibi)
Değişken isimi birden çok kelimeden oluşacaksa aralarına boşluk verilmez. Örneğin “maksimum sayi” adında bir değişken tanımlamaz ama “maksimum_sayi” yada “MaksimumSayi” gibi değişken tanımlanabilir.
Değişken adları sayı ile başlamaz. Örneğin “2sayi” gibi bir değişken adı olmaz.
NOT: C dili değişken isimlendirmede küçük harf büyük harf duyarlıdır. O yüzden büyük harfle tanımladığınız değişkeni program içinde aynen kullanınız.
Değişken tanımlama örnekleri
1: int x;
2: int a,b,c;
3: float OrtalamaNot;
Değişkenlere değer atama
1: int x=5;
2: int a=2,b=5,c=1;
3: float OrtalamaNot=50.5;
Örnek
#include <stdio.h>
main(){
char karakter = 65;
printf(" %c",karakter);
}_

Bu program ekrana 65 sayısının ascii karakter kodu olan A harfini yazar.

Örnek
#include <stdio.h>
main(){
int pi = (int)3.1415926535;
printf(" %d",pi);
}_

Bu örnekte pi değeri int tipine dönüştürülüyor.
#define önişlemci komutu ile değişken tanımlama
Bu önişlemci komutu, kaynak dosyada bir isim yerine başka bir isimin yerleştirilmesini sağlar. Programda kullanılan bu sembolik isimler başta ana program olmak üzere bütün alt programlarda da aynı değere sahiptir. Yani #define önişlemcisi ile tanımlanan her ne olursa olsun, tanımlama bütün fonksiyonlarda kullanılabilir. Bir çeşit genel (global) bildirim gibi davranır.

#define önişlemci komutu ile değişken tanımlama örneği-1
#include <stdio.h>
#define KISA short int
main(){
KISA sayi =5;
printf(" %d",sayi);
}_


#define önişlemci komutu ile değişken tanımlama örneği-2
#include <stdio.h>
#define PROGRAM main()
#define BASLA {
#define BITIR }
#define YAZ printf
PROGRAM
BASLA
YAZ("Merhaba C!..\n");
BITIR_


#define önişlemci komutu ile değişken tanımlama örneği-1
#include <stdio.h>
#include <conio.h>

#define USHORT unsigned short int

main()
{

USHORT kenarA = 10;
USHORT kenarB = 7;
printf("Dikdortgenin Alani = %d\n", kenarA * kenarB);
printf("Devam etmek icin bir tusa basiniz...\n");

}_

Aritmetik Hesaplamalar-Operatörler
Aritmetik hesaplamalar
* çarpma işlemi ve / bölme işlemi için kullanılır.
Tamsayı bölümü kalanı iptal ederek sonucu verir.
7 / 5 sonucunu 1 olarak verir.
Mod operatörü (%) bölüm işleminde kalanı geri döndürür.
7 % 5 sonucunu 2 olarak verir
Operatör önceliği
Bazı aritmetik operatörler diğerlerinden önce işleme girerler. Öncelik sırası çarpma, bölme, toplama, çıkarma şeklindedir. Yalnız öncelik sırası değiştirilmek istenirse parantezler kullanılmalıdır.
Örnek: a, b ve c değişkenlerinin ortalamasının bulunması
(a + b + c ) / 3 şeklindedir.
Aritmetik operatörler




Operatörlerin öncelik kuralları:



Değişkenlere değer atama

Program içerisinde bir değişkene değer atama örnekleri aşağıda verilmiştir.
A=5;
B=a/2;
a = 11 % 7;
miktar *= birimSayisi; (miktar = miktar * birimSayisi; )
para /= kisiSayisi; (para = para / kisiSayisi; )
saniye += 4; (saniye = saniye + 4; )
toplam -= kayip; (toplam = toplam - kayip; )
faz %= peryod; (faz = faz % peryod; )

Değişkenlere değer atama-2
++ ve – operatörleri ile bir değişkenin değeri artırılıp azaltılabilir.
x++; (x = x + 1;)
y--; (y = y – 1;)

Örnek:
x = 10;
a = x++;
 Burada a = 10, x = 11 olacaktır. ‘a’ ‘x’e eşitlenir ve ‘x’in değeri bir arttırılır.
Örnek-2
x = 10;
a = ++x;
 
Burada ise a = 11, x = 11 olacaktır. Burada öncelikle ‘x’ bir arttırılır, değeri 11 olur ve daha sonra bu yeni değer ‘a’ya eşitlenir.
NOT: ‘++’ ve ‘--' operatörleri değişkenlerden önce yazıldıklarında ‘prefix’, sonra yazıldıklarında ‘postfix’ isimlerini alırlar.


Değişkenlere değer atama-örnek
#include <stdio.h>
#include <conio.h>


main()
{

int a=3,b,c;
b = c = a;
printf("%d",b);
}_


Örnek

#include <stdio.h>
#include <conio.h>
 
main()
{
int a, b;
a = b = 10;
printf("a:%d\nb:%d\n\n", a, b);
a++;
++b;
printf("a:%d\n b:%d\n\n", a, b);
printf("a:%d\n b:%d\n\n", a++, ++b);
printf("a:%d\n b:%d\n\n", a, b);
}_

 
Örnek Sonucu

a:10
b:10

a:11
b:11

a:11
b:12

a:12
b:12

Mantıksal Operatörler

İf Blok Yapısı
C dilinde karşılaştırma işlemleri için if blok yapısı kullanılır. En basit kullanımı şu şekildedir.
if(koşul)
{
...
deyimler; (küme)
...
} _

Örnek
Klavyeden girilen 2 sayının birbirine göre büyük küçük yada eşit olma durumlarını yazan program.
#include <stdio.h>
int x, y;
main()
{
printf("\nBir tamsayı değeri girin, x: " );
scanf("%d", &x);
printf("\nBir tamsayı değeri girin, y: " );
scanf("%d", &y);
if (x == y)
printf("x, y ye eşit\n" );
if (x > y)
printf("x, y den büyük\n" );
if (x < y)
printf("x, y den küçük\n" );
} _

İf-else yapısı
if(koşul) {
... deyimler;(küme1) ...
}
else
{
... deyimler;(küme2)
...
}
İf-elseif yapısı
if(koşul)
{
... deyimler;(küme1) ...
}
else if
{
... deyimler;(küme2) ...
}
else if
{
... deyimler;(küme3) ...
} . . . else
{
... deyimler;(kümeN) ...
}_


sendetiklat
Sahip
sendetiklat


sendetiklat şu anda çevrimdışı
Gönderilme Tarihi: 23 Kasım 2009 17:46:58 | # 2

Switch-Case yapısı, Döngüler >>
Sayfalar:
[1]
1.3.0
Kullanım Şartları - İletişim - Öner
29 Temmuz 2014 Salı 15:14:24