PHP Matematiksel Fonksiyonlar – Kullanımı ve Örnek Uygulamalar
PHP programlama dilinde sayılarla işlem yapmak için yalnızca toplama, çıkarma, çarpma ve bölme operatörlerini kullanmayız. PHP, matematiksel hesaplamaları daha kolay gerçekleştirebilmemiz için birçok hazır fonksiyon sunar.
Örneğin bir sayının mutlak değerini bulmak, ondalıklı sayıları yuvarlamak, rastgele sayı üretmek, bir sayının karekökünü hesaplamak veya birden fazla sayı arasından en büyük olanı belirlemek için PHP'nin matematiksel fonksiyonlarından yararlanabiliriz.
Bu dersimizde abs(), round(), ceil(), floor(), rand(), min(), max(), pow(), sqrt() ve diğer matematiksel fonksiyonların kullanımını örneklerle öğreneceğiz.
1. PHP'DE MATEMATİKSEL FONKSİYONLAR NEDİR?
Matematiksel fonksiyonlar, sayısal veriler üzerinde belirli hesaplamaları gerçekleştiren hazır PHP fonksiyonlarıdır.
Bu fonksiyonlar sayesinde karmaşık matematiksel işlemleri uzun kodlar yazmadan gerçekleştirebiliriz.
Örneğin bir sayının karekökünü hesaplamak için sqrt() fonksiyonunu kullanabiliriz.
<?php
$sayi = 81;
$sonuc = sqrt($sayi);
echo $sonuc;
?>
Ekran Çıktısı: 9
Bu örnekte sqrt() fonksiyonu 81 sayısının karekökünü hesaplamıştır.
2. ABS() FONKSİYONU – MUTLAK DEĞER HESAPLAMA
abs() fonksiyonu, bir sayının mutlak değerini hesaplamak için kullanılır.
Mutlak değer, bir sayının sıfıra olan uzaklığıdır. Bu nedenle sonuç negatif olamaz.
<?php
echo abs(-25) . "<br>";
echo abs(15) . "<br>";
echo abs(-7.5);
?>
Ekran Çıktısı:
25
15
7.5
Görüldüğü gibi negatif sayılar pozitif değere dönüştürülürken pozitif sayılar değişmeden kalmaktadır.
3. ROUND() FONKSİYONU – SAYI YUVARLAMA
round() fonksiyonu, ondalıklı sayıları belirli bir basamağa yuvarlamak için kullanılır.
Genel kullanım şekli:
<?php
round(sayi, basamak);
?>
Burada sayı yuvarlanacak değeri, basamak ise virgülden sonra kaç basamak korunacağını belirtir.
<?php
echo round(12.4) . "<br>";
echo round(12.7) . "<br>";
echo round(15.678, 2) . "<br>";
echo round(8.345, 1);
?>
Ekran Çıktısı:
12
13
15.68
8.3
round() fonksiyonu özellikle not ortalamaları, ölçüm sonuçları ve çeşitli sayısal hesaplamalarda kullanılabilir.
4. CEIL() FONKSİYONU – YUKARI YUVARLAMA
ceil() fonksiyonu, verilen sayıyı kendisinden küçük olmayan en yakın tam sayıya yuvarlar.
<?php
echo ceil(4.2) . "<br>";
echo ceil(7.9) . "<br>";
echo ceil(-3.8);
?>
Ekran Çıktısı:
5
8
-3
Örneğin 23 öğrencinin bulunduğu bir sınıfta, her grupta en fazla 5 öğrenci olacak şekilde grup oluşturmak istersek kaç gruba ihtiyacımız olduğunu ceil() ile hesaplayabiliriz.
<?php
$ogrenci = 23;
$grupKapasitesi = 5;
$grupSayisi = ceil($ogrenci / $grupKapasitesi);
echo "Gerekli grup sayısı: " . $grupSayisi;
?>
Ekran Çıktısı: Gerekli grup sayısı: 5
5. FLOOR() FONKSİYONU – AŞAĞI YUVARLAMA
floor() fonksiyonu, verilen sayıyı kendisinden büyük olmayan en yakın tam sayıya yuvarlar.
<?php
echo floor(4.9) . "<br>";
echo floor(7.2) . "<br>";
echo floor(-3.2);
?>
Ekran Çıktısı:
4
7
-4
floor() fonksiyonu özellikle tam olarak tamamlanmış grup veya birim sayısını hesaplamak için kullanılabilir.
ROUND(), CEIL() VE FLOOR() ARASINDAKİ FARKLAR
| Fonksiyon |
İşlem |
Örnek Sonuç |
| round(4.6) |
En yakın tam sayıya yuvarlar |
5 |
| ceil(4.2) |
Yukarı yuvarlar |
5 |
| floor(4.9) |
Aşağı yuvarlar |
4 |
6. RAND() FONKSİYONU – RASTGELE SAYI ÜRETME
rand() fonksiyonu, belirli bir aralıkta rastgele tam sayı üretmek için kullanılır.
Örneğin 1 ile 100 arasında rastgele bir sayı üretelim.
<?php
$sayi = rand(1, 100);
echo "Rastgele sayı: " . $sayi;
?>
Bu kod her çalıştırıldığında 1 ile 100 arasında farklı bir sayı üretebilir.
rand() fonksiyonu oyunlar, sayı tahmin uygulamaları ve basit rastgele seçim işlemlerinde kullanılabilir.
Not: Güvenlik açısından önemli rastgele değerler oluşturmak için rand() yerine random_int() kullanılmalıdır.
7. MIN() VE MAX() FONKSİYONLARI
min() fonksiyonu, verilen sayılar arasından en küçük olanı bulur.
max() fonksiyonu ise en büyük sayıyı bulmak için kullanılır.
<?php
echo min(15, 8, 42, 3, 27) . "<br>";
echo max(15, 8, 42, 3, 27);
?>
Ekran Çıktısı:
3
42
DİZİLERLE MIN() VE MAX() KULLANIMI
Bu fonksiyonlar sayısal diziler üzerinde de kullanılabilir.
<?php
$notlar = array(65, 80, 45, 95, 70);
echo "En düşük not: " . min($notlar) . "<br>";
echo "En yüksek not: " . max($notlar);
?>
Ekran Çıktısı:
En düşük not: 45
En yüksek not: 95
8. POW() FONKSİYONU – ÜS HESAPLAMA
pow() fonksiyonu, bir sayının belirli bir kuvvetini hesaplamak için kullanılır.
Örneğin 2 sayısının 3. kuvvetini hesaplayalım.
<?php
echo pow(2, 3) . "<br>";
echo pow(5, 2) . "<br>";
echo pow(10, 3);
?>
Ekran Çıktısı:
8
25
1000
pow() fonksiyonunun ilk parametresi taban sayısını, ikinci parametresi ise üs değerini belirtir.
PHP'de üs hesaplamak için ** operatörü de kullanılabilir.
<?php
echo 2 ** 3;
?>
Ekran Çıktısı: 8
9. SQRT() FONKSİYONU – KAREKÖK HESAPLAMA
sqrt() fonksiyonu, bir sayının karekökünü hesaplamak için kullanılır.
<?php
echo sqrt(64) . "<br>";
echo sqrt(144) . "<br>";
echo sqrt(25);
?>
Ekran Çıktısı:
8
12
5
Negatif bir sayının gerçek sayılarda karekökü bulunmadığından, sqrt() fonksiyonuna negatif değer verildiğinde NAN (Not a Number) sonucu oluşur.
10. FARKLI MATEMATİKSEL FONKSİYONLAR
PHP'de yukarıdaki fonksiyonların dışında da kullanabileceğimiz çeşitli matematiksel fonksiyonlar bulunmaktadır.
| Fonksiyon |
Açıklama |
| pi() |
Pi sayısının yaklaşık değerini verir. |
| fmod() |
Ondalıklı sayılarda bölme işleminin kalanını hesaplar. |
| intdiv() |
İki tam sayının bölümünü tam sayı olarak hesaplar. |
| is_nan() |
Bir değerin NAN olup olmadığını kontrol eder. |
| log() |
Doğal logaritma hesaplar. |
| sin() |
Sinüs değerini hesaplar. |
| cos() |
Kosinüs değerini hesaplar. |
| tan() |
Tanjant değerini hesaplar. |
Örneğin pi() fonksiyonuyla bir dairenin alanını hesaplayabiliriz.
<?php
$yaricap = 5;
$alan = pi() * pow($yaricap, 2);
echo "Dairenin alanı: " . round($alan, 2);
?>
Ekran Çıktısı: Dairenin alanı: 78.54
11. PHP MATEMATİKSEL FONKSİYONLAR UYGULAMALARI
Şimdi öğrendiğimiz fonksiyonları kullanarak farklı uygulamalar geliştirelim.
ÖRNEK 1: ÖĞRENCİ NOT ORTALAMASINI YUVARLAMA
Bu uygulamada öğrencinin üç sınav notunun aritmetik ortalamasını hesaplayıp iki ondalık basamağa yuvarlayacağız.
<?php
$not1 = 75;
$not2 = 82;
$not3 = 90;
$ortalama = ($not1 + $not2 + $not3) / 3;
echo "Not Ortalaması: " . round($ortalama, 2);
?>
Ekran Çıktısı: Not Ortalaması: 82.33
ÖRNEK 2: RASTGELE SAYI TAHMİN OYUNU
Bu uygulamada bilgisayar 1 ile 10 arasında rastgele bir sayı üretecek. Kullanıcının tahminiyle bu sayı karşılaştırılacak.
<?php
$tutulanSayi = rand(1, 10);
$tahmin = 5;
echo "Tutulan sayı: " . $tutulanSayi . "<br>";
echo "Tahmininiz: " . $tahmin . "<br>";
if ($tahmin == $tutulanSayi) {
echo "Tebrikler, doğru tahmin!";
} else {
echo "Yanlış tahmin ettiniz.";
}
?>
Burada kullanıcı tahmini örnek olması amacıyla 5 olarak belirlenmiştir. Daha sonra HTML formu kullanarak tahminin kullanıcıdan alınması sağlanabilir.
ÖRNEK 3: DİZİDEKİ EN BÜYÜK VE EN KÜÇÜK SAYIYI BULMA
Bu uygulamada bir dizide bulunan sayıların en büyüğünü ve en küçüğünü bulacağız.
<?php
$sayilar = array(12, 45, 8, 96, 23, 67);
$enBuyuk = max($sayilar);
$enKucuk = min($sayilar);
echo "En büyük sayı: " . $enBuyuk . "<br>";
echo "En küçük sayı: " . $enKucuk;
?>
Ekran Çıktısı:
En büyük sayı: 96
En küçük sayı: 8
ÖRNEK 4: KAREKÖK VE ÜS HESAPLAMA
Bu uygulamada belirlediğimiz bir sayının karesini, küpünü ve karekökünü hesaplayacağız.
<?php
$sayi = 16;
echo "Sayının karesi: " . pow($sayi, 2) . "<br>";
echo "Sayının küpü: " . pow($sayi, 3) . "<br>";
echo "Sayının karekökü: " . sqrt($sayi);
?>
Ekran Çıktısı:
Sayının karesi: 256
Sayının küpü: 4096
Sayının karekökü: 4
ÖRNEK 5: RASTGELE MATEMATİK SORUSU OLUŞTURMA
Bu uygulamada PHP ile iki rastgele sayı oluşturacağız. Ardından bu sayıların toplamını hesaplayarak bir matematik sorusu hazırlayacağız.
<?php
$sayi1 = rand(1, 20);
$sayi2 = rand(1, 20);
$dogruCevap = $sayi1 + $sayi2;
echo "Soru: " . $sayi1 . " + " . $sayi2 . " = ?";
echo "<br><br>";
echo "Doğru Cevap: " . $dogruCevap;
?>
Bu örnekte her sayfa yenilendiğinde farklı sayılar üretilerek yeni bir toplama sorusu oluşturulur.
Bu uygulama ileride HTML form elemanlarıyla geliştirilerek öğrencinin cevap verebildiği bir matematik testine dönüştürülebilir.
12. MATEMATİKSEL FONKSİYONLARDA DİKKAT EDİLMESİ GEREKENLER
- round(), ceil() ve floor() fonksiyonlarının farklı yuvarlama işlemleri gerçekleştirdiği unutulmamalıdır.
- Ondalıklı sayılar PHP kodlarında nokta kullanılarak yazılır.
- sqrt() fonksiyonuna negatif değer verilirse NAN sonucu oluşur.
- rand() fonksiyonu güvenlik amacıyla rastgele değer üretmek için uygun değildir.
- min() ve max() fonksiyonları sayısal dizilerle kullanılabilir.
- Matematiksel işlemlerde sıfıra bölme gibi hatalı durumlar kontrol edilmelidir.
- Ondalıklı sayılarda kayan nokta hassasiyetinden kaynaklanan küçük farklılıklar oluşabilir.
13. ÖĞRENCİLER İÇİN UYGULAMA SORULARI
Uygulama 1: Kullanıcının belirlediği ondalıklı bir sayıyı round(), ceil() ve floor() fonksiyonlarıyla yuvarlayarak sonuçları karşılaştırınız.
Uygulama 2: PHP ile 1 ile 100 arasında beş rastgele sayı oluşturunuz. Bu sayıların en büyüğünü ve en küçüğünü bulunuz.
Uygulama 3: Bir sayının karesini, küpünü ve karekökünü hesaplayan PHP uygulaması hazırlayınız.
Uygulama 4: Bir sınıftaki öğrenci sayısına göre her grupta en fazla dört öğrenci olacak şekilde kaç grup oluşturulması gerektiğini ceil() fonksiyonuyla hesaplayınız.
Uygulama 5: PHP ile iki rastgele sayı üretip çarpma işlemi sorusu oluşturan bir uygulama geliştiriniz.
14. SONUÇ
Bu dersimizde PHP programlama dilinde kullanılan temel matematiksel fonksiyonları öğrendik.
abs() ile mutlak değer hesapladık, round(), ceil() ve floor() ile yuvarlama işlemleri gerçekleştirdik. rand() ile rastgele sayılar oluşturduk, min() ve max() ile en küçük ve en büyük değerleri bulduk.
Ayrıca pow() ve sqrt() fonksiyonlarıyla üs ve karekök hesaplamaları yaparak öğrendiğimiz bilgileri örnek uygulamalar üzerinde kullandık.
PHP matematiksel fonksiyonları; hesaplama araçları, eğitim uygulamaları, oyunlar, istatistiksel işlemler ve birçok dinamik web uygulamasında kullanılmaktadır.
Örnek uygulamaları kendi bilgisayarınızda çalıştırarak farklı sayılarla denemeler yapabilir ve yeni matematiksel uygulamalar geliştirebilirsiniz.