0:00
Evet arkadaşlar herkese merhaba.
0:02
Hazırsanız C++ final sınavında karşınıza
0:05
çıkabilecek kilit konuları şöyle bir
0:06
hızla elden geçireceğiz. Sınavda
0:08
başarılı olmak için bilmeniz gereken her
0:10
şey burada. Bakın önümüzde 6 tane çok
0:14
kritik başlık var. Bunların üzerinden
0:16
geçeceğiz. Hatta işi garantiye almak
0:18
için gerçek sınav sorularını da masaya
0:21
yatıracağız. Tek tek çözeceğiz. Lafı
0:23
uzatmayalım. Hadi dalalım konuya. İlk
0:26
durağımız C++'ın en temel kuralları.
0:29
Yani bu dilin beyninin nasıl
0:31
çalıştığını, işlem önceliklerini nasıl
0:33
belirlediğini anlayacağız. Karşınızda
0:35
tam bir klasik final sorusu. Ben çözüme
0:38
geçmeden önce bir durdurun. Kalemi
0:40
kağıdı alın ve Y'nin değeri ne olur? Bir
0:43
düşünün bakalım. Eğer cevabınız 14 ise
0:46
tebrikler doğru yoldasınız. Peki ama
0:48
nasıl 14 bulduk? Gelin şimdi C++'ın bu
0:51
sonuca adım adım nasıl ulaştığına
0:53
bakalım. İşte işin sırrı tam olarak bu
0:56
adımlarda gizli. Bakın, G+'ın ne kadar
1:00
katı bir işlem sırası var. Önce mod
1:02
alma, sonra bölme, sonra çarpma, toplama
1:05
ve çıkarma hep en sona kalıyor. Bu
1:07
sıralamayı unutursanız sonuç tamamen
1:09
yanlış çıkar. Aman dikkat. Bu işlem
1:12
önceliği konusu bizi aslında daha temel
1:14
bir yere getiriyor. Dil seviyeleri.
1:16
Şöyle düşünün. C++ gibi diller makineyle
1:20
yani donanımla daha samimi konuşur. Bu
1:22
size inanılmaz bir güç ve kontrol verir
1:24
ama aynı zamanda işinizi biraz daha
1:26
zorlaştırır. İnsan dilinden biraz daha
1:29
uzaktır. Altın kuralımız şu: Bir dil ne
1:32
kadar düşük seviyeliyse donanıma o kadar
1:34
yakındır ama bizim için yazması o kadar
1:37
zordur. Bu finallerde temel bilgileri
1:39
ölçmek için sorulacak garanti sorulardan
1:41
biridir. Tamam bu cebimizde. Hadi
1:43
ilerleyelim. Sıradaki konumuz C++'taki
1:47
en büyük iki silahımız. Döngüler ve
1:49
diziler. Bu ikisine hakim olduğunuzda
1:52
kodlama gücünüz bambaşka bir seviyeye
1:54
çıkacak. Ekranda bir çıktı görüyorsunuz.
1:57
0 3 6 9 12 15. Soru şu: Bu çıktıyı hangi
2:04
for döngüsüyle elde edersiniz? Şöyle bir
2:06
bakın bakalım aklınıza ne geliyor. İşte
2:09
doğru cevap. Kilit nokta. Sayacımızı her
2:12
adımda birer birer değil üçer üçer
2:14
arttırmak. Yani i + değil i + = 3. Bu
2:20
sayede o aralıklı çıktığı
2:23
Bu tabloda müthiş bir örnek. İç içe
2:26
geçmiş iki döngünün iki boyutlu bir
2:29
diziyi nasıl ilmek ilmek işlediğini
2:32
gösteriyor. Her bir hücrenin değeri ne
2:34
mi? Çok basit. Bulunduğu satırın ve
2:37
sütunun indis numaralarının çarpımı.
2:40
İşte bu kadar. Ve bu bölümde son bir
2:42
not. C tarzı stringlerin o gizli
2:44
kahramanını yani nal sonlandırıcıyı
2:47
slash0'ı asla unutmayın. Bu bizim
2:50
görmediğimiz ama bilgisayarın tamam
2:52
metin burada bitti demesini sağlayan o
2:54
sihirli karakterdir. Evet şimdi vites
2:57
yükseltiyoruz ve C+'ın kalbine iniyoruz.
3:01
Nesne yönelimli programlama yani OOP.
3:04
Sınıf dediğimiz şey nedir? En basit
3:07
haliyle bir araba kalıbı, bir kurabiye
3:09
kalıbı ya da bir bina projesi gibidir.
3:12
Yani size neyin nasıl olacağını tarif
3:15
eder. Ama o şeyin kendisi değildir.
3:18
Kalıbın kendisi kurabiye değildir. Değil
3:20
mi? İşte sınıf da o kalıptır. Peki
3:23
teoriyi pratiğe dökelim. Elimizde bir
3:26
silindir sınıfı var. Bu sınıftan bir
3:28
nesne yarattık. Yarıçapını 1,
3:30
yüksekliğini 3 yaptık. π'yi de kolaylık
3:33
olsun diye 3 aldık. Şimdi hacim hesapla
3:36
fonksiyonunu çağırırsak sonuç ne çıkar?
3:39
Cevap tabii ki 9. Neden? Çünkü formül
3:43
basit. π x r² x yükseklik. Yani 3 x 1 x
3:51
1 x 3 = 9. Burada çok ama çok önemli bir
3:56
sınav tuzağı var. Dikkat. Bir fonksiyon
3:59
size ondalıklı yani double bir sonuç
4:01
veriyorsa siz de o sonucu double bir
4:03
değişkene koymalısınız. Gidip de onu bir
4:06
tam sayıya yani int'e atarsanız bütün
4:09
ondalıklı kısım uçar gider. Veri kaybı
4:11
olur sonuç yanlış çıkar. Sıradaki
4:13
konumuz C++'ın dış dünyayile konuşma
4:16
şekli. Yani dosyalara veri yazma, okuma
4:20
ve standart şablon kütüphanesinin yani
4:23
STL'in nimetleri. S fonksiyonuyla bir
4:26
dosyanın içinde gezinirken kural çok
4:28
basit. İleri gitmek istiyorsanız pozitif
4:30
bir sayı verin. Dosyanın başına doğru
4:32
geri gelmek istiyorsanız negatif bir
4:34
sayı verin. Bu kadar. Peki bir dosyanın
4:37
sonuna mevcut veriyi silmeden yeni bir
4:40
şeyler eklemek isterseniz ne
4:41
yapacaksınız? İşte o zaman dosyayı
4:46
modunda açacaksınız. Append yani ekle
4:49
modunda. Şimdi de stringlerle ilgili
4:52
birkaç pratik fonksiyona ve çok sık
4:54
karşılaşılan, hata sanılan ama aslında
4:57
hata olmayan bir yazım kuralına göz
4:59
atalım. Insert fonksiyonu tam bir joker.
5:03
Bakın burada ne yapıyoruz? Bilgisayar
5:05
kelimesinin 5. indeksine git. Yani S
5:08
harfinin olduğu yere ve oraya 101
5:10
metnini ekle diyoruz. Sonuç bilgi 101
5:14
sayar. Harika değil mi? İşte o meşhur
5:17
hata mı değil mi sorusu. Unutmayın eğer
5:21
bir if ya da while komutundan sonra
5:23
çalıştıracağınız sadece tek bir satır
5:25
komut varsa o süslü parantezleri
5:27
kullanmak zorunda değilsiniz. İlk
5:29
bakışta göze garip gelebilir ama bu C++'
5:32
da tamamen geçerli bir kullanımdır. Bir
5:34
yazım hatası değildir. Ve geldik son
5:37
bölüme. Kodumuzu yazdık. Peki doğru
5:39
çalışıp çalışmadığından nasıl emin
5:41
olacağız? İşte burada test ve mantık
5:43
takibi devreye giriyor. Yazılım testi
5:46
bir hiyerarşiyile ilerler. Önce biz yani
5:49
geliştiriciler kendi içimizde test
5:51
ederiz. Sonra daha sınırlı bir kitleye
5:53
mesela beta kullanıcılarını açarız. En
5:56
son aşamada nihai kullanıcılar test
5:58
eder. Bu süreç kalitenin güvencesidir.
6:01
Bir döngünün ne yaptığını anlamanın en
6:03
iyi yolu onu kağıt üzerinde adım adım
6:05
çalıştırmaktır. Bakın toplam 45 y 10'la
6:09
başlıyoruz. Döngü bir kere çalışıyor,
6:12
toplam 55, y 15 oluyor. Bir daha
6:15
çalışıyor toplam 70 y oluyor. Şimdi
6:18
koşula bakıyoruz. 70 70'ten küçük mü?
6:21
Hayır. O zaman döngü biter. Son
6:23
değerlerimiz y = 20 toplam e= 70. Hata
6:28
ayıklamanın en temel yöntemi budur.
6:31
Evet, hızlandırılmış tekrarın sonuna
6:33
geldik. Sınav için en kritik konuların
6:35
üzerinden geçtik. Ama unutmayın, asıl
6:38
mesele sadece kuralları ezberlemek
6:40
değil. Asıl mesele bu kuralları ne zaman
6:42
ve nasıl esneteceğinizi hatta bazen ne
6:45
zaman yıkacağınızı bilerek gerçekten
6:47
yaratıcı çözümler üretmektir.
6:49
Sınavınızda hepinize başarılar.