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)

  1. KurulumYonetimi adında bir sınıf oluşturun.

  2. İçerisinde isletimSistemi adında, değeri "Pardus 25 - XFCE" olan bir static const değişken tanımlayın.

  3. İçerisinde kurulanCihazSayisi adı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)

  1. Donanim adında bir soyut sınıf (abstract class) oluşturun.

  2. seriNo (String) adında, değeri sadece kurucuda atanabilen bir final özellik ekleyin.

  3. _diskKapasitesi (int) adında private bir özellik tanımlayın.

  4. 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.

  5. Sınıf için seriNo ve _diskKapasitesi değerlerini alan bir Constructor yazın.

GÖREV 3: Kalıtım ve Çok Biçimlilik (20 Puan)

  1. AtolyePC adında bir sınıf oluşturun ve Donanim sınıfından türetin.

  2. Kurucu metodunda super kullanarak üst sınıfın değerlerini gönderin. Her yeni nesne oluşturulduğunda KurulumYonetimi.kurulanCihazSayisi değerini 1 artırın.

  3. Ü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)

  1. 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.

  2. main içinde teknisyenNotu (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)

  1. main içinde bir AtolyePC nesnesi üretin, setter ile disk değerini girin ve sistemiKur() metodunu çağırın.

  2. 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)

  1. LabAyarlari adında bir sınıf oluşturun.

  2. İçerisinde sunucuAdresi adında, değeri "192.168.1.25" olan bir static const değişken tanımlayın.

  3. İçerisinde aktifOturum adı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)

  1. Kullanici adında bir soyut sınıf (abstract class) oluşturun.

  2. kullaniciId (String) adında, değeri sadece kurucuda atanabilen bir final özellik ekleyin.

  3. _bulutKota (int) adında private bir özellik tanımlayın.

  4. Bu özellik için bir Getter ve değerin 1 ile 100 GB arasında olduğunu kontrol eden bir Setter yazın.

  5. Sınıf için gerekli Constructor yapısını kurun.

GÖREV 3: Kalıtım ve Çok Biçimlilik (20 Puan)

  1. Ogrenci adında bir sınıf oluşturun ve Kullanici sınıfından türetin.

  2. Kurucu metodunda super kullanarak üst sınıfı başlatın. Her yeni öğrenci nesnesinde LabAyarlari.aktifOturum değerini 1 artırın.

  3. Ü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)

  1. ekAlanUcreti adında bir fonksiyon yazın. Parametre olarak ekle (int) alsın. GB başı 5 TL hesaplayıp döndürsün.

  2. main içinde hataMesaji (String?) değişkenini ?? operatörü ile "Hata Yok" şeklinde yazdırın.

GÖREV 5: Nesne Oluşturma ve Kontrol (20 Puan)

  1. main içinde bir Ogrenci nesnesi üretin, setter ile kota değerini girin ve girisYap() metodunu çağırın.

  2. 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

Dart:

class KurulumYonetimi {
  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ı)

KriterPuan
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 alma25
Polymorphism: Override işleminin doğru yapılması15
Null Safety & Logic: ?? operatörü ve If-Else kontrolü20
TOPLAM100

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

Bu blogdaki popüler yayınlar

Pardus ETAP 23 İçin Flutter ile Dijital "Öğrenci Seçici" Uygulaması

Uygulama: Pardus Logosunu Göster

Pardus ETAP 23 İçin Flutter ile Sanal Laboratuvar