Kayıt: Jul 20, 2002 Mesajlar: 3836 Konum: Balıkesir
Tarih: 2007-07-29, 17:28:14 Mesaj konusu: DERS-4: Matematik ve mantık işlemleri
Bir başlangıç yaptım, yazım kurallarına değindim, değişkenleri anlattım. Adım adım ön bilgileri vermeye devam ediyorum. Şimdi ki konumuz çok fazla ayrıntılı değil ancak bu da ilerde yazacağımız kodlar için ön bilgi niteliğinde. İyi anlamaya çalışın.
VERİ TÜRLERİ
PHP açısından altı tür değer vardır. Bunlar;
Integer : 52364, 1,301 gibi.
Double : 3,59 gibi
String : Netopsiyon gibi.
Boolean: true / false gibi.
Object ve Array.
Veri türlerini bilmek neden önemli derseniz PHP ile toplama yada çıkarma yaparken anlarsınız diyeceğim. Çünkü siz PHP 'ye 2 ile 3'ü topla dersiniz ama sonucu 5 göstereceği yerde 23 olarak gösterirse neden bahsettiğimi anlarsınız.
Değişkenlere atadığımız verinin türünü genelde biliriz. Ama çok satırlı bir program yazacaksak değişkenlere atadığımız verinin türünü unutabiliriz. Bu da ilerde istemediğimiz sonuçlara yol açar. Örneğin bir yerde $a değişkeni tanımlar ve değer olarak sayısal 123 değerini verebiliriz. Daha sonra $b değişkenini tanımlar ve değer olarak 456 değerini verebiliriz. Bu tanımlamayı bir fonksiyonda yapıp sonuçta bir toplama işlemi yaptırabiliriz. Ancak başka bir fonksiyonda yine $a ve $b değişkenlerini tanımlayıp bu defa değer olarak sayı değilde string atayabiliriz. Burada toplama yaptırabiliriz ama sayılarda olduğu gibi bir toplam değil de birleştirme için yaparız. Buna şöyle bir örnek vereyim. $a değeri "Ali" ve $b değeri ise "Osman" olsun. Burada değişkenlere atadığımız verinin türü string'tir. Burada bir toplama işlemi yaparak ortaya Ali Osman yazısını çıkartabiliriz. Yani anlayacağınız üzere verinin türü çok önemli oluyor. Bu konuyu ilerde yapacağımız uygulamalara kadar burada bırakıyorum. Uygulamalarda veri türünü ne kadar önemli olduğunu anlayacaksınız.
MANTIKSAL VE MATEMATİK İŞLEMLERİ
Matematik:
Alıntı:
+ (Toplama),
- (çıkartma),
/ (Bölme),
* (Çarpma) ve biraz ileri düzey bir işlem
% (Modules).
Şimdi hemen bir toplama işlemi yapan basit bir şey yazalım.
Kod:
$a=2;
$b=1;
echo "$a+$b";
Mantık İşlemleri ise şunlar:
Alıntı:
= = eşitse,
!= eşit değilse,
= = = aynı ise, (Daha kullanmadım )
> büyükse,
< küçükse,
<= küçükse veya eşitse,
>= büyükse veya eşitse.
Ayrıca;
|| veya; or veya;
&& ve; and ve;
Xor özel veya;
! değil.
Şimdi de bir örnek yapalım ve konuyu tamamlayalım.
Örnek olarak hemen aklıma üniversitede uğraştığımız ve hesaplama yapmaktan insanı canından bezdiren ders geçiş sistemi geldi. Şimdi ben şöyle bir örnek veriyorum. Diyelim ki, dersten geçiş sınavları iki vize ve bir final şeklinde olsun. Dersten geçmek için ise; vize ortalamasının yüzde 30'u ile final notunun yüzde 70 nin toplamı 50 den büyük olmalı ve final notununda en 50 olması şartı olsun. Buna göre dersten geçip geçmediğinizi bir programla hesaplatalım. Programı tamamen yazıyorum.
Kod:
<?PHP
// önce notların değişkenlerini tanımlayalım.
$vize1=10;
$vize2=10;
$final=100;
// Şimdi de işlemleri yapalım.
$vize_ortalama=($vize1 + $vize2)/2;
$yuzde30=$vize_ortalama/100*30;
$yuzde70=$final/100*70;
$toplam=$yuzde30+$yuzde70;
Kodda şu ana kadar öğrendiğiniz herşeyi kullanmaya çalıştım. Bu arada bir sonraki derste anlatacağım şart işlemlerine de basit bir giriş yaptım. Bu kod daha basit ve kısa olabilirdi. Ancak amacım sizlere daha önceki derslere de gönderme yapmak ve yazıları pekiştirmekti. Siz bu kodda vize ve final notlarını değiştirin ve sonucu gözlemleyin.
Bu konu o kadar zor bir konu değil. Bu nedenle üzerinde fazla durmadım.
Konuya bazı fonksiyonlar ile devam ediyorum.
Mutlak Değer Fonksiyonu: abs()
Kod:
<?PHP
echo abs(-10);
?>
Anlamı şu şekilde. Eğer matematik dersine öcü gibi bakmadınızsa |-10| =10 ifadesine karşılık gelir. Bir örnek daha;
Kod:
<?PHP
echo abs(10/25-47);
?>
Yuvarlama Fonksiyonları: floor(), ceil(), round()
floor: Bir bölme yada çarpma işleminde çıkan sonucu aşağıya doğru yuvarlar ve öyle gösterir.
ÖRNEK:
Kod:
echo floor(100/26); //Ekrana kaç yazdırır söyleyin bakalım?
ceil(): Bu komut ise floor komutunun tam tersini yapar. Yani bir üste yuvarlar.
ÖRNEK:
Kod:
echo ceil(100/26); //Sizce ekrana bu defa kaç yazacak?
round(): Bir işlemden çıkan ondalıklı sonuçlar; 0,5 ve üzeri bir rakamsa bir üst rakama, eğer 0,5 dahil değilse bir alttaki sayıya yuvarlar. //Kabul tam cümle olmadı
En büyük ve en küçük Fonksiyonları: max() ve min()
Dizi değişkenlerde (array) kayıtlı bilgilerden en büyük değeri ve en küçük değeri bulmak için kullanırız.
ÖRNEK:
Kod:
$sayilar=array(
a=>50,
b=>120,
c=>42,
d=>1,
e=>51,
f=>17
);
echo “En Büyük Değer:”.max($sayilar);
echo “<br>”;
echo “En Küçük Değer:”.min($sayilar);
Örnekte yer alan array için henüz *YASAK KELİME** etmeyin. İleriki konularda bunu detaylıca anlatacağım.
Aklıma gelenler şimdilik bunlar. Sormak istediğiniz matematik fonksiyonu olursa sorabilirsiniz. Daha çok varda en çok ben bunları kullanıyorum. Sinüs, consinüs, logaritma,üstsel ifadeler,sayı sistemleri dönüştüren fonksiyonlar.. Bunlara isterseniz yer vereyim.
ÖNEMLİ: PHP ‘de matematiksel işlem yaparken ondalık rakam kullanacağınızda ondalığı ayırmak için nokta (.) işaretini kullanmalısınız. Nokta yerine virgül kullanırsanız hata verecektir. Yani 0.5 doğru yazım şekli, buna rağmen 0,5 hatalı yazım şeklidir.
Kayıt: Jul 20, 2002 Mesajlar: 3836 Konum: Balıkesir
Tarih: 2007-07-29, 19:33:47 Mesaj konusu:
Bu anlattığım şeyler bu kadar basit konular değil. Ben sizler sıkılmayın diyerek basite indirgemeye çalışıyorum. Konunun karmaşıklığını önlemek içinse yeri geldiğinde atılan diğer mesajlara müdahale ediyorum.
Örneğin matematiksel yada mantıksal işlemler bu kadar basit konular değil. Bunun daha ileri seviyesi de var. Ancak bunların şimdi sırası değil. Herşey zamanla gelişecek.
Eğer SQL ile işlem yapmak, gelişmiş uygulamalar yapmak istiyorsanız bu ilk konuları çok iyi öğrenin. Çünkü eskiye dönüş olmayacak. Eski konulardan bir işlem kod yazacağım zaman yazıp geçecem, ne olduğunu yazmayacam ve sizler neden bu şekilde yazdın diye soracaksınız! Cevap olarak ben de sizi bu ilk konulara göndereceğim.
Tarih: 2007-07-30, 14:23:00 Mesaj konusu: Re: DERS-4: Matematik ve mantık işlemleri
zor olan aslında birşey yok bu fonksiyonlar yuvarlama fonksiyonlarıdır örneğin tek yan hanesi kalan bölme işlemlerinde bu fonksyonlar sayıyı yuvarlamaya yarar örnek verelim
varsayalım veritabanınızda 35 üyeniz var ve üye listesi yaparken her sayfada 10 üye görünsün istiyorsunuz ama limit belirlerken 10 arlı listeleme yapacadız fakat lsteleme yapmak için 35 üyey önce 10 a bölmemiz lazım
35 / 10 = 3.5 olarak cıkaar karşımıza burada 3.5 sayısını döngüye koyamazyız aşağıda size bir örnek kodlama göstereyim
bu dosyayı test.php diye kaydedip localhostunuzda çağırın
Kod:
<?php
$uyeler = array("Aliosman","Turkekip","emrahkaya","mavisce","yeniuye","baskaüye","sonrakiuye","sonuye"); // uyeler diye bir dizi değişken oluşturduk
$toplamuye = count($uyeler); // üyeler dizisindeki toplam üye sayısını aldık
$bolme = $toplamuye / "3"; // toplam üye 7 kişi ama bunu 3 böldüğümüzde ekrana 2.66666666667 gibi bir sonuc verecektir
echo $bolme."<br>"; // sonucu 2.66666666667 olarak görürsünüz
echo floor($bolme)."<br>"; // 2.66666666667 sonucunu aşağıya yuvarlar ve sonucu 2 yapar
echo ceil($bolme)."<br>"; // 2.66666666667 sonucunu yukarıya yuvarlar ve sonucu 3 yapar
echo round($bolme)."<br>"; // 2.66666666667 sonucunu yukarıya yuvarlar ve sonucu 3 yapar
Başka bir blokta kullanmak için o değişkeni yine o blokta kullanman lazım. Yani değişkeni oluşturan komutları o blokta da kullanmalısın. Bir blok içeriği diğer blok içeriğini etkilemez.
Yeni blokta da bu değişkeni oluşturan komutları kullandın diyelim. O zaman yeni blokta
$content .=$who_online_now; şeklinde değişken içeriğini blokta gösterebilirsin.
Tarih: 2007-08-08, 12:28:24 Mesaj konusu: Re: DERS-4: Matematik ve mantık işlemleri
Aliosman arkadasımızın dediği gibi değişken nerede tanımlanmışsa orada kullanabilirsin
ancak bir değişkeni sitenin genelinde kullanmayı düşünüyorsan bu işlem için biraz daha ileri seviye dersleri Aliosman arkadaşımız yazdığı zaman göreceksinizdir örneğin
bir online uyeler kodlaması yapıp bu kodlamayı her sayfda include edilen bir dosya içine yerleştirmeniz neticesinde
global kullanarak global tanımları herhangi bir local kodlama içine alabilirsiniz
örneğin
Kod:
$who_online_now = 5;
function OnlineUyeler(){
echo $who_online_now;
}
OnlineUyeler();
bu işlememi yaptıgınızda funciton dışında oluşturulan değişkeni function içerisinde çağırmanıza ragmen ekrana yazılmayacakdır
ancak function içinde global kullanıldıgında yan aşağıdaki gibi
Kod:
$who_online_now = 5;
function OnlineUyeler(){
global $who_online_now;
echo $who_online_now;
}
OnlineUyeler();
dediğinizde ekrana 5 rakamını yazacaktır
burada anlatılmaya çalışılan şey değişkenin function dışından tanımlanmış olmasından dolayıdır function dışında tanımlanan değişkenler
global olarak adlandırlabilinir
function içinde tanımlananlarada local değişkenler diyebiliriz
bu noktada fazla kafanızı karıştırmamak adına Aliosman arkadaşımızın zamanla yazacagı derslerde tum cevabları alacıgınızı söyleyebilirim
Kayıt: Jul 20, 2002 Mesajlar: 3836 Konum: Balıkesir
Tarih: 2007-08-26, 15:03:04 Mesaj konusu:
Matematik fonksiyonları aslında bayağı bir var. Bunların listesini şu şekilde verebilirim.
<pre>
abs() Mutlak değer
acos() yay cosinus
asin() yay sinus
atan() yay tanjant
atan2() İki değişkenin yay teğeti
sonuc 100 gösterecektir. Tarih çıkartma ve gün sayısına ulaşmak için önce tarihleri saniye formatına çevirmelisiniz. Saniyeleri çıkardıktan sonra gün sayısını elde edebilirsiniz. Bakın şöyle bir örnek yazayım;
böyle bir ekran çıkacak. Tarihler arasındaki gün farkı için bize lazım olan [0] => 1213613424 değeridir. O zaman tarihleri çıkarmak için şöyle bir yol izliyoz.
Yine gün sayısını vermedi. Saniye cinsinden farkı verdi. Şimdi bu saniyeyi güne çevirelim. Güne çevirmek için $sonuc değişkenine bir bölme işlemi ekliyoruz. Eğer saniyeyi 60 * 60 * 24 değerine bölersek bize gün sayısını verir. Kodumuzu aşağıda tamamlıyorum.
Bu forumda yeni başlıklar açamazsınız Bu forumdaki başlıklara cevap veremezsiniz Bu forumdaki mesajlarınızı değiştiremezsiniz Bu forumdaki mesajlarınızı silemezsiniz Bu forumdaki anketlerde oy kullanamazsınız