Ara Sınav (Vize) 2024-2025 20 soru

Görsel Programlama 2024-2025 Ara Sınav (Vize)

Kaynak: https://lolonolo.com/2026/03/07/gorsel-programlama-2024-2025-vize-sorulari/

📖 Konu özeti (sınav öncesi tekrar)

Görsel Programlama 2024-2025 Vize Soruları

Görsel Programlama 2024-2025 Vize Soruları

WinForms Teknolojisi ve Arayüz Tasarımı

Windows Forms (WinForms), .NET ekosisteminde masaüstü uygulamaları geliştirmek için kullanılan en köklü ve yaygın çerçevelerden biridir. Bu teknolojinin en büyük avantajı, sürükle-bırak yöntemiyle arzulanan form tasarımının kolayca oluşturulmasını sağlamasıdır. Tasarım sürecinde kullanılan tüm görsel bileşenler (metin kutuları, butonlar vb.) Visual Studio üzerindeki Araç Kutusu (Toolbox) panelinde listelenir. Formun çalışma anındaki ilk konumu StartPosition özelliği ile belirlenirken, bu kararın işletim sistemine bırakılması için WindowsDefaultLocation değeri atanır.

Mimari açıdan bakıldığında, görsel programlamada partial anahtar kelimesi kritik bir rol oynar. Bu kelime, sınıfın kodlarının birden fazla kaynak kod dosyasına ayrılmasını sağlar; böylece tasarımcı tarafından otomatik oluşturulan Form1.Designer.cs dosyası ile yazılımcının mantıksal kodları içeren Form1.cs dosyası birbirinden ayrılır.

Form Kontrolleri ve Yerleşim Düzeni

Modern bir kullanıcı arayüzü oluşturmak için çeşitli kapsayıcı ve kontrol elemanları kullanılır. Formu satır ve sütunlara bölerek her hücreye yalnızca tek bir kontrol eklenmesine izin veren yapı TableLayoutPanel iken; menü ve araç çubuklarını formun dört kenarına yerleştirmek için ToolStripContainer kullanılır. Kullanıcı etkileşimini yönetmek için ise açılır listelerden tek bir seçim yapmayı sağlayan ComboBox tercih edilir. Programatik olarak bir ComboBox elemanının değerini almak için kullanılan comboBox1.Items[comboBox1.SelectedIndex].ToString() satırı, seçili elemanın metin karşılığını döndürür.

Formun en altında durum bilgisi göstermek için kullanılan StatusStrip içine etiketler veya ilerleme çubukları eklenebilir; ancak veri girişi için tasarlanan TextBox bu kontrolün standart bileşenleri arasında bulunmaz. Veri yönetiminde ise ListBox içerisindeki bir elemanı belirli bir sıra numarasına (indise) göre silmek için RemoveAt() metodu kullanılır.

Olaylar (Events) ve Kullanıcı Etkileşimi

Yazılımın kullanıcıyla kurduğu iletişim “olaylar” üzerinden yürütülür. Örneğin, klavye etkileşimleri KeyDown, KeyPress ve KeyUp sırasıyla gerçekleşir. Formun genel düzeni veya hiyerarşisi değiştiğinde ise Layout olayı tetiklenir. Kullanıcı deneyimini (UX) iyileştirmek için, Enter tuşuna basıldığında otomatik olarak çalışacak buton AcceptButton özelliği ile atanır.

Kod mantığında ise çoklu seçimlerin (CheckBox) kontrolü genellikle if-else if bloklarıyla yapılır. Örneğin; Keman ve Gitar aynı anda seçildiğinde, kodun bu şartı sağlayan bloğu bulmasıyla (2 && 3) ekrana ilgili sembol (örneğin $) basılır. Kontrollerin içeriğini sıfırlamak için ResetText() metodu, formun kullandığı ağır sistem kaynaklarını derhal serbest bırakmak için ise Dispose() metodu kullanılır.

Yazdırma ve İletişim Kutuları

Görsel programlamada dosya işlemleri veya yazdırma gibi sistem görevleri için özel sınıflar mevcuttur. Bir dokümanı fiziksel yazıcıya gönderme görevini asıl üstlenen yapı PrintDocument bileşenidir. Dosya açma veya renk seçme gibi pencereleri ekrana getirmek ve kullanıcının seçimini beklemek (modal yapı) için ShowDialog() metodu çağrılır.

Görsel Programlama 2024-2025 Vize Soruları

Görsel Programlama 2024-2025 Vize Soruları

20 soru
Şıkka dokun, anında açıklamasını gör — ya da çalışma modunda tüm cevapları aç.
Soru 1
Aşağıdakilerden hangisi WinForms arayüz çerçevesinin özelliklerinden biridir?
CDoğru cevap
Açıklama
Windows Forms (WinForms), .NET ekosisteminde masaüstü uygulamaları geliştirmek için kullanılan en köklü teknolojilerden biridir. Visual Studio IDE’si ile tam entegre çalışan WinForms, “WYSIWYG” (Ne görüyorsan onu alırsın) mantığına dayanır. Geliştiriciler, Toolbox (Araç Kutusu) içindeki buton, metin kutusu ve liste gibi görsel öğeleri fare ile sürükleyip form üzerine bırakarak arayüzü saniyeler içinde tasarlayabilirler. Bu durum, kod yazma yükünü azaltarak hızlı prototipleme imkanı sunar.
Soru 2
Dokümanı yazıcıya göndermek için aşağıda verilen kontrollerden hangisi kullanılır?
CDoğru cevap
Açıklama
.NET WinForms içerisinde yazdırma işleminin kalbi “PrintDocument” bileşenidir. Diğer diyalog pencereleri (yazıcı seçimi, sayfa ayarı veya önizleme) sadece kullanıcıyla etkileşime girmek için kullanılırken, verinin yazıcıya nasıl aktarılacağını, hangi sayfada neyin görüneceğini (PrintPage olayı üzerinden) belirleyen ve yazdırma komutunu asıl yürüten yapı PrintDocument’tir.
Soru 3
Formu satır ve sütun halinde çerçevelere bölen ve her hücre içerisine yalnızca tek bir kontrol eklenmesine izin veren form kontrolü aşağıdakilerden hangisidir?
DDoğru cevap
Açıklama
TableLayoutPanel, form üzerindeki yerleşimi satır ve sütunlardan oluşan bir ızgara yapısına böler. Bu kontrolün en karakteristik özelliği, her hücrenin sadece tek bir çocuk nesne (kontrol) barındırabilmesidir. Eğer bir hücreye birden fazla öğe eklemek isterseniz, önce o hücreye bir “Panel” yerleştirip diğer öğeleri o panelin içine koymanız gerekir. Bu yapı, formun boyutu değiştiğinde içerideki öğelerin orantılı bir şekilde genişleyip daralmasını sağlar.
Soru 4
string x = comboBox1.Items[comboBox1.Sele
ctedIndex].ToString();
Yukarıdaki kod satırının işlevi aşağıdaki hangi seçenekte verilmiştir?
BDoğru cevap
Açıklama
Bu kod satırı üç aşamada sonuç üretir: İlk olarak `comboBox1.SelectedIndex` ile kullanıcının seçtiği elemanın listedeki sıra numarası bulunur. Daha sonra bu numara `Items[]` dizisine gönderilerek o sıradaki nesneye ulaşılır. Son olarak `.ToString()` metodu ile bu nesnenin taşıdığı metin verisi (değer) alınarak “x” değişkenine aktarılır. Yani sonuç olarak kullanıcının listeden seçtiği metin elde edilir.
Soru 5
Formun başlangıçta işletim sisteminin varsayılan konumunda açılması için formun StartPosition özelliğine aşağıdaki hangi değer verilmelidir?
BDoğru cevap
Açıklama
StartPosition özelliği, formun çalışma anında ekranın neresinde belireceğini belirler. `CenterScreen` ekran ortasını, `Manual` tasarım anındaki koordinatları kullanır. `WindowsDefaultLocation` seçeneği ise formun nerede açılacağı kararını tamamen Windows işletim sistemine bırakır; sistem, o anki ekran durumuna göre formu uygun bir konuma yerleştirir.
Soru 6
Klavye olaylarının çalışma sıralaması aşağıdaki hangi seçenekte doğru olarak belirtilmiştir?
DDoğru cevap
Açıklama
Windows uygulamalarında klavye etkileşimi üç adımlı bir döngüden oluşur. Tuşa basıldığı ilk an `KeyDown` olayı tetiklenir. Tuş basılı kalmaya devam edip bir karakter ürettiğinde (harf veya rakam gibi) `KeyPress` olayı devreye girer. Kullanıcı parmağını tuştan çektiği anda ise son olarak `KeyUp` olayı gerçekleşir. Kontrol mantığı genellikle bu hiyerarşi üzerinden kurulur.
Soru 7
‘partial’ anahtar kelimesinin işlevi aşağıdaki şıkların hangisinde doğru olarak belirtilmiştir?
CDoğru cevap
Açıklama
`partial` anahtar kelimesi C# dilinde bir sınıfın tanımının fiziksel olarak farklı dosyalara bölünmesine izin verir. Görsel programlamada bu çok önemlidir; çünkü Visual Studio tasarımcısının otomatik oluşturduğu kodlar (Form1.Designer.cs) ile yazılımcının yazdığı kodlar (Form1.cs) bu sayede birbirinden ayrılır ama derleme aşamasında tek bir bütün olarak birleşir.
Soru 8
Formun kullandığı sistem kaynaklarını serbest bırakmak için kullanılan metod aşağıdaki hangi seçenekte doğru verilmiştir?
DDoğru cevap
Açıklama
C# ve .NET dünyasında bellek yönetimi (Garbage Collection) olsa da, form gibi ağır nesnelerin kullandığı sistem kaynaklarını (grafik motorları, dosya tutamaçları vb.) derhal sisteme iade etmek için `Dispose()` metodu kullanılır. `Close()` sadece formu kapatırken, `Dispose()` nesneyi tamamen yok ederek kaynak sızıntısını önler.
Soru 9
Form kontrolleri (elemanları) Visual Studio editöründe aşağıdaki hangi panel, pencere veya ekranda listelenir?
BDoğru cevap
Açıklama
Görsel programlama yaparken forma eklenecek olan tüm bileşenler (Buton, Yazı Kutusu, Liste vb.) “Araç Kutusu” (Toolbox) panelinde gruplandırılmış şekilde listelenir. Geliştirici bu panelden istediği kontrolü seçerek Tasarımcı Ekranına sürükler. Özellikler penceresi ise seçili olan kontrolün ayarlarını (renk, yazı tipi vb.) yapmak için kullanılır.
Soru 10
İletişim Kutuları sekmesinde yer alan kontrol pencerelerini görüntülemek için aşağıdaki metodlardan hangisi kullanılır?
ADoğru cevap
Açıklama
Dosya açma, kaydetme veya renk seçme gibi standart “İletişim Kutuları”nı (Dialog Box) ekrana getirmek için `ShowDialog()` metodu çağrılır. Bu metodun en önemli özelliği, açılan pencere kapatılana kadar ana formun kod akışını bekletmesidir (modal yapı). Bu sayede kullanıcının seçim yapması zorunlu kılınır.
Soru 11
Konsol ara yüzü ve grafiksel kullanıcı ara yüzü ile ilgili aşağıda verilenlerden hangisi yanlıştır?
BDoğru cevap
Açıklama
Konsol arayüzleri (CLI) tamamen metin tabanlıdır. Burada buton, sürükle-bırak veya gelişmiş fare tıklaması gibi görsel öğeler bulunmaz; etkileşim klavyeden yazılan komutlarla sınırlıdır. Görsel form elemanları ve zengin etkileşim türleri Grafiksel Kullanıcı Arayüzü’nün (GUI) sunduğu temel avantajlardır.
Soru 12
Aşağıdaki kontrollerden hangisi menü ve araç çubuklarının yerleşimi için formu üst, alt, sağ ve sol panellere böler?
DDoğru cevap
Açıklama
ToolStripContainer, formun dört kenarında (üst, alt, sağ, sol) özel yerleşim alanları oluşturan gelişmiş bir kapsayıcıdır. Özellikle kullanıcıya menüleri veya araç çubuklarını sürükleyip istediği kenara yerleştirme imkanı veren uygulamalarda temel iskeleti oluşturur. İçindeki “ContentPanel” ise formun asıl içeriğinin bulunduğu alanı temsil eder.
Soru 13
StatusStrip kontrolünde aşağıdaki bileşenlerden hangisi bulunamaz?
CDoğru cevap
Açıklama
StatusStrip, formun en altında yer alan ve kullanıcıya bilgi mesajları veya işlem ilerlemesi gösteren bir “durum çubuğu”dur. Bu çubuğun içine metin (Label), ilerleme çubuğu (ProgressBar) veya küçük butonlar eklenebilir. Ancak doğrudan kullanıcıdan veri girişi almak için tasarlanmış olan TextBox, durum çubuğunun standart bileşenleri arasında yer almaz.
Soru 14
Formda Enter tuşuna basıldığında çalıştırılacak butonun ayarlandığı Form özelliği aşağıdaki şıkların hangisinde doğru olarak belirtilmiştir?
ADoğru cevap
Açıklama
Formun `AcceptButton` özelliğine bir buton (örneğin Kaydet butonu) atandığında, kullanıcı klavyeden Enter tuşuna bastığı anda sistem o butona tıklanmış gibi davranır. Bu, özellikle veri giriş formlarında hızı artırmak için kullanılan bir kullanıcı deneyimi (UX) standardıdır. Benzer şekilde ESC tuşu için de `CancelButton` özelliği kullanılır.
Soru 15
Aşağıdaki kontrollerden hangisi kullanıcının açılır listeden tek bir seçim yapması için kullanılır?
ADoğru cevap
Açıklama
ComboBox, kullanıcıya bir liste sunar ve bu listeden yalnızca tek bir öğenin seçilmesine izin verir. Kapalıyken tek satır yer kaplar, tıklandığında liste aşağı doğru açılır. `ListBox` da tek seçim yaptırabilir ancak liste hep açıktır. `CheckedListBox` ve `CheckBox` birden fazla seçime imkan tanırken, `RadioButton` grup içinde tek seçime zorlar ama liste formatında değildir.
Soru 16
TextBox kontrolünde içeriği varsayılan değere döndürmek için aşağıda verilen metodlardan hangisi kullanılır?
ADoğru cevap
Açıklama
`ResetText()` metodu, ilgili görsel kontrolün `Text` özelliğini (içeriğini) tasarım anında belirlenmiş olan ilk değerine geri döndürür. `Clear()` metodu metni tamamen silip boş bırakırken, `ResetText()` varsa varsayılan metni geri getirir. `DeselectAll()` ise seçili olan (mavi vurgulu) metin bloğunu serbest bırakır.
Soru 17
Aşağıda verilen olaylardan hangisi formun düzeni değiştiğinde tetiklenir?
EDoğru cevap
Açıklama
`Layout` olayı, formun içindeki hiyerarşik yapı değiştiğinde tetiklenir. Örneğin forma çalışma anında yeni bir buton eklendiğinde veya bir kontrolün boyutu formun düzenini (yerleşimini) etkileyecek şekilde değiştiğinde bu olay devreye girer. `Resize` sadece formun dış çerçeve boyutları değiştiğinde çalışır.
Soru 18
Görsel Programlama 2024-2025 Vize Soruları 18. SORU
Yukarıda verilen Bul butonun tıklanma koduna göre yukarıdaki resimde Keman, Gitar ve Piyano seçildiğinde mesaj penceresinde gözükecek çıktı aşağıdakilerden hangisidir? (CheckBox kontrolleri yukarıdan aşağıya sırayla isimlenmiştir.)
EDoğru cevap
Açıklama
Soruda verilen koda ve seçili enstrümanlara göre (Keman, Gitar, Piyano); program yukarıdan aşağıya `else if` bloklarını kontrol eder. Kod satırı “Keman (2) ve Gitar (3) seçiliyse $” sembolünü göster diyen şartla karşılaştığında (2 && 3) doğru sonucu bulur ve ekrana `$` basar. `else if` yapısı nedeniyle sonraki şartlara (Piyano seçimi gibi) bakılmaz.
Soru 19
Form1 isimli formun görsel kontrolleriyle ilgili kodlar aşağıdaki hangi kaynak kod dosyasına kaydedilir?
EDoğru cevap
Açıklama
WinForms projelerinde tasarım ekranında yapılan tüm işlemler (buton yerleştirme, renk değiştirme vb.) arka planda C# kodlarına dönüştürülür. Bu otomatik üretilen kodların saklandığı özel dosyaya `Designer.cs` denir. Geliştirici ise sadece `Form1.cs` dosyasındaki olay (event) kodlarıyla uğraşır. `.sln` ve `.csproj` dosyaları proje ve çözüm yapılandırma dosyalarıdır.
Soru 20
ListBox kontrolünün değerleri içinde belirli bir indisteki elemanı koleksiyondan silmek için aşağıda verilen metodlardan hangisi kullanılır?
EDoğru cevap
Açıklama
ListBox üzerindeki elemanları yönetmek için `Items` koleksiyonu kullanılır. `Remove()` metodu silinecek elemanın metnini veya nesnesini isterken, `RemoveAt()` metodu doğrudan silinmek istenen elemanın listedeki numarasını (indisini) ister. Verimli ve kesin silme işlemleri için indis tabanlı `RemoveAt()` metodu tercih edilir.