Professional Documents
Culture Documents
brahim GAZALOLU
HUNRobotX 2012
YEN BR DL DOUYOR!
Dennis MacAlistair Ritchie (d. 9 Eyll 1941 - . 12 Ekim 2011) Uzun sre birlikte alt arkada Ken Thompson ile birlikte C programlama dilini ve Unix iletim sistemini yazan saygn ABD'li bilgisayar mhendisi. 1983te Turing dln, 1999de Ulusal Teknoloji Madalyas dln ald. 12 Ekim 2011'de hayatn kaybetmitir.
HUNRobotX 2012
Yazlm Nedir?
YAZILIM : Komutlar zinciri kullanarak bir problemin zm iin gelitirilen bilgisayar programlardr.
int main() { int toplam=0, sayi=0; while(sayi<=10) { toplam+=sayi; sayi++; } printf(TOPLAM : %d,toplam); HUNRobotX 2012 }
DERLEYC NEDR ?
Derleyici yazdnz kodlar yorumlayan ve onlar makine(genellikle) diline eviren arac yazlmlardr.
HUNRobotX 2012
Derleme Aamalar
OBJ, altrlabilir bir kod deildir. Makina kodu ve apileri ierir OBJ = Nesne Kodu Btn programlama dilleri iin ayndr Balayc = Birden fazla nesne kodunun birletirilip makina kodu yaplmas
HUNRobotX 2012
Seviye
Yazlm dilinin insan algsna yaknlnn ltdr. Yksek seviyeli dil kullanl ve gl dil anlamna gelmez C dili orta seviyeli bir dildir .
Okunabilirlik
Okunabilirlik kaynak kodun abuk ve iyi alglanabilmesi iin gerekli ve nemli bir kriterdir. Yazlmn bakalar tarafndan okunup anlalabilmesi ve gelitirilebilmesi iin muhakkak uygulanmaldr.
HUNRobotX 2012
BYLE OLMASIN
#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"); }
Tanabilirlik - Bir sistem iin yazlan programn farkl sistemler zerinde alabilme yetisidir. - Javann hemen her platformda alabilmesi Verimlilik - Programn hzl ve mmkn olduunca dk RAM tketmesi
HUNRobotX 2012
HUNRobotX 2012
Say Sistemleri
10 (Decimal) tabannda bir say ; (1478)10 = 8*10^0 + 7*10^1 + 4*10^2 + 1*10^3 2 (Binary) tabannda bir say ; (1010)2 = 0*2^0 + 1*2^1 + 0*2^2 + 1*2^3
Bilgisayar sistemlerinde 2lik say sistemi kullanlr. Binary system
Onaltlk say sisteminde 16 simge bulunur. 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 A = 10, B = 11, C = 12, D = 13, E = 14, F = 15 Onaltlk say sisteminde yazlm bir sayy onluk sistemde ifade etmek : 01AF = (15 * 1) + (10 * 16) + (1 * 256) + (0 * 4096) = 431
Onaltlk (HEX) say sisteminden kilik (Binary) sisteme dnm
rnek : 2ADF 2 = 0010 A = 1010 D = 1101 F = 1111 Bu durumda 2ADF = 0010 1010 1101 1111
HUNRobotX 2012
kilik say sisteminden onaltlk say sistemine de benzer ekilde dnm yaplabilir: 1010 1110 1011 0001 = AEB1 0010 1101 0011 1110 = 2D3E
Kesirli Dnmler
(13.25)10 = (?)
Kesirli ksm dntrlr 0.25 x 2 = 0.5 tam ksm 0 0.5 x 2 = 1.0 tam ksm 1 Burdan 1011.01 elde edilir
4 LEM
2 lik sistemde toplama
(10110)2 + (01010)2 = (100000)2
HUNRobotX 2012
Veri Trleri
1. nceden Tanmlanm Trler Programlama dilinin tasarmndan kaynaklanan ve dilin kurallarna gre varl gvence altna alnm olan trlerdir 2. Programcnn Tanmlanm Olduu Trler Programlama dillerinin ou, nceden tanmlanm veri trlerine ek olarak, programcnn da yeni trler tanmlanmasna izin verir.
HUNRobotX 2012
HUNRobotX 2012
HUNRobotX 2012
DEKENLER
Deiken : Deeri program iinde deiebilen kullanlacak verilerin depoland alanlara eriim iin atanan deerlerdir
Deikenlerin Tanmlanmas Deiken tanmlama kurallar :
* lk harfi say olamaz. Harf veya alt izgiyle balamal * _ (altizgi) iaretinden baka noktalama iareti ieremez * Deikenler arasnda boluk olamaz * C byk/kk harf duyarl bir dildir ( Case Sensitive) * Anahtar szck olamaz
HUNRobotX 2012
Evrensel deiken programn her yerinden ulalabilen deiken Evrensel deikenler btn fonksiyonlarn dnda tanmlanrlar
HUNRobotX 2012
HUNRobotX 2012
DEKENLERN TRLER
Bildirim yaptnz deikeni tr ile birlikte derleyiciye tantmalsnz. <tr ismi> <degisken adi>; rnein tamsay tutacak bir deiken tanmlayacaksanz int tamsayi_1; eklinde bir tanmlama yapmalsnz.
HUNRobotX 2012
HUNRobotX 2012
NLEMC KOMUTLARI
nilemci komutlar derleyicinin derleme ilemine balamadan ileme koyduu komutlardr. Yaygn olarak kullanlan komutlar #define ve #includedir.
Kodunuz altrlabilir hale gelmeden nce bu komutlarn gerei yaplr daha sonra kodunuzun gerekleri yerine getirilir.
HUNRobotX 2012
#define
#define tanmla demektir.Derleyiciye tanmladnz bir sayy,sabiti,fonksiyonu kod iinde farkl ekillerde kullanacanz bildirir. rnek : #define PI 3.14 #define YAZ printf(nilemci Komutlar #define);
HUNRobotX 2012
#include
Bu komut dardan kaynak kodunuza farkl bir dosyann ieriini dahil etmenizi salar rnek : #include <stdio.h> #include <fonksiyonlarim.c> ... Burda kaynak kodunuza stdio.h ve fonksiyonlarim.c dosyalarinin ierii derleme srasnda aynen kopyalanr. ** printf ve scanf gibi fonksiyonlar stdio.h dosyasndadr
HUNRobotX 2012
Ekrana yaz yazdrmak iin kullanlan fonksiyondur. Kullanm printf(HUNROBOTX); eklindedir. Eer dardan alnan veri yazdrlacaksa printf(Dsaridan alinan sayi : %d,sayi); gibi bir kullanm vardr. Yazdrd karakter saysn geri dndrr. Dardan alnan veri trne gre tanmlayclar deiir : %d=integer(tamsay) %f=float(kesirli_say) %c=karakter
HUNRobotX 2012
Printf()
Scanf()
Kullancdan veri okumak iin kullanlr Kullanm scanf(%d,&okunan_sayi); Tanmlayclar okunacak veri trne gre deiir scanf(%lf,&okunan_sayi); = Ondalkl say okur scanf(%c,&okunan_karakter); = Karakter okur Scanf(%s,&okunan_string); = String(Cmle) okur ...
HUNRobotX 2012
UYGULAMA
HUNRobotX 2012
SABTLER
Programc tarafndan dorudan girilen verilerdir. Sabitlerin saysal deerleri derleme zamannda tam olarak bilinmektedir. x = y + z; d = x + 10;
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. */
HUNRobotX 2012
OPERATRLER
Operatr, operand ncelik sras
HUNRobotX 2012
Operatr nedir?
Operatrler, nesneler veya sabitler zerinde nceden tanmlanm birtakm ilemleri yapan atomlardr.
HUNRobotX 2012
C de her ifade en az bir operatr ierir. c=a*b/2; 3 operatr var: =*/ d=fonk(); 2 operatr var: =() c=a>4; 2 operatr var: => ++x; 1 operatr var: ++
HUNRobotX 2012
Her operatrn operandlar vardr. Operandlar operatrlerin ileme soktuklar nesneler ya da sabitlerdir. a+b operatr: +, operandlar: 2 tane a,b c++ operatr: ++, operandlar: 1 tane c b>c operatr: >, operandlar: 2 tane b,c
HUNRobotX 2012
Yksek ncelik
Dk ncelik
HUNRobotX 2012
UYARI
Operatrlerin iinde bir ksm soldan saa incelenir, Bir ksm da sadan sola incelenir.
HUNRobotX 2012
soldan saa sadan sola soldan saa soldan saa soldan saa soldan saa soldan saa soldan saa sadan sola
HUNRobotX 2012
HUNRobotX 2012
x=a*b-2/3; ilem1: a*b; ilem2: 2/3; ilem3: ilem1 ilem2; lem4: x=ilem3;
Ayn ncelie sahip olan operatrler arasnda ilem sras iki ekilde de olabilir.
HUNRobotX 2012
a=x-b/2*c; Blme ve arpma operatrleri ayn ncelie sahiptir. 1: b/2 2: 1*c 3: x-2 4: a=3
HUNRobotX 2012
HUNRobotX 2012
HUNRobotX 2012
HUNRobotX 2012
HUNRobotX 2012
Aritmetik operatrler
Drt ilemle ilgili olan; * arpma / blme % mod alma (blmden kalan) + toplama - kartma
HUNRobotX 2012
likisel(karlatrma)operatrleri
> < >= <= == != byk kk byk yada eit kk yada eit eit eit deil
HUNRobotX 2012
Mantksal operatrler
! && || Deil (not) ve (and) veya(or)
HUNRobotX 2012
Artrma(++) Eksiltme(--)
++, 1 artr -- 1 eksilt anlamndadr ++a ile a++; ayn anlamda deildir --a ile a--; ikisi de ayn anlamdadr
HUNRobotX 2012
likisel operatrler
Cde ilikisel operatrlerin rettii deer, koul salanyorsa 1, salamyorsa 0 deerini retir. a=5>2; /*a=1*/ b=3==3 /*b=1*/ c=4<=1 /*c=0*/
HUNRobotX 2012
1: 10*2 2: 4*4 3: 3*2 4: 1+1 5: 2+5 6: 5-3 7: 4>=5 8: 5>6 9: 7==8 10: a=9 Sonu a=1
20 16 6 21 21 -1 1 1 1
HUNRobotX 2012
Mantksal operatr
! && || deil ve veya tek operandl iki operandl iki operandl
likisel operatrlerde; koul salanyorsa 1, salamyorsa 0 deerini alr. Mantksalda ise; Say 0 ise YANLI, sfr deil(sfr dnda bir say) ise DORU deerini alr.
HUNRobotX 2012
a=!6 /*a nin deeri nedir?*/ 6 says sfr d bir say olduu iin DORU dur. Ancak ! ile bunun tersi alnmtr. Dorunun tersi yanltr. Sonu yanl olacaktr.
HUNRobotX 2012
b=10+4>5+!2; /*b nin deeri nedir?*/ 1:!2 0 2:10+4 14 3:5+i1 5 4:i2>i3 1 5:b=i4 1 Sonu 1 dir.
HUNRobotX 2012
a=10; b=!++a>10!=5; /*b nin deeri nedir?*/ i1: ++a 11 i2: !i1 0 i3: i2>10 0 i4: i3!=5 1 i5: b=i4 1 sonu 1 dir.
HUNRobotX 2012
a=5; b=!a>10&&fonk()==10; /*b nin deeri nedir?*/ a=15; x=a>=10&&a<=20; /*x nin deeri nedir?*/
HUNRobotX 2012
UYGULAMALAR
HUNRobotX 2012