algorİtma ve programlama ii hafta#1 -...
TRANSCRIPT
![Page 1: ALGORİTMA VE PROGRAMLAMA II HAFTA#1 - aytugonan.cbu.edu.traytugonan.cbu.edu.tr/Algoritma/hafta-01/ders_notu01.pdf · 14 YZM 1102 –Algoritma ve Programlama II 2. ve 3. Satır: Ön](https://reader030.vdocuments.net/reader030/viewer/2022040709/5e0d8922a5a8667bac275eb7/html5/thumbnails/1.jpg)
ALGORİTMA VE PROGRAMLAMA II
HAFTA#1
Celal Bayar Üniversitesi Hasan Ferdi Turgutlu
Teknoloji FakültesiYZM 1106
![Page 2: ALGORİTMA VE PROGRAMLAMA II HAFTA#1 - aytugonan.cbu.edu.traytugonan.cbu.edu.tr/Algoritma/hafta-01/ders_notu01.pdf · 14 YZM 1102 –Algoritma ve Programlama II 2. ve 3. Satır: Ön](https://reader030.vdocuments.net/reader030/viewer/2022040709/5e0d8922a5a8667bac275eb7/html5/thumbnails/2.jpg)
Algoritma Nedir?2
• Basit tanım: Belirli bir görevi yerine getiren sonlu
sayıdaki işlemler dizisidir.
• Geniş tanım: Verilen herhangi bir sorunun çözümüne
ulaşmak için uygulanması gerekli adımların hiç bir
yoruma yer vermeksizin açık, düzenli ve sıralı bir
şekilde söz ve yazı ile ifadesidir. Algoritmayı
oluşturan adımlar özellikle basit ve açık olarak
sıralandırılmalıdır.
YZM 1102 – Algoritma ve Programlama II
![Page 3: ALGORİTMA VE PROGRAMLAMA II HAFTA#1 - aytugonan.cbu.edu.traytugonan.cbu.edu.tr/Algoritma/hafta-01/ders_notu01.pdf · 14 YZM 1102 –Algoritma ve Programlama II 2. ve 3. Satır: Ön](https://reader030.vdocuments.net/reader030/viewer/2022040709/5e0d8922a5a8667bac275eb7/html5/thumbnails/3.jpg)
Algoritmaların Sahip Olması Gereken
Genel Özellikler3
• Giriş/çıkış bilgisi,
• Sonluluk,
• Kesinlik,
• Etkinlik,
• Başarım ve performans.
YZM 1102 – Algoritma ve Programlama II
![Page 4: ALGORİTMA VE PROGRAMLAMA II HAFTA#1 - aytugonan.cbu.edu.traytugonan.cbu.edu.tr/Algoritma/hafta-01/ders_notu01.pdf · 14 YZM 1102 –Algoritma ve Programlama II 2. ve 3. Satır: Ön](https://reader030.vdocuments.net/reader030/viewer/2022040709/5e0d8922a5a8667bac275eb7/html5/thumbnails/4.jpg)
Örnek: Üçgenin Alanını Hesaplayan Algoritma
4
1. BAŞLA
2. Taban değerini gir
3. Yükseklik değerini gir
4. Taban ile yüksekliği çarp ve sonucu ikiye böl
5. Çıkan sonucu yaz
6. BİTİR
YZM 1102 – Algoritma ve Programlama II
![Page 5: ALGORİTMA VE PROGRAMLAMA II HAFTA#1 - aytugonan.cbu.edu.traytugonan.cbu.edu.tr/Algoritma/hafta-01/ders_notu01.pdf · 14 YZM 1102 –Algoritma ve Programlama II 2. ve 3. Satır: Ön](https://reader030.vdocuments.net/reader030/viewer/2022040709/5e0d8922a5a8667bac275eb7/html5/thumbnails/5.jpg)
5
1. BAŞLA
2. Taban değerini gir
3. Yükseklik değerini gir
4. Taban ile yüksekliği
çarp ve sonucu ikiye böl
5. Çıkan sonucu yaz
6. BİTİR
Düz Yazı Sözde Kod
Taban için t, yükseklik için
y, alan için A seç
1. BAŞLA
2. t değerini OKU
3. y değerini OKU
4. A = (t * y)/2
5. A değerini YAZ
6. BİTİR
Örnek: Üçgenin Alanını Hesaplayan Algoritma
YZM 1102 – Algoritma ve Programlama II
![Page 6: ALGORİTMA VE PROGRAMLAMA II HAFTA#1 - aytugonan.cbu.edu.traytugonan.cbu.edu.tr/Algoritma/hafta-01/ders_notu01.pdf · 14 YZM 1102 –Algoritma ve Programlama II 2. ve 3. Satır: Ön](https://reader030.vdocuments.net/reader030/viewer/2022040709/5e0d8922a5a8667bac275eb7/html5/thumbnails/6.jpg)
Akış Şemaları ile Gösterim
6
• Bir algoritmanın görsel şekiller ve sembollerle ifade edilmiş
haline «Akış Şemaları» adı verilir.
• Akış şeması sembolleri ANSI (American National Standards
Institute) standardı olarak belirlenmiş ve tüm dünyada
kullanılmaktadır.
• Algoritma doğal dille yazıldığı için herkes tarafından
anlaşılamayabilir ya da başka anlamlar çıkarılabilir. Ancak
akış çizgelerinde her bir şekil standart bir anlam taşıdığı için
farklı yorumlanması mümkün değildir.
YZM 1102 – Algoritma ve Programlama II
![Page 7: ALGORİTMA VE PROGRAMLAMA II HAFTA#1 - aytugonan.cbu.edu.traytugonan.cbu.edu.tr/Algoritma/hafta-01/ders_notu01.pdf · 14 YZM 1102 –Algoritma ve Programlama II 2. ve 3. Satır: Ön](https://reader030.vdocuments.net/reader030/viewer/2022040709/5e0d8922a5a8667bac275eb7/html5/thumbnails/7.jpg)
Akış Şeması Şekilleri
7
BAŞLA
BİTİR
Akış şemasının başlangıç ve bitiş yerlerini gösterir.
Başlangıç simgesinden çıkış oku vardır. Bitiş
simgesinde giriş oku vardır.
Aritmetik işlemler ve değişik atama işlemlerinin temsil
edilmesi için kullanılır.
Dışarıdan bilgi giriş çıkışı için kullanılır.
Belgeye, yazıcıya, ekrana çıktı için kullanılır.
YZM 1102 – Algoritma ve Programlama II
![Page 8: ALGORİTMA VE PROGRAMLAMA II HAFTA#1 - aytugonan.cbu.edu.traytugonan.cbu.edu.tr/Algoritma/hafta-01/ders_notu01.pdf · 14 YZM 1102 –Algoritma ve Programlama II 2. ve 3. Satır: Ön](https://reader030.vdocuments.net/reader030/viewer/2022040709/5e0d8922a5a8667bac275eb7/html5/thumbnails/8.jpg)
Akış Şeması Şekilleri
8
Oklar şemanın akış yönünü belirler.
Bağlantı işlemlerini temsil eder.
Kontrol ve karar verme işlemlerini temsil eder.
YZM 1102 – Algoritma ve Programlama II
![Page 9: ALGORİTMA VE PROGRAMLAMA II HAFTA#1 - aytugonan.cbu.edu.traytugonan.cbu.edu.tr/Algoritma/hafta-01/ders_notu01.pdf · 14 YZM 1102 –Algoritma ve Programlama II 2. ve 3. Satır: Ön](https://reader030.vdocuments.net/reader030/viewer/2022040709/5e0d8922a5a8667bac275eb7/html5/thumbnails/9.jpg)
Örnek: İki Sayının Toplamı Akış Şeması
9
Sözde Kod
Toplam için T, birinci sayı
için X, ikinci sayı için Y seç
1. BAŞLA
2. X değerini OKU
3. Y değerini OKU
4. T = X + Y
5. T değerini YAZ
6. BİTİR
Başla
T = X + Y
T değerini YAZ
Bitir
X ve Y
değerlerini
OKU
YZM 1102 – Algoritma ve Programlama II
![Page 10: ALGORİTMA VE PROGRAMLAMA II HAFTA#1 - aytugonan.cbu.edu.traytugonan.cbu.edu.tr/Algoritma/hafta-01/ders_notu01.pdf · 14 YZM 1102 –Algoritma ve Programlama II 2. ve 3. Satır: Ön](https://reader030.vdocuments.net/reader030/viewer/2022040709/5e0d8922a5a8667bac275eb7/html5/thumbnails/10.jpg)
Mantıksal İşlemler (devam…)
10
• DEĞİL bağlacı; doğruyu yanlış, yanlışı doğru yapar.
Örnek: Yazılım departmanında çalışan erkek personellerden
yaşı 30’un üzerinde olanları ekrana yazdır.
Eğer;
• (perCinsiyet = Erkek) VE (perYas > 30) ise ekrana yazdır.
1. KOŞUL 2. KOŞUL
YZM 1102 – Algoritma ve Programlama II
![Page 11: ALGORİTMA VE PROGRAMLAMA II HAFTA#1 - aytugonan.cbu.edu.traytugonan.cbu.edu.tr/Algoritma/hafta-01/ders_notu01.pdf · 14 YZM 1102 –Algoritma ve Programlama II 2. ve 3. Satır: Ön](https://reader030.vdocuments.net/reader030/viewer/2022040709/5e0d8922a5a8667bac275eb7/html5/thumbnails/11.jpg)
• Program çalıştırılması sonucunda ekrana «Hello World!»
yazmaktadır.
İlk C Programı11
YZM 1102 – Algoritma ve Programlama II
![Page 12: ALGORİTMA VE PROGRAMLAMA II HAFTA#1 - aytugonan.cbu.edu.traytugonan.cbu.edu.tr/Algoritma/hafta-01/ders_notu01.pdf · 14 YZM 1102 –Algoritma ve Programlama II 2. ve 3. Satır: Ön](https://reader030.vdocuments.net/reader030/viewer/2022040709/5e0d8922a5a8667bac275eb7/html5/thumbnails/12.jpg)
12
YZM 1102 – Algoritma ve Programlama II
1.Satır: Yorumlar /* …. */ Comments
• 1.satır /* ile başlayıp */ ile bitmektedir. Bu işaretler arasına
yorum satırları yazılır.
• Yorumlar, okunabilirliği artırmak amacıyla kullandığımız bir
özelliktir. Programcı notları olarak da düşünülebilirler.
• Yorum satırlarında bilgisayar hiçbir işlem yapmaz çünkü C
derleyicileri bu satırları atlar.
• Dolayısıyla, yorum satırları için makine diline çevrilmiş
kodlar oluşturulmaz.
![Page 13: ALGORİTMA VE PROGRAMLAMA II HAFTA#1 - aytugonan.cbu.edu.traytugonan.cbu.edu.tr/Algoritma/hafta-01/ders_notu01.pdf · 14 YZM 1102 –Algoritma ve Programlama II 2. ve 3. Satır: Ön](https://reader030.vdocuments.net/reader030/viewer/2022040709/5e0d8922a5a8667bac275eb7/html5/thumbnails/13.jpg)
13
YZM 1102 – Algoritma ve Programlama II
Yorum Satırı Örnekleri
/* Tek satır yorum */
// Tek satır yorum
/* İki satır yorum
örneği */
/* Birden fazla
satır yorum
örneği */
Toplam = X + Y; // X ve Y toplanarak Toplam değişkenine atanır
![Page 14: ALGORİTMA VE PROGRAMLAMA II HAFTA#1 - aytugonan.cbu.edu.traytugonan.cbu.edu.tr/Algoritma/hafta-01/ders_notu01.pdf · 14 YZM 1102 –Algoritma ve Programlama II 2. ve 3. Satır: Ön](https://reader030.vdocuments.net/reader030/viewer/2022040709/5e0d8922a5a8667bac275eb7/html5/thumbnails/14.jpg)
14
YZM 1102 – Algoritma ve Programlama II
2. ve 3. Satır: Ön işlemci Direktifleri (#include)
• # işaretiyle başlayan satırlar, program derlenmeden önce C ön
işlemcisi tarafından işlenirler.
• Bu satır, ön işlemciye standart giriş/çıkış başlık dosyasının
yani «stdio.h» dosya içeriğinin programa eklemesini söyler.
• Bu başlık dosyası, derleyicinin «printf» gibi standart
giriş/çıkış kütüphane fonksiyonlarının (STandarD-Input-
Output) derlerken kullanabileceği bilgi ve bildirimleri içerir.
• Başlık dosyalarının uzantısı .h dir.
![Page 15: ALGORİTMA VE PROGRAMLAMA II HAFTA#1 - aytugonan.cbu.edu.traytugonan.cbu.edu.tr/Algoritma/hafta-01/ders_notu01.pdf · 14 YZM 1102 –Algoritma ve Programlama II 2. ve 3. Satır: Ön](https://reader030.vdocuments.net/reader030/viewer/2022040709/5e0d8922a5a8667bac275eb7/html5/thumbnails/15.jpg)
15
YZM 1102 – Algoritma ve Programlama II
2. ve 3. Satır: Ön işlemci Direktifleri (#include) (devam…)
• Başlık dosyaları, derleyicinin kütüphane fonksiyonu
çağrılarının doğru yapılıp yapılmadığını anlamasında
yardımcı olan bilgiler içerir.
• ANSI C'deki standart başlık dosyaları şunlardır:
assert.h
ctype.h
errno.h
float.h
limits.h
locale.h
math.h
setjmp.h
signal.h
stdarg.h
stddef.h
stdio.h
stdlib.h
string.h
time.h
![Page 16: ALGORİTMA VE PROGRAMLAMA II HAFTA#1 - aytugonan.cbu.edu.traytugonan.cbu.edu.tr/Algoritma/hafta-01/ders_notu01.pdf · 14 YZM 1102 –Algoritma ve Programlama II 2. ve 3. Satır: Ön](https://reader030.vdocuments.net/reader030/viewer/2022040709/5e0d8922a5a8667bac275eb7/html5/thumbnails/16.jpg)
16
YZM 1102 – Algoritma ve Programlama II
5. Satır: main( ) fonksiyonu
• C programlarının ana fonksiyonu olarak tabir edilir.
• main() kelimesinden sonraki parantezler ( ) main'in
fonksiyon adı verilen program oluşturma bloklarından biri
olduğunu gösterir.
• Programın yürütülmesi ilk olarak bu fonksiyonun
çağrılmasıyla gerçekleşir.
• C programları bir veya birden fazla fonksiyon içerebilir
ancak bunlardan biri mutlaka main() olmalıdır.
![Page 17: ALGORİTMA VE PROGRAMLAMA II HAFTA#1 - aytugonan.cbu.edu.traytugonan.cbu.edu.tr/Algoritma/hafta-01/ders_notu01.pdf · 14 YZM 1102 –Algoritma ve Programlama II 2. ve 3. Satır: Ön](https://reader030.vdocuments.net/reader030/viewer/2022040709/5e0d8922a5a8667bac275eb7/html5/thumbnails/17.jpg)
17
YZM 1102 – Algoritma ve Programlama II
7. Satır: printf("Hello World!\n"); fonksiyonu
• printf standart kütüphanede bulunan ekrana formatlı bilgi
yazdırma fonksiyondur. Çift tırnak işareti arasındaki
karakterleri ekrana yazdırır.
• Yazdırılacak karakterlerin tümüne karakter dizesi «string»,
mesaj ya da hazır bilgi «literal» denir.
• printf, parantezler içindeki bağımsız değişkenler (argument)
ve noktalı virgülden oluşan bu satıra «ifade» denir.
• Her ifade ; (noktalı virgül) ile bitmelidir. Noktalı virgüle ifade
sonlandırıcı da denir.
![Page 18: ALGORİTMA VE PROGRAMLAMA II HAFTA#1 - aytugonan.cbu.edu.traytugonan.cbu.edu.tr/Algoritma/hafta-01/ders_notu01.pdf · 14 YZM 1102 –Algoritma ve Programlama II 2. ve 3. Satır: Ön](https://reader030.vdocuments.net/reader030/viewer/2022040709/5e0d8922a5a8667bac275eb7/html5/thumbnails/18.jpg)
18
YZM 1102 – Algoritma ve Programlama II
7. Satır: printf("Hello World!\n"); fonksiyonu (devam…)
• printf ifadesindeki tırnak işaretleri arasındaki karakterler
aynen ekrana yazdırılır. Ancak \n karakterlerinin
yazdırılmamaktadır.
• Ters eğik çizgi ( \ ), çıkış karakteri olarak adlandırılır ve
printf'in farklı bir iş yapması gerektiğini belirtir.
• printf, ters çizgi işaretiyle karşılaştığında, bu işaretten sonraki
karaktere bakar ve bu karaktere göre bazı özel işler yapar.
• Ters çizgi işareti ( \ ) ve bu işaretten sonra gelen karaktere
çıkış sırası denir.
• \n çıkış sırası, yeni satır anlamına gelir ve imlecin yeni satıra
geçmesine sebep olur.
![Page 19: ALGORİTMA VE PROGRAMLAMA II HAFTA#1 - aytugonan.cbu.edu.traytugonan.cbu.edu.tr/Algoritma/hafta-01/ders_notu01.pdf · 14 YZM 1102 –Algoritma ve Programlama II 2. ve 3. Satır: Ön](https://reader030.vdocuments.net/reader030/viewer/2022040709/5e0d8922a5a8667bac275eb7/html5/thumbnails/19.jpg)
19
YZM 1102 – Algoritma ve Programlama II
C Veri Türleri
• C programlama dilinde 5 tane temel veri tipi bulunmaktadır.
1. char: karakter veriler
2. int: tamsayı veriler
3. float: tek duyarlıklı kayan noktalı sayılar
4. double: Çift duyarlıklı kayan noktalı sayılar
5. void: Değer içermeyen verilerdir.
![Page 20: ALGORİTMA VE PROGRAMLAMA II HAFTA#1 - aytugonan.cbu.edu.traytugonan.cbu.edu.tr/Algoritma/hafta-01/ders_notu01.pdf · 14 YZM 1102 –Algoritma ve Programlama II 2. ve 3. Satır: Ön](https://reader030.vdocuments.net/reader030/viewer/2022040709/5e0d8922a5a8667bac275eb7/html5/thumbnails/20.jpg)
20
YZM 1102 – Algoritma ve Programlama II
C Değişkenleri
• Değişken, program içinde kullanılan değerlere bellek
üzerinde açılan alanlardır. Bu alanlar bir değişken ismi ile
anılır.
• Değişken isimlendirilmeleri, tanımlayıcı kurallarına uygun
biçimde yapılmalıdır.
• C’de tüm değişkenler kullanılmadan önce programa
bildirilmelidir.
• Bu bildirim esnasında, değişkenin veri türü belirlenir.
• Örnek:
veri_türü değişken_adı;
int sayac;
![Page 21: ALGORİTMA VE PROGRAMLAMA II HAFTA#1 - aytugonan.cbu.edu.traytugonan.cbu.edu.tr/Algoritma/hafta-01/ders_notu01.pdf · 14 YZM 1102 –Algoritma ve Programlama II 2. ve 3. Satır: Ön](https://reader030.vdocuments.net/reader030/viewer/2022040709/5e0d8922a5a8667bac275eb7/html5/thumbnails/21.jpg)
21
YZM 1102 – Algoritma ve Programlama II
C Değişkenleri (devam…)
• Örnekler
int x;
int x1, y1, z1;
long d, d1;
char c;
char c1, c2, c3;
float a;
float a1, a2, a3;
int u[3];
float k[10*20];
• Örnekler
int x = 1;
int x1 = 10, y1 = 20,
z1 = 30;
char c = ‘a’;
float a = 123.45;
![Page 22: ALGORİTMA VE PROGRAMLAMA II HAFTA#1 - aytugonan.cbu.edu.traytugonan.cbu.edu.tr/Algoritma/hafta-01/ders_notu01.pdf · 14 YZM 1102 –Algoritma ve Programlama II 2. ve 3. Satır: Ön](https://reader030.vdocuments.net/reader030/viewer/2022040709/5e0d8922a5a8667bac275eb7/html5/thumbnails/22.jpg)
22
YZM 1102 – Algoritma ve Programlama II
C Sabitleri
• Sabit bildirimi, başlangıç değeri verilen değişken bildirimi
gibi yapılır.
• Ancak, veri tipinin önüne const anahtar sözcüğü konmalıdır.
• Sabit içerikleri program boyunca değiştirilemez. Yalnızca
kullanılabilir.
• Genellikle, sabit olarak bildirilen değişken isimleri büyük
harflerle, diğer değişken isimlerinin ise küçük harflerle
yazılması (gösterilmesi) C programcıları tarafından
geleneksel hale gelmiştir.
![Page 23: ALGORİTMA VE PROGRAMLAMA II HAFTA#1 - aytugonan.cbu.edu.traytugonan.cbu.edu.tr/Algoritma/hafta-01/ders_notu01.pdf · 14 YZM 1102 –Algoritma ve Programlama II 2. ve 3. Satır: Ön](https://reader030.vdocuments.net/reader030/viewer/2022040709/5e0d8922a5a8667bac275eb7/html5/thumbnails/23.jpg)
23
YZM 1102 – Algoritma ve Programlama II
C Sabitleri (devam…)
• Örnekler:
const float PI = 3.142857;
const double NOT= 12345.8596235489;
const int EOF= -1;
const char[] = "devam etmek için bir tuşa basın...";
![Page 24: ALGORİTMA VE PROGRAMLAMA II HAFTA#1 - aytugonan.cbu.edu.traytugonan.cbu.edu.tr/Algoritma/hafta-01/ders_notu01.pdf · 14 YZM 1102 –Algoritma ve Programlama II 2. ve 3. Satır: Ön](https://reader030.vdocuments.net/reader030/viewer/2022040709/5e0d8922a5a8667bac275eb7/html5/thumbnails/24.jpg)
24
YZM 1102 – Algoritma ve Programlama II
C Operatörleri – Atama Operatörleri
Operatör Açıklama Örnek Anlamı
= atama x = 7; x = 7;
+= ekleyerek atama x += 3 x = x + 3
-= eksilterek atama x -= 5 x = x - 5
*= çarparak atama x *= 4 x = x * 4
/= bölerek atama x /= 2 x = x / 2
%= bölüp, kalanını atama x %= 9 x = x % 9
++ bir arttırma x++ veya ++x x = x + 1
-- bir azaltma x-- veya --x x = x - 1
![Page 25: ALGORİTMA VE PROGRAMLAMA II HAFTA#1 - aytugonan.cbu.edu.traytugonan.cbu.edu.tr/Algoritma/hafta-01/ders_notu01.pdf · 14 YZM 1102 –Algoritma ve Programlama II 2. ve 3. Satır: Ön](https://reader030.vdocuments.net/reader030/viewer/2022040709/5e0d8922a5a8667bac275eb7/html5/thumbnails/25.jpg)
25
YZM 1102 – Algoritma ve Programlama II
C Operatörleri – Atama Operatörleri (devam…)
Örnek Anlamı
x = y++;
y’nin değeri önce x’e aktarılır sonra bir arttırılır.
x = y;
y = y + 1;
x = ++y;
y’nin değeri önce bir arttırılır sonra x’e aktarılır .
y = y + 1;
x = y;
x = y--;
y’nin değeri önce x’e aktarılır sonra bir azaltılır.
x = y;
y = y - 1;
x = --y;
y’nin değeri önce bir azaltılır sonra x’e aktarılır .
y = y - 1;
x = y;
![Page 26: ALGORİTMA VE PROGRAMLAMA II HAFTA#1 - aytugonan.cbu.edu.traytugonan.cbu.edu.tr/Algoritma/hafta-01/ders_notu01.pdf · 14 YZM 1102 –Algoritma ve Programlama II 2. ve 3. Satır: Ön](https://reader030.vdocuments.net/reader030/viewer/2022040709/5e0d8922a5a8667bac275eb7/html5/thumbnails/26.jpg)
26
YZM 1102 – Algoritma ve Programlama II
C Operatörleri – Atama Operatörleri (devam…)
• Örnek: Aşağıdaki işlemlerden sonra a, b ve c’nin son değerleri
ne olur?
a = 5;
b = a++;
c = ++a;
a = 7
b = 5
c = 7
![Page 27: ALGORİTMA VE PROGRAMLAMA II HAFTA#1 - aytugonan.cbu.edu.traytugonan.cbu.edu.tr/Algoritma/hafta-01/ders_notu01.pdf · 14 YZM 1102 –Algoritma ve Programlama II 2. ve 3. Satır: Ön](https://reader030.vdocuments.net/reader030/viewer/2022040709/5e0d8922a5a8667bac275eb7/html5/thumbnails/27.jpg)
27
YZM 1102 – Algoritma ve Programlama II
C Operatörleri – Atama Operatörleri (devam…)
• Örnek: Aşağıdaki işlemlerden sonra i’nin son değerlerine olur?
int i = 1;
i++;
++i;
i += 1 + i++;
i = i + 1;
i = 9
![Page 28: ALGORİTMA VE PROGRAMLAMA II HAFTA#1 - aytugonan.cbu.edu.traytugonan.cbu.edu.tr/Algoritma/hafta-01/ders_notu01.pdf · 14 YZM 1102 –Algoritma ve Programlama II 2. ve 3. Satır: Ön](https://reader030.vdocuments.net/reader030/viewer/2022040709/5e0d8922a5a8667bac275eb7/html5/thumbnails/28.jpg)
28
YZM 1102 – Algoritma ve Programlama II
scanf() Fonksiyonu
• Birçok programda ekrana verilerin bastırılmasının yanı sıra
klavyeden veri okunması gerekebilir.
• scanf() fonksiyonu klavyeden veri okumak için kullanılan
fonksiyondur.
• Tip belirleyicileri printf fonksiyonu ile aynı mantıkta
kullanılır ve % sembolü ile ifade edilir.
• Örneğin klavyeden bir x tamsayısı okumak için aşağıdaki
ifade kullanılır:
scanf("%d", &x);
![Page 29: ALGORİTMA VE PROGRAMLAMA II HAFTA#1 - aytugonan.cbu.edu.traytugonan.cbu.edu.tr/Algoritma/hafta-01/ders_notu01.pdf · 14 YZM 1102 –Algoritma ve Programlama II 2. ve 3. Satır: Ön](https://reader030.vdocuments.net/reader030/viewer/2022040709/5e0d8922a5a8667bac275eb7/html5/thumbnails/29.jpg)
29
YZM 1102 – Algoritma ve Programlama II
if…else Bloğu
• if ve else tek bir karşılaştırma
deyimi olup else kullanımı isteğe
bağlıdır.
• Eğer bu koşul olumlu ise if den
sonraki bölüm yürütülür ve else
den sonraki bölüm atlanır.
• Koşul olumsuz ise if den sonraki
küme atlanır ve eğer varsa, else
den sonraki kümedeki işlemler
gerçekleştirilir.
if (koşul)
{ Doğru ise İşlem1}
else
{ Yanlış ise İşlem2}
![Page 30: ALGORİTMA VE PROGRAMLAMA II HAFTA#1 - aytugonan.cbu.edu.traytugonan.cbu.edu.tr/Algoritma/hafta-01/ders_notu01.pdf · 14 YZM 1102 –Algoritma ve Programlama II 2. ve 3. Satır: Ön](https://reader030.vdocuments.net/reader030/viewer/2022040709/5e0d8922a5a8667bac275eb7/html5/thumbnails/30.jpg)
30
YZM 1102 – Algoritma ve Programlama II
if…else Bloğu (devam…)
if (sayi < 0) {
printf("Negatif sayı girdiniz\n");
}
else {
printf("Sıfır veya pozitif bir sayı
girdiniz\n");
}
if (sayi < 0)
printf("Negatif sayı girdiniz\n");
else
printf("Sıfır veya pozitif bir sayı
girdiniz\n");
Örnek 1 Örnek 2
Not: Her iki örnek aynı işlemi gerçekleştirmektedir. Tek fark birinci örnekte { }
sembollerinin kullanılmasıdır. Tek satır deyim içeren bloklarda, { } sembollerinin
kullanılmasına gerek yoktur.
![Page 31: ALGORİTMA VE PROGRAMLAMA II HAFTA#1 - aytugonan.cbu.edu.traytugonan.cbu.edu.tr/Algoritma/hafta-01/ders_notu01.pdf · 14 YZM 1102 –Algoritma ve Programlama II 2. ve 3. Satır: Ön](https://reader030.vdocuments.net/reader030/viewer/2022040709/5e0d8922a5a8667bac275eb7/html5/thumbnails/31.jpg)
31
YZM 1102 – Algoritma ve Programlama II
Örnek: Girilen notun harf karşılığını bulma
![Page 32: ALGORİTMA VE PROGRAMLAMA II HAFTA#1 - aytugonan.cbu.edu.traytugonan.cbu.edu.tr/Algoritma/hafta-01/ders_notu01.pdf · 14 YZM 1102 –Algoritma ve Programlama II 2. ve 3. Satır: Ön](https://reader030.vdocuments.net/reader030/viewer/2022040709/5e0d8922a5a8667bac275eb7/html5/thumbnails/32.jpg)
32
YZM 1102 – Algoritma ve Programlama II
switch…case Bloğu
switch (değişken) {case sabit1:
deyim1
break;case sabit2:
deyim2
break;…
case sabitn:deyimn
break;default:
deyimd;}
değişken değeri sabit1 değerine eşitse
deyim1 çalıştırılır ve break kullanılarak
bloktan çıkış yapılır.
değişken değeri herhangi bir sabite eşit
değilse default sabitinin deyimi deyimd
çalışır.
![Page 33: ALGORİTMA VE PROGRAMLAMA II HAFTA#1 - aytugonan.cbu.edu.traytugonan.cbu.edu.tr/Algoritma/hafta-01/ders_notu01.pdf · 14 YZM 1102 –Algoritma ve Programlama II 2. ve 3. Satır: Ön](https://reader030.vdocuments.net/reader030/viewer/2022040709/5e0d8922a5a8667bac275eb7/html5/thumbnails/33.jpg)
33
YZM 1102 – Algoritma ve Programlama II
Örnek: Girilen il plaka kodlarına göre şehir
isimlerinin yazdırılması (switch-case bloğu)
![Page 34: ALGORİTMA VE PROGRAMLAMA II HAFTA#1 - aytugonan.cbu.edu.traytugonan.cbu.edu.tr/Algoritma/hafta-01/ders_notu01.pdf · 14 YZM 1102 –Algoritma ve Programlama II 2. ve 3. Satır: Ön](https://reader030.vdocuments.net/reader030/viewer/2022040709/5e0d8922a5a8667bac275eb7/html5/thumbnails/34.jpg)
34
YZM 1102 – Algoritma ve Programlama II
? Karşılaştırma Operatörü
• Bu operatör, if-else karşılaştırma deyiminin yaptığı işi sınırlı
olarak yapan bir operatördür. Genel yazım biçimi:
(koşul) ? deyim1 : deyim2;
• İlk önce koşul sınanır.
• Eğer koşul olumluysa deyim1, olumsuzsa deyim2
değerlendirilir.
• deyim1 ve deyim2 de atama işlemi yapılamaz.
• Ancak koşul deyiminde atama işlemi yapılabilir.
• deyim1 ve deyim2 yerine fonksiyon da kullanılabilir.
![Page 35: ALGORİTMA VE PROGRAMLAMA II HAFTA#1 - aytugonan.cbu.edu.traytugonan.cbu.edu.tr/Algoritma/hafta-01/ders_notu01.pdf · 14 YZM 1102 –Algoritma ve Programlama II 2. ve 3. Satır: Ön](https://reader030.vdocuments.net/reader030/viewer/2022040709/5e0d8922a5a8667bac275eb7/html5/thumbnails/35.jpg)
35
YZM 1102 – Algoritma ve Programlama II
? Karşılaştırma Operatörü (devam…)
• Örnek:
int sayi = 15;
x = ( sayi < 10 ) ? printf("yazi1") : printf("yazi2");
![Page 36: ALGORİTMA VE PROGRAMLAMA II HAFTA#1 - aytugonan.cbu.edu.traytugonan.cbu.edu.tr/Algoritma/hafta-01/ders_notu01.pdf · 14 YZM 1102 –Algoritma ve Programlama II 2. ve 3. Satır: Ön](https://reader030.vdocuments.net/reader030/viewer/2022040709/5e0d8922a5a8667bac275eb7/html5/thumbnails/36.jpg)
36
YZM 1102 – Algoritma ve Programlama II
Döngü
• Döngü (loop) deyimleri, bir işlemi yerine getiren kodkümesinin belli bir koşul altında tekrar edilmesi için kullanılır.
• Bir değişken belirli bir değerden başlayıp, son değeri alıncayakadar belirtilen işlemler tekrarlanır.
• Örn: n! değerinin hesaplanması (faktöryel)
• C programlama dilinde:
• for,
• while,
• do...while
olmak üzere üç tip döngü deyimi vardır.
• Diğer programlama dillerinde olduğu gibi, bu deyimlerleistenildiği kadar iç-içe döngü yapısı kullanılabilir.
![Page 37: ALGORİTMA VE PROGRAMLAMA II HAFTA#1 - aytugonan.cbu.edu.traytugonan.cbu.edu.tr/Algoritma/hafta-01/ders_notu01.pdf · 14 YZM 1102 –Algoritma ve Programlama II 2. ve 3. Satır: Ön](https://reader030.vdocuments.net/reader030/viewer/2022040709/5e0d8922a5a8667bac275eb7/html5/thumbnails/37.jpg)
37
YZM 1102 – Algoritma ve Programlama II
Örnek: 1-10 arasındaki sayıların yazdırılması
![Page 38: ALGORİTMA VE PROGRAMLAMA II HAFTA#1 - aytugonan.cbu.edu.traytugonan.cbu.edu.tr/Algoritma/hafta-01/ders_notu01.pdf · 14 YZM 1102 –Algoritma ve Programlama II 2. ve 3. Satır: Ön](https://reader030.vdocuments.net/reader030/viewer/2022040709/5e0d8922a5a8667bac275eb7/html5/thumbnails/38.jpg)
38
YZM 1102 – Algoritma ve Programlama II
for Döngü Yapısı Örnekleri
• 1’den 100’e kadar birer birer arttırma
for ( i = 1; i <= 100; i++)
• 100’den 1’e kadar birer birer azaltma
for ( i = 100; i <= 1; i--)
• 7’den 77’ye kadar yedişer yedişer arttırma
for ( i = 7; i <= 77 ; i += 7)
• 2, 5, 8, 11, 14, 17, 20 değerlerini alacak biçimde değiştirme
for ( j = 2; j <=20; j += 3)
![Page 39: ALGORİTMA VE PROGRAMLAMA II HAFTA#1 - aytugonan.cbu.edu.traytugonan.cbu.edu.tr/Algoritma/hafta-01/ders_notu01.pdf · 14 YZM 1102 –Algoritma ve Programlama II 2. ve 3. Satır: Ön](https://reader030.vdocuments.net/reader030/viewer/2022040709/5e0d8922a5a8667bac275eb7/html5/thumbnails/39.jpg)
39
YZM 1102 – Algoritma ve Programlama II
while Döngüsü
• Bir koşulun gerçekleşmesi durumunda belirli işlemlerintekrarlanması söz konusu ise while döngülerinden yararlanılır.
• while döngüsünün çalışabilmesi için koşulun başlangıçtamutlaka doğru olması gerekir.
• Genel yazım biçimi aşağıdaki gibidir:
while (koşul)
{
...
döngüdeki deyimler;
...
}
![Page 40: ALGORİTMA VE PROGRAMLAMA II HAFTA#1 - aytugonan.cbu.edu.traytugonan.cbu.edu.tr/Algoritma/hafta-01/ders_notu01.pdf · 14 YZM 1102 –Algoritma ve Programlama II 2. ve 3. Satır: Ön](https://reader030.vdocuments.net/reader030/viewer/2022040709/5e0d8922a5a8667bac275eb7/html5/thumbnails/40.jpg)
40
YZM 1102 – Algoritma ve Programlama II
Örnek: 0 girilene kadar, girilmiş tüm sayıların
toplanması...
![Page 41: ALGORİTMA VE PROGRAMLAMA II HAFTA#1 - aytugonan.cbu.edu.traytugonan.cbu.edu.tr/Algoritma/hafta-01/ders_notu01.pdf · 14 YZM 1102 –Algoritma ve Programlama II 2. ve 3. Satır: Ön](https://reader030.vdocuments.net/reader030/viewer/2022040709/5e0d8922a5a8667bac275eb7/html5/thumbnails/41.jpg)
41
YZM 1102 – Algoritma ve Programlama II
break Deyimi
• Döngü işlemi devam ederken döngünün koşuluna bağlı
olmaksızın döngüden çıkılmasını sağlayan deyimdir.
• Döngü içinde bu deyime sıra geldiğinde, break ardından
döngü sonuna kadar olan tüm deyimler atlanır ve döngüye
bir sonraki adımdan itibaren devam edilir.
• Tüm döngü türlerinde kullanılabilir.
• Kullanım biçimi aşağıdaki gibidir:
break;
![Page 42: ALGORİTMA VE PROGRAMLAMA II HAFTA#1 - aytugonan.cbu.edu.traytugonan.cbu.edu.tr/Algoritma/hafta-01/ders_notu01.pdf · 14 YZM 1102 –Algoritma ve Programlama II 2. ve 3. Satır: Ön](https://reader030.vdocuments.net/reader030/viewer/2022040709/5e0d8922a5a8667bac275eb7/html5/thumbnails/42.jpg)
42
YZM 1102 – Algoritma ve Programlama II
İç İçe Geçmiş Döngüler
• Bir program içinde birbiri içine geçmiş birden çok döngü
kullanılabilir. Bu durumda (bütün programlama dillerinde olduğu
gibi) önce içteki döngü, daha sonra dıştaki döngü tamamlanır.
for (i=1; i<n; i++){
//1.dış döngü
for (j=1; j<m; j++) {
//2.iç döngü
}
}
![Page 43: ALGORİTMA VE PROGRAMLAMA II HAFTA#1 - aytugonan.cbu.edu.traytugonan.cbu.edu.tr/Algoritma/hafta-01/ders_notu01.pdf · 14 YZM 1102 –Algoritma ve Programlama II 2. ve 3. Satır: Ön](https://reader030.vdocuments.net/reader030/viewer/2022040709/5e0d8922a5a8667bac275eb7/html5/thumbnails/43.jpg)
43
YZM 1102 – Algoritma ve Programlama II
Dizi Nedir?
• Veri yapısı türlerinden bir tanesidir (Array, Struct, Pointer,
Class …).
• İçerisinde birden fazla,
• aynı tip ve
• aynı isimdeki
veriyi bellekte depolayabilen değişkenlere dizi denir.
• Örneğin; bir sınıftaki öğrencilerin notlarını saklamak için
dizileri kullanmak mümkündür.
![Page 44: ALGORİTMA VE PROGRAMLAMA II HAFTA#1 - aytugonan.cbu.edu.traytugonan.cbu.edu.tr/Algoritma/hafta-01/ders_notu01.pdf · 14 YZM 1102 –Algoritma ve Programlama II 2. ve 3. Satır: Ön](https://reader030.vdocuments.net/reader030/viewer/2022040709/5e0d8922a5a8667bac275eb7/html5/thumbnails/44.jpg)
44
YZM 1102 – Algoritma ve Programlama II
Dizilerin Bildirimi
• Bir dizi çok sayıda değişken barındırdığından, bunları
birbirinden ayırt etmek için indis adı verilen bilgiler kullanılır.
• C Programlama Dili'nde, bir dizi hangi tipte tanımlanmış
olursa olsun başlangıç indisi her zaman 0'dır.
• Diziler tanımlanırken;
• dizinin adı,
• dizinin boyutu,
• dizi elemanlarının hangi tipte
olacağı belirtilmelidir.
![Page 45: ALGORİTMA VE PROGRAMLAMA II HAFTA#1 - aytugonan.cbu.edu.traytugonan.cbu.edu.tr/Algoritma/hafta-01/ders_notu01.pdf · 14 YZM 1102 –Algoritma ve Programlama II 2. ve 3. Satır: Ön](https://reader030.vdocuments.net/reader030/viewer/2022040709/5e0d8922a5a8667bac275eb7/html5/thumbnails/45.jpg)
45
YZM 1102 – Algoritma ve Programlama II
Dizilere Başlangıç Değeri Verme
• Bir dizi, doğal olarak bazı veriler içerecektir.
• Diziye aynı anda birden fazla değer atanabilir. Bunun için söz
konusu değerler { } işaretleri arasında virgül ile ayrılarak
yazılırlar.
• Örnek:
float kutle[5] = { 8.471, 3.683, 9.107, 4.739, 3.918 };
int maliyet[3] = { 25, 72, 94 };
double a[4] = { 10.0, 5.2, 7.5, 0.0};
• Küme parantezleri sonlandırıcı ; karakteri ile bitmektedir.
![Page 46: ALGORİTMA VE PROGRAMLAMA II HAFTA#1 - aytugonan.cbu.edu.traytugonan.cbu.edu.tr/Algoritma/hafta-01/ders_notu01.pdf · 14 YZM 1102 –Algoritma ve Programlama II 2. ve 3. Satır: Ön](https://reader030.vdocuments.net/reader030/viewer/2022040709/5e0d8922a5a8667bac275eb7/html5/thumbnails/46.jpg)
46
YZM 1102 – Algoritma ve Programlama II
Örnek: Dizi elemanlarına değer atama ve
okuma
![Page 47: ALGORİTMA VE PROGRAMLAMA II HAFTA#1 - aytugonan.cbu.edu.traytugonan.cbu.edu.tr/Algoritma/hafta-01/ders_notu01.pdf · 14 YZM 1102 –Algoritma ve Programlama II 2. ve 3. Satır: Ön](https://reader030.vdocuments.net/reader030/viewer/2022040709/5e0d8922a5a8667bac275eb7/html5/thumbnails/47.jpg)
47
YZM 1102 – Algoritma ve Programlama II
Karakter Dizileri (Strings)
• Bazı programlama dillerinde karakter dizilerini tutmak için
özel veri türleri (string, vb.) bulunmaktadır.
• Ancak C programlama dilinde böyle bir veri türü olmadığı için
yerine karakterlerden oluşan bir boyutlu diziler kullanılır.
• Karakter dizilerine özel olarak, karakter dizilerinin sonuna
sonlandırıcı karakter olarak adlandırılan bir simge eklenir.
• Sonlandırıcı karakter:
Dizinin bittiği yeri gösterir.
ASCII tablosunun sıfır numaralı ('\0') karakteridir.
![Page 48: ALGORİTMA VE PROGRAMLAMA II HAFTA#1 - aytugonan.cbu.edu.traytugonan.cbu.edu.tr/Algoritma/hafta-01/ders_notu01.pdf · 14 YZM 1102 –Algoritma ve Programlama II 2. ve 3. Satır: Ön](https://reader030.vdocuments.net/reader030/viewer/2022040709/5e0d8922a5a8667bac275eb7/html5/thumbnails/48.jpg)
48
YZM 1102 – Algoritma ve Programlama II
Fonksiyonlara Genel Bakış
• Fonksiyonlar karmaşık yapılı programların karmaşıklığını
azaltmak ve bu programları modüler bir yapıya
kavuşturmak için kullanılırlar.
• Fonksiyonlar, programcıların tekrarlanan kodlar
yazmalarını önlerler.
• Fonksiyon belirli bir adı olan program parçasıdır.
• Fonksiyonların çalışabilmesi için bir başka fonksiyondan
adı ile çağrılması gerekmektedir.
![Page 49: ALGORİTMA VE PROGRAMLAMA II HAFTA#1 - aytugonan.cbu.edu.traytugonan.cbu.edu.tr/Algoritma/hafta-01/ders_notu01.pdf · 14 YZM 1102 –Algoritma ve Programlama II 2. ve 3. Satır: Ön](https://reader030.vdocuments.net/reader030/viewer/2022040709/5e0d8922a5a8667bac275eb7/html5/thumbnails/49.jpg)
49
YZM 1102 – Algoritma ve Programlama II
C ve Fonksiyonlar
• C programları fonksiyonlardan oluşurlar.
• Şu ana dek kullandığımız main() de bir fonksiyondur. Bu
fonksiyonun bir başka fonksiyon içinden çağrılmasına gerek
yoktur.
• Her C programında bir main() fonksiyonun yer alması
gerekmektedir.
• main() fonksiyonu, program çalıştırıldığında otomatik olarak
çağrılan bir fonksiyondur.
• Bir main() fonksiyonu içinden bir başka fonksiyon çağrılabilir.
![Page 50: ALGORİTMA VE PROGRAMLAMA II HAFTA#1 - aytugonan.cbu.edu.traytugonan.cbu.edu.tr/Algoritma/hafta-01/ders_notu01.pdf · 14 YZM 1102 –Algoritma ve Programlama II 2. ve 3. Satır: Ön](https://reader030.vdocuments.net/reader030/viewer/2022040709/5e0d8922a5a8667bac275eb7/html5/thumbnails/50.jpg)
50
YZM 1102 – Algoritma ve Programlama II
Fonksiyon Tanımı
• Fonksiyon, belirli sayıda verileri kullanarak bunları
işleyen ve bir sonuç üreten komut grubudur.
• Her fonksiyonun bir adı ve fonksiyona gelen
değerleri gösteren parametreleri (bağımsız
değişkenleri) vardır.
• Bir fonksiyon bu parametreleri alıp çeşitli işlemlere
tabi tutar ve bir değer hesaplar.
![Page 51: ALGORİTMA VE PROGRAMLAMA II HAFTA#1 - aytugonan.cbu.edu.traytugonan.cbu.edu.tr/Algoritma/hafta-01/ders_notu01.pdf · 14 YZM 1102 –Algoritma ve Programlama II 2. ve 3. Satır: Ön](https://reader030.vdocuments.net/reader030/viewer/2022040709/5e0d8922a5a8667bac275eb7/html5/thumbnails/51.jpg)
51
YZM 1102 – Algoritma ve Programlama II
Örnek: İki sayının toplamı
![Page 52: ALGORİTMA VE PROGRAMLAMA II HAFTA#1 - aytugonan.cbu.edu.traytugonan.cbu.edu.tr/Algoritma/hafta-01/ders_notu01.pdf · 14 YZM 1102 –Algoritma ve Programlama II 2. ve 3. Satır: Ön](https://reader030.vdocuments.net/reader030/viewer/2022040709/5e0d8922a5a8667bac275eb7/html5/thumbnails/52.jpg)
52
YZM 1102 – Algoritma ve Programlama II
Parametre ve Argüman
• Fonksiyon
çağrılırken
gönderilen değerlere
Argüman denir.
• Fonksiyon
bildiriminde,
fonksiyona girdi
olarak, kullanılan
değişkenlere
Parametre denir.
![Page 53: ALGORİTMA VE PROGRAMLAMA II HAFTA#1 - aytugonan.cbu.edu.traytugonan.cbu.edu.tr/Algoritma/hafta-01/ders_notu01.pdf · 14 YZM 1102 –Algoritma ve Programlama II 2. ve 3. Satır: Ön](https://reader030.vdocuments.net/reader030/viewer/2022040709/5e0d8922a5a8667bac275eb7/html5/thumbnails/53.jpg)
53
YZM 1102 – Algoritma ve Programlama II
Örnek: Fonksiyon geri değer dönüşü ve
prototip kullanımı (UYGULA)
![Page 54: ALGORİTMA VE PROGRAMLAMA II HAFTA#1 - aytugonan.cbu.edu.traytugonan.cbu.edu.tr/Algoritma/hafta-01/ders_notu01.pdf · 14 YZM 1102 –Algoritma ve Programlama II 2. ve 3. Satır: Ön](https://reader030.vdocuments.net/reader030/viewer/2022040709/5e0d8922a5a8667bac275eb7/html5/thumbnails/54.jpg)
54
YZM 1102 – Algoritma ve Programlama II
Örnek: Dizinin Fonksiyonda Kullanılması