c ile programlama
DESCRIPTION
C ile Programlama. İbrahim GAZALOĞLU. YENİ BİR DİL DOĞUYOR!. Dennis MacAlistair Ritchie (d. 9 Eylül 1941 - ö. 12 Ekim 2011) - PowerPoint PPT PresentationTRANSCRIPT
![Page 1: C ile Programlama](https://reader037.vdocuments.site/reader037/viewer/2022102606/568143a3550346895db026f0/html5/thumbnails/1.jpg)
HUNRobotX 2012
C ile Programlama
İbrahim GAZALOĞLU
![Page 2: C ile Programlama](https://reader037.vdocuments.site/reader037/viewer/2022102606/568143a3550346895db026f0/html5/thumbnails/2.jpg)
HUNRobotX 2012
Dennis MacAlistair Ritchie (d. 9 Eylül 1941 - ö. 12 Ekim 2011)
Uzun süre birlikte çalıştığı arkadaşı Ken Thompson ile birlikte C programlama dilini ve Unix işletim sistemini yazan saygın ABD'li bilgisayar mühendisi. 1983’te Turing Ödülü’nü, 1999’de Ulusal Teknoloji Madalyası ödülünü aldı. 12 Ekim 2011'de hayatını kaybetmiştir.
YENİ BİR DİL DOĞUYOR!
![Page 3: C ile Programlama](https://reader037.vdocuments.site/reader037/viewer/2022102606/568143a3550346895db026f0/html5/thumbnails/3.jpg)
HUNRobotX 2012
Yazılım Nedir?YAZILIM : Komutlar zinciri kullanarak bir problemin çözümü için geliştirilen bilgisayar programlarıdır.
PROBLEM : 1’den 10’a kadar olan sayıların toplamını bulma
YAZILIMSAL ÇÖZÜM# include <stdio.h>
int main(){ int toplam=0, sayi=0; while(sayi<=10) { toplam+=sayi; sayi++; }printf(“TOPLAM : %d”,toplam);}
![Page 4: C ile Programlama](https://reader037.vdocuments.site/reader037/viewer/2022102606/568143a3550346895db026f0/html5/thumbnails/4.jpg)
HUNRobotX 2012
DERLEYİCİ NEDİR ?
Derleyici yazdığınız kodları yorumlayan ve onları makine(genellikle) diline çeviren aracı yazılımlardır.
![Page 5: C ile Programlama](https://reader037.vdocuments.site/reader037/viewer/2022102606/568143a3550346895db026f0/html5/thumbnails/5.jpg)
HUNRobotX 2012
Derleme AşamalarıOBJ,Çalıştırılabilir bir kod değildir. Makina kodu ve apileri içerir
OBJ = Nesne Kodu Bütün programlama dilleri için aynıdır
Bağlayıcı = Birden fazla nesne kodunun birleştirilip makina kodu yapılması
![Page 6: C ile Programlama](https://reader037.vdocuments.site/reader037/viewer/2022102606/568143a3550346895db026f0/html5/thumbnails/6.jpg)
HUNRobotX 2012
PROGRAMLAMA DİLLERİNİN DEĞERLENDİRME ÖLÇÜTLERİ
+ Seviye
Yazılım dilinin insan algısına yakınlığının ölçütüdür. Yüksek seviyeli dil kullanışlı ve güçlü dil anlamına gelmez
C dili orta seviyeli bir dildir .
+ Okunabilirlik
Okunabilirlik kaynak kodun çabuk ve iyi algılanabilmesi için gerekli ve önemli bir kriterdir.
Yazılımın başkaları tarafından okunup anlaşılabilmesi ve geliştirilebilmesi için muhakkak uygulanmalıdır.
![Page 7: C ile Programlama](https://reader037.vdocuments.site/reader037/viewer/2022102606/568143a3550346895db026f0/html5/thumbnails/7.jpg)
HUNRobotX 2012
#include <stdio.h> #include <iostream> int main() { int sayi,i;
printf("Ust sinir girin : \n");scanf("%d",&sayi); // Kullanıcıdan sayı iste
printf("CIFTLER\t\t\ TEKLER\”);printf(“n=======\t\t=======\n\n");for(i=0;i<=sayi;i++) { if(i%2==0) printf(" %d\n",i); else printf(" \t\t%5d\n",i); // Çift değilse atla }system("pause"); }
Kodlarınız okunaklı olmalı
![Page 8: C ile Programlama](https://reader037.vdocuments.site/reader037/viewer/2022102606/568143a3550346895db026f0/html5/thumbnails/8.jpg)
#include <stdio.h> #include <iostream> int main() {int sayi,i;printf("Ust sinir girin : \n");scanf("%d",&sayi);system("cls");printf("CIFTLER\t\t\ EKLER\n=======\t\t=======\n\n");for(i=0;i<=sayi;i++) {if(i%2==0) { printf(" %d\n",i); } else printf(" \t\t%5d\n",i); }system("color c");system("pause"); }
BÖYLE OLMASIN
![Page 9: C ile Programlama](https://reader037.vdocuments.site/reader037/viewer/2022102606/568143a3550346895db026f0/html5/thumbnails/9.jpg)
HUNRobotX 2012
+ Taşınabilirlik- Bir sistem için yazılan programın farklı sistemler üzerinde çalışabilme yetisidir.- Javanın hemen her platformda çalışabilmesi
+ Verimlilik
- Programın hızlı ve mümkün olduğunca düşük RAM tüketmesi
![Page 10: C ile Programlama](https://reader037.vdocuments.site/reader037/viewer/2022102606/568143a3550346895db026f0/html5/thumbnails/10.jpg)
HUNRobotX 2012
* C dili orta seviyeli bir dildir : İnsan diline yakındır kolay anlaşılır. Bu getirisinin yanında Makine dilinin hakimiyetinden çok az şey kaybeder
* C algoritmik bir dildir : Problemin belirli adımlar zinciri izleyerek çözülmesini sağlar.
* C diğer dillerle kıyaslandığında taşınabilirliği çok yüksek olan bir dildir : Genel kabul görmüş yaygın standartlara sahiptir.
C ‘nin Bazı Üstünlükleri
![Page 11: C ile Programlama](https://reader037.vdocuments.site/reader037/viewer/2022102606/568143a3550346895db026f0/html5/thumbnails/11.jpg)
HUNRobotX 2012
Sayı Sistemleri 10 (Decimal) tabanında bir sayı ; (1478)10 = 8*10^0 + 7*10^1 + 4*10^2 + 1*10^3 2 (Binary) tabanında bir sayı ;(1010)2 = 0*2^0 + 1*2^1 + 0*2^2 + 1*2^3 Bilgisayar sistemlerinde 2’lik sayı sistemi kullanılır.Binary system
Binary sistemdeki her rakama bit (=binary digit kelimesinden türemiştir)
Bilgisayar sistemlerinde ölçüler :8 bit = 1 byte1024 byte = 1 Kilobyte (KB) 1024 Megabyte = 1 Gigabyte (GB)1024 kilobte = 1 Megabyte (MB) 1024 Gigabyte = 1 Terabyte (TB)
![Page 12: C ile Programlama](https://reader037.vdocuments.site/reader037/viewer/2022102606/568143a3550346895db026f0/html5/thumbnails/12.jpg)
HUNRobotX 2012
Sistem programcılığında kullanılan daha küçük birimler
8 bit 1 byte16 bit 1 word32 bit 1 double word64 bit 1 quadro word
Onluk Sayı Sisteminden İkilik Sayı Sistemine DönüşümÖrnek olarak 87 sayısı ikilik sayı sisteminde ifade edilmek istensin:
![Page 13: C ile Programlama](https://reader037.vdocuments.site/reader037/viewer/2022102606/568143a3550346895db026f0/html5/thumbnails/13.jpg)
HUNRobotX 2012
Onaltılık (HEX) ve Sekizlik (OCTAL) Sayı Sistemleri
Onaltılık sayı sisteminde 16 simge bulunur.0, 1, 2, 3, 4, 5, 6, 7, 8, 9A = 10, B = 11, C = 12, D = 13, E = 14, F = 15
Onaltılık sayı sisteminde yazılmış bir sayıyı onluk sistemde ifade etmek : 01AF = (15 * 1) + (10 * 16) + (1 * 256) + (0 * 4096) = 431
Örnek : 2ADF
2 = 0010 A = 1010 D = 1101 F = 1111Bu durumda2ADF = 0010 1010 1101 1111
Onaltılık (HEX) sayı sisteminden İkilik (Binary) sisteme dönüşüm
![Page 14: C ile Programlama](https://reader037.vdocuments.site/reader037/viewer/2022102606/568143a3550346895db026f0/html5/thumbnails/14.jpg)
HUNRobotX 2012
İkilik sayı sisteminden onaltılık sayı sistemine de benzer şekilde dönüşüm yapılabilir:
1010 1110 1011 0001 = AEB10010 1101 0011 1110 = 2D3E
(13.25)10 = (?)
Kesirli Dönüşümler
Tam sayı kısmı dönüştürülür
13/6 = 2 + kalan 1 6/2 = 3 + kalan 03/2 = 1 + kalan 11/2 = 0 + kalan 1
Burdan 1101 elde edilir.
Kesirli kısım dönüştürülür
0.25 x 2 = 0.5 tam kısmı 00.5 x 2 = 1.0 tam kısmı 1
Burdan 1011.01 elde edilir
![Page 15: C ile Programlama](https://reader037.vdocuments.site/reader037/viewer/2022102606/568143a3550346895db026f0/html5/thumbnails/15.jpg)
HUNRobotX 2012
2 lik sistemde toplama
4 İŞLEM
2 lik sistemde çarpma(10110)2 + (01010)2 = (100000)2
2 lik sistemde toplama
(110101)2 * (111)2 = (?)2
(10110)2 - (01010)2 = (01100)2
(10) =(1010)2
(4) =(100)2
(1010)2 / (100)2 = (?) 2
2 lik sistemde bölme
![Page 16: C ile Programlama](https://reader037.vdocuments.site/reader037/viewer/2022102606/568143a3550346895db026f0/html5/thumbnails/16.jpg)
Veri Türleri
HUNRobotX 2012
1. Önceden Tanımlanmış Türler
Programlama dilinin tasarımından kaynaklanan ve dilin kurallarına göre varlığı güvence altına alınmış olan türlerdir
2. Programcının Tanımlanmış Olduğu Türler
Programlama dillerinin çoğu, önceden tanımlanmış veri türlerine ek olarak, programcınında yeni türler tanımlanmasına izin verir.
![Page 17: C ile Programlama](https://reader037.vdocuments.site/reader037/viewer/2022102606/568143a3550346895db026f0/html5/thumbnails/17.jpg)
HUNRobotX 2012
ÖNCEDEN TANIMLANMIŞ VERİ TÜRLERİ
Tam sayı türleri
![Page 18: C ile Programlama](https://reader037.vdocuments.site/reader037/viewer/2022102606/568143a3550346895db026f0/html5/thumbnails/18.jpg)
HUNRobotX 2012
Gerçek sayı türleri n (Ondalıklı Sayılar)
![Page 19: C ile Programlama](https://reader037.vdocuments.site/reader037/viewer/2022102606/568143a3550346895db026f0/html5/thumbnails/19.jpg)
HUNRobotX 2012
DEĞİŞKENLER
Değişken : Değeri program içinde değişebilen kullanılacak verilerin depolandığı alanlara erişim için atanan değerlerdir
Değişkenlerin Tanımlanması
Değişken tanımlama kuralları :
* İlk harfi sayı olamaz. Harf veya alt çizgiyle başlamalı* _ (altçizgi) işaretinden başka noktalama işareti içeremez* Değişkenler arasında boşluk olamaz* C büyük/küçük harf duyarlı bir dildir ( Case Sensitive)* Anahtar sözcük olamaz
![Page 20: C ile Programlama](https://reader037.vdocuments.site/reader037/viewer/2022102606/568143a3550346895db026f0/html5/thumbnails/20.jpg)
HUNRobotX 2012
Yerel ve Evrensel(Global) değişken• Yerel değişken tanımlandığı alanda(blok) faaliyet gösteren
değişken.Bu alanlar dışında kullanılamaz
Örnek : int main() { { int degisken_1; } int degisken_2; }
int global_degisken; int main () { .... }
• Evrensel değişken programın her yerinden ulaşılabilen değişken• Evrensel değişkenler bütün fonksiyonların dışında tanımlanırlar
![Page 21: C ile Programlama](https://reader037.vdocuments.site/reader037/viewer/2022102606/568143a3550346895db026f0/html5/thumbnails/21.jpg)
HUNRobotX 2012
DEĞİŞKENLERİN BİLDİRİM YERLERİ
• 1. Blokların içinde
• 2. Tüm blokların dışında.
• 3. Fonksiyon parametre değişkeni olarak fonksiyon parantezlerinin içerisinde
![Page 22: C ile Programlama](https://reader037.vdocuments.site/reader037/viewer/2022102606/568143a3550346895db026f0/html5/thumbnails/22.jpg)
HUNRobotX 2012
DEĞİŞKENLERİN TÜRLERİ
• Bildirim yaptığınız değişkeni türü ile birlikte derleyiciye tanıtmalısınız.
• <tür ismi> <degisken adi>;• Örneğin tamsayı tutacak bir değişken
tanımlayacaksanız • int tamsayi_1; şeklinde bir tanımlama
yapmalısınız.
![Page 23: C ile Programlama](https://reader037.vdocuments.site/reader037/viewer/2022102606/568143a3550346895db026f0/html5/thumbnails/23.jpg)
HUNRobotX 2012
İFADE & DEYİM• İFADE (Expression) • a + b / 2 c * 2, • d = h + 34 geçerli ifadelerdir. • DEYİM (statement) • sonuc = sayi1 * sayi2 bir ifadedir. • Ancak sonuc = sayi1 * sayi2 ; bu bir deyimdir
![Page 24: C ile Programlama](https://reader037.vdocuments.site/reader037/viewer/2022102606/568143a3550346895db026f0/html5/thumbnails/24.jpg)
HUNRobotX 2012
ÖNİŞLEMCİ KOMUTLARI Önişlemci komutları derleyicinin derleme
işlemine başlamadan işleme koyduğu komutlardır. Yaygın olarak kullanılan komutlar #define ve #include’dir.
Kodunuz çalıştırılabilir hale gelmeden önce bu komutların gereği yapılır daha sonra kodunuzun gerekleri yerine getirilir.
![Page 25: C ile Programlama](https://reader037.vdocuments.site/reader037/viewer/2022102606/568143a3550346895db026f0/html5/thumbnails/25.jpg)
HUNRobotX 2012
#define
• #define tanımla demektir.Derleyiciye tanımladığınız bir sayıyı,sabiti,fonksiyonu kod içinde farklı şekillerde kullanacağınızı bildirir.
• Örnek : #define PI 3.14 #define YAZ printf(“Önişlemci Komutları #define”);
![Page 26: C ile Programlama](https://reader037.vdocuments.site/reader037/viewer/2022102606/568143a3550346895db026f0/html5/thumbnails/26.jpg)
HUNRobotX 2012
#include • Bu komut dışardan kaynak kodunuza farklı bir dosyanın içeriğini dahil
etmenizi sağlar
• Örnek : #include <stdio.h> #include <fonksiyonlarim.c> . . .
Burda kaynak kodunuza stdio.h ve fonksiyonlarim.cdosyalarinin içeriği derleme sırasında aynen kopyalanır.
** printf ve scanf gibi fonksiyonlar stdio.h dosyasındadır
![Page 27: C ile Programlama](https://reader037.vdocuments.site/reader037/viewer/2022102606/568143a3550346895db026f0/html5/thumbnails/27.jpg)
HUNRobotX 2012
Printf()• Ekrana yazı yazdırmak için kullanılan fonksiyondur.• Kullanımı printf(“HUNROBOTX”); şeklindedir.• Eğer dışardan alınan veri yazdırılacaksa
printf(“Dısaridan alinan sayi : %d”,sayi); gibi bir kullanımı vardır.
• Yazdırdığı karakter sayısını geri döndürür.• Dışardan alınan veri türüne göre tanımlayıcılar
değişir : • %d=integer(tamsayı) • %f=float(kesirli_sayı) • %c=karakter
![Page 28: C ile Programlama](https://reader037.vdocuments.site/reader037/viewer/2022102606/568143a3550346895db026f0/html5/thumbnails/28.jpg)
HUNRobotX 2012
Scanf()
• Kullanıcıdan veri okumak için kullanılır• Kullanımı scanf(“%d”,&okunan_sayi);• Tanımlayıcıları okunacak veri türüne göre değişir• scanf(“%lf”,&okunan_sayi); = Ondalıklı sayı okur• scanf(“%c”,&okunan_karakter); = Karakter okur• Scanf(“%s”,&okunan_string); = String(Cümle) okur• . . .
![Page 29: C ile Programlama](https://reader037.vdocuments.site/reader037/viewer/2022102606/568143a3550346895db026f0/html5/thumbnails/29.jpg)
HUNRobotX 2012
UYGULAMA
DAIRENIN ALANININ HESAPLANMASI
![Page 30: C ile Programlama](https://reader037.vdocuments.site/reader037/viewer/2022102606/568143a3550346895db026f0/html5/thumbnails/30.jpg)
HUNRobotX 2012
SABİTLER • Programcı tarafından doğrudan girilen
verilerdir. • Sabitlerin sayısal değerleri derleme zamanında
tam olarak bilinmektedir.• x = y + z;• d = x + 10;
![Page 31: C ile Programlama](https://reader037.vdocuments.site/reader037/viewer/2022102606/568143a3550346895db026f0/html5/thumbnails/31.jpg)
HUNRobotX 2012
TAM SAYI SABİTLERİ
• Bunlar tipik olarak int türden değişkenlerine atanan ve tamsayı biçiminde olan sabitlerdir
• C’de int türü sınırları içinde olan her tamsayı birer tamsayı sabit (ya da int türden sabit ) olarak ele alınır.
• -25• 30000• 25789
![Page 32: C ile Programlama](https://reader037.vdocuments.site/reader037/viewer/2022102606/568143a3550346895db026f0/html5/thumbnails/32.jpg)
HUNRobotX 2012
KARAKTER SABİTLERİ (CHAR)• char sabitleri tipik olarak char türden nesnelere atanan sabitlerdir.
• 'a' 'J' 'Ç' ':' '8' '<‘
• '\0' '\x0' '\0' NULL karakter 0 • '\a' '\x7' '\07' çan sesi (alert) 7 • '\b' '\x8' '\010' geri boşluk (back space) 8 • '\t' '\x9' '\011' tab karakteri (tab) 9 • '\n' '\xA' '\012' aşağı satır (new line) 10 • '\v' '\xB' '\013' düşey tab (vertical tab) 11 • '\f' '\xC' '\014' sayfa ileri (form feed) 12 • '\r' '\xD' '\015' satır başı (carriage return) 13 • '\"' '\x22' '\042' çift tırnak (double quote) 34 • '\\' '\x5C' '\134' ters bölü (back slash) 92
![Page 33: C ile Programlama](https://reader037.vdocuments.site/reader037/viewer/2022102606/568143a3550346895db026f0/html5/thumbnails/33.jpg)
HUNRobotX 2012
• '\x41' /* 41H numaralı ASCII karakteridir */ '\xff‘ /* FFH numaralı '2' karakter sabitidir */
'\x1C' /* 1C numaralı ASCII karakter sabitidir. */
• '\012' /* 10 numaralı ASCII karakteri */ '\16‘ /* 14 numaralı ASCII karakteri */
'\123' /* 83 numaralı ASCII karakteri. */
![Page 34: C ile Programlama](https://reader037.vdocuments.site/reader037/viewer/2022102606/568143a3550346895db026f0/html5/thumbnails/34.jpg)
OPERATÖRLER
•Operatör, operand•Öncelik sırası
HUNRobotX 2012
![Page 35: C ile Programlama](https://reader037.vdocuments.site/reader037/viewer/2022102606/568143a3550346895db026f0/html5/thumbnails/35.jpg)
Operatör nedir?
• Operatörler, nesneler veya sabitler üzerinde önceden tanımlanmış birtakım işlemleri yapan atomlardır.
HUNRobotX 2012
![Page 36: C ile Programlama](https://reader037.vdocuments.site/reader037/viewer/2022102606/568143a3550346895db026f0/html5/thumbnails/36.jpg)
• C de her ifade en az bir operatör içerir.• c=a*b/2; 3 operatör var: =*/• d=fonk(); 2 operatör var: =()• c=a>4; 2 operatör var: =>• ++x; 1 operatör var: ++
HUNRobotX 2012
![Page 37: C ile Programlama](https://reader037.vdocuments.site/reader037/viewer/2022102606/568143a3550346895db026f0/html5/thumbnails/37.jpg)
• Her operatörün operandları vardır. Operandlar operatörlerin işleme soktukları nesneler ya da sabitlerdir.
• a+b operatör: +, operandları: 2 tane a,b• c++ operatör: ++, operandları: 1 tane c• b>c operatör: >, operandları: 2 tane b,c
HUNRobotX 2012
![Page 38: C ile Programlama](https://reader037.vdocuments.site/reader037/viewer/2022102606/568143a3550346895db026f0/html5/thumbnails/38.jpg)
Düşük Öncelik
Yüksek Öncelik
HUNRobotX 2012
![Page 39: C ile Programlama](https://reader037.vdocuments.site/reader037/viewer/2022102606/568143a3550346895db026f0/html5/thumbnails/39.jpg)
UYARI
• Operatörlerin içinde bir kısmı soldan sağa incelenir,
• Bir kısmı da sağdan sola incelenir.
HUNRobotX 2012
![Page 40: C ile Programlama](https://reader037.vdocuments.site/reader037/viewer/2022102606/568143a3550346895db026f0/html5/thumbnails/40.jpg)
() soldan sağa! ,++ ,-- sağdan sola* , / , % soldan sağa+, - soldan sağa> ,>=, <, <= soldan sağa== ,!= soldan sağa&& soldan sağa|| soldan sağa= sağdan sola
Operatörlerin hangi yönde önceliklerine bakılacağını gösteren tablo
HUNRobotX 2012
![Page 41: C ile Programlama](https://reader037.vdocuments.site/reader037/viewer/2022102606/568143a3550346895db026f0/html5/thumbnails/41.jpg)
Operatörler arasındaki öncelik ilişkisi
• c=a+b*2; ifadesi derleyici tarafından şu sırada ele alınır.• işlem1: b*2;• işlem2: a+işlem1;• işlem3: c=işlem2;
HUNRobotX 2012
![Page 42: C ile Programlama](https://reader037.vdocuments.site/reader037/viewer/2022102606/568143a3550346895db026f0/html5/thumbnails/42.jpg)
• x=a*b-2/3;• işlem1: a*b;• işlem2: 2/3;• işlem3: işlem1 – işlem2;• İşlem4: x=işlem3;
• Aynı önceliğe sahip olan operatörler arasında işlem sırası iki şekilde de olabilir.
HUNRobotX 2012
![Page 43: C ile Programlama](https://reader037.vdocuments.site/reader037/viewer/2022102606/568143a3550346895db026f0/html5/thumbnails/43.jpg)
• a=x-b/2*c;• Bölme ve çarpma operatörleri aynı önceliğe
sahiptir. • İ1: b/2• İ2: İ1*c• İ3: x-İ2• İ4: a=İ3
HUNRobotX 2012
![Page 44: C ile Programlama](https://reader037.vdocuments.site/reader037/viewer/2022102606/568143a3550346895db026f0/html5/thumbnails/44.jpg)
• C de atama operatörü sağdan sola öncelikli operatördür.
• a=b=c;• İ1: b=c• İ2: a=İ1
HUNRobotX 2012
![Page 45: C ile Programlama](https://reader037.vdocuments.site/reader037/viewer/2022102606/568143a3550346895db026f0/html5/thumbnails/45.jpg)
• a=(b+2)*80;• İ1: (b+2)• İ2: İ1*80• İ3: a=İ2
HUNRobotX 2012
![Page 46: C ile Programlama](https://reader037.vdocuments.site/reader037/viewer/2022102606/568143a3550346895db026f0/html5/thumbnails/46.jpg)
Operatörleri 3 sınıfa sınıflandırılır
• İşlevlerine göre• Operand sayılarına göre• Operatörün konumuna göre
HUNRobotX 2012
![Page 47: C ile Programlama](https://reader037.vdocuments.site/reader037/viewer/2022102606/568143a3550346895db026f0/html5/thumbnails/47.jpg)
İşlevlerine göre operatörler
1. Aritmetik 2. İlişkisel3. Mantıksal4. Bit5. Gösterici6. Özel amaçlı operatörler
HUNRobotX 2012
![Page 48: C ile Programlama](https://reader037.vdocuments.site/reader037/viewer/2022102606/568143a3550346895db026f0/html5/thumbnails/48.jpg)
Aritmetik operatörler
Dört işlemle ilgili olan;• * çarpma• / bölme• % mod alma (bölümden kalan)• + toplama• - çıkartma
HUNRobotX 2012
![Page 49: C ile Programlama](https://reader037.vdocuments.site/reader037/viewer/2022102606/568143a3550346895db026f0/html5/thumbnails/49.jpg)
İlişkisel(karşılaştırma)operatörleri
• > büyük• < küçük• >= büyük yada eşit• <= küçük yada eşit• == eşit• != eşit değil
HUNRobotX 2012
![Page 50: C ile Programlama](https://reader037.vdocuments.site/reader037/viewer/2022102606/568143a3550346895db026f0/html5/thumbnails/50.jpg)
Mantıksal operatörler
• ! Değil (not)• && ve (and)• || veya(or)
HUNRobotX 2012
![Page 51: C ile Programlama](https://reader037.vdocuments.site/reader037/viewer/2022102606/568143a3550346895db026f0/html5/thumbnails/51.jpg)
Artırma(++) Eksiltme(--)
• ++, 1 artır -- 1 eksilt anlamındadır• ++a ile a++; aynı anlamda değildir• --a ile a--; ikisi de aynı anlamdadır
HUNRobotX 2012
![Page 52: C ile Programlama](https://reader037.vdocuments.site/reader037/viewer/2022102606/568143a3550346895db026f0/html5/thumbnails/52.jpg)
İlişkisel operatörler
• C’de ilişkisel operatörlerin ürettiği değer, koşul sağlanıyorsa 1, sağlamıyorsa 0 değerini üretir.
• a=5>2; /*a=1*/• b=3==3 /*b=1*/• c=4<=1 /*c=0*/
HUNRobotX 2012
![Page 53: C ile Programlama](https://reader037.vdocuments.site/reader037/viewer/2022102606/568143a3550346895db026f0/html5/thumbnails/53.jpg)
x=10;y=20;z=y<=x+10; /*z değeri nedir?*/
a=5;b=10;c=a==10<b+1; /*c değeri nedir?*/
a=10*2+1>=4*4+5==5>5-3*2; /*a değeri nedir?*/
HUNRobotX 2012
![Page 54: C ile Programlama](https://reader037.vdocuments.site/reader037/viewer/2022102606/568143a3550346895db026f0/html5/thumbnails/54.jpg)
• İ1: 10*2 20• İ2: 4*4 16• İ3: 3*2 6• İ4: İ1+1 21• İ5: İ2+5 21• İ6: 5-İ3 -1• İ7: İ4>=İ5 1• İ8: 5>İ6 1• İ9: İ7==İ8 1• İ10: a=İ9• Sonuç a=1
HUNRobotX 2012
![Page 55: C ile Programlama](https://reader037.vdocuments.site/reader037/viewer/2022102606/568143a3550346895db026f0/html5/thumbnails/55.jpg)
Mantıksal operatör
• ! değil tek operandlı• && ve iki operandlı• || veya iki operandlı
İlişkisel operatörlerde; koşul sağlanıyorsa 1, sağlamıyorsa 0 değerini alır. Mantıksalda ise;
Sayı 0 ise YANLIŞ, sıfır değil(sıfır dışında bir sayı) ise DOĞRU değerini alır.
HUNRobotX 2012
![Page 56: C ile Programlama](https://reader037.vdocuments.site/reader037/viewer/2022102606/568143a3550346895db026f0/html5/thumbnails/56.jpg)
• a=!6 /*a nin değeri nedir?*/6 sayısı sıfır dışı bir sayı olduğu için DOĞRU dur.
Ancak “!” ile bunun tersi alınmıştır. Doğrunun tersi yanlıştır. Sonuç yanlış olacaktır.
HUNRobotX 2012
![Page 57: C ile Programlama](https://reader037.vdocuments.site/reader037/viewer/2022102606/568143a3550346895db026f0/html5/thumbnails/57.jpg)
• b=10+4>5+!2; /*b nin değeri nedir?*/İ1:!2 0İ2:10+4 14İ3:5+i1 5İ4:i2>i3 1İ5:b=i4 1Sonuç 1 dir.
HUNRobotX 2012
![Page 58: C ile Programlama](https://reader037.vdocuments.site/reader037/viewer/2022102606/568143a3550346895db026f0/html5/thumbnails/58.jpg)
• a=10;• b=!++a>10!=5; /*b nin değeri nedir?*/• i1: ++a 11• i2: !i1 0• i3: i2>10 0• i4: i3!=5 1• i5: b=i4 1• sonuç 1 dir.
HUNRobotX 2012
![Page 59: C ile Programlama](https://reader037.vdocuments.site/reader037/viewer/2022102606/568143a3550346895db026f0/html5/thumbnails/59.jpg)
Ve(and) - && operatörü
• İlişkisel operatörlerin hepsinden düşük önceliklidir. Operandların ikisi doğru ise doğru(1) değerini, operandların bir tanesi yanlış ise yanlış değerini(0) alır.
• a=4 && 0; /*a değeri 0 dir*/• b=10 && -4 /*b değeri 1 dir*/• c=0 && 0 /*c değeri 0 dir*/• Yani bir operand 0 ise sonuç 0 dır.
HUNRobotX 2012
![Page 60: C ile Programlama](https://reader037.vdocuments.site/reader037/viewer/2022102606/568143a3550346895db026f0/html5/thumbnails/60.jpg)
• a=5;• b=!a>10&&fonk()==10;/*b nin değeri nedir?*/
• a=15;• x=a>=10&&a<=20;/*x nin değeri nedir?*/
HUNRobotX 2012
![Page 61: C ile Programlama](https://reader037.vdocuments.site/reader037/viewer/2022102606/568143a3550346895db026f0/html5/thumbnails/61.jpg)
HUNRobotX 2012
UYGULAMALAR