Dart Programlama Dil Uygulama Sınavı Çalışma Soruları
Bu sınav çalışması, 11. Sınıf Mobil Uygulamalar dersi müfredatına uygun olarak, Pardus 25 işletim sistemi kurulum süreci üzerinden kurgulanmıştır. Sınav; Dart dilindeki tüm Nesne Yönelimli Programlama (OOP) prensiplerini ve temel programlama mantığını kapsamaktadır.
Sınav Konu Kapsamı
Değişkenler ve Operatörler
Null Safety (? ve ?? kullanımı)
Sınıf (Class) ve Nesne (Object) Yapısı
Kapsülleme (Encapsulation - Private, Getter, Setter)
Kalıtım (Inheritance - Extends, Super)
Çok Biçimlilik (Polymorphism - Override)
Soyutlama (Abstraction - Abstract Class)
Static ve Const Kullanımı
Kurucu Metotlar (Constructors)
[A GRUBU] Uygulama Sınav Soruları
Senaryo: "Okul Atölyelerindeki Bilgisayarlara Pardus 25 Kurulumu ve Donanım Takibi"
GÖREV 1: Statik Yapılar ve Sabitler (15 Puan)
KurulumYonetimi adında bir sınıf oluşturun.
İçerisinde
isletimSistemiadında, değeri"Pardus 25 - XFCE"olan bir static const değişken tanımlayın.İçerisinde
kurulanCihazSayisiadında bir static int değişken tanımlayın (Başlangıç değeri 0 olsun).
GÖREV 2: Soyutlama, Kapsülleme ve Final (25 Puan)
Donanim adında bir soyut sınıf (abstract class) oluşturun.
seriNo(String) adında, değeri sadece kurucuda atanabilen bir final özellik ekleyin._diskKapasitesi(int) adında private bir özellik tanımlayın.Bu özellik için bir Getter ve değerin 64'ten küçük olamayacağını (Pardus 25 minimum gereksinimi) kontrol eden bir Setter yazın.
Sınıf için
seriNove_diskKapasitesideğerlerini alan bir Constructor yazın.
GÖREV 3: Kalıtım ve Çok Biçimlilik (20 Puan)
AtolyePC adında bir sınıf oluşturun ve
Donanimsınıfından türetin.Kurucu metodunda
superkullanarak üst sınıfın değerlerini gönderin. Her yeni nesne oluşturulduğundaKurulumYonetimi.kurulanCihazSayisideğerini 1 artırın.Üst sınıftaki
void sistemiKur()soyut metodunu override ederek cihaz bilgilerini ekrana yazdırın.
GÖREV 4: Fonksiyonlar ve Null Safety (20 Puan)
maliyetHesapla adında bir fonksiyon yazın. Parametre olarak
adet(int) alsın. 10'dan fazla bilgisayar için adet başı 150 TL, azı için 250 TL döndürsün.mainiçindeteknisyenNotu(String?) adında bir değişken tanımlayın. ?? operatörü ile null ise "Açıklama Yok" yazdırın.
GÖREV 5: Nesne Oluşturma ve Kontrol (20 Puan)
mainiçinde birAtolyePCnesnesi üretin, setter ile disk değerini girin vesistemiKur()metodunu çağırın.If-Else ile; disk alanı 120'den büyükse "SSD Önerilir", değilse "HDD Yeterli" yazdırın.
[B GRUBU] Uygulama Sınav Soruları
Senaryo: "Pardus 25 Laboratuvar Kullanıcı ve Kota Yönetimi"
GÖREV 1: Statik Yapılar ve Sabitler (15 Puan)
LabAyarlari adında bir sınıf oluşturun.
İçerisinde
sunucuAdresiadında, değeri"192.168.1.25"olan bir static const değişken tanımlayın.İçerisinde
aktifOturumadında bir static int değişken tanımlayın (Başlangıç değeri 0 olsun).
GÖREV 2: Soyutlama, Kapsülleme ve Final (25 Puan)
Kullanici adında bir soyut sınıf (abstract class) oluşturun.
kullaniciId(String) adında, değeri sadece kurucuda atanabilen bir final özellik ekleyin._bulutKota(int) adında private bir özellik tanımlayın.Bu özellik için bir Getter ve değerin 1 ile 100 GB arasında olduğunu kontrol eden bir Setter yazın.
Sınıf için gerekli Constructor yapısını kurun.
GÖREV 3: Kalıtım ve Çok Biçimlilik (20 Puan)
Ogrenci adında bir sınıf oluşturun ve
Kullanicisınıfından türetin.Kurucu metodunda
superkullanarak üst sınıfı başlatın. Her yeni öğrenci nesnesindeLabAyarlari.aktifOturumdeğerini 1 artırın.Üst sınıftaki
void girisYap()soyut metodunu override ederek ID ve kota bilgilerini ekrana basın.
GÖREV 4: Fonksiyonlar ve Null Safety (20 Puan)
ekAlanUcreti adında bir fonksiyon yazın. Parametre olarak
ekle(int) alsın. GB başı 5 TL hesaplayıp döndürsün.mainiçindehataMesaji(String?) değişkenini ?? operatörü ile "Hata Yok" şeklinde yazdırın.
GÖREV 5: Nesne Oluşturma ve Kontrol (20 Puan)
mainiçinde birOgrencinesnesi üretin, setter ile kota değerini girin vegirisYap()metodunu çağırın.If-Else ile; kota 50'den büyükse "Premium Kullanıcı", değilse "Standart Kullanıcı" yazdırın.
[A GRUBU] Örnek Çözüm Kodu
static const String isletimSistemi = "Pardus 25 - XFCE";
static int kurulanCihazSayisi = 0;
}
abstract class Donanim {
final String seriNo;
int _diskKapasitesi;
Donanim(this.seriNo, this._diskKapasitesi);
int get diskKapasitesi => _diskKapasitesi;
set diskKapasitesi(int deger) {
if (deger >= 64) {
_diskKapasitesi = deger;
} else {
print("Hata: Pardus 25 için disk 64GB'dan az olamaz.");
}
}
void sistemiKur();
}
class AtolyePC extends Donanim {
AtolyePC(String sno, int disk) : super(sno, disk) {
KurulumYonetimi.kurulanCihazSayisi++;
}
@override
void sistemiKur() {
print("Sistem: ${KurulumYonetimi.isletimSistemi}");
print("Cihaz: $seriNo | Disk: $diskKapasitesi GB");
}
}
double maliyetHesapla(int adet) {
return (adet > 10) ? adet * 150.0 : adet * 250.0;
}
void main() {
String? teknisyenNotu;
print("Teknisyen Notu: ${teknisyenNotu ?? "Açıklama Yok"}");
var pc = AtolyePC("PRD-2026-001", 120);
pc.diskKapasitesi = 256;
pc.sistemiKur();
if (pc.diskKapasitesi > 120) {
print("Tavsiye: SSD Önerilir.");
} else {
print("Tavsiye: HDD Yeterli.");
}
print("Toplam Maliyet: ${maliyetHesapla(15)} TL");
print("Kurulan Toplam Cihaz: ${KurulumYonetimi.kurulanCihazSayisi}");
}
Değerlendirme Kriterleri (Puanlama Anahtarı)
| Kriter | Puan |
| Static & Const: Değişken ve sabitlerin doğru kullanımı | 15 |
| Encapsulation: Private değişken, Getter/Setter mantığı | 25 |
| Abstraction & Inheritance: Soyut sınıf ve miras alma | 25 |
| Polymorphism: Override işleminin doğru yapılması | 15 |
Null Safety & Logic: ?? operatörü ve If-Else kontrolü | 20 |
| TOPLAM | 100 |
Bu sınav, öğrencilerin teorik bilgilerini gerçek hayat senaryoları (Pardus 25 kurulumu gibi) ile birleştirmelerini hedefler. Sınavı uygularken öğrencilerin internet erişimi olmayan bir ortamda kod yazmaları tavsiye edilir.
Yorumlar
Yorum Gönder