CodeBlanks Logo Icon CodeBlanks

Meydan okuma - Hesap makinesi

PHP kursu · Başlangıç · Ders 112/116

Fonksiyon, döngü ve koşullarla gelişmiş bir hesap makinesi yazarsın.

Meydan okuma - Hesap makinesi

Bu meydan okumada tipleri belirtilmiş parametrelerle bir hesap makinesi fonksiyonu yazacaksın. calculate(float $a, float $b, string $op) imzasını kullanacaksın; dört işlemi if/elseif zinciriyle seçeceksin.

Bölme durumunda sıfıra bölme hatasını denetlemelisin: eğer $b sıfırsa bir hata dizesi döndür. Geçersiz operatörde de hata mesajı ver. Bu, başlangıç seviyesindeki fonksiyon, koşul ve doğrulama bilgini bir araya getirir.

Uygulama Hesap makinesi fonksiyonunu yaz

calculate(float $a, float $b, string $op): float|string fonksiyonunu tanımla. if/elseif ile +, -, *, / işlemlerini seç. Bölmede $b == 0 ise "Hata: sıfıra bölme" döndür. Bilinmeyen operatörde "Hata: bilinmeyen işlem" döndür. Sonra echo calculate(10, 5, "+") . "\n"; ve echo calculate(10, 0, "/") . "\n"; satırlarını ekle.

Örnek çözümü göster
İmzayı float $a, float $b, string $op olarak yaz; if/elseif ile +, -, *, / dallarını seç; bölmede $b == 0 denetimini unutma.
Örnek çözüm:
<?php
// calculate fonksiyonunu yaz ve çağır
function calculate(float $a, float $b, string $op): float|string {
    if ($op === "+") {
        return $a + $b;
    } elseif ($op === "-") {
        return $a - $b;
    } elseif ($op === "*") {
        return $a * $b;
    } elseif ($op === "/") {
        if ($b == 0) {
            return "Hata: sıfıra bölme";
        }
        return $a / $b;
    }
    return "Hata: bilinmeyen işlem";
}

echo calculate(10, 5, "+") . "\n";
echo calculate(10, 0, "/") . "\n";

Kendini test et

  1. calculate(10, 0, "/") ne döndürmeli?

    • 0
    • Hata: sıfıra bölme
    • 10
    • Infinity
    Cevabı göster

    Hata: sıfıra bölme — Doğru. $b sıfır olduğunda fonksiyon hata dizesi döndürür; sayısal sonuç değil.

  2. Bölme dalını tamamla

    function calculate(float $a, float $b, string $op): float|string {
        if ($op === "+") { return $a + $b; }
        if ($op === "-") { return $a - $b; }
        if ($op === "*") { return $a * $b; }
        ____ ($op === "/") {
            if ($b == 0) { return "Hata: sıfıra bölme"; }
            return $a / $b;
        }
        return "Hata: bilinmeyen işlem";
    }
    Cevabı göster
    function calculate(float $a, float $b, string $op): float|string {
        if ($op === "+") { return $a + $b; }
        if ($op === "-") { return $a - $b; }
        if ($op === "*") { return $a * $b; }
        elseif ($op === "/") {
            if ($b == 0) { return "Hata: sıfıra bölme"; }
            return $a / $b;
        }
        return "Hata: bilinmeyen işlem";
    }
  3. Operatörleri anlamlarına eşle

    +
    toplama
    -
    çıkarma
    *
    çarpma
    /
    bölme

Başlangıç bölümündeki tüm dersler