Auzef Algoritmalar ve Programlamaya Giriş 2025-2026 Final Soruları (Güz)
Bu metinler, Algoritmalar ve Programlamaya Giriş dersine ait 2025-2026 güz dönemi final sorularını ve bu soruların ayrıntılı teknik açıklamalarını içermektedir. Kaynaklar; değişken atama, döngü yapıları, dizi mantığı ve koşullu ifadeler gibi temel programlama kavramlarını pratik örneklerle ele almaktadır. Ayrıca "Böl ve Fethet" stratejisi, özyinelemeli fonksiyonlar ve akış diyagramları gibi ileri düzey konuların teorik temellerine ve mantıksal kurallarına değinilmektedir. Sunulan içerik, öğrencilerin problem çözme yeteneklerini geliştirmeyi ve programlama dillerinin temel işleyiş mekanizmalarını öğretmeyi amaçlayan kapsamlı bir ders özeti niteliğindedir. Sonuç olarak kaynaklar, yazılım dünyasına giriş aşamasındaki bir öğrencinin bilmesi gereken kritik teknik donanımı hem teorik hem de uygulamalı bir çerçevede sunmaktadır.
https://lolonolo.com
Show More Show Less View Video Transcript
0:00
Her gün kullandığımız o uygulamaların
0:02
girdiğimiz web sitelerinin arka planında
0:04
ne var diye hiç düşündünüz mü? Biliyor
0:06
musunuz? O bütün karmaşık teknoloji
0:08
aslında şaşırtıcı derecede basit bir
0:10
mantığa dayanıyor. Tıpkı bir yemek
0:12
tarifi gibi adım adım ilerleyen
0:14
talimatlara. İşte bugün programlamanın
0:16
bu gizemli perdesini birlikte
0:17
aralayacağız ve bir final sınavını
0:19
kendimize rehber alarak bir bilgisayar
0:21
gibi düşünmenin temellerini öğreneceğiz.
0:23
Hadi lafı hiç uzatmadan direkt konuya
0:26
dalalım. Ekranda gördüğünüz bu basit
0:28
matematik sorusu var ya işte bu aslında
0:31
her şeyin başlangıç noktası. Yani kendi
0:33
kendine düşünemeyen bir makine bu sonuca
0:36
ulaşmak için hangi adımları izlemesi
0:38
gerektiğini nereden bilecek değil mi?
0:40
İşte bütün sır burada yatıyor. Cevap
0:42
öyle yüzlerce satırlı karmaşık kodlarda
0:44
falan değil. Algoritma dediğimiz net ve
0:47
sıralı bir tarifte gizli. Yani bir
0:49
bilgisayara neyi, ne zaman ve nasıl
0:52
yapacağını söyleyen, hataya hiç yer
0:54
bırakmayan bir yol haritası. Peki o
0:57
zaman haydi en temelden başlayalım. Bir
0:59
algoritma tam olarak ne demek ve bir
1:01
makineye ilk komutlarımızı nasıl
1:03
veriyoruz? Tanıma aslında çok basit. Bir
1:06
algoritma, bir görevi tamamlamak için
1:08
izlenen mantıksal bir yol haritasıdır. O
1:11
kadar. Burada belirsizliğe, acabaya
1:13
falan yer yok. Her adım net, sıralı ve
1:16
bir amaca yönelik olmak zorunda. Ve bu
1:19
yol haritasının tek bir giriş kapısı
1:20
olabilir. Unutmayın, bir algoritma her
1:23
zaman ama her zaman tek bir başla
1:25
komutuyla hayata geçer. Bu sürecin
1:28
nereden başlayacağını kesin ve net bir
1:30
şekilde belirleyen ilk kuralımız. Peki
1:32
program bizimle nasıl konuşuyor, nasıl
1:35
anlaşıyor? Aslında iki temel komutla.
1:37
oku komutuyla bizden bir şifre, bir yaş
1:41
ya da bir sayı gibi bilgiler istiyor.
1:43
Yaz komutuyla da kendi bulduğu sonucu
1:46
diyelim ki hesapladığı bir puanı ekrana
1:48
yansıtıyor. İşte aramızdaki diyalog bu
1:51
kadar net ve basit. Tamamdır. Temelleri
1:54
anladık. Şimdi işin daha heyecanlı
1:56
kısmına geçelim. Programlar nasıl
1:58
düşünür ve daha da önemlisi nasıl karar
2:00
verir? Hadi gelin o mantık motorun içine
2:03
bir bakalım. Bu slayttaki örnek konuyu
2:05
harika bir şekilde özetliyor aslında.
2:07
Program saatin 9'dan önce mi yoksa
2:09
18'den sonra mı olduğunu basitçe kontrol
2:11
ediyor. Buradaki kilit kelime ne biliyor
2:13
musunuz? veya işte bu sihirli çeleme
2:15
sayesinde iki koşuldan sadece birinin
2:18
bile doğru olması ekrana kapalıyız
2:20
mesajını yazdırmak için yeterli oluyor.
2:22
Mantıksal kararlar işte bu kadar basit
2:24
koşullara dayanıyor. Bu da bir başka
2:26
zekice mantık oyunu. Bir kuralın tam
2:28
tersini düşünmek programlamanın temel
2:30
taşlarından biridir. Eğer kuralımız 40
2:33
ve 6 geçersizdir diyorsa bunun tam tersi
2:36
mantıken ne olabilir ki? E tabii ki
2:39
40'tan büyük her şey geçerlidir. İşte bu
2:41
zıtlık özellikle verileri kontrol
2:43
ederken sürekli karşımıza çıkan bir
2:45
yöntem ve tabii ki tıpkı ilkokul
2:48
matematiğinde olduğu gibi burada da
2:50
işlem önceliği hayati bir mesele. Bir
2:52
sayının 5 eksiğinin 2 katı ifadesinde o
2:55
parantezi kullanmazsanız bilgisayar önce
2:58
5 ile 2'yi çarpar ve sonuç tamamen
3:01
yanlış çıkar. Parantezler burada devreye
3:03
girip adeta makineye bağırıyor. Önce
3:05
beni yap. Şimdi de geldik programlamanın
3:08
belki de en güçlü aracına. Bizi aynı
3:11
sıkıcı işi binlerce hatta milyonlarca
3:14
kez yapmaktan kurtaran o muhteşem
3:16
yapılara yani döngülere bir bakalım.
3:19
Döngü dediğimiz şey bir bilgisayarın
3:21
asla yorulmadan, hiç şikayet etmeden
3:23
aynı komutu defalarca uygulamasını
3:26
sağlayan bir mekanizmadır. Bakın bu yapı
3:28
olmasaydı bugün kullandığımız modern
3:30
yazılımların hiçbiri ama hiçbiri mümkün
3:33
olmazdı. Hah. Şimdi ilk sorumuza geri
3:36
dönelim. Bilgisayar 5 faktöriyeli nasıl
3:39
hesaplıyordu? İşte tam olarak böyle.
3:42
Çarpım adında bir değişken oluşturuyor
3:44
ve döngünün her adımında bu değişkenin
3:46
değerini sayaçla çarpıp güncelliyor.
3:48
Bakın adım adım sabırla nasıl sonuca
3:51
ulaşıyor. 1inci adım, 2inci adım, 3üncü
3:54
ve 5. adımın sonunda da hedefimiz olan
3:57
120'yi buluyor. İyi ama programlar bu
3:59
kadar çok veriyi nasıl düzenli bir
4:01
şekilde aklında tutuyor? Gayet basit.
4:03
Tıpkı bizim dosya dolapları veya
4:05
kütüphanedeki rafları kullandığımız gibi
4:07
onlar da dizi denilen bir yapı
4:09
kullanıyor. Bir diziyi aynı tipteki
4:12
bilgileri bir arada tutan
4:13
numaralandırılmış gözleri olan düzenli
4:15
bir raf gibi düşünebilirsiniz. Her bir
4:18
gözün kendine ait bir numarası var ve
4:20
biz bu numaraya programlama dilinde
4:23
indis diyoruz. Bu tablo konuyu mükemmel
4:25
bir şekilde görselleştiriyor. Burada
4:27
aklınızdan asla çıkarmanız gereken altın
4:29
kural şu: Bilgisayarlar saymaya
4:31
neredeyse her zaman sıfırdan başlar.
4:33
Yani biz 3ünc elemanı değil 3 numaralı
4:36
indisteki elemanı arıyoruz. E tabloya
4:38
baktığımızda bu değerin 567 olduğunu şıp
4:41
diye görüyoruz değil mi? Kısaca
4:43
toparlayacak olursak dizilerin üç temel
4:45
kuralı var diyebiliriz. İndisler
4:47
sıfırdan başlıyor. İçinde farklı türde
4:50
veriler tutabiliyorlar. Ama en önemlisi
4:53
tek bir dizinin içindeki bütün elemanlar
4:55
aynı tipte olmak zorunda. Yani bir
4:58
dizide hem sayıları hem de metinleri
5:00
aynı anda saklayamazsınız. Ve son olarak
5:03
büyük programları daha düzenli hale
5:05
getiren ve karmaşık sorunları çok daha
5:07
verimli çözmemizi sağlayan birkaç
5:09
gelişmiş kavrama şöyle bir hızla göz
5:11
atalım. Fonksiyonları iş yerindeki iki
5:14
farklı tip yardımcı gibi düşünebiliriz.
5:16
Void fonksiyon tam bir işçi gibidir. Ona
5:19
verdiğiniz işi yapar, görevini tamamlar
5:21
ve başka bir şeye karışmaz. Ama return
5:24
fonksiyonu bir danışman gibidir. Bir
5:26
hesaplama yapar, bir sonuca ulaşır ve o
5:29
sonucu size bir rapor olarak sunar. Ve
5:32
işte karşınızda en sevdiğim problem
5:33
çözme stratejilerinden biri. Böl ve
5:36
fethet. Yönetilemeyecek kadar büyük bir
5:39
problemi al. Onu başa çıkabileceğin
5:41
küçük ve benzer parçalara ayır. O küçük
5:44
parçaları tek tek çöz. ve sonra elde
5:47
ettiğin sonuçları birleştirerek büyük
5:49
resmi tamamla. Bu inanılmaz güçlü ve
5:52
etkili bir yöntemdir. Evet, şimdiye
5:54
kadar öğrendiğimiz tüm bu yapı taşlarını
5:56
bir araya getirme ve o büyük resmi görme
5:59
zamanı. Sonuç olarak işin özü aslında
6:02
şu. Gördüğünüz en karmaşık oyunlar,
6:04
uygulamalar veya sistemler bile aslında
6:07
bu üç basit prensibin birleşiminden
6:09
oluşur. Karar vermek için mantık, sıkıcı
6:12
işleri otomatikleştirmek için tekrar ve
6:14
veriyi anlamlı kılmak için organizasyon.
6:17
Her şey bu üç temel üzerine kurulu. Bu
6:19
kadar basit. Bu yeni bakış açısıyla
6:22
aslında sabah yataktan kalkma
6:23
rutininizden tutun da bir tatil planı
6:25
yapmaya kadar hayatınızdaki pek çok
6:27
şeyin birer algoritma olduğunu fark
6:30
edeceksiniz. Peki siz gündelik hayattaki
6:32
hangi sorunu çözmek için kendi talimat
6:34
listenizi yani kendi algoritmanızı
6:37
yazmak isterdiniz? Bence bir düşünün.
#Programming
#Education
#Computer Science
#Computer Education

