Menu
Coddy logo textTech

Tekrar - Şekil Hesaplayıcı

Coddy'nin PHP Journey'sinin Nesne Yönelimli Programlama bölümünün bir parçası. Ders 32 / 91.

challenge icon

Görev

Kolay

Esnek ve genişletilebilir kod oluşturmak için arayüzlerin gücünü gösteren bir şekil hesaplayıcı oluşturalım. Alanları hesaplamak için bir sözleşme tanımlayan bir arayüz oluşturacak, ardından bunu farklı şekil sınıflarında uygulayacaksınız.

Kodunuzu dört dosyaya ayıracaksınız:

  • Calculable.php: Tek bir metot imzasına sahip bir Calculable arayüzü tanımlayın: calculateArea(). Bu sözleşme, hesaplanabilir her şeklin alanını hesaplayabilmesini sağlar.
  • Rectangle.php: Calculable arayüzünü uygulayan bir Rectangle sınıfı oluşturun. Arayüz dosyasını dahil edin. Sınıfın, yapıcı aracılığıyla ayarlanan özel $width ve $height özellikleri olmalıdır. Alanı (genişlik çarpı yükseklik) döndürmek için calculateArea() metodunu uygulayın.
  • Circle.php: Aynı zamanda Calculable arayüzünü uygulayan bir Circle sınıfı oluşturun. Arayüz dosyasını dahil edin. Sınıfın, yapıcı aracılığıyla ayarlanan özel bir $radius özelliği olmalıdır. Alanı pi() * radius * radius formülünü kullanarak döndürmek için calculateArea() metodunu uygulayın.
  • main.php: Her iki şekil dosyasını da dahil edin. Bir Calculable parametresi ve bir şekil adı (string) kabul eden, displayArea adlı bir fonksiyon oluşturun. Fonksiyon, alanın number_format() kullanılarak 2 ondalık basamağa yuvarlandığı şu çıktıyı vermelidir: "[name] area: [area]".

Dört girdi alacaksınız: dikdörtgen genişliği, dikdörtgen yüksekliği, daire yarıçapı ve daire için bir şekil adı. Genişlik ve yükseklikle bir Rectangle oluşturun (float türüne dönüştürün) ve yarıçapla bir Circle oluşturun (float türüne dönüştürün). displayArea() fonksiyonunu iki kez çağırın: önce dikdörtgen için ad olarak "Rectangle" kullanın, ardından sağlanan şekil adıyla daireyi kullanın. Her sonucu kendi satırında yazdırın.

displayArea() fonksiyonu, Calculable arayüzünü uygulayan herhangi bir şekille çalışır. Bir dikdörtgenin, dairenin veya gelecekte ekleyebileceğiniz başka bir şeklin alanını hesaplayıp hesaplamadığını bilmesine gerek yoktur. Arayüze göre programlamanın güzelliği budur!

Kendin dene

<?php
// Şekil dosyalarını dahil et
require_once 'Rectangle.php';
require_once 'Circle.php';

// TODO: displayArea adında bir fonksiyon oluştur
// Calculable parametresi ve bir şekil adı (string) kabul etmeli
// Yazdır: "[name] area: [area]" burada area number_format() kullanılarak 2 ondalık basamağa yuvarlanır

// Girdileri oku
$width = floatval(trim(fgets(STDIN)));
$height = floatval(trim(fgets(STDIN)));
$radius = floatval(trim(fgets(STDIN)));
$circleName = trim(fgets(STDIN));

// TODO: width ve height ile bir Rectangle oluştur

// TODO: radius ile bir Circle oluştur

// TODO: displayArea() fonksiyonunu rectangle ile "Rectangle" adını kullanarak çağır

// TODO: displayArea() fonksiyonunu circle ile sağlanan şekil adını kullanarak çağır
?>

Nesne Yönelimli Programlama bölümündeki tüm dersler

Kendi başına pratik yap: Online PHP derleyicisi