Upload
others
View
6
Download
0
Embed Size (px)
Citation preview
BMT 106 – Algoritma ve Programlama II
2019 – 2020 Bahar Dönemi
Fadime ÖĞÜLMÜŞ DEMİRCAN
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
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
Etkinlik Yüzde
Ara Sınav %30
Uygulama/ Kısa Sınav %10
Proje/Ödev %15
Kanaat %5
Final %40
DERS DEĞERLENDİRMESİ
➢C++ Programlamaya
Giriş
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.
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.
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;
}
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.
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.
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.
➢ C++ Değişkenleri
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.
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
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.
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;
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.
➢ C++ Veri Tipleri
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
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
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)
➢ C++ Operatörler
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;
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
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
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
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
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 +
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.
OperatörlerOperatörlerde Öncelik Sırası
➢ C++ Program
Denetimi
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
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.
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).
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.
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];
….
}
Switch-Case karar yapısı
switch (değişken)
{
case deger1:
…………….
break;
case deger2:
…………..
break;
…………..
case deger_n:
…………….
break;
default:
…………….
break;
}
➢ C++ Döngü
Deyimleri
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
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:
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;
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.
For Döngüsü
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.
For Döngüsü
Ö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ü
For Döngüsü
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
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.
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
While- Do while döngüsü arasındaki fark
While- Do while döngüsü arasındaki fark
İkinci döngü sonsuz olarak çalışır.
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.
Koşullu Döngüler
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;
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,
Break Deyimi
Continue Deyimi
Ö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
Örnek Uygulamalar
Değerlendirme Soruları
Değerlendirme Soruları
Değerlendirme Soruları
Değerlendirme Soruları
Değerlendirme Soruları
Değerlendirme Soruları
Değerlendirme Soruları
Değerlendirme Soruları
Değerlendirme Soruları
Değerlendirme Soruları
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