bmt 106 algoritma ve programlama ii 2019 –2020 bahar dönemi
TRANSCRIPT
![Page 1: BMT 106 Algoritma ve Programlama II 2019 –2020 Bahar Dönemi](https://reader031.vdocuments.pub/reader031/viewer/2022012506/61810a53f9bbb92d17392acb/html5/thumbnails/1.jpg)
BMT 106 – Algoritma ve Programlama II
2019 – 2020 Bahar Dönemi
![Page 3: BMT 106 Algoritma ve Programlama II 2019 –2020 Bahar Dönemi](https://reader031.vdocuments.pub/reader031/viewer/2022012506/61810a53f9bbb92d17392acb/html5/thumbnails/3.jpg)
DERS AKIŞI
1. Hafta C++’ ta Veri Tipleri, If Else Kullanımı ve Örnekleri, Switch Case Yapısı, Operatörler (Atama, Arttırma ve Azaltma)
8. Hafta Ara Sınav
2. Hafta C++’ta Döngüler (While, Do While, For), Break-Continue
9. Hafta Nesne Tabanlı Programlama Nedir?
3. Hafta Fonksiyonlar, Recursive Fonksiyonlar- 10. Hafta Nesne Tabanlı Programlama Nedir? Erişim Belirleyiciler, Kalıtım, Çok biçimlilik
4. Hafta Başvurular ve Referans İfadeler, Tek ve çok boyutlu diziler, Pointer Kavramı, String Kullanımı
11. Hafta Nesne Tabanlı Programlama Nedir? Kapsülleme, Aşırı Yükleme-Quiz
5. Hafta Örnek çözümleri-Dinamik Bellek Yönetimi, Dizi Boyutu Kontrolü- Quiz
12. Hafta Nesne Tabanlı Programlama Nedir? Arkadaş fonksiyon tanımlama
6. Hafta Dosyalama işlemleri Giriş/Çıkış İşlemleri-
13. Hafta Nesne Tabanlı Programlama Nedir? Başlık (Header) dosyası oluşturma
7. Hafta Yapılar, Birlikler-Quiz 14. Hafta Proje Sunumu
![Page 4: BMT 106 Algoritma ve Programlama II 2019 –2020 Bahar Dönemi](https://reader031.vdocuments.pub/reader031/viewer/2022012506/61810a53f9bbb92d17392acb/html5/thumbnails/4.jpg)
C ++ Temel Öğrenim Klavuzu- Herbert SCHILDT – Alfa Yayınları
Muhammed Mastar- Süha Eriş C++ KODLAB
C++ ile Nesne Tabanlı Programlama- Bora GÜNGÖREN- Seçkin
Yayıncılık
C++ ile Programlama- Yalçın ÖZKAN-Papatya Yayıncılık
KAYNAKLAR
![Page 5: BMT 106 Algoritma ve Programlama II 2019 –2020 Bahar Dönemi](https://reader031.vdocuments.pub/reader031/viewer/2022012506/61810a53f9bbb92d17392acb/html5/thumbnails/5.jpg)
Etkinlik Yüzde
Ara Sınav %30
Uygulama/ Kısa Sınav %10
Proje/Ödev %15
Kanaat %5
Final %40
DERS DEĞERLENDİRMESİ
![Page 6: BMT 106 Algoritma ve Programlama II 2019 –2020 Bahar Dönemi](https://reader031.vdocuments.pub/reader031/viewer/2022012506/61810a53f9bbb92d17392acb/html5/thumbnails/6.jpg)
➢C++ Programlamaya
Giriş
![Page 7: BMT 106 Algoritma ve Programlama II 2019 –2020 Bahar Dönemi](https://reader031.vdocuments.pub/reader031/viewer/2022012506/61810a53f9bbb92d17392acb/html5/thumbnails/7.jpg)
C++ Dilinin Temel Özellikleri
1-Nesne yönelimli ve genel amaçlı bir programlama dilidir.
2-C programlama dilinin birçok özelliklerini taşır.
3-Program yazımı belirli kalıpta, bloklar halinde olur.
4-Bloklar { } parantezleri ile oluşturulur.
5-Tüm komutlar (;) ile biter.
6-Programda kullanılan tüm değişkenler ve veri tipleri belirtilir.
7-Programda kullanılacak olan komutların bulunduğu
kütüphaneler çağrılır.
![Page 8: BMT 106 Algoritma ve Programlama II 2019 –2020 Bahar Dönemi](https://reader031.vdocuments.pub/reader031/viewer/2022012506/61810a53f9bbb92d17392acb/html5/thumbnails/8.jpg)
Visual Studio Programında Microsoft .Net C++ ile çalışmak
Programı yazacağımız Studio C++ editor ortamı (IDE) aşağıda görüldüğü gibidir.
![Page 9: BMT 106 Algoritma ve Programlama II 2019 –2020 Bahar Dönemi](https://reader031.vdocuments.pub/reader031/viewer/2022012506/61810a53f9bbb92d17392acb/html5/thumbnails/9.jpg)
C++ Program Yapısı ÖrneğiAşağıda ekrana merhaba mesajının yazıldığı bir program
örneği
görülmektedir.
//Bu program VisuaL C++ ile ilk programım
#include "stdafx.h"
#include <iostream>
using namespace std;
int main()
{
cout<<"merhaba";
system("pause");
return 0;
}
![Page 10: BMT 106 Algoritma ve Programlama II 2019 –2020 Bahar Dönemi](https://reader031.vdocuments.pub/reader031/viewer/2022012506/61810a53f9bbb92d17392acb/html5/thumbnails/10.jpg)
C++ Program Yapısı Örneği
Programı inceleyecek olursa:
1. include ile programımızın kullandığı kütüphaneleri ekleriz.
• #include "stdafx.h" Visual Studio’nun kullandığı kütüphane.
• #include <iostream> giriş çıkış komutlarını içeren kütüphane.
• Ön işlemci direktifleri, derleyiciye verilen bir komuttur. Derleyicinin ön
işlemci denilen bir parçası gerçek derleme işlemi başlamadan önce bu
direktiflerle ilgilenir. Ön işlemci direktifler # işareti ile başlar. Noktalı
virgül ile bitmez.
![Page 11: BMT 106 Algoritma ve Programlama II 2019 –2020 Bahar Dönemi](https://reader031.vdocuments.pub/reader031/viewer/2022012506/61810a53f9bbb92d17392acb/html5/thumbnails/11.jpg)
C++ Program Yapısı Örneği
2. Bir C++ programı değişik isim uzaylarına (namespace) bölünebilir.
• İsim uzayı, programdaki belirli isimlerin derleyici tarafından tanınmasını
sağlayan program parçasıdır.
• Using namespace std; direktifi, bunu takip eden tüm program ifadelerinin
std isim uzayında olduğunu belirtir.
Ör: Çeşitli program bileşenleri, mesela cout, bu isim uzayında tanımlıdır.
Eğer using ifadesini kullanılmasadı std::cout<< ̋ Merhaba Dunya ̋ ; yazmak
gerekecekti.
3. ana program gövdesi int main () ile başlar
4. Her bir blok { } işareti ile gösterilir.
![Page 12: BMT 106 Algoritma ve Programlama II 2019 –2020 Bahar Dönemi](https://reader031.vdocuments.pub/reader031/viewer/2022012506/61810a53f9bbb92d17392acb/html5/thumbnails/12.jpg)
C++ Program Yapısı Örneği
5. C++'da açıklamalar // ile yapılır. Çok satırlı açıklamalar için /* */ kullanılır.
6. cout<<’’merhaba’’<<endl; cout ekrana yazdırma komutudur. endl ise imleci bir alt satıra alır.
7. C++ dosya uzantısı .cpp’dir.
8. system("pause"); Ekrana yazılan ifadenin görülmesi için system komutukullanılarak akış durdurulur.
9. return 0; Fonksiyonlardan alınan değer ile geri dönüş komutudur. Mainfonksiyonunda parametre dönmediği için return 0 kullanılır.
![Page 13: BMT 106 Algoritma ve Programlama II 2019 –2020 Bahar Dönemi](https://reader031.vdocuments.pub/reader031/viewer/2022012506/61810a53f9bbb92d17392acb/html5/thumbnails/13.jpg)
➢ C++ Değişkenleri
![Page 14: BMT 106 Algoritma ve Programlama II 2019 –2020 Bahar Dönemi](https://reader031.vdocuments.pub/reader031/viewer/2022012506/61810a53f9bbb92d17392acb/html5/thumbnails/14.jpg)
Değişken
1. Değişken ismi;
Alt tire( an underscore “_” ) veya harf ile başlar.
Doğru değişken isimleri: ad,soyad,_yas
Yanlış değişken isimleri: -name, adı soyadi,1pat
2. Harf, alttire veya sayıları içerir.
Doğru değişken isimleri: klavye, sayi1,tam_sayi,adi_soyadi
Yanlış değişken ismi: 1tam, Türkçe
3. Özel karakterler içermez.( !, %, ], or $)
4. Boşluk içermez.
5. Herhangi bir rezerve kelime* içermez.
6. C++ büyük küçük harf duyarlıdır.
Örneğin: ISIM, isim, ISim, ISIm dört farklı değişken ismidir.
C++'de değişkenlere isim verirken aşağıdaki kurallara uyulmalıdır.
![Page 15: BMT 106 Algoritma ve Programlama II 2019 –2020 Bahar Dönemi](https://reader031.vdocuments.pub/reader031/viewer/2022012506/61810a53f9bbb92d17392acb/html5/thumbnails/15.jpg)
Değişken
C++ Rezerve Kelimeleri
Asm Auto bad_cast bad_typeid Bool
Break Case catch Char Class
Const const_cast continue default Delete
Do Double dynamic_cast Else Enum
Except Explicit extern False Finally
Float For friend Goto İf
İnline İnt long Mutable Namespace
New Operator private Protected Public
Register reinterpret_cast return Short Signed
Sizeof Static static_cast Unsigned Struct
Switch Template this Throw True
Try type_info typedef Typeid Typename
Union Unsigned using Virtual Void
Volatile wchar_t while
![Page 16: BMT 106 Algoritma ve Programlama II 2019 –2020 Bahar Dönemi](https://reader031.vdocuments.pub/reader031/viewer/2022012506/61810a53f9bbb92d17392acb/html5/thumbnails/16.jpg)
Değişken ve Sabit Tanımlama
• Değişken: Program içinde değeri değişebilen ifadedir.
• Sabit: Program içinde değeri değişmeyen verileri saklayan,
sadece tek bir değer alan ifadedir.
![Page 17: BMT 106 Algoritma ve Programlama II 2019 –2020 Bahar Dönemi](https://reader031.vdocuments.pub/reader031/viewer/2022012506/61810a53f9bbb92d17392acb/html5/thumbnails/17.jpg)
Değişken ve Sabit Tanımlama
Değişken Tanımlama:
int yas: yas değişkeni tamsayı veriler saklayacak.
char cinsiyet: cinsiyet değişkeni karakter veri saklayacak.
Sabit Tanımlama:
Eğer programda değişmesini istemediğiniz değerler var ise const
ifadesi ile sabit tanımlayabilirsiniz.
Const tipi degisken_adı=degeri
Örnek:
const double t=3.14;
const double pi=22.0/7;
![Page 18: BMT 106 Algoritma ve Programlama II 2019 –2020 Bahar Dönemi](https://reader031.vdocuments.pub/reader031/viewer/2022012506/61810a53f9bbb92d17392acb/html5/thumbnails/18.jpg)
Lokal ve Global Değişken
Global Değişken: Hiçbir {} (blok) iki küme işareti içinde yer
almayan ve tüm alt fonksiyonlar ve ana fonksiyonda tanımlı olan
değişkene denir.
Lokal Değişken: {} (blok) içinde tanımlanan ve hangi blok içinde
ise etki alanı bu aralık olup bu aralığın dışında tanımlı olmayan
değişkene denir.
![Page 19: BMT 106 Algoritma ve Programlama II 2019 –2020 Bahar Dönemi](https://reader031.vdocuments.pub/reader031/viewer/2022012506/61810a53f9bbb92d17392acb/html5/thumbnails/19.jpg)
➢ C++ Veri Tipleri
![Page 20: BMT 106 Algoritma ve Programlama II 2019 –2020 Bahar Dönemi](https://reader031.vdocuments.pub/reader031/viewer/2022012506/61810a53f9bbb92d17392acb/html5/thumbnails/20.jpg)
Veri Tipleri
Veri Tipi Alt Sınıf Üst Sınıf Duyarlı Basamak Sayısı
Bellek Alanı (byte)
Bool False True yok 1
Char -128 127 Yok 1
Short -32768 32767 Yok 2
İnt -2147483648 2147483647 Yok 4
Long -2147483648 2147483647 yok 8
Float 3,4x10^-38 3,4x10^38 7 4
Double 1,7x10^-308 1,7x10^308 15 8
Long double 3,4x10^-4932 3,4x10^4932 19 10
Tam sayı ve Ondalık sayı veri tipleri
![Page 21: BMT 106 Algoritma ve Programlama II 2019 –2020 Bahar Dönemi](https://reader031.vdocuments.pub/reader031/viewer/2022012506/61810a53f9bbb92d17392acb/html5/thumbnails/21.jpg)
Veri Tipleri
Veri Tipi Alt Sınıf Üst Sınır Bellek Alanı (byte)
Unsigned char 0 255 1
Unsigned short 0 65535 2
Unsigned int 0 4294967295 4
Unsigned long 0 4294967295 8
Tablo 2 İşaretsiz Tam Sayı Veri Tipleri
![Page 22: BMT 106 Algoritma ve Programlama II 2019 –2020 Bahar Dönemi](https://reader031.vdocuments.pub/reader031/viewer/2022012506/61810a53f9bbb92d17392acb/html5/thumbnails/22.jpg)
Veri Tipleri
String ifadelerle kullanılan kaçış karakterleri
Kaçış
Karakteri
Görevi
\n Yeni Satır(Newline)
\t Yatay Tab(Horizantal Tab)
\b Geri al(Backspace)
\a Alarm(Alert bell)
\\ Backslash
\” Double quote
\v Dikey Tab(Vertical Tab)
\f Sayfa ilerletme(Form feed)
\r Pragraf sonu
\’ Single quote
? Soru İşareti(Question mark)
![Page 23: BMT 106 Algoritma ve Programlama II 2019 –2020 Bahar Dönemi](https://reader031.vdocuments.pub/reader031/viewer/2022012506/61810a53f9bbb92d17392acb/html5/thumbnails/23.jpg)
➢ C++ Operatörler
![Page 24: BMT 106 Algoritma ve Programlama II 2019 –2020 Bahar Dönemi](https://reader031.vdocuments.pub/reader031/viewer/2022012506/61810a53f9bbb92d17392acb/html5/thumbnails/24.jpg)
Operatörler
1. Matematiksel İşlem Operatörleriİşlem Operatör Örnek Sonuç
Toplama + Top=3+3; Top=6
Çıkarma - cik=3-2; Cik=1
Çarpma * Carp=2*12; Carp=24
Bölme / D=14/7; D=2
Mod alma % S=13%4; S=1
Negatif alma - a=3; b=-a; b=-3
Son artım ++ T=2;
A=T++;
A=2;
T=3;
Ön artım ++ T=2;
A=++T
T=3;
A=3;
Son azaltım -- T=3; B=T--; T=2; B=3;
Ön azaltım -- T=3; B=--T; B=2; T=2;
![Page 25: BMT 106 Algoritma ve Programlama II 2019 –2020 Bahar Dönemi](https://reader031.vdocuments.pub/reader031/viewer/2022012506/61810a53f9bbb92d17392acb/html5/thumbnails/25.jpg)
Operatörler
2. Atama Operatörleri
İşlem Operatör Örnek Sonuç
Değer atama = a=3; b=a b=3
Toplama Ataması += a=a+3 a+=3 a=3+3=6
Çıkarma Ataması -= a=a-4 a-=4 a=6-4=2
Çarpma Ataması *= a=a*5 a*=5 a=2*5=10
Bölme Ataması /= a=a/3 a/=3 a=10/3=3
Mod Ataması %= a=a%2 a%=2 a=3%2=1
![Page 26: BMT 106 Algoritma ve Programlama II 2019 –2020 Bahar Dönemi](https://reader031.vdocuments.pub/reader031/viewer/2022012506/61810a53f9bbb92d17392acb/html5/thumbnails/26.jpg)
Operatörler
3. Karşılaştırma Operatörleriİşlem Operatör Örnek Sonuc
Eşit mi? == A=5, B=3
A==B
0
Eşit değil mi? != A!=B 1
Küçük mü? < A<B 0
Büyük mü? > A>B 1
Büyük eşit mi? >= A>=B 1
Küçük eşit mi? <= A<=B 0
![Page 27: BMT 106 Algoritma ve Programlama II 2019 –2020 Bahar Dönemi](https://reader031.vdocuments.pub/reader031/viewer/2022012506/61810a53f9bbb92d17392acb/html5/thumbnails/27.jpg)
Operatörler
4. Mantıksal Operatörleri
İşlem Operatör Örnek Sonuç
And(Ve) && A=26
A>20 && A<30
1
Or(Veya) || A=34
A>=45||A<50
1
Not ! A=30
C=!(A>20 && A<40)
C=0
NOT: MANTIKSAL OPERATÖRLER İle BİT DÜZEYİNDE OPERATÖRLERİ
KARIŞTIRMAYINIZ
![Page 28: BMT 106 Algoritma ve Programlama II 2019 –2020 Bahar Dönemi](https://reader031.vdocuments.pub/reader031/viewer/2022012506/61810a53f9bbb92d17392acb/html5/thumbnails/28.jpg)
Operatörler5. Bit Düzeyinde Operatörleri
İşlem Operatör Örnek Sonuç
Sola Öteleme
(Shift left)
<< 32<<4(32’yi 4 kez sola ötele)
32=(0000100000)2
64=(0001000000)2
128=(0010000000)2
256=(0100000000)2
512=(10000000000)
512
Bu işlem 32*24 işlemine
denktir.
Sağa Öteleme
(Shift right)
>> 32>>4 2
Bu işlemde 32/24 işlemine
denktir.
Bit Düzeyinde AND & 4 & 8 0
Bit düzeyinde OR | 4 | 8 12
Bit Düzeyinde XOR ^ 4^8 12
![Page 29: BMT 106 Algoritma ve Programlama II 2019 –2020 Bahar Dönemi](https://reader031.vdocuments.pub/reader031/viewer/2022012506/61810a53f9bbb92d17392acb/html5/thumbnails/29.jpg)
Operatörler
6. Diğer Operatörleri
İşlem Operatörfonksiyon çağırma ( )
Dizi oluşturma [ ]
7. Koşul Operatörleri
Operatör Sembulü Örnek Sonuç
Koşul operatörü ? a?b:c
Örneğin: 2. Dereceden denklem köklerini bulurken;
delta>=0 ? kok=-b+sqrt(delta) : ”Kök yok”
8. Alfasayısal Operatörleri
İşlem OperatörBirleştirme +
![Page 30: BMT 106 Algoritma ve Programlama II 2019 –2020 Bahar Dönemi](https://reader031.vdocuments.pub/reader031/viewer/2022012506/61810a53f9bbb92d17392acb/html5/thumbnails/30.jpg)
Operatörler
9. Cast Operatörü
Tip bilgisi değişiminde kullanılır.
(Tip bilgisi) X şeklindedir.
Örneğin: 32/15 in sonucunu ekrana direk yazdırırsak ; 2 olur.
Fakat tip dönüşümünden (Float) 32/15 yazdırırsak sonuç= 2,13333 eder.
![Page 31: BMT 106 Algoritma ve Programlama II 2019 –2020 Bahar Dönemi](https://reader031.vdocuments.pub/reader031/viewer/2022012506/61810a53f9bbb92d17392acb/html5/thumbnails/31.jpg)
OperatörlerOperatörlerde Öncelik Sırası
![Page 32: BMT 106 Algoritma ve Programlama II 2019 –2020 Bahar Dönemi](https://reader031.vdocuments.pub/reader031/viewer/2022012506/61810a53f9bbb92d17392acb/html5/thumbnails/32.jpg)
➢ C++ Program
Denetimi
![Page 33: BMT 106 Algoritma ve Programlama II 2019 –2020 Bahar Dönemi](https://reader031.vdocuments.pub/reader031/viewer/2022012506/61810a53f9bbb92d17392acb/html5/thumbnails/33.jpg)
Program Denetimi
Bir C++ programında denetim deyimleri, aşağıda belirtilen işlemlerde kullanılır:
• Karşılaştırma işlemleri
• Döngüler
• if
• if-else
• switch - case
• for
• while, do-while
• Goto
Bu deyimlerle kullanılan bazı özel deyimler de şunlardır:
– break
– continue
![Page 34: BMT 106 Algoritma ve Programlama II 2019 –2020 Bahar Dönemi](https://reader031.vdocuments.pub/reader031/viewer/2022012506/61810a53f9bbb92d17392acb/html5/thumbnails/34.jpg)
if-else karar yapısı
1. Sadece if Kullanımı:
if ( [ifade] )
[deyim1];
[deyim2];
Eğer ifade doğru ise deyim1 ve deyim2 çalışır.
Yanlış ise deyim1 çalışmaz, sadece deyim2
çalışır. Bu kullanım şekli if 'ten sonra sadece bir
adet deyim çalıştırmak içindir. İf akış şeması
aşağıda verilmiştir.
![Page 35: BMT 106 Algoritma ve Programlama II 2019 –2020 Bahar Dönemi](https://reader031.vdocuments.pub/reader031/viewer/2022012506/61810a53f9bbb92d17392acb/html5/thumbnails/35.jpg)
if-else karar yapısı1. Sadece if Kullanımı: (Devam 1)
if ( [ifade] )
{
[deyim1];
[deyim2];
….
}
Eğer birçok deyim çalıştırmak istiyorsanız aşağıdaki gibi bir kod bloğu açmalısınız.
if kelimesinin Türkçe karşılığı eğer anlamına
gelmektedir. Eğer if ile verilen ifade doğruysa
if'ten sonraki bloktaki fonksiyonları
gerçekleştir. Doğru değilse if ten sonraki
bloğu atla (yok say).
![Page 36: BMT 106 Algoritma ve Programlama II 2019 –2020 Bahar Dönemi](https://reader031.vdocuments.pub/reader031/viewer/2022012506/61810a53f9bbb92d17392acb/html5/thumbnails/36.jpg)
if-else karar yapısı
2. if-else Kullanımı:
if ( [ifade] )
{
[deyim1];
….
}
else
{
[deyim1];
….
}
Soldaki kodda ifade doğru ise deyim1 ve deyim3 yanlış ise deyim2 ve
deyim3 işlenir.
![Page 37: BMT 106 Algoritma ve Programlama II 2019 –2020 Bahar Dönemi](https://reader031.vdocuments.pub/reader031/viewer/2022012506/61810a53f9bbb92d17392acb/html5/thumbnails/37.jpg)
if-else karar yapısı
3. if-else if - else Kullanımı:if ( [ifade] )
{
[deyim1];
….
}
else if( [ifade] )
{
[deyim1];
….
}
…..
else // bazı kodlarda else kullanılmayabilir
{
[deyim1];
….
}
![Page 38: BMT 106 Algoritma ve Programlama II 2019 –2020 Bahar Dönemi](https://reader031.vdocuments.pub/reader031/viewer/2022012506/61810a53f9bbb92d17392acb/html5/thumbnails/38.jpg)
Switch-Case karar yapısı
switch (değişken)
{
case deger1:
…………….
break;
case deger2:
…………..
break;
…………..
case deger_n:
…………….
break;
default:
…………….
break;
}
![Page 39: BMT 106 Algoritma ve Programlama II 2019 –2020 Bahar Dönemi](https://reader031.vdocuments.pub/reader031/viewer/2022012506/61810a53f9bbb92d17392acb/html5/thumbnails/39.jpg)
➢ C++ Döngü
Deyimleri
![Page 40: BMT 106 Algoritma ve Programlama II 2019 –2020 Bahar Dönemi](https://reader031.vdocuments.pub/reader031/viewer/2022012506/61810a53f9bbb92d17392acb/html5/thumbnails/40.jpg)
DöngülerProgramın belirli bölümlerinin defalarca işlenmesi söz konusu olabilir.
Bunu sağlamak üzere döngülerden yararlanılır. C++ programlarında
döngü işlemleri farklı biçimlerde gerçekleşebilmektedir:
• for döngüsü
• while döngüleri
• do while döngüleri
![Page 41: BMT 106 Algoritma ve Programlama II 2019 –2020 Bahar Dönemi](https://reader031.vdocuments.pub/reader031/viewer/2022012506/61810a53f9bbb92d17392acb/html5/thumbnails/41.jpg)
For Döngüsü
C++ programı içinde bir ya da
daha fazla sayıda deyimin belirli bir
koşulun gerçekleşmesine dek
tekrarlanması söz konusu ise for
deyimi kullanılır. Bu deyim şu
şekilde tanımlanmaktadır:
![Page 42: BMT 106 Algoritma ve Programlama II 2019 –2020 Bahar Dönemi](https://reader031.vdocuments.pub/reader031/viewer/2022012506/61810a53f9bbb92d17392acb/html5/thumbnails/42.jpg)
For Döngüsü
Bu deyimden şu anlaşılmaktadır: Döngü bir sayaca göre yapılacaktır. Yani
her bir döngü işlemi sayılacaktır. Döngü işlemi koşul gerçekleşinceye dek
devam edecektir. Koşul gerçekleştiğinde, yani doğruluk değeri "yanlış"
olduğunda döngü terkedilerek bir sonraki deyim işlem görmeye başlar. for
içinde sayacın nasıl artacağı da ayrıca tanımlanır.
for(sayaç ; koşul ; artma)deyimler;
![Page 43: BMT 106 Algoritma ve Programlama II 2019 –2020 Bahar Dönemi](https://reader031.vdocuments.pub/reader031/viewer/2022012506/61810a53f9bbb92d17392acb/html5/thumbnails/43.jpg)
For Döngüsü
Örnek1:Ekran üzerinde 1’den 10’a kadar olan tamsayıları görüntülemek için gerekli
Programın akış şemasını çizerek C++ programını yazınız.
![Page 44: BMT 106 Algoritma ve Programlama II 2019 –2020 Bahar Dönemi](https://reader031.vdocuments.pub/reader031/viewer/2022012506/61810a53f9bbb92d17392acb/html5/thumbnails/44.jpg)
For Döngüsü
![Page 45: BMT 106 Algoritma ve Programlama II 2019 –2020 Bahar Dönemi](https://reader031.vdocuments.pub/reader031/viewer/2022012506/61810a53f9bbb92d17392acb/html5/thumbnails/45.jpg)
For Döngüsü
Örnek2 :Klavye yardımıyla girilen iki tamsayı arasındaki tüm sayıların toplamını
bulan programın akış şemasını çizerek C++ kodlarıyla yazınız.
![Page 46: BMT 106 Algoritma ve Programlama II 2019 –2020 Bahar Dönemi](https://reader031.vdocuments.pub/reader031/viewer/2022012506/61810a53f9bbb92d17392acb/html5/thumbnails/46.jpg)
For Döngüsü
![Page 47: BMT 106 Algoritma ve Programlama II 2019 –2020 Bahar Dönemi](https://reader031.vdocuments.pub/reader031/viewer/2022012506/61810a53f9bbb92d17392acb/html5/thumbnails/47.jpg)
Örnek 3: Dışarıdan girilen sayının faktöriyelini bulan programın akış şemasını çizerek
C++ kodlarıyla yazınız.
For Döngüsü
![Page 48: BMT 106 Algoritma ve Programlama II 2019 –2020 Bahar Dönemi](https://reader031.vdocuments.pub/reader031/viewer/2022012506/61810a53f9bbb92d17392acb/html5/thumbnails/48.jpg)
For Döngüsü
![Page 49: BMT 106 Algoritma ve Programlama II 2019 –2020 Bahar Dönemi](https://reader031.vdocuments.pub/reader031/viewer/2022012506/61810a53f9bbb92d17392acb/html5/thumbnails/49.jpg)
Koşullu Döngüler
Belirli bir koşulun gerçekleşmesi durumunda bazı deyimlerin çalıştırılması
söz konusu ise koşullu döngü deyimlerinden yararlanılır. Bu döngüler iki
türlüdür. Birincisi, koşulun döngü başlangıcında tanımlandığı durumdur. Bu
şekildeki döngüler while döngüleri olarak bilinirler. Eğer koşul döngünün
sonunda test ediliyorsa, bu kez do..while döngüleri kullanılır.
1. Döngü başında denetim: while döngüleri
2. Döngü sonunda denetim-do..while döngüleri
![Page 50: BMT 106 Algoritma ve Programlama II 2019 –2020 Bahar Dönemi](https://reader031.vdocuments.pub/reader031/viewer/2022012506/61810a53f9bbb92d17392acb/html5/thumbnails/50.jpg)
Döngü başında denetim: while döngüleri:
Koşullu Döngüler
Bir koşulun gerçekleşmesi durumunda belirli işlemlerin tekrarlanması söz
konusu ise while döngülerinden yararlanılır. Bu döngü Şekil1'de görüldüğü
biçimde çalışmaktadır. Koşul sağlanmadığı sürece döngü içindeki hiçbir
deyim çalışmayacaktır. Bu denetim döngü bloğunun başında yapılır.
![Page 51: BMT 106 Algoritma ve Programlama II 2019 –2020 Bahar Dönemi](https://reader031.vdocuments.pub/reader031/viewer/2022012506/61810a53f9bbb92d17392acb/html5/thumbnails/51.jpg)
Döngü sonunda denetim-do..while döngüleri:
Yukarıda açıklanan while döngülerinde koşul, bu deyimin tanımlandığı noktadan
itibaren test edilmektedir. Yani daha başlangıçta bu koşul geçerli değil ise hiç bir
deyim işlem görmemektedir. Buna karşılık, koşulun döngü bloğunun son satırında
yapılması söz konusu olabilir. Böyle durumlarda do while deyimleri kullanılır.
Koşullu Döngüler
![Page 52: BMT 106 Algoritma ve Programlama II 2019 –2020 Bahar Dönemi](https://reader031.vdocuments.pub/reader031/viewer/2022012506/61810a53f9bbb92d17392acb/html5/thumbnails/52.jpg)
While- Do while döngüsü arasındaki fark
![Page 53: BMT 106 Algoritma ve Programlama II 2019 –2020 Bahar Dönemi](https://reader031.vdocuments.pub/reader031/viewer/2022012506/61810a53f9bbb92d17392acb/html5/thumbnails/53.jpg)
While- Do while döngüsü arasındaki fark
İkinci döngü sonsuz olarak çalışır.
![Page 54: BMT 106 Algoritma ve Programlama II 2019 –2020 Bahar Dönemi](https://reader031.vdocuments.pub/reader031/viewer/2022012506/61810a53f9bbb92d17392acb/html5/thumbnails/54.jpg)
Koşullu Döngüler
Örnek 4: Girilen pozitif sayıdan 0’a kadar olan küçük sayıları ekrana yazdıran
C++ programını hazırlayınız.
![Page 55: BMT 106 Algoritma ve Programlama II 2019 –2020 Bahar Dönemi](https://reader031.vdocuments.pub/reader031/viewer/2022012506/61810a53f9bbb92d17392acb/html5/thumbnails/55.jpg)
Koşullu Döngüler
![Page 56: BMT 106 Algoritma ve Programlama II 2019 –2020 Bahar Dönemi](https://reader031.vdocuments.pub/reader031/viewer/2022012506/61810a53f9bbb92d17392acb/html5/thumbnails/56.jpg)
Döngülerden Çıkış ve Devam
Bazı uygulamalarda, döngü işlemi tamamlanmadan döngünün sona erdirilmesi söz konusu olabilir. Bu gibi durumlarda break deyimi kullanılır. Bu deyim,
biçiminde tanımlanır. 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.
break;
![Page 57: BMT 106 Algoritma ve Programlama II 2019 –2020 Bahar Dönemi](https://reader031.vdocuments.pub/reader031/viewer/2022012506/61810a53f9bbb92d17392acb/html5/thumbnails/57.jpg)
Döngülerden Çıkış ve Devam
deyimi kullanılır. Bu deyim döngününişlemesini sona erdirmez, sadece birsonraki döngü adımına geçilmesini sağlar.Eğer for döngüsü kullanılıyorsa, işlem sırasıbu deyime geldiğinde, bu deyimden döngüsonuna kadar olan deyimler çalışmaz,döngü bir artırılarak sonraki döngüyegeçilir. Eğer while döngüsü kullanılıyorsa,continue deyimine sıra geldiğinde, döngüiçinde bu deyimden sonraki tüm deyimleratlanır ve koşul sağlandığı sürece döngüyedevam edilir.
continue;
Bir döngüyü terketmeden bir adımının atlanması söz konusu ise,
![Page 58: BMT 106 Algoritma ve Programlama II 2019 –2020 Bahar Dönemi](https://reader031.vdocuments.pub/reader031/viewer/2022012506/61810a53f9bbb92d17392acb/html5/thumbnails/58.jpg)
Break Deyimi
![Page 59: BMT 106 Algoritma ve Programlama II 2019 –2020 Bahar Dönemi](https://reader031.vdocuments.pub/reader031/viewer/2022012506/61810a53f9bbb92d17392acb/html5/thumbnails/59.jpg)
Continue Deyimi
![Page 60: BMT 106 Algoritma ve Programlama II 2019 –2020 Bahar Dönemi](https://reader031.vdocuments.pub/reader031/viewer/2022012506/61810a53f9bbb92d17392acb/html5/thumbnails/60.jpg)
Örnek: Klavyeden girilen iki sayı için seçilen işlem türüne göre (toplama-
çıkarma- çarpma- bölme) sonuç üreten C++ programına devam etmek istiyor
musunuz? Sorusunu ekleyerek işlemlerin tekrar edilmesini sağlayınız.
Örnek Uygulamalar
![Page 61: BMT 106 Algoritma ve Programlama II 2019 –2020 Bahar Dönemi](https://reader031.vdocuments.pub/reader031/viewer/2022012506/61810a53f9bbb92d17392acb/html5/thumbnails/61.jpg)
Örnek Uygulamalar
![Page 62: BMT 106 Algoritma ve Programlama II 2019 –2020 Bahar Dönemi](https://reader031.vdocuments.pub/reader031/viewer/2022012506/61810a53f9bbb92d17392acb/html5/thumbnails/62.jpg)
Değerlendirme Soruları
![Page 63: BMT 106 Algoritma ve Programlama II 2019 –2020 Bahar Dönemi](https://reader031.vdocuments.pub/reader031/viewer/2022012506/61810a53f9bbb92d17392acb/html5/thumbnails/63.jpg)
Değerlendirme Soruları
![Page 64: BMT 106 Algoritma ve Programlama II 2019 –2020 Bahar Dönemi](https://reader031.vdocuments.pub/reader031/viewer/2022012506/61810a53f9bbb92d17392acb/html5/thumbnails/64.jpg)
Değerlendirme Soruları
![Page 65: BMT 106 Algoritma ve Programlama II 2019 –2020 Bahar Dönemi](https://reader031.vdocuments.pub/reader031/viewer/2022012506/61810a53f9bbb92d17392acb/html5/thumbnails/65.jpg)
Değerlendirme Soruları
![Page 66: BMT 106 Algoritma ve Programlama II 2019 –2020 Bahar Dönemi](https://reader031.vdocuments.pub/reader031/viewer/2022012506/61810a53f9bbb92d17392acb/html5/thumbnails/66.jpg)
Değerlendirme Soruları
![Page 67: BMT 106 Algoritma ve Programlama II 2019 –2020 Bahar Dönemi](https://reader031.vdocuments.pub/reader031/viewer/2022012506/61810a53f9bbb92d17392acb/html5/thumbnails/67.jpg)
Değerlendirme Soruları
![Page 68: BMT 106 Algoritma ve Programlama II 2019 –2020 Bahar Dönemi](https://reader031.vdocuments.pub/reader031/viewer/2022012506/61810a53f9bbb92d17392acb/html5/thumbnails/68.jpg)
Değerlendirme Soruları
![Page 69: BMT 106 Algoritma ve Programlama II 2019 –2020 Bahar Dönemi](https://reader031.vdocuments.pub/reader031/viewer/2022012506/61810a53f9bbb92d17392acb/html5/thumbnails/69.jpg)
Değerlendirme Soruları
![Page 70: BMT 106 Algoritma ve Programlama II 2019 –2020 Bahar Dönemi](https://reader031.vdocuments.pub/reader031/viewer/2022012506/61810a53f9bbb92d17392acb/html5/thumbnails/70.jpg)
Değerlendirme Soruları
![Page 71: BMT 106 Algoritma ve Programlama II 2019 –2020 Bahar Dönemi](https://reader031.vdocuments.pub/reader031/viewer/2022012506/61810a53f9bbb92d17392acb/html5/thumbnails/71.jpg)
Değerlendirme Soruları
![Page 72: BMT 106 Algoritma ve Programlama II 2019 –2020 Bahar Dönemi](https://reader031.vdocuments.pub/reader031/viewer/2022012506/61810a53f9bbb92d17392acb/html5/thumbnails/72.jpg)
KAYNAKLAR
• C ++ Temel Öğrenim Klavuzu- HerbertSCHILDT – Alfa Yayınları
• Muhammed Mastar- Süha Eriş C++ KODLAB
• C++ ile Nesne Tabanlı Programlama- Bora GÜNGÖREN- Seçkin Yayıncılık
• C++ ile Programlama- Yalçın ÖZKAN-Papatya Yayıncılık