PHP
Meydan okuma - Hesap makinesi
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
-
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.
-
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";
}
-
Operatörleri anlamlarına eşle
- +
- toplama
- -
- çıkarma
- *
- çarpma
- /
- bölme
Sıradaki ders: Meydan okuma - Güvenli geri bildirim formu