0% found this document useful (0 votes)
4 views30 pages

C Programlama

Copyright
© All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
4 views30 pages

C Programlama

Copyright
© All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd

C programlama diline giriş yapalım

BAŞLA (
BİTİR I
YAZ Printf
OKU Scanf
EĞER if
DÖNGÜ sayiz1.....N,*1 for(sayiz1;sayi<sN;sayi#*)

inle | mezi
Derleyici ne
Derleyici ne
yapacağına main
yapacağına main
fonksiyonuna bakarak
fonksiyonuna bakarak
karar verir.
karar verir. Dolayısıyla
main fonksiyonu
main
Dolayısıyla
fonksiyonu her her
C Programının Yapısı Program stdio
Program stdio (standart
içersin demektir.
içersin demektir.
(standart giriş
giriş çıkış)
çıkış) başlık
başlık dosyasını
dosyasını

programda olmak
programda olmak 1 #include <stdio.h>
zorundadır.
zorundadır. Bu başlık
Bu başlık dosyasının
dosyasının içinde
içinde programda
programda
2Elint mainC)i kullanacağamız printf,
kullanacağamız printf, scanf
scanf gibi
gibi önemli
önemli
> fonksiyonlar vardır.
fonksiyonlar vardır.
Her fonksiyonun
Her fonksiyonun bir
bir
dönüş tipi
tipi olmak
olmak 31 | return 9;
dönüş Main fonksiyonu
Main fonksiyonu" " {( ""ile başlar" " }) ""ile
ile başlar ile
zorundadır.
zorundadır. a biter.
biter.
Genel Yapı
Genel Yapı Şöyledir
Şöyledir
Eğer bir
Eğer bir fonksiyon
fonksiyon birbir
değer döndürüyorsa,
değer döndürüyorsa, bu bu 1-Gerekli kütüphaneler
1-Gerekli kütüphaneler O
2-Sonradan tanımlanan
2-Sonradan tanımlanan fonksiyonların
fonksiyonların
AHMET YESEVİ

değerin türü
değerin türü ÜNİVERSİTESİ

belirtilmelidir. Eğer bir


belirtilmelidir.Eğer bir bildirimleri
bildirimleri
3-Main fonksiyonu
3-Main fonksiyonu veve onun
onun içindeki
içindeki kodlar
kodlar
değer döndürmüyorsa,
değer döndürmüyorsa,
4-Sonradan tanımlanan
4-Sonradan tanımlanan fonksiyonlar
fonksiyonlar
dönüş tipi void
dönüş tipi Void olmalıdır.
olmalıdır.

Değer
Değer döndürmek
döndürmek , , bir bir
fonksiyonun
fonksiyonun çalışmasını
çalışmasını
tamamladıktan
tamamladıktan sonra
sonra bir bir
sonuç
sonuç üretmesi
üretmesi veve bubu
sonucu
sonucu çağıran
çağıran koda
koda gerigeri
iletmesi
iletmesi anlamına
anlamına gelir.
gelir.
C Dilinin
C Dilinin Genel
Genel Yapısı
Yapısı
1 #include <stdio.h>
2 // Kodumuzda oluşturduğumuz fonksiyonların bildirimi
3 int main()
4 1
5 //KODLARIMIZ ; (Derleyicinin
(Derleyicinin kodlarımızı
kodlarımızı birbirinden
birbirinden ayırt
ayırt edebilmesi
edebilmesi için
için
return 9; kodlarımız noktalı
kodlarımız noktalı virgül
virgül ile
ile bitmelidir.)
bitmelidir. )
6
e |
8
9g // Kodumuzdaki oluşturduğumuz fonksiyonlar
10
C Dilinde
C Dilinde Açıklama
Açıklama Satırları
Satırları
1 #include <stdio.h>
2
3 int main()

İ 77 Tek satırlık açıklamalar için kullamılır

NO /*
19 Çok satırlık açıklamalar
da için kullamılır

13 ig

15 | return 05;
ie | )

Açıklama satırları,
Açıklama satırları, yazdığımız
yazdığımız kodların
kodların ne
ne işe
işe yaradıklarını
yaradıklarını
unutmamamız
unutmamamız içiniçin kodumuza
kodumuza eklediğimiz,
eklediğimiz, derleme
derleme sürecini
sürecini
etkilemeyen yazılardır.
etkilemeyen yazılardır.

Kodladığımız
Kodladığımız bir
bir programı
programı başkasına
başkasına devrettiğimiz
devrettiğimiz zaman,
zaman, yeni
yeni
mühendisin kodları
mühendisin kodları anlamasına
anlamasına kolaylık
kolaylık sağlar.
sağlar.
C
C Dilinde
Dilinde Temel
Temel Veri
Veri Türleri
Türleri

Veriler bizler
Veriler bizler için
için tek
tek başlarına
başlarına anlam
anlam ifade
ifade etmeyen
etmeyen ama ama işlendiklerinde
işlendiklerinde
bir
bir bilgi
bilgi açığa
açığa çıkaran
çıkaran her her şeydir.
şeydir. Sayılar,
Sayılar, kelimeler,
kelimeler, sesler,
sesler, resimler,
resimler,
videolar...
videolar... İşte Ham
İşte Ham Verilerimiz
Verilerimiz
(Bir Yumurtacının
(Bir Yumurtacının SattığıSattığı Yumurtaların
Yumurtaların Verisi
Verisi )(1
|(1 yumurta
yumurta = -6tl
6 tl ))
Pazartesi: 150
Pazartesi: 150 adet
adet
Salı: 200
Salı: 200 adet
adet
Çarşamba: 180
Çarşamba: 180 adet
adet
Perşembe: 220
Perşembe: 220 adet
adet
Cuma: 250
Cuma: 250 adet
adet
Cumartesi: 300
Cumartesi: 300 adet
adet
Pazar: 270
Pazar: 2/0 adet
adet
Bu verileri
Bu verileri işleyerek
işleyerek yani
yani analiz
analiz ederek
ederek elde
elde edilen
edilen bazı
bazı bilgiler:
bilgiler:
Bu satıcı
Bu satıcı günlük
günlük ortalama
ortalama olarak
olarak yaklaşık
yaklaşık 224
224 adet
adet yumurta
yumurta
satmaktadır ve
satmaktadır ve günlük
günlük kazancı
kazancı 13441344 TL
TL (224x6)'yi
(224x6)'yi bulmaktadır.
bulmaktadır.
C
C Dilinde
Dilinde Temel
Temel Veri
Veri Türleri
Türleri

char Sembollerle
Sembollerle ifade
ifade edilen
edilen her
her şeydir.
şeydir. Karakter
Karakter veri
veri türü
türü ile
ile aritmetik
aritmetik işlem
işlem yapamayız!
yapamayız

İNİ Belirli
(Belirli bir limite kadar
birlimite kadar Tamsayı
Tamsayı olan
olan her
her şeydir.
şeydir. Tamsayı
Tamsayı (işlem)
(işlem) Tamsayı
Tamsayı =
— Tamsayı'dır
Tamsayı'dı

float Belirli bir


Belirli bir limite
limite kadar
kadar Rasyonel
Rasyonel Sayı
Sayı olan
olan her
her şeydir.
şeydır.

double Fioattan büyük


Floattan büyük ve
ve belirli
belirli bir
bir limite
limite kadar
kadar Rasyonel
Rasyonel Sayı
Sayı olan
olan her
her şeydir.
şeydir.

Welle Geriye
Geriye bir
bir değer
değer döndürmeyen
döndürmeyen her
her şeydir.
şeydir. Detaylar
Detaylar fonksiyonlar
fonksiyonlar konusunda
konusunda işlenecektir
işlenecektir
C Dilinde
C Dilinde Değişkenler
Değişkenler

Bir değeri
Bir değeri saklamak
saklamak için
için bilgisayarın
bilgisayarın hafızasında
hafızasında ayrılmış
ayrılmış alana
alana değişken
değişken
denir.
denir.

Her değişkenin
Her değişkenin bir
bir veri
veri türü
türü olmak
olmak zorundadır.
zorundadır. Yani
Yani bilgisayarın
bilgisayarın hafızasında
hafızasında
tuttuğumuz değerin
tuttuğumuz değerin hangi
hangi tür
tür bir
bir veri
veri olduğunu
olduğunu belirtmek
belirtmek zorundayız.
zorundayız.

HAFIZA
HAFIZA Hafızanın bir
Hafızanın bir bölgesinde
bölgesinde
yer kaplayan ve
yer kaplayan ve türü de
türü de
a(int) tamsayı olan a
tamsayı olan a değişkeni
değişkeni
a(int)
"PRİNTFO;" Fonksiyonu
"PRİNTF();" Fonksiyonu
Ekrana yazı
Ekrana yazı yazdırmak
yazdırmak için
için kullanılan
kullanılan fonksiyondur.
fonksiyondur.

A) Metin
A) Metin Yazdırmak
Yazdırmak

G print" "Y;
printf("METİN");

Merhaba Dunya

p ri ntf( n Merhaba Dunya " ) H Process exited after 0.1056 ye with return value O
Press any key to continue . . .

printf(“123"); Process exited after 0.1072 seconds with return value ©


Press any key to continue . . .

B) Bir
B) Bir Değişken
Değişken Yazdırmak
Yazdırmak

printf("%FormatBelirteci1 %FormatBelirteci2",Veri1,
Gö "Veri1, Veri2);
Veri2);

Veri
Veri Türü
Türü Format
Format Belirteci
Belirteci
Kontrol | Anlamı
char | “oc ile
%c ile gösterilir
gösterilir n Satır atlama
b İmleç bir sola kaydırma 4
A ve ile
%i le gösterilir
gösterir fi setarallra /
float | efil r Satır başı yapılması ;
%f ile gösterilir
/sf ile gösterilir Vu Yatay tab.İmleci bir sonraki tab başlangıcına taşır. a
9b1f ile
%1f ile gösterilir
gösterilir la [Link]
zili çalar...
“ Ters çizgi. printf içinde ters çizgi karakterini yazdırır.
10'luk taban için %d kullanılır
bi Tırak . printf içinde tırnak karakterini yazdırır.

int 1-15;
char Cc -'X'; karakterveritürleri"
karakter veri türleri ' '"içinde tanımlanır.
içinde tanımlanır.
float f-3.14;
double d-3.141592;

printf(“Xi Nn“,i); ER
printf(“Z2c Nn",c); Mi
printf("ZXf Nn",f); fn
printf(“X1f Nn",d) ; Ekin

Process exited after 0.06028 seconds with return value O


Press any key to continue...
ASCII (Amerikan
ASCII (Amerikan Standart
Standart Bilgi
Bilgi Değişimi
Değişimi Kodu)
Kodu) Tablosu
Tablosu

Bilgisayara klavyeden
Bilgisayara klavyeden girilen
girilen her
her karakterin;
karakterin; o o karaktere
karaktere özel
özel sayı
sayı değeri
değeri
olarak bir
olarak bir karşılığı
karşılığı vardır.
vardır. Bu
Bu durum,
durum, tüm
tüm dünyayı
dünyayı eleele aldığımızda
aldığımızda bir
bir
genelleştirme yapılmasını
genelleştirme yapılmasını zorunlu
zorunlu hâle
hâle getirmiştir.
getirmiştir. Bunun
Bunun sonucunda
sonucunda
ASCII tablosu
ASCII tablosu doğmuştur.
doğmuştur.

Başlangıçta
Başlangıçta 77 bitlik
bitlik (0-127
(0-127 arası,
arası, yani
yani 2^7)
247) bir
bir sistem
sistem olarak
olarak
standartlaşan ASCII,
standartlaşan ASCII, dahadaha sonra
sonra eklenen
eklenen karakterlerle
karakterlerle genişletilmiş
genişletilmiş ve
ve 8
8
bitlik (0-255
bitlik (0-255 arası)
arası) bir
bir tablo
tablo haline
haline gelmiştir.
gelmiştir.

ASCILI tablosu
ASCII tablosu 0'dan
0'dan 127'ye
127'ye kadar
kadar standarttır,
standarttır, 128-255'e
128-255'e kadar
kadar
sistemden sisteme
sistemden sisteme değişiklik
değişiklik gösterebilir.
gösterebilir.

Standard ASCI! Chart


/ ASCII Table - Hex to Decimal Code Conversion Extended ASCI!I Chart / ASCII Table - Hex to Decimal Code Conversion
Dec Hex Name Char Cirl-char (Dec Hex Char |Dec Hex Char|Dec Hex Char (Dec ex ar © ex ar BG ex ör 8 Ex ar
00 Null NUL CTRL-& İ(s2 (20 Spacelss <0 © | 60 18 © ç (80 AM i 192 00 L 24 ED a
1 Ii Startohesling SOM CTRLA (s8 21 | 65 4 7 6 13 81 ü 161 Al i ig Ci - 25 Et 8
2 2 Startoftet STK CTRL-B |(a4 22 66 42 B e © b 9 © ö A vi ö Wc) - © E F
3 3 Endoftes ETK CTRLC |as“23 4 6 4 c 9 6 c 3 6 â 1683 A3 ü 5 3 b MN E3 7
4 4 Endofxmit EOT CTRL-D (ss 24 $ G4 D 100 64 d 192 o 84 a 164 Mi fi 186 (C4 — 28 E4 4
S5 (S5 Enauiry EN0 CTRLE İS7 25 60 © E 101 65 © ım © â 1655 oOAS N 8 © * 208 ES o
6 6 Atknowledge ACK CTRLF İse 26 & 70 © F 102 66 f MM © â 166 O # 18 CS k 20 E6 p
77 Bel BEL CTRL-G (s9 (27 * MW 6G 103 67 og © 8 ç 8 * 8 k 231 E7 '
B 8 Backspace 85 CTRL-M İsg 28 ( 72.8 H 104 68 h 136 Oo 68 ö 158 (O(A8 i 200 CS t 232 ES ©
G © Morizontel tab MT CTRL İşi 29 ) 3 © 1 105 65 i 17 © ö 169 oOAS ” 201 cg F 283 E9 ö
10 0A Linefesd LE CTRL İz 24 * 74 AA ) 106 64 j 8 SA U MO A - 22 CA 24 EO 0
11 08 Vertical tab VE CTRL.K |Jas28 » 75 48 k 107 68 k 139 O 68 I 171 AB y 20 CB Ş 25 EB ö
12 0 Form feed FF CTRLA (4 '2c 76 '< L 108 6c | 140 oO&C i 172 AC Yı 204 CC b 26 EC .
13 0D Cariaye fesd CR CTRL-M |45 20 77 4D M 109 6D m 141 080 i 173 (AD i 205 CD z 27 ED ş
14 CE Shiftout SO CTRL-N İş '2£ 73 < nN İldee n jizz se  74 AE < 26 CE # 28 EE €
IS Shftin SI CTRLO (47 Fr | 70 « O ll 6FE O 143 8F A 175 AF > 207 CF 5 239 EF n
16 10 Daalinmescape DLE CTRL-P (4 30 O e © P 112 70 p 144 kl E 176 BO (208 Dü - 240 Fo z
17 011 Devicecontrali OOCI CIRLG (4 31 1 Bı sı O 113 71 a (45 o 91 » 177 BI ei 20 0 ; 241 FI :
18 (12 Dewicecontvel2 (DC? CIRLR (s0 32 2 s2 S2 R M4 72 r 16 92 £ 178 © R 20 0 T 42 F2 2
19 13 Devicecentrol3 0C3 CTRL-S (Si 33 3 ga S3 $ 11573 $ 147 93 ö 179 83 | 211 0 i 243 F3 s
20 i4 Devicecontrol4 DC4 CTRL (S2 34 4 BE # T 16 74 t 148 g4 ö 180 BA 4 212 D4 Ö 244 F4 İ
21 1S Negaknowmedgoe NAK CTRLU (S8 35 S5 85 s5 U 117 75 u 149 9 ö 181 85 4 213 05 F 245 F5 |
22 16 Syrehronouside SYN CTRL-V (S4 36 6 86 “6 V 1i8 76 v 1S ü 182 (86 1 24 06 r 246 OF :
23 17 Endefxmitblork ETB CTRL-W (S5 37 7 87» w (im w Ss ü 8 8 , 25 0 : 47 OF .
24 18 Cancel CAN CTRL-X (S6 38 8 ee Ss X 12078 Xx 12 & j i84 o 68 a 2165 OD # 248 FS .
25 19 Endef modum EM CTRL-Y (S7 39 9 g8 9 v 121 79 vw 153 ga Ö 185 g9 4 217 04 i 249 F9
26 14 Subsütüte SUB CTRL-z (S8 '3A SA Z 1220 JA 154 SA ü 166 BA | 218 DA r 250 FA
27 18 Escape ESC CTRLİ 36 ; S1 SB | 123 78 155 9B i 187 88 7 219 08 || 251 FB J
28 1C Fileseparatar FŞ CTRLA (sax < Şe | 24 7x | 1565 9c £ 188 OB : 20 (DC . 252 FC .
29 1D Groupseparstor OGS CTRL-) (6 35 - 93“sp |) 12570 ) 157 9D Ni 189 BO i 221 Do | 23 FD
30 1E Recordseparator RS CTRL“ İğ © > WE 267 - S8 SE Pi 190 BE 4 222 DE I 254 FE .
3i IF Unit separator US CTRL- İse Fr ? 95 127 7r mam (588 er İ 191 BF 1 23 OF LL 5 FF

p :
1 #include <stdio.h>

3rint main()f
LI .

inta - 55: N
4lint —
5iprintf("Xc",a);
: 110 "

6, return 0; Pİ

1 #include <stdio.h>
NN

3sint main()f
4ichar a < 'B'; —> 66
5 printf("4i",a);
6 return 0;
75)
"SCANF();" Fonksiyonu,
"SCANF();" Fonksiyonu, "&"
"&" Sembolünü
Sembolünü Unutma
Unutma #include
#include <stdio.h>
<stdio.h>

Bilgisayarı kullanan
Bilgisayarı kullanan kişiden
kişiden veri
veri alabilmek
alabilmek için
için bu
bu int main()
int main()
fonksiyon kullanılır.
fonksiyon kullanılır. {(
int GirilenSayi1,GirilenSayi2,GirilenSayi3;
int GirilenSayi1,GirilenSayi2,GirilenSayi3;
Ç scanf("
scanf("%Formatbelirteci1 "&Veri1,&Veri2);
%Formatbelirteci2",&Veri1,&Veri2);
printi("Merhaba sizden
printf("Merhaba sizden iki
iki tane
tane sayi
sayi girmeniz
girmeniz istenmektedir.");
istenmektedir.");
Yapısı kullanılır.
Yapısı kullanılır. printi("An");
printf("\n");
1
2
#include <stdio.h>
printi("Birinci Sayiyi
printf("Birinci Sayiyi giriniz.");
giriniz.");
3 int main()
Ani
scani("Yod",&GirilenSayi1);
scanf("%d",&GirilenSayi1);
5|
6
int GirilenSayi1,GirilenSayi2,GirilenSayi3; printi("An");
printf("\n");
7) printf("Merhaba sizden iki tane sayi girmeniz istenmektedir."); printi("ikinci ve
printf("ikinci ve ucuncu
ucuncu sayilari
sayilari arka
arka arkaya
arkaya giriniz.");
giriniz.");
8) printf("NXn");
9| printf("Birinci Sayiyi giriniz."); scani("Yod %d",&GirilenSayi2,&GirilenSayi3);
scanf("%d 9od",&GirilenSayi2,&GirilenSayi3);
19) scanf("Xd",&GirilenSayi1);
11) printf("Nn");
12|
13)
printf("ikinci ve ucuncu sayilari arka arkaya
scanf(”X#d Xd" ,&GirilenSayi2,&GirilenSayi3);
giriniz.");
printf("iste Sayilariniz
printf("iste Sayilariniz =
— %d,
od, %d,
9od,
14
15) printf("iste Sayilariniz - Xd, Xd, Xd",GirilenSayil1,GirilenSayi2,GirilenSayi3);
%d",GirilenSayi1,GirilenSayi2,GirilenSayi3);
od" ,GirilenSayi1,GirilenSayi2, GirilenSayi3);
16|return 9;
17)
return
return 0; O;
})
Merhaba sizden iki tane sayi girmeniz istenmektedir.
Birinci Sayiyi giriniz.16

ikinci ve ucuncu sayilari arka arkaya giriniz./3


45
iste Sayilariniz - 10, 43, 45

Process exited after 5.458 seconds with return value 6


Press any key to continue . . .
C Dilinde
C Dilinde Aritmetik
Aritmetik İşlemler
İşlemler
1 #include <stdio.h> , ,
#include <stdio.h>
#include <stdio.h>
2
3 int main() , ,
an int main()
int main()
5 | int a,b; {(
6 int a,b;
inta,b;
7İ printf("Birinci sayiyi [Link]");
8| scanf("Xd",&a); printi("Birinci sayiyi
printf("Birinci sayiyi giriniz.\n");
[Link]");
9| printf("ikinci sayiyi girinizin"); scani("od",&a);
scanf("%d",&a);
10 | scanf("#d",&b) ; printf("ikinci sayiyi
printf("ikinci sayiyi giriniz\n");
girinizin");
11 scani("Yd",&b);
scanf("%d",&b);
12 | printf("SAYILARIN TOPLAMI Zdin", asb);
eN ei EN AKİ ie) ei printi("SAYILARIN TOPLAMI
printf("SAYILARIN TOPLAMI %d\n",
“edin”, a+b);
atb);
14 | printf("SAYILARIN CARPIMI Xdin", a*b); Af
printf("SAYILARIN din a-b);
FARKI %d\n", ah):
15 | printf("SAYILARIN MODLARI(A MOD B) Xdin",aXb); m imf"SAYILARIN CARPIMI
printf("SAYILARIN CARE %d\n",
dar Mi a*b);
m A A A BOLUMU X0.2f",a/(float)b); // Tip dönüşümü ile int --> float olmuştur. printf("SAYILARIN MODLARI(A MOD B) Yedin",a'lıb),
printf("SAYILARIN MODLARI(A MOD B) %d\n",a%b);
i printf("SAYILARIN
printf(/"SAYILARIN BOLUMU %0.2f",a/(float)b);
BOLUMU 900.2" a/(float)b); /// Tip
Tip dönüşümü
dönüşümü ile
ile int
int -->
--> float
float olmuştur.
olmuştur.
Birinci sayiyi giriniz. return
returnO,0;
15 })
ikinci sayiyi giriniz
20
SAYILARIN TOPLAMI 35
SAYILARIN FARKI -5
SAYILARIN CARPIMI 300
SAYILARIN MODLARI(A MOD B) 15
SAYILARIN BOLUMU 0.75

Process exited after 12.25 seconds with return value 0


Press any key to continue . . .
C Dilinde
C Dilinde Mantıksal
Mantıksal İşlemler
İşlemler
Klasik
Klasik mantıkta
mantıkta olduğu
olduğu gibi
gibi doğru
doğru veve yanlış
yanlış kavramları
kavramları bilgisayarda
bilgisayarda da
da
vardır.
vardır. Aldığımız
Aldığımız doğru
doğru ve
ve yanlış
yanlış kararlarımız
kararlarımız nasıl
nasıl bizim
bizim hayatımıza
hayatımıza yön
yön
veriyorsa
veriyorsa kodlarımızdaki
kodlarımızdaki doğru
doğru ve
ve yanlış
yanlış ifadeler
ifadeler dede programımızın
programımızın
gidişatına
gidişatına yön
yön verir.
verir.

Değil işlemi
Değil işlemi ilgili
ilgili ifadenin
ifadenin önüne
önüne !! konularak
konularak gerçekleştirilir.
gerçekleştirilir.

X--Y --->
X==Y ---> X
X ile
ile Y
Y eşitse
eşitse 11 değilse
değilse 0O döndürür
döndürür
XI-Y --->
X!=Y ---> X
X ile
ile Y
Y eşit
eşit değilse
değilse eşitse
eşitse 00 döndürür
döndürür
X>Y --->
X>Y ---> X
X büyükse
büyükse 11 döndürür
döndürür
X<Y --->
X<Y --> YY büyükse
büyükse 11 döndürür
döndürür
X>—Y --->
X>=Y ---> X
X büyük
büyük veya
veya Y'ye
Y'ye eşitse
eşitse 11 döndürür
döndürür
X<—-Y --->
X<=Y ---> Y
Y büyük
büyük veya
veya X'e
X'e eşitse
eşitse 11 döndürür
döndürür

&& --->
&& ---> Ve
Ve bağlacı
bağlacı 11 ve
ve 11 hariç
hariç hep
hep 0O
||| --->
---> Veya
Veya bağlayı
bağlayı 00 veya
veya 0 0 hariç
hariç hep
hep 11

A(koşul)? ifade1:ifade2;
A(koşul)? ifade1:ifade2;
koşul doğru--->
koşul doğru---> A=ifade1
Azifade1
koşul yanlış
koşul yanlış --->A=ifade2
--->A—ifade2
1 #include <stdio.h>
2
3Rint main() 1
int az0,bz-10,c;

czl(az-b);
printf("Xd",c);

/* a ile b eşit değil, dolayısıyla a--b --> 8 olur


| !(8) -->1 yaparl Sıfırın değili bir yapar), c-1 olur*/
return 8;
)

Process exited after 0.09763 seconds with return value O


Press any key to continue . .

1 #include <stdio.h>
2
3eint main() (
int a - 10, b - 25;

int enBuyuk - (a > b) ? a : b;

printf("En büyük sayı: XdXn", enBuyuk);

return O;

Process exited after 0.1068 seconds with return value 6


Press any key to continue . . .
© MANTIK TERE
a | PAg plalpva| lpJajP*a
ETE
oo) $ J4J0(4 z 1191116
(-(-0 —--0--4--4 5 o 1-111
olloll 8 ilbl0/-0-111-8--4-1b1İSE 0-1-4
BAĞLACI
VE BAĞLACI NEYA BAĞLACI
A Wo Bağlacı v. Weya Bağlacı) & (ise) Bağlacı

im pla (psa İrlaJpxa|


1 4 -( 4—) 4 |alallig- li
ia 4lo01l0 İN PE
11 1(0(11 0 9014114
EE 01-011
611 1 11
| LANCAE NE ANCAK) rc (MA PA BAĞLA)
İbni ye meali) | ÇK Seda Pale) Çİ İLE
#include
#include <stdio.h>
<stdio.h>
#include <stdio.h>
int main()
int main() ({
El int main() 1 int x = 8, y = 5, z = 10;
intx-8,yz5,z 10;

BR
int xs 8y y 25,7 10)

4/ 1. Karşılaştırma operatörleri ile sonuçları hesaplayalım //


// 1.
1. Karşılaştırma
Karşılaştırma operatörleri
operatörleri ile ile sonuçları
sonuçları hesaplayalım
hesaplayalım
int sonuc1 = (x( == y); // x ve y eşit mi?

MAN
int sonucl (Xzz Yy); 4/ x ve y eşit mir
int
int
sonuc?
sonuc3
(xX
(X>y)35
Iz 2); //# x
//x,
ve z esit
y'den
değil
büyük mü?
mi? int sonuc2 = (x( != z); // x ve z eşit değil mi?
int
int sonuc3
sonuc3 = (x > y); //
-<(X>y); //x,x, y'den
y'den büyük
büyük mü?
mü?

O
int sonuc4 (W<z); //y, z'den küçük mü?
int sonuc5 (XxX >: 2); 4//# Xx, z'ye büyük veya esit mi? int sonuc4 = (y(Y<z); // y,
< z); // y, z'den
z'den küçük
küçük mü?
mü?
int sonucö (y <z Xx); //y, x'e küçük veya esit mi?
int sonuc5 = (x( >= z); // x, z'ye büyük veya eşit mi?
// 2. Mantıks al operatörler ile islemler yapalım int sonuc6 = (y( <= x); // y, x'e küçük veya eşit mi?
int sonuc7/ — (sonuc3 && sonuc); //x>yWEyx<z7
int sonuc8 — (sonuc? || sonuc5); //x'/- 7 VEYAx5>-7 // 2.
// 2. Mantıksal
Mantıksal operatörler
operatörler ile
ile işlemler
işlemler yapalım
yapalım
4/ 3. Değil (1) islemini kullanalım int sonuc7
int sonuc7/ =— (sonuc3
(sonuc3 &&&& sonuc4);
sonuc4); // /x>yVEy<z
x > y VE y < z
int sonuc9 — !(sonuc7/); // sonuc?/'nin tersini al int sonuc8
int sonuc8 = — (sonuc2
(sonuc2 |||| sonuc5);
sonuc5); // /x!2z VEYAx>:z
x != z VEYA x >= z
// 4. Çıktıyı ekrana yazdıralım
printf( "Sonuç #dxn", sonuc1); // 3.
// 3. Değil
Değil (!)
(1) işlemini
işlemini kullanalım
kullanalım
MP int
int sonuc9
sonuc9 = — !(sonuc7);
!(sonuc/); //// sonuc7'nin
sonuc7'nin tersini
tersini al
al
printf( "Sonuç #din", sonuc?);
printf("Sonuç #din", sonuc3);
BW

printf("Sonuç #din", sonuc4);


printf("Sonuç #din", sonuc5); //
// 4.
4. Çıktıyı
Çıktıyı ekrana
ekrana yazdıralım
yazdıralım
printf( "Sonuç #dxn", sonuc6); printf("Sonuc
printi("Sonuc 1:1: %d\n",
Yodin", sonuc1);
sonuc1);
AMA

printf("Sonuç #din", sonuc7);


printf("Sonuc 2:
printf("Sonuc 2: %d\n",
odin", sonuc2);
sonuc2);
printf("Sonuç #din", sonuc8);
printf("Sonuc
printi("Sonuc 3:3: %d\n",
odin", sonuc3);
sonuc3);
DO

printf("Sonuç #dxn", sonuc9);


printf("Sonuc 4:
printf("Sonuc 4: %d\n",
Yodin", sonuc4);
sonuc4);
return ©;
printf("Sonuc
printf("Sonuc 5:5: %d\n",
Yodin", sonuc5);
sonuc5);
printf("Sonuc 6:
printf("Sonuc 6: %d\n",
odin", sonuc6);
sonuc6);
printf("Sonuc
printf("Sonuc 7:7: %d\n",
Yedin", sonuc7);
sonuc7);
1:58 printf("Sonuc 8:
printf("Sonuc 8: %d\n",
odin", sonuc8);
sonuc8);
pia
ew 1 printf("Sonuc
printf("Sonuc 9:9: %d\n",
Yodin", sonuc9);
sonuc9);
e a
bep
b return
return 0;
O;
Tee al }
8: 1
9: 8

Process exited after 0.1211 seconds with return value 6


Press any key to continue . . .
XOR(YA DA)
XOR(YA DA) BAĞLACI
BAĞLACI
#include <stdio.h>
#include <stdio.h>
// p
// p ya
ya da
da q
g ifadesinin
ifadesinin cc
pyadagz(pVa)A(p'
p ya da q ≡ (p∨q)∧(p' V V q')
g') olduğuna
olduğuna göre,
göre, C C programlama
programlama kodunu yazınız.
kodunu yazınız.
dilinde
dilinde ya
ya da
da bağlacına
bağlacına denk
denk olan
olan ifade
ifade (p
(p |||| q)&&(!p
4)&&('p |||| !q)dur
!g)dur int main()
int main) {
intp,g;
int p, q ;
1 #include <stdio.h> Sizden p ve g degerlerini girmeniz istenmektedir.
printf("Sizden p
printf("Sizden p ve
ve qg degerlerini
degerlerini
2 // p ya da g ifadesinin c kodunu yazımız. İ
3aint main() £ girmeniz istenmektedir.\n");
girmeniz [Link]");
4 int p,g; p ya da g ifadesinin dengi olan ifade-0 scanf("Yod %d",&p,&q);
scanf("%d od",&p,&g);
5 > ma
printf("in p
printf("\n p ya
ya da
da qg ifadesinin
ifadesinin dengi
dengi
6 printf("Sizden p ve g degerlerini girmeniz [Link]"); Process exited after 1.63 seconds with return value 9 olan ifade=%d",(p||q)&&(!p||!q));
olan ifade-d",(p|la)&&('p|l!a));
7 scanf("7d Xd" ,&p,&a); Press any key to continue . . . |

8 printf("Xn p ya da g ifadesinin dengi olan ifade-d",(p)||g)8&(!p||!a));


9
return
return 0;
O;
10 return 0; }
ul
#include <stdio.h>
#include <stdio.h>

İSE BAĞLACI
İSE BAĞLACI // p
// p ise
ise q
g ifadesinin
ifadesinin C
C denkliği:
denkliği: !p
!p |||| q
g

int main()
int main() {
p ise
p isegz(p'V a) olduğuna
q ≡ (p'∨q) olduğuna göre,
göre, CC programlama
programlama dilinde
dilinde ise
ise
int p,
int p, q;
g;
bağlacına denk
bağlacına denk olan
olan ifade
ifade !p
!p ||
|| q
g olur
olur
printi("Sizden p
printf("Sizden p ve
ve q
g degerlerini
degerlerini girmeniz
girmeniz
Ni #include <stdio.h> Sizden p ve g degerlerini girmeniz istenmektedir.
istenmektedir.\n");
[Link]");
3 // p ise g ifadesinin C denkliği: !p || g 9
4
scanf("Yod %d",
scanf("%d 9d", &p,
&p, &q);
&g);
Snint i
6 ii in p ise g ifadesinin dengi olan ifade - 0
7
printi("np ise
printf("\np ise q g ifadesinin
ifadesinin dengi
dengi olan
olan
8 printf("sizden p ve g degerlerini girmeniz [Link]") ; ifade =
ifade - %d\n",
Yedin", (!p
(!p ||(1 q));
9);
9 scanf("Xd Xd", &p, &g); Process exited after 2.696 seconds with return value 0
19 Press any key to continue . .
11 printf("Xnp ise g ifadesinin dengi olan ifade - XdXn", (!p || g)); return
return 0;
O;
12
13 return 9; }
al)

ANCAK VE
ANCAK VE ANCAK
ANCAK BAĞLACI
BAGLACI #include
#include <stdio.h>
<stdio.h>

//
// pp ↔
> q
g ifadesinin
ifadesinin C
C denkliği:
denkliği: (p
(p &&
&& q)
g) |||
p ancak
p ancak veve ancak
ancak q g ≡(
E( p∧q)∨(p′∧q′)
pAg)V(p'Ag” olduğuna
olduğuna göre,
göre, Cp &&
(!p && !q)
!g)
C programlama
C programlama dilinde
dilinde ancak
ancak ve
ve ancak
ancak bağlacına
bağlacına denk
denk olan
olan ifade
ifade
(p &&
(p && q)||(!p
oj)li(!p &&
&& !q)
!g) olur
olur int
int main()
main() {£
int
int p,
p, q;
g;

1 #include <stdio.h> printf("Sizden


printf("Sizden pp ve
ve q
g degerlerini
degerlerini
2 girmeniz
girmeniz istenmektedir.\n");
[Link]"');
3 //p*“dg ifadesinin C denkliği: (p && g) || (!p && !g) scanf("%d
scani(" od %d",
od", &p,
&p, &q);
&g);
4
5Rint main() £
6 int p, g5; printf("\np
printf('np ancak
ancak ve
ve ancak
ancak qg ifadesinin
ifadesinin
7 dengi
dengi olan
olan ifade
ifade =
— %d\n",
“odin", (p
(p &&
&& q)4) |||| (!p
Cp
8
9
printf("Sizden
scanf("Xd Xd",
p ve g degerlerini
&p, &g);
girmeniz [Link]") ;
&& !q));
&& !g));
19
11 printf("Anp ancak ve ancak g ifadesinin dengi olan ifade - Xdin", (p 8& g) || (!p 88 !g)); return
return 0;
0;
12 }
13 return 9;
al)

Sizden p ve g degerlerini girmeniz istenmektedir.


0
9

p ancak ve ancak g ifadesinin dengi olan ifade - 1

Process exited after 3.524 seconds with return value ©


Press any key to continue .
C Dilinde İf ile Karar Vermek

C dilindeki
C dilindeki ifif ifadesi
ifadesi aslında
aslında günlük
günlük hayatta
hayatta verdiğimiz
verdiğimiz
kararları programlama
kararları programlama diline diline taşımamızı
taşımamızı sağlayan
sağlayan bir bir ifadedir.
ifadedir.
Programlamada aşağıdaki
Programlamada aşağıdaki kararları
kararları verirken
verirken hephep ifif ifadesini
ifadesini
kullanırız.
kullanırız.
1) A
1) A olayı
olayı doğruysa
doğruysa X'i X'i yap,
yap, yanlışsa
yanlışsa X'iX'i yapma
yapma bir bir sonraki
sonraki
şeyi yap
şeyi yap
if(A==1) //if(A!=0)
{X}
{BirSonrakiŞey}
2) A
2) Aolayı doğruysa X'i
olayı doğruysa X'i yap,
yap, yanlışsa
yanlışsa Y'yi
Y'yi yap
yap
if(A==1) //if(A!=0)
{X}
else
{Y}
3) A
3) A olayı
olayı olmaya
olmaya devamdevam ettiği
ettiği sürece
sürece X'iX'i yap,
yap, A A olayı
olayı olmayı
olmayı
kestiği zaman
kestiği zaman X'i X'i yapma
yapma bir bir sonraki
sonraki şeyi
şeyi yap
yap
if(A) //if(olay==A)
{X}
{BirSonrakiŞey}
4) A
4) Aolayı olmaya devam
olayı olmaya devam ettiği
ettiği sürece
sürece X'iX'i yap,
yap, A A olayı
olayı olmayı
olmayı
kestiği zaman
kestiği zaman Y'yi Y'yi yap
yap
if(A) //if(olay==A)
{X}
else
{Y}
5) A
5) A olayı
olayı olmadığı
olmadığı sürece
sürece X'i X'i yap,
yap, AA olayı
olayı olmaya
olmaya başlarsa
başlarsa
Y'yi yap
Y'yi yap
if(!A) //if(olay!=A)
{X}
else
{Y}
1 #include <stdio.h>
2
ii main() £
4 ;
int leA-1; // Kosul: : 1 dogru, 0 yanlis; j
demektir. Islem X gerceklestirildi.
sönaliğız Denigercellesriri
5
if (A -- 1) 1 // Eger A dogru ise
printf("Islem X [Link]") ; Process exited after 0.1483 seconds with return value O
) Press any key to continue . . . |

// Bu kisim, A durumuna bakilmaksizin calisir:


printf("Sonraki islem [Link]");
return 9;

1 #include <stdio.h>
2
3nint main() £ Sonraki islem gerceklestirildi
int A-0; // Kosul: 1 dogru, 9 yanlis demektir.

if(A--1) 1 // Eger A dogru ise


printf("Islem X [Link]") ; Process exited after 0.1207 seconds with return value
; Press any key to continue ... .
// Bu kisim, A durumuna bakilmaksizin calisir:
printf("Sonraki islem [Link]") ;
return 0;
13 54

1 #include <stdio.h>
2
1 int main() 1
4 int A - 0; // Ornek: A yanlis (0) 7 islemi gerceklesti.
5
if (A -- 1) t // Eger A dogruysa
printf(”X islemi [Link]”);
) else 1 // A yanlissa
Process exited after 0.2701 seconds with return value 0
printf("Y islemi [Link]");
H Press any key to continue . . .
return 9;

1 #include <stdio.h>

pa main() £
X islemi gerceklesti.
4 int Az 1; // A degeri dogru Sonraki islem gerceklesti
5
5 :
in > Process exited after 0.2762 seconds with return value 0
3 | Ni Press any key to continue .
19 // Sonraki islem:
11 printf("Sonraki islem [Link]");
12 return 0;
BL?

1 #include <stdio.h>
2
3npint main()
Sonraki islem gerceklesti.
4 int A-0; // A degeri dogru
5 —
GR if (A) 1 // Eger A dogruysa
Process exited after 0.1152 seconds with return value 0
7 printf("X islemi [Link]"); Press any key to continue . .
sl J
9
19 // Sonraki islem:
11 printf("Sonraki islem [Link]");
12 return 0;
131)

1 #include <stdio.h>
2
3oint main() 1
Islem X gerceklestirildi.
4 int A- 0; // Baslangicta A yanlis.
5
ge if (!A) 1 // Eger A yanlis ise A!-1I ise Process exited after 0.1041 seconds with return value O
7 printf("Islem X [Link]"); Press any key to continue .
8 jelsei // Eger A dogruya donerse
9 printf("Islem Y [Link]");
19 ;
11
12 return 9;
135)
1
2
#include <stdio.h> #include
#include <stdio.h>
<stdio.h>

B Hint main() 1
4 int deger; ; ;
5 printf("Bir deger [Link]"); RE int
int main()
main) {i
6 scanf( "Xd" ,&deger) ; ki , int
int deger;
deger;
7

8 if(deger!-0)(printf(“deger daima dogru bir sonuc [Link]");) if(O) hariç


1

tüm
I

f printf("Bir
printf( Bir deger
H
deger giriniz.\n\t");
" H
[Link] );
ii H "

9 else (printf("“degerin sonucu yanlistir");) // if(0) hariç if(her şey. 3 . scanf("%d",&deger);


scani("9od",&deger);
ve
dll,
j
printf("Kodun burasi her zaman
N
calisirn");
ifadeleri doğrudur
12

13 printf("8 degerini [Link]");


if(deger!=0){printf("deger
if(deger!—0)printi("deger
H

, " Ni

daima
daima dogru
H
dogru
ln
"
bir
bir , sonuc
sonuc dondurur.\n");}
[Link]");?
H

vi
H

, Ni
"yy.

14 scanf("Zd",&deger) ; else
else {printf("degerin
(printf("degerin sonucu
sonucu yanlistir");}
yanlistir");) //
// if(0)
if(0) hariç
hariç if(her
if(her şey)
şey) doğrudur.
doğrudur.
15
16 if(deger!-0)f/printf("Sonuc dogru neden 8 girmedin :(.Xn");) , N , ii N
17 else (printf("degerin sonucu yanlistirn");) // 1f(0) hariç if(her ş printf("Kodun
printf( Kodun burasi
burasi her
her zaman
zaman calisir\n");
calisirin );
18 .—.. —.
19 printf("Kodun burasi her zaman calisir");
l ine 8; printf("O degerini
printf("0 degerini giriniz.\n\t");
[Link]");
scanf("%d",&deger);
scani("Yod",&deger);
Bir deger giriniz.
deger ME a if(deger!=0){printf("Sonuc
if(deger!—0)printi("Sonuc dogru
dogru neden
neden 0 0 girmedin
girmedin :(.\n");}
:(.Wn"):3
Kodun burasi her zaman calisir else
else {printf("degerin
(printf("degerin sonucu
sonucu yanlistir\n");}
yanlistirin");) //
// if(0)
if(0) hariç
hariç if(her
if(her şey)
şey) doğrudur.
doğrudur.
8 degerini giriniz.

Mania camin yllir printf("Kodun


printi("Kodun burasi
burasi her
her zaman
zaman calisir");
calisir");
o ; " ; H 1,1!

Kodun burasi her zaman calisir return


return 0;
0;

Process exited after 9.917 seconds with return value © })


Press any key to continue .
#include
#include <stdio.h>
<stdio.h>

#include <stdio.h> int main()


int mainf()
int main()
{
ni int a = 5, b = 10, c = 0;
inta-5,b-—10,c-0;
int a - 5, b - 18, c > 0; int
int sonuc;
sonuc;
int sonuc;

// Mantıksal değer
ni sonuc-(1) &&
sonuc=(1) && (1);-->
(1);--> sonuc=1
sonuc //
// Mantıksal
Mantıksal değer
değer atama
atama
sonuc - (a < b) && (b > c);5 sonuc =(a<b)
sonuc &&(b>c);
(a < b) && (b > c);
// İç içe koşullar ve tersleme
if (sonuc)
//
Il İç
İç içe içe koşullar
koşullar ve ve tersleme
tersleme
i if (sonuc)
if (sonuc)
if (1(a -- 5 || c > 8)) {i
i
printf("Durum 1Xn"); if(!1)zif(O) olur
if(!1)=if(0) olur if'i
if'i atla
atla else
else if'e
if'e git
git ifif (!(a
((a == -5)/c>0))
5 || c > 0))
v else if (c —- && b /a> 1)
{t
1 printf("Durum 1\n");
printf("Durum 1In");
printf("Durum 2Xn");
else if(1),
else if(1), burası
burası çalışır
çalışır }) else
else if if (c == 0 && b / a > 1)
(-08&&b/a>1)
I else {(
a
printf( “Durum 3Xn“); printf("Durum 2\n");
printf("Durum 2'in");
I }) else
else
> {(
else
printf("Durum 3\n");
printf("Durum 3'n");
i
printf( “Durum 4 n”“)5 sonuc=1 olduğu için buraya girilmez })
) })
else
else
// Koşul operatörü kullanımı B=10
B-10 olduğu
olduğu için
için "B
"B yeterli"
yeterli" seçilir
seçilir
printf("#sXn", (b > - 18) ? "B yeterli" : "B yetersiz"); {(
printf("Durum
printf("Durum 4\n"); 4n"); /I durum
// durum 2
2 yazar
yazar
// Mantıksal kısa devre testi ifif (b
(b >=
> 10)10) })
if (c !-98&
(b / c) > 2) {
i printf("%s\n",
printf("9osin", "B
"B yeterli");
yeterli");
printf("Kısa devre başarısızIXn"); //
// Koşul
Koşul operatörü
operatörü kullanımı
kullanımı
? }) printf("Sosin", (b
printf("%s\n", (b >=
> 10)
10) ?
? "B
"B yeterli"
yeterli" :: "B
"B yetersiz");
yetersiz"); // B
// B
else else
else yeterli
yeterli yazar
yazar
t {
printf("Kısa devre başarılı!Xn");
printf("Yosin", "B
printf("%s\n", "B yetersiz");
yetersiz"); //
// Mantıksal
Mantıksal kısa
kısa devre
devre testi
testi
}) if (c
if (c !=
!- 00 &&
&& (b
(b/c)>
/ c) > 2)
2)
gibi düşün
gibi düşün {
printf("Kısa devre
printf("Kısa devre başarısız!\n");
başarısız'In");
Durum 2 })
B yeterli else
else
Kisa devre basarili!
{
printf("Kısa devre
printf("Kısa devre başarılı!\n");
başarılı!In"); //
/l kısa
kısa devre
devre
Process exited after 0.1092 seconds with return value ©
Press any key to continue . . .
başarılı
başarılı yazar
yazar
})

return
return 0;
O;
})
Aritmetik ++ ve -- İşleçleri
#include
#include <stdio.h>
<stdio.h>

int main()
int main() { A** ifadesini
A++ ifadesini şu
şu anlama
anlama gelir
gelir -->
--> Önce
Önce A
A'nın değerini artırmadan
'nın değerini artırmadan kullan
kullan
ve bir
ve bir sonraki
sonraki işlemde
işlemde A'yı
A'yı 11 artır.
artır.
int
int a=5;
a-5; ” ni
att;
a++; A-- ifadesini
A-- ifadesini şu
şu anlama
anlama gelir
gelir -->
--> Önce
Önce A
A'nın değerini azaltmadan
'nın değerini azaltmadan kullan
kullan
(
printi("a1—
printf("a1= Yedin", a);
%d\n", a); ve bir
ve bir sonraki
sonraki işlemde
işlemde A'yı
A'yı 11 azalt.
azalt.
printf("a2— %d\n",
printf("a2= Sodin", a++);
att);
printf("a3— %d\n",
printf("a3= Yodin", a);
a);
(
printi("a4— %d\n",
printf("a4= Yodin", ++a);
tta);
m ( vw
printf("a5= %d\n", a);
prini('a5— edin", a); **A ifadesini
++A ifadesini şu
şu anlama
anlama gelir
gelir -->
--> Direkt
Direkt A'yı
A'yı 11 artır.
artır.
return 0;
return O;
} --A ifadesini
--A ifadesini şu
şu anlama
anlama gelir
gelir -->
--> Direkt
Direkt A'yı
A'yı 11 azalt.
azalt.

1 #include <stdio.h>
2
3nint main() f
4
5 int a-5;
a=5
6 att; a5
7 printf("a1- XdNn", a); a-6
a=6
8 printf("a2- XdXn", as); a-6
a=6
g printf("a3- XdAn", a); 0-7
a=7
Process exited after 0.09775 seconds with return value 0
10 printf("a4- XdAn", #sa); 2-8 Press any key to continue . . .
a=8
11 printf("a5- Xdin", aj); a-8
a=8
12
13 return Ö;
eni
KR
B
bm
C Dilinde
C Dilinde Döngüler
Döngüler
Programlamada aynı
Programlamada aynı işlemi
işlemi birden
birden fazla
fazla kez
kez arka
arka arkaya
arkaya
yapmamız gerektiğinde,
yapmamız gerektiğinde, aynı
aynı kodu
kodu tekrar
tekrar tekrar
tekrar yazmak
yazmak
yerine döngüleri
yerine döngüleri kullanırız.
kullanırız.

Döngüler, belirli
Döngüler, belirli bir
bir koşul
koşul sağlandığı
sağlandığı sürece
sürece kod
kod bloğunu
bloğunu
otomatik olarak
otomatik olarak tekrar
tekrar çalıştırır
çalıştırır ve
ve böylece
böylece hem
hem zaman
zaman
kazanırız hem
kazanırız hem de de kodumuzu
kodumuzu daha daha düzenli
düzenli hale
hale getiririz.
getiririz.

for Döngüsü:
for Döngüsü:
"Döngünün
"Döngünün kaç
kaç kere
kere döneceğini
döneceğini önceden
önceden
bildiğimiz durumlarda kullanılır.
bildiğimiz durumlarda kullanılır. Başlangıç
Başlangıç
değeri,
değeri, bitiş koşulu
bitiş koşulu ve
ve artış miktarı tek
artış miktarı tek
satırda
satırda tanımlanır."
tanımlanır."

#include
#include <stdio.h>
<stdio.h>

int main()
int main() {£
int i;i; //
int / for
for döngüsünden
döngüsünden önce önce tanımlandı
tanımlandı
for (i
for (i = 1;
1;1<25;11**)(
i <= 5; i++) {
orinti("i'nin değeri:
printf("i'nin değeri: %d\n",
odin", i);
1);
})
orinitf("i'nin son
printf("i'nin son değeri:
değeri: %d\n",
odin", i);i); //
// 6
6 yazdırılır
yazdırılır
return 0;
return O;
}
while Döngüsü:
while Döngüsü:
"Koşul sağlandığı
"Koşul sağlandığı sürece
sürece dönen
dönen döngüdür.
döngüdür.
Döngüye başlamadan önce
Döngüye başlamadan önce şart
şart kontrol
kontrol
edilir, eğer
edilir, eğer şart
şart doğruysa
doğruysa içerideki
içerideki kod
kod
çalışmaya
çalışmaya başlar."
başlar."

#include
#include <stdio.h>
<stdio.h>

int main()
int main() {(
int sayi
int sayi =— 4;
4;

while (sayi
while (sayi <=
<— 6)
6) {(
orinti("sayi: %d\n",
printf("sayi: odin", sayi);
sayi);
sayi++;
sayit*;
})

printf(“sayi döngüden
printf("sayi döngüden çıktıktan
çıktıktan sonra:
sonra: %d\n",
“odin”, sayi);
sayi);
// 7
// 7 olur
olur
return 0;
return O;
};
do-while Döngüsü:
do-while Döngüsü:
"Şart ne
"Şart ne olursa
olursa olsun
olsun kod
kod bloğu
bloğu en
en az
az bir
bir
kez
kez çalışır.
çalışır. Sonra
Sonra koşul
koşul kontrol
kontrol edilir;
edilir;
eğer doğruysa
eğer doğruysa döngü
döngü devam
devam eder."
eder."

#include
#include <stdio.h>
<stdio.h>

int main()
int main) {£
int
int x
x =
— 15;
15;

do {
do
printf("x:
orinti("x: %d\n",
Yodin", x);
x);
x--;
X--,
}) while
while (x
(XxX <
< 10);
10); //
/ bu
bu şart
şart en
en başta
başta yanlış
yanlış ama
ama
döngü 11 kez
döngü kez çalışır
çalışır

printi("Döngü bittiğinde
printf("Döngü bittiğinde x:
x: %d\n",
odin", x);
x);
return 0;
return Ö;
}j
C Dilinde
C Dilinde Temel
Temel Döngü
Döngü Örnekleri
Örnekleri

Akümülatör Değişken
Akümülatör Değişken

© Akümülatör
Akümülatör değişken,
değişken, genellikle
genellikle döngüde
döngüde biriken,
biriken, toplanan,
toplanan, çarpılan
çarpılan veya
veya
başka
başka bir
bir şekilde
şekilde değişen
değişen bir
bir değeri
değeri saklar.
saklar.

© Başlangıçta
Başlangıçta genellikle
genellikle 0
O (toplama
(toplama için)
için) veya
veya 11 (çarpma
(çarpma için)
için) gibi
gibi bir
bir
başlangıç değeri
başlangıç değeri verilir.
verilir.

© Döngü
Döngü sırasında
sırasında adım
adım adım
adım güncellenir.
güncellenir.

ilk n
ilk n adet
adet sayının
sayının toplamı
toplamı
#include<stdio.h> #include<stdio.h>
#include<stdio.h>

int main() Burada


Burada "toplam"
"toplam" adlı
adlı akümülatör
akümülatör int main()
int
{i
main()

ni değişken
değişken ilk
ilk başta
başta 0'dır.
0'dır. int n,
int toplam =
n, toplam 0;
— 0;
int n, toplam - 8;
printf("ilk kac
printf("ilk kac sayinin
sayinin toplami
toplami olsun\n");
olsunn");
printf("ilk kac sayinin toplami olsunn"); Daha sonra
Daha sonra döngü
döngü içinde
içinde habire
habire üstüne
üstüne scanf("%d",&n);
scanf("Yod",&n);
scanf("#d" ,&n);
sayılar
sayılar eklenir.
eklenir. for(int sayi
for(int sayi =
— 1;
1; sayi
sayi <=
<— n;n; sayi++)
sayit*)
{£ toplam
toplam -= toplam
toplam *+ sayi;
sayi, })
for(int sayi - 1; sayi <- n; sayisi)
1 toplam - toplam * sayi; |) printf("Toplam =
printf("Toplam — %d\n",
YodIn", toplam);
toplam);
Döngü
Döngü bittikten
bittikten sonra
sonra bu
bu değişkenin
değişkenin
printf("Toplam - Xdin", toplam); return
return 0;
O;
değeri
değeri girilen
girilen tüm
tüm sayıların
sayıların toplamını
toplamını verir.
verir. })
return 8;
m)
ilk nn adet
ilk adet sayının
sayının çarpımı
çarpımı
#include<stdio.h>
#include<stdio.h>
1 #includecstdio.h>
2
Burada "carpim"
Burada "carpim" adlı
adlı akümülatör
akümülatör değişken,
değişken, int main()
int main()
{(
3 int main() çarpma
çarpma işleminin
işleminin etkisiz
etkisiz elemanı
elemanı olan
olan 11 ile
ile
PEN başlamıştır.
başlamıştır. int
intn,n, carpim
carpim >= 1;
1;
5
printf("it ilk
printf("\t ilk kac
kac adet
adet sayinin
sayinin carpimi
carpimi olsun.
olsun. \n");
In");
6 int n, carpim > 1; scanf/"Yod",&n);
scanf("%d",&n);
7 Döngü içine
Döngü içine girildiğinde
girildiğinde bu
bu değişken
değişken
B printf("Xt ilk kac adet sayinin carpimi olsun. Xn"); habire, sırayla
habire, sırayla artan,
artan, sayılarla
sayılarla çarpılır.
çarpılır. for(int sayi
for(int sayi =- 1;
1; sayi
sayi <=
<- n;
n; sayi++)
sayit*)
{( carpim
carpim =< carpim
carpim ** sayi;
sayi; }|
9 scanf("#d",&n) ;
18
1 for(int sayi - 1; sayi << n; sayist) Döngü bitince
Döngü bitince ilk
ilk nn sayının
sayının çarpımını
çarpımını verir.
verir. printf('90d! =- %d\n",
printf("%d! odin", n,
n, carpim);
carpim);
12 ( carpim < carpim * sayi; |
return
retum 0;
(;
3 })
14
15 | printf("Xd! - #dXn", n, carpim);
16
17 return 0;
181)
Bir
Bir sayının
sayının rakamları
rakamları çarpımı
çarpımı (for
(for döngüsü)
döngüsü)

#include<stdio.h>
#include<stdio.h>
1 #include<stdio.h>
2 int main()
int main()
3 int main() {(

AE int
int sayi,
sayi, carpim=1;
carpim-1;
5 N : printf("Bir
printf("Bir sayi
sayi giriniz\n");
girinizin");
ö int sayı, carpimzi; scanf("Yhd",&sayi);
scanf("%d",&sayi);
7 printf("Bir sayi girinizin"); p
/*
z scanf("#d",&sayi); Bir
Bir sayının
sayının rakamlarını
rakamlarını çarpacağız.
çarpacağız.

10E yö Bunun
Bunun için
için oo sayının
sayının rakamlarını
rakamlarını en
en son
son basamaktan
basamaktan başlayarak
başlayarak almamız
almamız gerek.
gerek.

> Gl blm bien a Sayının


Sayının 10'a
10'a göre
göre modunu
modunu aldığımızda
aldığımızda son
son rakamı
rakamı elde etmiş
elde etmiş oluruz.
oluruz.

13 Bunun için o sayının rakamlarını en son basamaktan baslayarak almamız gerek. Sayıyın son
Sayıyın son rakamını
rakamını elde
elde ettik
ettik ama
ama bu
bu sayıyı
sayıyı küçültemezsek
küçültemezsek hep
hep aynı
aynı son
son rakamı
rakamı elde etmiş oluruz.
elde etmiş oluruz.
14
15 Sayımın 10'a göre modunu aldığımızda son rakam, elde etmiş oluruz. Sayıyı
Sayıyı bu
bu sefer
sefer de
de 10'a
10'a bölersek
bölersek sayımız bir basakmak
sayımız bir küçülmüş olur.
basakmak küçülmüş olur.

16 Sayımız
Sayımız 0O olmayana
olmayana dek
dek veya
veya sayımız
sayımız 0'dan
0'dan büyük
büyük olduğu
olduğu sürece
sürece bu
bu işlemi
işlemi yapmamız
yapmamız gerek.
gerek.
17 Sayıyın son rakamını elde ettik ama bu sayıyı küçültemezsek hep aynı son rakam. elde etmiş oluruz.
18 */7

19 Sayıyı bu sefer de 10'a bölersek sayımız bir basakmak küçülmüş olur. for(;sayilz0 ;; sayi=sayi/10)
for(;sayi!=0 sayizsayi/10)/// sayımız
sayımız 0O olmayana
olmayana dekdek sayınından
sayınından 11 basamak
basamak sileceğiz.
sileceğiz. 123->12->1->0
123->12->1->0 olacak.
olacak.
20 {(
2Al Sayumz 9 olmayana dek veya sayumz 08'dan büyük olduğu sürece bu işlemi yapmamız gerek. int
int sonRakam=sayi%10;
sonRakamzsayi9o10; //// değeri
değeri değişen
değişen sayımızın
sayımızın her seferinde en
her seferinde en sondaki
sondaki rakamını alacağız. 123->3,
rakamını alacağız. 123->3, 12->2,
12->2, 1->1
1->1
12 carpim=
carpimz carpim
carpim ** sonRakam
sonRakam ; ; //elde
//elde ettiğimiz
ettiğimiz rakamları
rakamları her
her seferinde
seferinde çarpacağız.
çarpacağız.
}
<T ii printf("Sayinin rakamlari
printf("Sayinin carpimi
rakamlari carpimi 9od",carpim);
=- %d",carpim);
24 retum 0;
return O;
25 for(;sayi!-0 ; sayizsayi/10) // sayımız 6 olmayana dek sayınından 1 basamak sileceğiz. 123->12-51-50 olacak. })
26 Kl e
27 İ int sonRakamzsayiX10; (o // değeri değişen sayımızın her seferinde en sondaki rakamını alacağız. 123-53, 12-32, 1->1
28 i carpimz carpim * sonRakam ; //elde ettiğimiz rakamları her seferinde çarpacağız.
29 R Eg
30 “ printf("Sayinin rakamlari carpimi - Xd",carpim);
31 | return 0;
Ey
Bir sayının
Bir sayının rakamları
rakamları çarpımı
çarpımı (while
(while döngüsü)
döngüsü)
1 #include<stdio.h>
2
3 imt main)
api
5
6 int sayi, carpimzi;
7 printf("Bir sayi girinizin");
B scanf("Xd",&sayi);

ve
Bir sayının rakamlarını çarpacağız.

Bunun için o sayının rakamlarını en son basamaktan başlayarak almamız gerek.

Sayının 18'a göre modunu aldığımızda son rakamı elde etmiş oluruz.

Sayıyın son rakamını elde ettik ama bu sayıyı küçültemezsek hep aynı son rakamı elde etmis oluruz.

Sayıyı bu sefer de 10'a bölersek sayımız bir basakmak küçülmüş olur.

Sayımız 8 olmayana dek veya sayımız 8'dan büyük olduğu sürece bu işlemi yapmamız gerek.

Ni
while(sayi!-0) // sayımız 8 olmayana dek asağıdaki islemler yapılacak
i
int sonRakamzsayiXl10; (o // değeri değişen sayımızın her seferinde en sondaki rakamını alacağız. 123->3, 12-52, 1-51
carpim- carpim * sonRakam; //elde ettiğimiz rakamları her seferinde çarpacağız.
sayizsayi/10; //sayımızdan 1 basamak sileceğiz. 123->12->1->0 olacak.
?
printf("Sayinin rakamlari carpimi - Xd",carpim);
31 return O;
32)

#include<stdio.h>
#include<stdio.h>

int main()
int main()
{(

int sayi,
int sayi, carpim=1;
carpim-1;
printf("Bir sayi
printf("Bir sayi giriniz\n");
girinizin");
scani("Yod",&sayi);
scanf("%d",&sayi);

/*
ii

Bir
Bir sayının
sayının rakamlarını
rakamlarını çarpacağız.
çarpacağız.

Bunun için
Bunun için o
o sayının
sayının rakamlarını
rakamlarını en
en son
son basamaktan
basamaktan başlayarak
başlayarak almamız
almamız gerek.
gerek.

Sayının 10'a
Sayının 10'a göre
göre modunu
modunu aldığımızda
aldığımızda son
son rakamı
rakamı elde
elde etmiş
etmiş oluruz.
oluruz.

Sayıyın son
Sayıyın son rakamını
rakamını elde
elde ettik
ettik ama
ama bu
bu sayıyı
sayıyı küçültemezsek
küçültemezsek hep
hep aynı
aynı son
son rakamı
rakamı elde
elde etmiş
etmiş oluruz.
oluruz.

Sayıyı bu
Sayıyı bu sefer
sefer de
de 10'a
10'a bölersek
bölersek sayımız
sayımız bir
bir basakmak
basakmak küçülmüş
küçülmüş olur.
olur.

Sayımız 0
Sayımız 0 olmayana
olmayana dek
dek veya
veya sayımız
sayımız 0'dan
0'dan büyük
büyük olduğu
olduğu sürece
sürece bu
bu işlemi
işlemi yapmamız
yapmamız gerek.
gerek.

*
*/
while(sayi!-0) //
while(sayi!=0) // sayımız
sayımız 0
0 olmayana
olmayana dek
dek aşağıdaki
aşağıdaki işlemler
işlemler yapılacak
yapılacak
{
int sonRakam=sayi%10;
int sonRakam-sayi010; // // değeri
değeri değişen
değişen sayımızın
sayımızın her
her seferinde
seferinde en
en sondaki
sondaki rakamını
rakamını alacağız.
alacağız. 123->3,
123->3, 12->2,
12->2,
1-21
1->1
carpim— carpim
carpim= carpim ** sonRakam;
sonRakam; //elde
//elde ettiğimiz
ettiğimiz rakamları
rakamları her
her seferinde
seferinde çarpacağız.
çarpacağız.
sayi-sayi/10;
sayi=sayi/10; /Isayımızdan 11 basamak
//sayımızdan basamak sileceğiz.
sileceğiz. 123->12->1->0
123->12->1->0 olacak.
olacak.
}
printf("Sayinin rakamlari
printf("Sayinin rakamlari carpimi
carpimi = - %d",carpim);
Yod",carpim);
return
return 0;
O;
})
Döngü ile Sayı Oluşturup Özel Sayı Bulma(1)

1 #include<stdio.h>
2
3 int main()
AR
5
6 for(int A-1;A<-9;444) // 3 basamaklı ABC sayısının A basamağının olabileceği rakamlar. A, 8 olamaz 1-9 olabilir.
7 for(int B-0;B<-9;B44) // 3 basamaklı ABC sayısının B basamağının olabileceği rakamlar. B, 8-9 olabilir.
8 for(int (20; C<-9;C44) // 3 basamaklı ABC sayısının C basamağının olabileceği rakamlar. C, 0-9 olabilir.
9E il
18 İ İF(AYA*AKBİBİB$CİCİC -- 100*AH410*B4C ) // (4134B134C93)-ABC eşitliğini sağlayan sayılar.
11 o printf("ZdXn", 100*A410*B4C) ;
12) )
13/ return 9;
14)

Process exited after 0.09666 seconds with return value ©


Press any key to continue .

#include<stdio.h>
#include<stdio.h>

int main()
int main()
{(

for(int
for(int A=1;A<=9;A++)
A-1;A<-9;:A*-*) //// 3
3 basamaklı
basamaklı ABC
ABC sayısının
sayısının AA basamağının
basamağının olabileceği
olabileceği rakamlar.
rakamlar. A,
A, 00 olamaz
olamaz
1-9 olabilir.
1-9 olabilir.
for(int B=0;B<=9;B++)
for(int B-0;B<-9;B*-) // // 33 basamaklı
basamaklı ABC
ABC sayısının
sayısının B B basamağının
basamağının olabileceği
olabileceği rakamlar.
rakamlar. B,B, 0-9
0-9 olabilir.
olabilir.
for(int C=0;
for(int C-0; C<=9;C++)
C<-9;C**) // // 3
3 basamaklı
basamaklı ABC
ABC sayısının
sayısının C C basamağının
basamağının olabileceği
olabileceği rakamlar.
rakamlar. C,
C, 0-9
0-9
olabilir.
olabilir.
{(
if(A*A*A+B*B*B+C*C*C
İ|A*A*A*-B*B*B*KC*C*C == -- 100*A+10*B+C
100*At10*B*C )) //// (A^3+B^3+C^3)=ABC
(A43-B13*C43)-ABC eşitliğini
eşitliğini sağlayan
sağlayan sayılar.
sayılar.
printi("Yodin",100*A*10*B*C);
printf("%d\n",100*A+10*B+C);
})
return
return 0; O;
})
Döngü ile Sayı Oluşturup Özel Sayı Bulma(2)

1 #include<stdio.h>
2
3 int main()
Ani
5
6 for(int Az1;A<-9;A44) // 3 basamaklı ABC sayısının A basamağının olabileceği rakamlar. A, © olamaz 1-9 olabilir.
7 for(int B-0;B<-9;B44) // 3 basamaklı ABC sayısının B basamağının olabileceği rakamlar. B, 8-9 olabilir.
8 tor(int C-0; C<-9;C44) // 3 basamaklı ABC sayısının C basamağının olabileceği rakamlar. C, 8-9 olabilir.
9E i
18 if(100*C410*B4A -- 100*A410*B4C ) // 3 basamaklı polindrom sayılar. ABC-CBA
1 printf("ZdXn",100*A410*B4C) ;
2. j
13| return 0;
4)

#include<stdio.h>
#include<stdio.h>

int main()
int main)
{

for(int A=1;A<=9;A++)
for(int A:1;A<-9:A1*) //// 33 basamaklı
basamaklı ABC
ABC sayısının
sayısının A A basamağının
basamağının olabileceği
olabileceği rakamlar.
rakamlar. A,
A, 00 olamaz
olamaz 1-9 1-9 olabilir.
olabilir.
for(int
for(int B=0;B<=9;B++)
B-0;B<-9:B*-4) /// 33 basamaklı
basamaklı ABC
ABC sayısının
sayısının BB basamağının
basamağının olabileceği
olabileceği rakamlar.
rakamlar. B,
B, 0-9
0-9 olabilir.
olabilir.
for(int C=0;
for(int 0-0; C<=9;C++)
C<<9;C*4) ////33 basamaklı
basamaklı ABC
ABC sayısının
sayısının C C basamağının
basamağının olabileceği
olabileceği rakamlar.
rakamlar. C,
C, 0-9
0-9 olabilir.
olabilir.
{(
i((100*0410*B*-A ==
if(100*C+10*B+A -- 100*A+10*B+C
100*A*10*B*C )) //// 33 basamaklı
basamaklı polindrom
polindrom sayılar.
sayılar. ABC=CBA
ABC<CBA
printi("Yodin",100*A*10*B*C);
printf("%d\n",100*A+10*B+C);
})
return
retum 0; Ö;
Process exited after 0.1347 seconds with return value O })
Press any key to continue... .
While Döngüsü ile Collatz Sanısı

in
2
Hn) — 3n4 1 in

Bu sanıya
Bu sanıya göre
göre tüm
tüm sayılar,
sayılar, 1'e
1'e kolayca
kolayca indirilebilir.
indirilebilir. Eğer
Eğer sayı
sayı çiftse
çiftse
yarısı alınır,
yarısı alınır, eğer
eğer sayı
sayı tekse
tekse 3
3 katının
katının 11 fazlası
fazlası alınır.
alınır. Bu
Bu gidişat
gidişat
hep 1'e
hep 1'e ulaşır.
ulaşır. #include<stdio.h>
#include<stdio.h>

1 #include<stdio.h> int main()


int main()
2 {(
3 int main()
ani int
int sayi;
sayi;
5 printf("Bir sayi
printf("Bir sayi giriniz.\n");
[Link]");
6 int sayi; Sayımız 11 olmayana
Sayımız olmayana dek, dek, sayımız
sayımız çift
çift scani("9Yod",&sayi);
scanf("%d",&sayi);
7 printf("Bir sayi [Link]");
8 scanf("Xd",&sayi); ise
ise yarısı
yarısı alınır
alınır ;; tek
tek ise
ise 3
3 katının
katının 1
1
printf("Yod-",sayi);
printf("%d-",sayi);
fazlası
fazlası alınır.
alınır.
Ko)

printf("Xd-",sayi);
while(sayi !=1)
while(sayi !-1)
while(sayi !-1) {(

if(sayi 62-0)
if(sayi%2==0)
if(sayiX2--0) {( sayi
sayi =- sayi/2;
sayi/2; })
1 sayi - sayi/2; |) else
else
else (sayi =
{sayi - 3*sayi
3*sayi +* 1;}
1;)
(sayi - 3*sayi * 1;) printf("Yod-",sayi);
printf("%d-",sayi);
printf("X#d-",sayi); }
? return
return 0;
O;
return 9; })
m)

Bir sayi giriniz.


190
190—50—25—76—38—19—58—29—838—41(—77—11—314—17—52—26—13—40—720—10—-5—16—8—4—-7—1—

Process exited after 4.387 seconds with return value ©


Press any key to continue .

You might also like