İçeriğe geç

Kitaplar / Yöntem ile Programlamaya Giriş / Bölüm 11 — Birimler: programı parçalara bölmek

Bölüm 11 — Birimler: programı parçalara bölmek

Büyüyen bir programı tek dosyada tutmak zorlaşır. Birim, başka programların kullanabileceği bağımsız bir kod dosyasıdır. Bir birimin iki yüzü vardır: arayüz dışarıya ne sunduğunu, uygulama ise bunu nasıl yaptığını içerir.

Geometri.y dosyası şöyledir:

Yöntem
birim Geometri
{ Basit geometri hesapları }

arayüz                                  // dışarıya açılan adlar
  sabit BİRİM_ADI: metin = 'cm'
  fonksiyon DaireAlanı(r: ondalık): ondalık
  fonksiyon DikdörtgenAlanı(en, boy: ondalık): ondalık

uygulama                                // ayrıntılar burada gizli
  kullan Matematik

  değişken çağrıSayısı: tamsayı

  fonksiyon DaireAlanı(r: ondalık): ondalık
  başla
    çağrıSayısı += 1
    dön pi * Üs(r, 2)
  bitir

  fonksiyon DikdörtgenAlanı(en, boy: ondalık): ondalık
  başla
    çağrıSayısı += 1
    dön en * boy
  bitir

başla                                   // birim ilk yüklendiğinde çalışır
  çağrıSayısı := 0
  yaz('[Geometri birimi yüklendi]', 1)
bitir.

Aynı klasördeki ana.y dosyası ise şöyledir:

Yöntem
program AlanHesabı
kullan Geometri
başla
  yaz(Biçimle('Daire (r=2)      : {:.2} {}²', DaireAlanı(2), BİRİM_ADI), 1)
  yaz(Biçimle('Dikdörtgen (3x4) : {:.2} {}²', Geometri.DikdörtgenAlanı(3, 4), BİRİM_ADI), 1)
  yaz(Geometri.çağrıSayısı, 1)
bitir.
Çıktı
[Geometri birimi yüklendi]
Daire (r=2)      : 12.57 cm²
Dikdörtgen (3x4) : 12.00 cm²
Çalışma hatası [ana.y, satır 6] 'Geometri' biriminde 'cagrisayisi' dışa aktarılmamış

Son satırdaki hata bilerek bırakıldı: çağrıSayısı yalnızca uygulama bölümünde tanımlıdır; bu yüzden dışarıdan görünmez. Birimler iç ayrıntıları böyle korur.

Yöntem’le birlikte gelen hazır birimler şunlardır:

Birim İçerik
Matematik Sin, Cos, Ln, Üs, Taban, Tavan, Faktöriyel, pi, e…
Sistem Zaman, Tarih, DosyaOku, DosyaYaz, Argümanlar…
Veri CSVOku, CSVYaz, JSONÇöz, JSONYap, Standartlaştır…
İstatistik Ortalama, Medyan, StandartSapma, Korelasyon…
YZ Tensörler, otomatik türev, sinir ağları (Bölüm 12–13)
Arama, Uzman, Dil, MakineÖğrenmesi Klasik yapay zekâ (Bölüm 14)
Kuantum, KuantumAlgoritmaları Kuantum programlama (Bölüm 15)

Alıştırmalar

  1. Dikdörtgen adında bir sınıf yazınız: en, boy alanları, Alan ve Çevre metodları olsun. Ondan türeyen ve kurucusu tek kenar alan Kare sınıfını miras ile yazınız.
  2. Hesap sınıfına, her işlemi bir listeye kaydeden ve Geçmiş metoduyla bu listeyi döndüren bir özellik ekleyiniz.
  3. Alıştırma 1’deki sınıfları Şekiller adında bir birime taşıyınız ve başka bir programdan kullanınız.