BİL107U Programlama-1 2024-2025 Vize Soruları
https://lolonolo.com/2026/02/17/lojistik-ilkeleri-2024-2025-vize-sorulari/
Bu kaynak, BİL107U Programlama-1 dersinin vize sınavına hazırlık amacıyla oluşturulmuş kapsamlı bir çalışma dokümanıdır. Metin içerisinde yazılım geliştirme yaşam döngüsü, algoritma mantığı ve sözde kod yazımı gibi temel kavramlar detaylıca açıklanmaktadır. Ayrıca C# programlama dili özelinde değişken tanımlama kuralları, kontrol yapıları, döngüler ve nesne yönelimli programlama ilkeleri ele alınmaktadır. Kaynakta teorik bilgilerin yanı sıra, öğrencilerin bilgilerini test etmeleri için hazırlanan çoktan seçmeli vize soruları ve bu soruların çözümlü açıklamaları yer almaktadır. Özellikle çok biçimlilik, metot aşırı yükleme ve koleksiyon yapıları gibi teknik konular somut örneklerle desteklenerek sunulmuştur. Toplamda 20 sorudan oluşan bu materyal, programlamaya giriş seviyesindeki öğrencilere rehberlik etmeyi hedeflemektedir.
https://lolonolo.com
Show More Show Less View Video Transcript
0:00
Merhaba. Hiç düşündünüz mü aklınızdaki o
0:03
parlak fikir nasıl oluyor da bir anda
0:06
telefonunuzda, bilgisayarınızda çalışan
0:08
bir programa dönüşüyor? İşte bu bölümde
0:11
fikirden koda uzanan o sihirli
0:13
yolculuğun tüm adımlarını birlikte
0:15
keşfedeceğiz. Hazırsanız başlayalım.
0:19
Aslında bütün mesele bu soruda gizli.
0:21
Bir ihtiyaç, bir hayal, küçücük bir
0:24
fikir kıvılcımı. İi de. Bu kadar soyut
0:26
bir şey nasıl oluyor da bilgisayarın
0:28
anladığı o kesin ve net komutlara yani
0:31
koda dönüşüyor? Gelin bu dönüşümün
0:33
arkasındaki mantığı adım adım çözelim ve
0:37
konuya dalıyoruz. Bakın en büyük
0:39
yanılgılardan biri programlamanın
0:41
klavyenin başına oturup doğrudan kod
0:43
yazmakla başladığını düşünmektir. Hayır.
0:46
Her şeyden önce çok daha önemli bir şey
0:48
var. Sağlam bir plan. İşte karşınızda
0:51
bir yazılımın dolumundan yaşımının
0:53
sonuna kadar olan tüm süreci özetleyen o
0:56
meşhur yaşam döngüsü. Gördüğünüz gibi
0:58
kodlama bu adımlardan sadece bir tanesi.
1:01
Her şey ama her şey o en kritik ilk
1:04
adımla başlar. İhtiyacı belirlemek. Biz
1:07
hangi sorunu çözmeye çalışıyoruz diye
1:08
sormadan yola çıkılmaz. Sağlam bir
1:11
temeli olmadan göktelen inşa
1:12
edemezsiniz. Değil mi? Ve dikkat edin.
1:15
Bu bir döngü. Yani yazılım bitti ve
1:17
gitti diye bir şey yok. O yaşar, gelişir
1:20
ve bakım aşamasında fark edilen yeni
1:21
ihtiyaçlar bizi tekrar başa birinci
1:23
adıma döndürür. Tamam, ihtiyacı anladık.
1:26
Peki çözümü nasıl planlayacağız? İşte
1:28
tam bu noktada sözde kod adını
1:30
verdiğimiz harika bir araç devreye
1:32
giriyor. Bu herhangi bir programlama
1:34
dilinin katı kurallarına hiç takılmadan
1:37
çözümümüzün adımlarını sanki bir
1:39
arkadaşımıza anlatır gibi yazdığımız bir
1:41
taslak. Bir nevi yemeğin tarifini kağıda
1:44
dökmek gibi bir şey. İşte size mükemmel
1:47
bir örnek. Günlük hayatta yaptığımız çay
1:49
demleme eylemi aslında çok net bir
1:51
algoritma. Yani adım adım izlenmesi
1:54
gereken talimatlar listesi. Başla, suyu
1:57
koy, ocağı yak. Bunların her biri
1:59
bilgisayara vereceğimiz komutlarla aynı
2:01
mantığa sahip. Özellikle şu 4.üncü adıma
2:04
bir bakın. Su kaynamış mı? Kontrol et.
2:07
Bu bir karar anıdır. Bilgisayarda
2:09
yazdığımız programlarda işte tam olarak
2:11
böyle kararlar veriyor. Hadi bakalım.
2:14
Şimdi küçük bir test zamanı. Şu ana
2:17
kadar anlattıklarımızı düşünürsek bir
2:19
program yazmaya başlarken atılması
2:21
gereken o ilk o en temel adım hangisiydi
2:24
sizce? Kod yazmak mı? Algoritmayı çizmek
2:27
mi? Yoksa ihtiyacı doğru tespit etmek
2:30
mi? Ve doğru cevap tabii ki C şıkkı.
2:33
Yani ihtiyacı belirlemek. Harikasınız.
2:37
Sakın unutmayın. Dünyanın en karmaşık
2:39
yazılımı bile temelde basit bir ihtiyacı
2:42
karşılamak, bir problemi çözmek için
2:44
vardır. Her şey o problemi doğru
2:46
anlamakla başlar. Güzel, artık bir
2:49
planımız var. Algoritmamız hazır. E
2:51
şimdi ne yapacağız? Bu planı bilgisayara
2:53
anlatmamız lazım. Bunun için de ortak
2:55
bir dile ihtiyacımız var. Tıpkı bizim
2:57
gibi bilgisayarların da anladığı farklı
3:00
diller var. Bu dilleri kabaca ikiye
3:02
ayırabiliriz. Alçak seviyeli diller
3:04
makinenin kalbine yani o meşhur birlere
3:07
ve sıfırlara çok yakındır. Bu yüzden
3:09
bizim için okuması yazması çok zordur.
3:12
Chark gibi yüksek seviyeli diller ise
3:14
bizim konuştuğumuz İngilizceye çok daha
3:16
yakındır. Bu da onları öğrenmeyi ve
3:18
kullanmayı kat kolaylaştırır. Şimdi
3:21
bakın burası gerçekten çok zekice bir
3:24
sistem. C#ARP'ta yazdığınız kodlar pat
3:27
diye doğrudan makinenin anlayacağı dile
3:29
çevrilmez. Hayır. Önce ı dediğimiz bir
3:33
tür ara koda dönüştürülür. Sonra bu ara
3:36
kod program hangi bilgisayarda
3:38
çalışıyorsa işte o an o bilgisayarın
3:41
sistemine özel makine koduna çevrilir.
3:43
Bu dahyane yöntem sayesinde BKEN
3:46
yazdığınız C#ar programı hem Windows'da
3:49
hem de Linux'ta tıkır tıkır çalışabilir.
3:52
Bu yüksek seviyeli diller genellikle
3:54
yanlarında yardımcı teknolojilerle
3:56
birlikte gelir. Tıpkı bir alet
3:58
çantasındaki farklı aletler gibi
4:00
düşünebilirsiniz. Mesela ASPNET C#ARP
4:03
dilini kullanarak harika web siteleri ve
4:05
uygulamaları yapmanızı sağlayan içinde
4:08
bir sürü hazır çözüm barındıran dev bir
4:10
teknoloji setidir. Bu yapılar tekerleği
4:13
yeniden icat etmenizi önler ve işinizi
4:15
inanılmaz derecede hızlandırır. Hadi
4:18
hızlı bir soru daha. Az önce
4:19
bahsettiğimiz o çok önemli ara adımı
4:21
hatırlıyor musunuz? Yazdığımız C#ar
4:24
kodları makineye ulaşmadan önce hangi
4:26
özel forma dönüştürülüyordu?
4:29
Cevap tabii ki ı L l k arac kod formuna.
4:33
Hafızanız harika. Madem artık planımızı
4:36
bilgisayara nasıl anlatacağımızı
4:38
biliyoruz, şimdi de bu dilin alfabesine,
4:41
gramerine yani kodun temel yapı
4:43
taşlarına bir göz atalım. Bir programın
4:45
akışını yönetmek için elimizde iki tane
4:48
süper güç var. Birincisi kontrol
4:50
yapıları yani if gibi eğer komutları.
4:54
Bunlar programa karar verir. Tıpkı çay
4:56
algoritmamızdaki su kaynadı mı sorusu
4:59
gibi. İkincisi de döngüler. Bunlar da
5:02
bir şart sağlandığı sürece aynı işi
5:04
tekrar tekrar yaptırır. Su kaynayana
5:07
kadar bekle komutu buna mükemmel bir
5:09
örnektir. Programda bilgileri geçici
5:11
olarak saklamak için değişkenler
5:13
kullanırız ve bu değişkenlere isim
5:15
verirken uymamız gereken birkaç basit
5:17
kural var. Tablo çok güzel özetliyor.
5:20
Bir değişkenin adı asla sayıyla veya diz
5:23
gibi özel bir karakterle başlayamaz ama
5:25
harfle başlayabilir. İçinde alt tire
5:28
olabilir. Bu kurallar bilgisayarın
5:30
kafasının karışmasını engellemek için
5:31
var. Bir de programcılar arasında kodun
5:34
daha okunaklı olması için kullanılan
5:36
bazı yazım gelenekleri var. İşte Pascal
5:39
Case bunlardan biri. Bu bir değişkendir.
5:42
Örneğinde olduğu gibi birden fazla
5:44
kelimeden oluşan bir isimde her
5:46
kelimenin baş harfini büyük yazarsınız.
5:49
Bu bir kural değil ama kodunuzu sizden
5:51
başka birinin de kolayca okuyup
5:53
anlamasını sağlayan bir tür görgü
5:55
kuralı. İyi bir program yazmak sadece
5:58
doğru emirleri art arda sıralamak
6:00
değildir. Asıl ustalık elinizdeki
6:03
bilgiyi yani veriyi akıllıca ve verimli
6:05
bir şekilde organize etmekte yatar.
6:07
Gelin şimdi bu veri düzenleme sanatına
6:10
biraz daha yakından bakalım. Bir
6:12
alışveriş listeniz olduğunu hayal edin.
6:14
Dizilerde yani listedeki elmaya ulaşmak
6:18
için onun kaçıncı sırada olduğunu
6:19
bilmeniz gerekir. 0 sıradaki elemanı
6:22
getir gibi. Ama ya sıra numarasını
6:24
bilmiyorsak işte hash table bu sorunu
6:26
çözer. Her bir elemana bir sıra numarası
6:29
yerine meyve 1 gibi eşsiz bir anahtar
6:31
kelime verirsiniz. Böylece istediğiniz
6:34
veriye sırasını düşünmeden doğrudan
6:36
ismiyle erişirsiniz. Çok daha pratik.
6:39
Peki ya bir değişkenin alabileceği
6:41
değerler belliyse ve sınırlıysa mesela
6:44
haftanın günleri gibi pazartesi, salı,
6:46
çarşamba toplam 7 tane işte enam bu gibi
6:50
sabit ve sınırlı değerleri bir grup
6:52
altında toplamamızı sağlar. Bu sayede
6:55
hem kodumuz çok daha okunaklı olur hem
6:57
de yanlışlıkla pazartesi gibi bir yazım
6:59
hatası yapmamızın önüne geçmiş oluruz.
7:02
Ve geldik yolculuğumuzun en heyecanlı,
7:04
en güçlü konseptine. Modern programlama
7:08
komutları ve o komutların kullandığı
7:10
verileri bir araya getirip nesne adını
7:12
verdiğimiz akıllı paketçikler halinde
7:14
düzenleme felsefesine dayanır. Buna
7:16
nesne yönelimli programlama diyoruz. Çok
7:19
biçimlilik. Kulağa biraz korkutucu
7:21
gelebilir ama şu örnekle ne kadar basit
7:24
olduğunu göreceksiniz. Diyelim ki
7:26
motorlu taşıt diye bir ana kalıbımız
7:28
var. Hem arabanın hem de traktörün
7:30
motoru var değil mi? Ama arabadaki motor
7:32
hız için yapılmıştır. Traktördeki
7:34
motorsa güç ve tork için. Yani aynı
7:37
motor özelliği içinde bulunduğu nesneye
7:39
göre bambaşka bir davranış sergiliyor.
7:42
İşte bu sihirli olaya çok biçimlilik
7:44
diyoruz. Bu felsefenin bir diğer
7:47
güzelliği de aşırı yükleme. Bu ne demek?
7:50
Aynı isme sahip ama farklı işler yapan
7:52
komutlar oluşturabiliyorsunuz. Mesela
7:55
topla diye bir komutunuz var. iki sayıyı
7:57
topluyor. Yine topla isminde başka bir
8:00
komut yazıp ona da 3 sayıyı
8:01
toplatabiliyorsunuz. Program hangisini
8:04
çağıracağınızı ona kaç tane sayı
8:06
verdiğinizden anlıyor. İnanılmaz bir
8:08
esneklik. Nesneler, çok biçimlilik, ara
8:11
kodlar, algoritmalar, ne kadar karmaşık
8:14
ve havalı konseptlerden bahsedersek
8:16
bahsedelim, her şeyin başladığı o tek
8:18
bir noktayı asla unutmamalıyız. Her şey
8:20
her zaman o birinci adımla başlar. Evet,
8:23
fikirden koda uzanan yolculuğumuzu
8:26
tamamladık. Bir ihtiyacı anlamaktan
8:28
başlayıp bir plan yaparak, doğru dili
8:30
seçerek ve en sonunda nesnelerle
8:33
düşünerek bir fikrin nasıl ete kemiğe
8:35
bırındığını gördük. Peki şimdi sıra
8:38
sizde. Sizin aklınızdaki o büyük fikri
8:40
hayata geçirmek için atacağınız o en
8:43
önemli ilk adım ne olacak?
#Programming
#Education
#Computer Science
#C & C++

