PHP Programlama 2. Bölüm. Tolga GÜYER
|
|
|
- Nesrin Kerimoğlu
- 9 yıl önce
- İzleme sayısı:
Transkript
1 PHP Programlama 2. Bölüm
2 İçindekiler 2.1 Sözdizim Yapısı 2.2 Yorum Satırları 2.3 Veri Türleri 2.4 Değişkenler ve Sabitler 2.5 Operatörler 2.6. Diziler 2.7 Akış Kontrol Deyimleri 2
3 İçindekiler 2.8 Öğrendiklerimizi Uygulayalım: Sihirli Kareler 2.9 Fonksiyonlar 2.10 Öğrendiklerimizi Uygulayalım: Bilgisayar Parçaları Siparişi 3
4 Sözdizim Yapısı Bir programlama dilinin sözdizimi (syntax), noktalama işaretleri, parantezler ya da operatörler gibi nesnelerin, o dilin yapısına uygun olarak kulanım kurallarını belirler. Söz gelimi, PHP dilinde de Pascal diline benzer olarak her program deyiminin noktalı virgül işareti ile sonlandırılması zorunluluğu bir sözdizim kuralıdır. 4
5 Sözdizim Yapısı Burada vurgulanması gereken önemli bir nokta, satırların değil, deyimlerin sonuna noktalı virgül konulmasıdır. Çünkü PHP çözümleyicisi kaynak kodları satır satır değil, ayıraç sembolü olarak noktalı virgül işaretini kullanarak yorumlar. 5
6 Sözdizim Yapısı PHP kodları çoğunlukla HTML kodları ya da Javascript, VBscript gibi diğer dillerle beraber kullanıldığından, bir kod bütününde PHP çözümleyicisinin görev alanının nerede başladığı ve nerede sona erdiğinin belirlenmesi amacıyla <?php?> etiketleme sistemi kullanılır. 6
7 Sözdizim Yapısı Örneğin, <?php echo Merhaba Dünya! ;?> kodu doğrudan PHP çözümleyicisi tarafından yorumlanarak çalıştırılabilecek bir koddur. Kodun işlevi ise ekrana Merhaba Dünya metnini yazdırmaktır. 7
8 Sözdizim Yapısı Aynı işleve sahip, ancak bu defa HTML kodu içersine gömülmüş durumda olan bir başka PHP kodu aşağıda gösterilmiştir. <html> <body> <?php echo "Merhaba Dünya!";?> </body> </html> 8
9 Sözdizim Yapısı Bu durum, birinci bölümde de bahsedildiği gibi HTML den kaçış olarak adlandırılır. Ancak HTML kodları içersinde yer alan PHP deyimlerinin web tarayıcısı tarafından çözümlenerek çalıştırılabilmesi için bu kodu içeren dosyanın php uzantısına sahip olması gerektiğini unutmayalım. 9
10 Sözdizim Yapısı Ekrana yazdırmak istediğimiz ifadeler için, echo ya da print deyimlerini kullanırız. Bu deyimlerden sonra çift tırnak sembolü içersinde yazacağımız ifadeler, bazı özel durumların dışında, doğrudan yazıldığı şekliyle ekrana basılacaktır. 10
11 Sözdizim Yapısı Örneğin, <html> <body> <?php echo "Merhaba Dünya!";?> </body> </html> kodunun çıktısı aşağıdaki gibi olur: Merhaba Dünya! 11
12 Sözdizim Yapısı biçiminde olacaktır. Ancak kullanıcının internet tarayıcısında Türkçe harflerin düzgün görüntülenebilmesi için UTF8 gibi Türkçeye uygun bir karakter kodlama sisteminin seçilmiş olmasının gerektiğini de hatırlatalım. 12
13 Sözdizim Yapısı <?php echo Merhaba ; echo Dünya! ;?> koduna ait ekran çıktısı ise; Merhaba Dünya! biçiminde olur. 13
14 Sözdizim Yapısı Görüldüğü gibi farklı echo deyimleri kullanılarak yazılsalar da, ifadeler aynı satırda görüntülenmektedir. Eğer ifadeleri farklı satırlarda görmek istiyorsak, bu durumda yazacağımız koda küçük bir ek yapmamız gerekir. 14
15 Sözdizim Yapısı <?php echo Merhaba ; echo <br> ; echo Dünya! ;?> koduna ait ekran çıktısı; Merhaba Dünya! biçiminde olur. 15
16 Sözdizim Yapısı Bu örnek küçük ama önemli bir bilgiyi içermektedir. İkinci echo deyimi ile yazdırdığımız <br> ifadesi ekrana herhangi bir şey yazmamış, bunun yerine birinci ve üçüncü echo deyimlerinin yazdıkları ifadelerin arasında satırbaşı yapma işlevini sağlamıştır. <br> İfadesi aslında bir HTML etiketidir ve işlevi de tam olarak budur. 16
17 Sözdizim Yapısı Dolayısıyla internet tarayıcısı echo deyimi ile ekrana yazılacak ifadeleri denetlemekte, bu ifadeleri HTML kodu olarak yorumladığı takdirde doğrudan ekrana yazmak yerine çalıştırmakta ve sonucunu görüntülemektedir. 17
18 Sözdizim Yapısı echo Deyimi kullanılarak gerçekleştirilmiş, PHP içersinden çalıştırılan HTML kodlarına verilebilecek başka bir örnek; <?php echo "<p><strong>merhaba Dünya!</strong></p>";?> şeklindedir. Bu koda ait ekran çıktısı ise; Merhaba Dünya! biçiminde olacaktır. 18
19 Sözdizim Yapısı Bu yöntemde karşılaşabileceğimiz bir problem, çift tırnak işaretlerinin kullanımında yaşanacaktır. Şöyle ki çift tırnak, bir yandan echo deyiminin etki alanının belirlenmesinde kullanılırken, diğer yandan bir çok HTML deyiminde değerlerin belirlenmesinde kullanılmaktadır. 19
20 Sözdizim Yapısı Bu gibi durumlarda PHP dili için özel karakterlerden birisi olan \ (ters bölü) işaretin kullanılır. Bir sonraki örneğimiz, bu işaretin kullanımına ilişkindir. 20
21 Sözdizim Yapısı <?php echo "<font size=\"5\">katilimcilar</font>"; echo "<p>"; echo "1. Murat SÖNMEZ<br>"; echo 2. Arzu ŞAFAK<br>"; echo 3. Mustafa YÜZEN<br>"; echo 4. Meral ALSANCAK"; echo "</p>";?> koduna ait ekran çıktısı; 21
22 Sözdizim Yapısı KATILIMCILAR 1. Murat SÖNMEZ 2. Arzu ŞAFAK 3. Mustafa YÜZEN 4. Meral ALSANCAK biçiminde olacaktır. 22
23 Sözdizim Yapısı Burada, ilk echo deyimi ile yazdırılan ifade bir HTML deyimidir. Bu deyim içersinde, size parametresinin değerinin belirlenmesi için çift tırnak işareti bulundurmaktadır. Bu çift tırnak işaretlerinin, echo deyimine ait olan ve PHP tarafından dikkate alınacak olan (kodda kırmızı renkte gösterilmişlerdir) çift tırnaklardan ayırt edilebilmeleri için \ işareti kullanılmıştır. 23
24 Yorum Satırları Kod içersinde, PHP tarafından dikkate alınmayan, kodu inceleyene açıklama yapmak amaçlı olarak yorum satırları yer alabilir. Tek satırlı ya da çok satırlı olarak yorum satırları eklenebilir. Aşağıda, koda farklı şekillerde eklenmiş yorum satırları görülmektedir. 24
25 Yorum Satırları <?php echo PHP ; // Bu, tek satırlık c++ türünde bir yorum satırıdır. /* Bu bir çok-satırlı yorumdur. Yazılırken <Enter> tuşu kullanılmıştır. */ echo öğreniyorum! ; # Bu da, tek satırlık kabuk (shell) türünde bir yorum satırıdır.?> Bu durumda kodun çıktısı, PHP öğreniyorum! biçiminde olacaktır. 25
26 Veri Türleri PHP dili temel programlamada, geleneksel dillerde olduğu gibi değişkenlerin veri türlerinin önceden belirlenmesine gereksinim duymamaktadır. Değişkenin deklare edilmesi olarak adlandırılan bu işlem, PHP de değişkene ilk değeri atandığı sırada gerçekleşir. Diğer bir deyişle, değişkene ilk değerini atadığınızda, aslında o değişkene ait veri türünü de deklare etmiş olursunuz. 26
27 Veri Türleri Üç temel veri türünü, sayısal olmayan stringtabanlı türler (text, string, char gibi), sayısal türler (integer, double gibi) ve diziler (array) şeklinde sıralayabiliriz. 27
28 Veri Türleri Diziler, özel tanımlama özelliklerine sahip olduklarından, diğer veri türlerinden kolaylıkla ayırt edilebilirler. String-tabanlı türler ise, aritmetik işlemlerde kullanılmayan türlerdir ve sayısal türlerle aralarındaki en önemli fark, bu türdeki değerlerin (çift tırnak) işreti arasında yer almalarıdır. 28
29 Veri Türleri Örneğin, 2 değeri sayısal bir veri türü iken, 2 değeri 1 baytlık bir string, yani karakter türünde olacaktır. Dolayısıyla dönüştürme işlemi uygulanmadan aritmetik işlemlerde kullanılamaz. 29
30 Değişkenler ve Sabitler Programların çalıştıkları sırada kullandıkları değerleri bellekte saklama zorunlulukları vardır. Bunlar kullanıcılar tarafından girilen değerler olabilecekleri gibi, doğrudan programın kendi ürettiği sonuçlar da olabilir. 30
31 Değişkenler ve Sabitler Değerlerin saklandıkları dil bileşenleri değişkenler ve sabitler olarak adlandırılırlar. Birbirlerine çok yakın bir işleve sahip olan bu bileşenler arasındaki temel fark, değişkenlerin taşıdıkları değerlerin programın çalışması süresince dinamik olarak değişebilmesi, buna karşılık sabitlerin değerlerini korumalarıdır. 31
32 Değişkenler ve Sabitler Değişkenler Bir değişken için iki önemli özellik söz konusudur: Değişkenin adı ve sakladığı verinin türü. 32
33 Değişkenler ve Sabitler PHP dili, güçlü-türlendirilmiş diller (strongly-typed languages) sınıfına girmediğinden, değişkenlerin bu dillerde olduğu gibi önceden tanımlanmasına (deklare edilmesine) gerek yoktur. Dolayısıyla bir değişken, doğrudan ilk değer ataması ile otomatik olarak deklare edilmiş olacaktır. 33
34 Değişkenler ve Sabitler PHP dilinde değişkenleri diğer dil öğelerinden ayıran simge $ (dolar) işaretidir. Her değişken adı, $ işareti ile başlar ve değişken isimlendirme kuralları gözetilerek isimlendirilir. 34
35 Değişkenler ve Sabitler Değişkenleri isimlendirirken dikkat etmemiz gereken kuralları aşağıda verilmiştir: 1. Bir değişken ismi, bir harf ya da _ (alt tire) sembolü ile başlayabilir. 2. Bir değişken ismi sadece alfa-nümerik karakterleri (a-z, A-Z, 0-9) ve alt tireyi (_) içerebilir. Türkçe harfler (ç,ç,ğ,ğ,ı,i,ö,ö,ü,ü) bunlara dahil değildir. 35
36 Değişkenler ve Sabitler 3. Değişken isimleri boşluk içeremezler. Ayırma gerektiğinde alt tire (bolum_kodu gibi) ya da büyük harfler (bolumkodu gibi) kullanılabilir. 36
37 Değişkenler ve Sabitler Bu durumda PHP dilinde bir değişkenin deklarasyonu ve değer ataması, genel olarak aşağıdaki şekilde olacaktır: $degisken_adi = deger; Daha somut bir örnek aşağıda verilmiştir: <?php $metin= Merhaba!"; $sayi=7;?> 37
38 Değişkenler ve Sabitler Burada $metin, ismi metin olan string türünde bir değişken olarak tanımlanmıştır. $sayi ise sayi adında tamsayı türünde bir değişken olarak kullanılmıştır. = sembolü ile yapılan bu işleme değer atama adı verilir. Değer atama işlemi = sembolünün sağından soluna doğru yapılır. Dolayısıyla eşitliğin solunda mutlaka bir değişken sembolü bulunmalıdır. 38
39 Değişkenler ve Sabitler Değer aktarmalarda, aktarılan değerler otomatik olarak ekranda görüntülenmezler. Bunun için yine echo deyiminden yararlanabiliriz: <?php $metin= Merhaba!"; $sayi=7; echo $metin; echo $sayi;?> 39
40 Değişkenler ve Sabitler Bu kodun ekran çıktısı; Merhaba!7 şeklinde olacaktır. 40
41 Değişkenler ve Sabitler Değişkenlerin içerdikleri değerler ile sabit metinleri bir arada görmek istediğimizde, yine çift tırnak işaretinden yararlanabiliriz: <?php $metin="merhaba!"; $sayi=7; echo "Metin:$metin Sayı:$sayi";?> 41
42 Değişkenler ve Sabitler Bu kodun ekran çıktısı ise; Metin:Merhaba! Sayı:7 şeklinde olacaktır. 42
43 Değişkenler ve Sabitler PHP diline özgü oldukça kullanışlı özelliklerden birisi de, değişkenlerin taşıdıkları değerleri kullanarak yeni değişkenler türetebilme yeteneğidir. Aşağıdaki örneği inceleyelim: <?php $a = 'merhaba'; $$a = 'dünya'; echo $merhaba;?> 43
44 Değişkenler ve Sabitler Bu durumda ekran çıktısı; dünya biçiminde olacaktır. 44
45 Değişkenler ve Sabitler Burada, $a değişkeninin değeri olan merhaba metni kullanılarak yeni bir $merhaba değişkeni tanımlanmış, bu değişkene değer olarak da dünya metni aktarılmıştır. Bu işlem, ikinci bir $ simgesi kullanılarak gerçekleştirilmiştir. 45
46 Değişkenler ve Sabitler Aynı çıktıyı aşağıdaki kod ile elde etmek mümkündür: <?php $a = 'merhaba'; $$a = 'dünya'; echo "${$a}";?> 46
47 Değişkenler ve Sabitler Bu durumda aşağıdaki kodun ekran çıktısı; <?php $a = 'merhaba'; $$a = 'dünya'; echo "$a ${$a}";?> merhaba dünya biçiminde olacaktır. 47
48 Değişkenler ve Sabitler Sabitler Değişkenlere benzerler, ancak sabitlerin taşıdıkları değerler, programın çalışması süresince aynı kalır. Define bildirimi kullanılarak tanımlanırlar. 48
49 Değişkenler ve Sabitler Aşağıda sabit tanımlama ile ilgili örnek bir kod parçası verilmiştir: define("kasa_ucreti", 85.50); define("anakart_ucreti", 150.0); define("islemci_ucreti", ); define("sabitdisk_ucreti", ); define("cddvd_ucreti", 90.0); define("bellek_ucreti", ); 49
50 Değişkenler ve Sabitler Görüldüğü gibi sabitler, değişkenlerden farklı olarak isimlerinin başlarında $ simgesi taşımazlar. Aşağıda, yukarıda tanımlanan sabitlerin nasıl kullanılacağına ilişkin örnek kod parçası verilmiştir: $toplam_birim_fiyat = kasa_ucreti + anakart_ucreti + islemci_ucreti + sabitdisk_ucreti + cddvd_ucreti + bellek_ucreti; 50
51 Operatörler Operatörler, değerler üzerinde işlemlerin gerçekleştirilmesinde kullanılırlar ve dilin en önemli bileşenlerindendirler. PHP operatörlerini genel olarak dört kategori altında toplayabiliriz. 51
52 Operatörler 1. Aritmetik Operatörler 2. Değer Atama Operatörleri 3. Karşılaştırma Operatörleri 4. Mantıksal Operatörler Şimdi bunları ayrı ayrı ele alalım. 52
53 Operatörler Aritmetik Operatörler Değişkenler ve sabit değerler üzerinde her türlü aritmetik işlem, aritmetik operatörler kullanılarak gerçekleştirilir. PHP diline özgü olarak. (nokta) sembolü de metinsel birleştirme işlevine sahiptir ve aritmetik operatörler tablosunda gösterilmiştir. 53
54 Operatörler Operatör Tanımı Örnek Sonuç + Toplama $x=2 $sonuc=$x Çıkartma $x=2 $sonuc=$x-1 1 * Çarpma $x=4 $sonuc=$x*5 20 / Bölme $x=15 $sonuc1=$x/5 $sonuc2=$x/2 % Mod (Bölmede kalan) $sonuc1=5%2 $sonuc2=10%8 $sonuc3=10%
55 Operatörler Operatör Tanımı Örnek Sonuç ++ Artırma $x=7 $x++ -- Azaltma $x=10 $x--. Metinsel birleştirme $x1= LAB $x2= 101 $sonuc=$x1.$x2 $x=8 $x=9 LAB101 55
56 Operatörler Değer Atama Operatörleri Temel değer atama operatörü = simgesidir. Atama, bu simgenin sağından soluna doğru gerçekleşir. 56
57 Operatörler Diğer operatörler = operatörünün aritmetik operatörlerle birlikte kullanılması ile türetilmişlerdir. Bunlar, bir aritmetik işlem ve sonrasında gerçekleştirilecek değer atama işlemini birleştirerek tek seferlik bir atama işlem haline getirirler. 57
58 Operatörler Operatör Örnek Eşdeğer İşlem = $x=$y $x=$y += $x+=$y $x=$x+$y -= $x-=$y $x=$x-$y *= $x*=$y $x=$x*$y /= $x/=$y $x=$x/$y.= $x.=$y $x=$x. $y %= $x%=$y $x=$x%$y 58
59 Operatörler Karşılaştırma Operatörleri Karşılaştırma operatörleri, ilerleyen kesimlerde ele alacağımız koşullu ifadelerde kullanılmaktadır. Bir karşılaştırma işlemi, true (doğru) ya da false (yanlış) değerini üretir. 59
60 Operatörler Tabloda PHP dilinde kullanılan karşılaştırma operatörleri örnekler verilerek açıklanmıştır. 60
61 Operatörler Operatör Tanımı Örnek == Eşittir 3==2 false değer üretir!= Eşit değildir 3!=2 true değer üretir > Büyüktür 3>2 true değer üretir < Küçüktür 3<2 false değer üretir >= Büyük ya da eşittir 3>=2 true değer üretir <= Küçük ya da eşittir 3<=2 false değer üretir 61
62 Operatörler Mantıksal Operatörler Karşılaştırma operatörleri, ilerleyen kesimlerde ele alacağımız koşullu ifadelerde kullanılmaktadır. Bir karşılaştırma işlemi, true (doğru) ya da false (yanlış) değerini üretir. 62
63 Operatörler Tabloda PHP dilinde kullanılan karşılaştırma operatörleri örnekler verilerek açıklanmıştır. 63
64 Operatörler Operatör Tanımı Örnek && ve $x=8 $y=5 ($x < 10 && $y > 1) true değer üretir veya $x=8 $y=5 ($x==5 $y==5) true değer üretir! değil $x=8 $y=8!($x==$y) false değer üretir 64
65 Diziler Aynı türden verilerin tek bir değişken ile temsil edilmeleri gerektiğinde kullanılırlar. Aynı türden olan, ancak sayıları çok fazla olan farklı verilerin saklanması gerektiğinde, tanımlanması gereken değişken sayısı da paralel olarak artacağından, bu gibi durumlarda önemli bir işleve sahiptirler. 65
66 Diziler İleriki bölümlerde ele alacağımız döngüsel yapılarla kullanıldıklarında, gereksiz kod yazımını da önemli ölçüde azaltan diziler (array), tek boyutlu ve çok boyutlu olarak sınıflandırılabilirler. 66
67 Diziler Tek Boyutlu Diziler Konuya bir örnekle başlayalım: <?php $arabalar1="honda"; $arabalar2="volvo"; $arabalar3="bmw"; $arabalar4="toyota";?> 67
68 Diziler Sadece dört tane araba markasını saklamak istediğimizden, dört tane farklı değişken kullandık. Ama ya 400 farklı markayı saklamak isteseydik? 68
69 Diziler Aynı örneği, dizi kullanarak yapalım: <?php $arabalar=array("honda","volvo","bmw","toyota");?> Bu defa tanımlamış olduğumuz tek bir değişken olan $arabalar dır. Ancak bu değişken, array bildirimi kullanılarak oluşturulmuş bir dizidir. 69
70 Diziler Aynı tanımlamayı farklı bir şekilde de yapabilirdik: <?php $arabalar[0]="honda"; $arabalar[1]="volvo"; $arabalar[2]="bmw"; $arabalar[3]="toyota";?> Bu tanımlamada, dizinin indisi adı verilen köşeli parantezlerin içersinde yer alan değerleri kendimiz belirledik. 70
71 Diziler Her iki tanımlama için de aşağıdaki kod parçası, echo "$arabalar[0] ve $arabalar[3] Japon otomobil markalarıdır."; aynı ekran çıktısını verecektir: Honda ve Toyota Japon otomobil markalarıdır. 71
72 Diziler Dizilerin indislerinin sayısal olmaları zorunluluğu yoktur. <?php $uretici['honda'] = 'Japonya'; $uretici['volvo'] = 'İsveç'; $uretici['bmw'] = 'Almanya'; $uretici['toyota'] = 'Japonya'; echo "Volvo'nun üreticisi "?>.$uretici['volvo']. dir."; Volvo nun üreticisi İsveç dir. 72
73 Diziler İlişkilendirilmiş İndisler Dizileri tanımlamanın diğer bir yolu da, => operatörünü kullanarak indisle değeri doğrudan ilişkilendirmektir. 73
74 Diziler Bu duruma bir örnek aşağıda verilmiştir: <?php $uretici = array("honda"=>"japonya", "Volvo"=>"İsveç", "BMW"=>"Almanya", "Toyota"=>"Japonya"); echo "Honda ve Toyota'nın üreticisi "?>.$uretici['honda']. dır."; Honda ve Toyota nın üreticisi Japonya dır. 74
75 Diziler Çok Boyutlu Diziler Çok boyutlu dizilerin yapısal olarak tek boyutlu dizilerden bir farkı yoktur. İndis sayısı birden fazla olduğu durumlarda dizi çok boyutlu olarak adlandırılır. 75
76 Diziler Teorik olarak n>1 olmak üzere n-boyutlu bir dizi tanımlanabilir, ancak pratikte iki boyuttan sonra dizinin kontrolü oldukça güçleşmektedir. İki boyutlu dizileri, tablolar biçiminde ifade edebildiğimiz türden verileri saklamak için kullanırız. 76
77 Diziler Örneğin, aşağıdaki veri tablosunu göz önüne alalım: Buğday Arpa Mısır Tütün
78 Diziler Tabloda son beş yıla ait Buğday, Arpa, Mısır ve Tütün üretimi ton olarak verilmiştir. Şimdi bu tablodaki verileri atayacağımız iki boyutlu bir dizi tanımlayalım. 78
79 Diziler <?php $uretim = array ( "2005" => array( "Buğday" => 145,"Arpa" => 90, "Mısır" => 210,"Tütün" => 55), "2006" => array( "Buğday" => 167,"Arpa" => 60, "Mısır" => 120,"Tütün" => 165), "2007" => array( "Buğday" => 180,"Arpa" => 45, "Mısır" => 130,"Tütün" => 121), "2008" => array( "Buğday" => 317,"Arpa" => 120,"Mısır" => 134,"Tütün" => 152), "2009" => array( "Buğday" => 62, "Arpa" => 261,"Mısır" => 34, "Tütün" => 135)); echo "2006 yılında toplam mısır üretimi ". $uretim["2006"]["mısır"]. " ton olmuştur.";?> 2006 yılında toplam mısır üretimi 120 ton olmuştur. 79
80 Diziler Görüldüğü gibi iki boyutlu diziler, aslında her bir satırı tek boyutlu diziden oluşan matris tipindeki yapılardır. Bu yapıda her satırın aynı türdeki verilerden oluşması yeterlidir, dizinin tamamının aynı türde verilerden oluşma zorunluluğu yoktur. 80
81 Diziler Örneğin: <?php $dizi = array("üniversiteler" => array ( "a" => "Gazi", "b" => "Ankara", "c" => "Hacettepe" ), "sayılar" => array ( 1, 2, 3, 4, 5, 6 ), "yıllar" => array ( "1998", 2 => "1999", "2000")); echo $dizi["üniversiteler"]["a"]."<br>"; echo $dizi["üniversiteler"]["c"]."<br>"; echo $dizi["sayılar"][0]."<br>"; echo $dizi["sayılar"][3]."<br>"; echo $dizi["yıllar"][0]."<br>"; echo $dizi["yıllar"][2]."<br>"; echo $dizi["yıllar"][1];?> 81
82 Diziler Örnek koda ait ekran çıktısı aşağıdaki gibi olacaktır: Gazi Hacettepe
83 Diziler Kod içersinde 7 tane echo satırı olmasına karşın, çıktıda sadece 6 tane farklı satır görülmektedir. Bunun sebebi, son echo satırında [ yıllar ][1] indisli terimde herhangi bir verinin bulunmamasıdır. Tanımlama biçiminden dolayı bu indis için sadece [ yıllar ][0], [ yıllar ][2] ve [ yıllar ][3] terimleri değer içermektedir. 83
84 Diziler Dizilerde Kullanılan Operatörler Operatör Tanımı İşlevi $a + $b Birleştirme $a ve $b dizilerini birleştirir. $a == $b Eşitlik $a === $b Denklik $a!= $b $a <> $b Eşitsizlik $a!== $b Denk değil Eğer $a ve $b dizileri aynı indislere ve değerlere sahipse TRUE değerini alır. Eğer $a ve $b dizileri aynı indislere ve aynı türde değerlere aynı sırada sahipse TRUE değerini alır. Eğer $a ve $b dizileri eşit değilse TRUE değerini alır. Eğer $a ve $b dizileri denk değilse TRUE değerini alır. 84
85 Diziler <?php $a = array("a" => "elma", "b" => "muz"); $b = array("a" => "kayısı", "b" => "çilek", "c" => "vişne"); $c = $a + $b; echo($c["a"]."<br>"); echo($c["b"]."<br>"); echo($c["c"]."<br>");?> elma muz vişne 85
86 Diziler Kayısı ve çilek nereye gitti? Aynı örneği bu iki dizinin değerlerini üçüncü bir dizide veri kaybı olmayacak şekilde birleştirecek şekilde geliştiriniz. 86
87 Akış Kontrol Deyimleri PHP programlarının normal akışı, yukarıdan aşağıya doğru doğrusal olarak gerçekleşmektedir. Ancak programcı tarafından bu akışın doğrusallığı zaman zaman sıçramalı ya da döngüsel yapılarla değiştirilebilir. Bu değişikliği gerçekleştiren deyimlere akış kontrol deyimleri adı verilir. 87
88 Akış Kontrol Deyimleri Akış kontrol deyimlerini genel olarak koşullu ifadeler ve döngüler şeklinde iki kategoride sınıflayabiliriz. 88
89 Akış Kontrol Deyimleri Koşullu İfadeler Bilgisayarlar için öngörülen gelecek senaryolarının başında, insan gibi düşünen makineler halini almaları gelmektedir. Her ne kadar günümüzde bunun etkileyici örneklerini görsek de, bu fikir şu an için ulaşılması oldukça güç bir nokta olarak gözükmektedir. 89
90 Akış Kontrol Deyimleri Gördüğümüz örnekler ancak belirli mesleki alanlarda, ya da satranç gibi zeka oyunlarında uzmanlaşmış sistemler biçimindedir ve güçlerini büyük ölçüde sahip oldukları büyük bilgi yığınlarından ve bu yığınlar üzerinde aradıklarını son derece hızlı bir şekilde bulabilme yeteneklerinden almaktadırlar. 90
91 Akış Kontrol Deyimleri Fakat henüz her konuda fikir yürütebilen yazılım ya da donanımların varlıklarından bahsedebilmek için erken bir zamandır 91
92 Akış Kontrol Deyimleri Bilgisayar programları için düşünebilme yeteneğinin altında son derece basit bir olgu olan karar verme olgusu yatar ki, bu da en basit şekliyle bilgisayarın belirli bir durum karşısında, önüne gelen seçeneklerden en uygun olanını seçerek ona uygun olarak davranması şeklinde açıklanabilir. 92
93 Akış Kontrol Deyimleri Diğer bir deyişle bir program için karar verme durumu, program akışının koşul adı verilen ve Boolean, yani True (doğru) ya da False (yanlış) değer alan ifadenin, aldığı değere göre yönlendirilmesi biçiminde gerçekleştirilir. 93
94 Akış Kontrol Deyimleri En temel koşullu ifade biçimi, Türkçede eğer anlamına gelen if (koşul) yapısıdır. Bununla birlikte, gelişmiş programlama dillerinin hemen hemen hepsinde bulunan diğer bir koşul yapısı ise switch case yapısıdır. 94
95 Akış Kontrol Deyimleri If/Elseif/Else En temel koşullu ifade biçimi, Türkçede eğer anlamına gelen if (koşul) {a} yapısıdır. Burada {a} kısmına, koşul sağlandığında gerçekleştirilecek deyim (ya da deyimler) yazılır. 95
96 Akış Kontrol Deyimleri Aşağıda bununla ilgili bir örnek program ve ekran çıktısı yer almaktadır. <?php $sayi=16; if ($sayi%2==0) echo "$sayi bir çift sayıdır.";?> 16 bir çift sayıdır. 96
97 Akış Kontrol Deyimleri Ancak kod içersinde $sayi değişkeninin değeri 16 yerine tek bir sayı olarak atanırsa, bu durumda program kullanıcıya herhangi bir mesaj vermeyecektir. 97
98 Akış Kontrol Deyimleri Aksi halin söz konusu olduğu durumlarda ise if (koşul) {a} else {b} ifadesi kullanılır. Bu durumda koşulun aksinin gerçekleştiği, yani koşulun aldığı değerin değilinin elde edildiği durumlarda else ifadesinden sonra yer alan {b} deyimi (ya da deyimleri) çalıştırılacaktır. 98
99 Akış Kontrol Deyimleri Örnek program aşağıda verilmiştir: <?php $sayi=15; if ($sayi%2==0) echo "$sayi bir çift sayıdır."; else echo "$sayi bir tek sayıdır.";?> 15 bir tek sayıdır. 99
100 Akış Kontrol Deyimleri Bu programla aynı sonucu, aşağıdaki kod ile de alabiliriz: <?php $sayi=15; if ($sayi%2==0) echo "$sayi bir çift sayıdır."; if (!$sayi%2==0) echo "$sayi bir tek sayıdır.";?> 100
101 Akış Kontrol Deyimleri Ancak bu durumda kodu gereksiz yere uzatmış oluruz. Unutmayın, en iyi program, yapılmak isteneni en az kod yazarak gerçekleştiren programdır. Bir koşul ve onun eksi halinin söz konusu olduğu durumlarda, yukarıdaki gibi ilk koşulun değili olan ikinci bir koşul yazmak yerine, else deyimini kullanmak daha yerinde olacaktır. 101
102 Akış Kontrol Deyimleri Koşul ya da aksi durumun doğrulanması durumunda gerçekleştirilecek işlem sayısı birden fazla olabilir. Bu gibi durumlarda, programlama dillerinde bloklama etiketleri kullanılır. PHP dilinde bloklama işlemlerinde { ve } (açık ve kapalı küme parantezleri) kullanılır. 102
103 Akış Kontrol Deyimleri Örnek program için şöyle bir senaryo geliştirelim: Bir mağaza, müşterilerine iki türde indirim uygulamaktadır. Bunlardan ilki, hafta sonu indirimidir. Yani alışveriş edilen gün Cumartesi ya da Pazar ise toplam alışveriş tutarına %10 indirim uygulanmaktadır. 103
104 Akış Kontrol Deyimleri İkincisi ise, 150 TL ve üstü alışverişlerde uygulanan %20 indirimdir. Her iki duruma da giren alışverişler, bu iki indirimden de faydalanabilmektedir. 104
105 Akış Kontrol Deyimleri <?php $alisveristutari=200; $gun=date("d"); if ($gun=="sat" $gun=="sun ) { $alisveristutari=10*$alisveristutari/100; echo "Haftasonu indirimi uygulanmıştır. Yeni tutar: $alisveristutari ;} if ($alisveristutari>=150) { $alisveristutari-=20*$alisveristutari/100; echo "150 TL üstü indirimi uygulanmıştır. Yeni tutar: $alisveristutari ; }?> 105
106 Akış Kontrol Deyimleri Burada alışveriş tutarı sabit tutulmuştur. Aynı uygulamayı, alışveriş tutarı kullanıcı tarafından girilecek ve değerleri kendi üzerine gönderecek tek.php dosyası biçiminde geliştirelim. 106
107 Akış Kontrol Deyimleri <html> <body> <form action="" method="post"> <p>alışveriş Tutarı: <input type="text" name="tutar" ></p> <p><input name="dugme" type="submit" ></p> </form> </body> </html> <?php if(isset($_post["dugme"])){ $alisveristutari=$_post['tutar']; $gun=date("d"); 107
108 Akış Kontrol Deyimleri if ($gun=="sat" $gun=="sun ) { $alisveristutari- =10*$alisverisTutari/100; echo "Haftasonu indirimi uygulanmıştır. Yeni tutar: $alisveristutari"; } if ($alisveristutari>=150) { $alisveristutari- =20*$alisverisTutari/100; echo "150 TL üstü indirimi uygulanmıştır. Yeni tutar: $alisveristutari ;} }?> Devamı 108
109 Akış Kontrol Deyimleri If deyiminin en karmaşık biçimi, yapıya aksi halde eğer anlamını taşıyan Elseif deyiminin katıldığı biçimdir. Koşulun aksi halinde başka alt koşulların bulunması durumunda kullanılır. 109
110 Akış Kontrol Deyimleri Genel yapısı aşağıdaki gibidir: If (koşul) {a} Elseif (koşul_1) {a_1} Elseif (koşul_2) {a_2} Elseif (koşul_n) {a_n} Else {b} 110
111 Akış Kontrol Deyimleri Bu yapıda, ilk If deyimine ait koşul sağlanırsa diğer durumlara bakılmaksızın sadece {a} deyimi/deyimleri çalıştırılır ve program akışı koşul yapısının sonundan devam eder. 111
112 Akış Kontrol Deyimleri İlk koşul sağlanmazsa sırasıyla koşul_1, koşul_2,, koşul_n koşulları denetlenir. Bunlardan hangisi sağlanırsa, ilgili deyim/deyimler çalıştırılır. Hiçbir koşulun sağlanmadığı durumda ise, Else deyiminden sonra yer alan {b} deyimi/deyimleri çalıştırılır. 112
113 Akış Kontrol Deyimleri Örnek program için şöyle bir senaryo geliştirelim: Kullanıcı tarafından girilecek bir notun, verilen tabloya göre karşılık gelen harf notu hesaplanacak ve kullanıcıya bildirilecektir. 113
114 Akış Kontrol Deyimleri Kullanacağımız tablo aşağıdaki gibi olacaktır: Not Aralığı Karşılık Gelen Harf 0-19 FF FD DD DC CC CB BB BA AA 114
115 Akış Kontrol Deyimleri Örneğimizi form içeren bir HTML dosyası ve formdan gelen bilgiyi işleyerek harf notuna dönüştüren bir PHP dosyası biçiminde geliştirelim. 115
116 Akış Kontrol Deyimleri <html> <body> <form action="nothesapla.php" method="post"> <p>notu Giriniz: <input type="text" name="notu"></p> <p><input type="submit"></p> </form> </body> </html> 116
117 Akış Kontrol Deyimleri <?php $Not=$_POST['notu']; if ($Not<=19) echo "$Not = FF"; elseif ($Not<=29) echo "$Not = FD"; elseif ($Not<=39) echo "$Not = DD"; elseif ($Not<=49) echo "$Not = DC"; elseif ($Not<=59) echo "$Not = CC"; elseif ($Not<=69) echo "$Not = CB"; elseif ($Not<=79) echo "$Not = BB"; elseif ($Not<=89) echo "$Not = BA"; elseif ($Not<=100) echo "$Not = AA"; else echo "$Not notuna karşılık gelen harf notu yoktur.";?> 117
118 Akış Kontrol Deyimleri Switch/Case Aynı ifadenin, aldığı farklı değerlere karşılık gelen durumlarının belirlendiği koşullu ifade biçimi switch/case yapısıdır. Aslında bu yapı kullanılarak gerçekleştirilen akış kontrolü, bir dizi if-elseif ifadesi kullanılarak da gerçekleştirilebilir. Ancak bu durum gereksiz kod kalabalığına ve karmaşıklığına yol açacaktır. 118
119 Akış Kontrol Deyimleri Deyimin genel biçimi aşağıdaki gibidir. switch (ifade) { case değer1: ifade=değer1 olduğunda işletilecek kod; break; case değer2: ifade=değer2 olduğunda işletilecek kod; break; default: ifade, değer1 ve değer2 nin her ikisinden de farklı olduğunda işletilecek kod; } 119
120 Akış Kontrol Deyimleri Örnek olarak, kullanıcı tarafından girilecek 0 ile 9 arasındaki bir sayının Türkçe okunuşunu yazacak PHP kodunu switch/case yapısını kullanarak yazalım. 120
121 Akış Kontrol Deyimleri <html> <body> <form action="" method="get"> <p>sayıyı Giriniz: <input type="text" name="sayi" ></p> <p><input name="dugme" type="submit" value="çalıştır"></p> </form> </body> </html> 121
122 Akış Kontrol Deyimleri <?php if(isset($_get["dugme"])){ $Gelen_Sayi=$_GET['sayi']; switch ($Gelen_Sayi) { case "0": $sonuc="sifir"; break; case "1": $sonuc="bir"; break; case "2": $sonuc="iki"; break; Devamı 122
123 Akış Kontrol Deyimleri case "3": $sonuc="üç"; break; case "4": $sonuc="dört"; break; case "5": $sonuc="beş"; break; case "6": $sonuc="alti"; break; Devamı 123
124 Akış Kontrol Deyimleri case "7": $sonuc="yedi"; break; case "8": $sonuc="sekiz"; break; case "9": $sonuc="dokuz"; break; default: $sonuc="giriş Anlaşılamadı..."; } } echo ($sonuc);?> Devamı 124
125 Akış Kontrol Deyimleri Case blokları içersindeki son deyim olan break deyimi, akış kontrolünü kırmak için kullanılır. PHP nin switch/case yapısı, her bir durumu ayrı ayrı işler. Dolayısıyla her duruma ait kodun işletilmesinin ardından kontrol break deyimi ile kırılmalı ve program akışı switch deyiminin etki alanı dışından devam etmelidir. 125
126 Akış Kontrol Deyimleri Bunu bir örnekle açıklayalım: <?php $i=0; switch ($i) { case 0: echo "<br>i = 0"; case 1: echo "<br>i = 1"; case 2: echo "<br>i = 2";}?> 126
127 Akış Kontrol Deyimleri $i=0 olmasına karşın bu koda ait ekran çıktısı: i = 0 i = 1 i = 2 şeklinde olacaktır. 127
128 Akış Kontrol Deyimleri <?php $i=1; switch ($i) { case 0: echo "<br>i = 0"; case 1: echo "<br>i = 1"; case 2: echo "<br>i = 2"; }?> durumunda ise ekran çıktısı aşağıdaki gibi olur: i = 1 i = 2 128
129 Akış Kontrol Deyimleri Aynı kodu; <?php $i=1; switch ($i) { case 0: case 1: case 2: echo "<br>0 < i < 3"; break; case 3: echo "<br>i = 3 ; }?> 129
130 Akış Kontrol Deyimleri şeklinde düzenlersek ekran çıktısı: 0 < i < 3 olacaktır. 130
131 Akış Kontrol Deyimleri Kodun en doğru biçimini ise aşağıdaki gibi düzenleyebiliriz: <?php $i=1; switch ($i) { case 0: case 1: case 2: echo "<br>0 < i < 3"; break; case 3: echo "<br>i = 3"; break; default: echo "<br>i > 3 ya da i < 0"; }?> 131
132 Akış Kontrol Deyimleri Bu durumda $i değişkeninin sahip olduğu değer 0,1 ya da 2 ise ilk echo deyimi çalışacak, ardından break deyimi akış kontrolünü kırarak program akışının switch bloğunun ardından devam etmesini sağlayacaktır. 132
133 Akış Kontrol Deyimleri Bu değerler yerine 3 değerini taşıyorsa bu durumda ikinci echo deyimi çalıştırılacak ve aynı şekilde programın akış kontrolü kırılacaktır. Bu durumların hiçbirisine girmeyen bir değerde ise default bölümünde yer alan echo deyimi çalıştırılacaktır. 133
134 Akış Kontrol Deyimleri Döngüler Konuya bir örnekle başlayalım. Ekranda alt alta 7 defa PHP Öğreniyorum cümlesini küçükten büyüğe doğru artan yazıtipi büyüklüğü ile yazdıracağız. 134
135 Akış Kontrol Deyimleri PHP Öğreniyorum! PHP Öğreniyorum! PHP Öğreniyorum! PHP Öğreniyorum! PHP Öğreniyorum! PHP Öğreniyorum! PHP Öğreniyorum! 135
136 Akış Kontrol Deyimleri İstediğimiz görüntüyü verecek kod aşağıdaki gibi olacaktır: <?php echo "<font size=1>"; echo "<br><b>php Öğreniyorum!</b></font>"; echo "<font size=2>"; echo "<br><b>php Öğreniyorum!</b></font>"; echo "<font size=3>"; echo "<br><b>php Öğreniyorum!</b></font>"; echo "<font size=4>"; echo "<br><b>php Öğreniyorum!</b></font>"; echo "<font size=5>"; echo "<br><b>php Öğreniyorum!</b></font>"; 136
137 Akış Kontrol Deyimleri?> echo "<font size=6>"; echo "<br><b>php Öğreniyorum!</b></font>"; echo "<font size=7>"; echo "<br><b>php Öğreniyorum!</b></font>"; Devamı 137
138 Akış Kontrol Deyimleri Örneğimizde olduğu gibi belirli bir kural dahilinde tekrarlanan işlemlerde, işlemi gerçekleştiren kodun da hemen hemen tamamının işlem sayısı kadar tekrarlanması zorunluluğu ortaya çıkmaktadır. Bu da, iyi bir programcının uzak durması gereken en önemli problemlerden birisi olan gereksiz kod kalabalığına yol açmaktadır. 138
139 Akış Kontrol Deyimleri Bu gibi durumlar için geliştirilen programatik yapılara döngü adı verilir. Döngüler, belirli bir düzen içinde tekrarlanan kodların sadece bir defa yazılmasını sağlarlar. 139
140 Akış Kontrol Deyimleri Genel olarak döngüleri iki başlık altında sınıflandırabiliriz. Bunlardan ilki, döngü tarafından değeri otomatik olarak artırılan bir sayaç değişkeninin bulunduğu sayaçlı döngülerdir. Diğer tür olan koşullu döngülerde ise döngünün sonlanması için belirli bir koşulun sağlanması söz konusudur. 140
141 Akış Kontrol Deyimleri Belirli bir indis değişkenine bağlı olarak işlem yapan döngü türleridir. PHP de iki tür sayaçlı döngü vardır: For döngüsü ve Foreach döngüsü. 141
142 Akış Kontrol Deyimleri For döngüsünde indis değişkeninin doğrudan döngünün tanımlama bloğu içersinde belirtilmesi gerekir. Foreach döngüsünde ise indis değişkeninin yerini bir dizi alır. Dizinin kendi yapısında bir indis değeri zaten tanımlı olduğundan, Foreach yapısında sayaç olarak bu indis değerinin kullanıldığı söylenebilir. 142
143 Akış Kontrol Deyimleri For Döngüsü Genel yapısı aşağıdaki gibidir: For (Başlangıç değeri; Sınır koşulu; Artış miktarı) { Döngü tarafından çalıştırılacak kod; } 143
144 Akış Kontrol Deyimleri Başlangıç değeri çoğunlukla sayaç işlevini görecek değişkene ilk değerinin atanması şeklinde belirlenir. 144
145 Akış Kontrol Deyimleri Sınır koşulu, her döngü adımında yeniden hesaplanan bir Boolean değer üretir. Sonuç True olduğu sürece döngü çalışır, aksi halde sonlanır. Genellikle sayaç değişkeni için bir üst sınır değerinin atanması şeklinde belirlenir. Artış miktarı sayaç değişkeninin nasıl artacağının (ya da azalacağının) belirlendiği parametredir. 145
146 Akış Kontrol Deyimleri Örnek olarak, daha önce yaptığımız PHP Öğreniyorum! uygulamasını bu kez For döngüsünü kullanarak gerçekleştirelim. <?php for ($i=1; $i<=7; $i++) { echo "<font size=$i>"; echo "<br><b>php Öğreniyorum!</b></font>"; }?> 146
147 Akış Kontrol Deyimleri Sonuç yine aynı olacaktır. Ancak kodun ilk hali ile karşılaştırıldığında kod kalabalığının oldukça azaldığı görülmektedir. Burada sayaç değişkeni olarak $i belirlenmiş, bu değer yazıtipi büyüklüğünü 1 den 7 ye kadar artırmak için kullanılmıştır. 147
148 Akış Kontrol Deyimleri Diğer bir örnek, bilinen faktöriyel işlemini gerçekleştirecek döngünün tanımlanmasıdır. <?php $sayi=8; $faktoryel=1; for ($i = 1; $i <= $sayi; $i++) { $faktoryel = $faktoryel * $i; } echo $faktoryel;?> 148
149 Akış Kontrol Deyimleri Örnekte, 8 sayısının faktöriyeli, yani çarpımı hesaplanmaktadır. Aynı örneği, faktöriyeli hesaplanacak sayı bir form aracılığı ile kullanıcı tarafından girilecek şekilde tasarlayabilir misiniz? 149
150 Akış Kontrol Deyimleri Döngüleri iç içe kullanabiliriz. Bu durumda en içteki döngü, en hızlı dönen döngü olacaktır. 150
151 Akış Kontrol Deyimleri Bu mekanizmayı daha iyi anlayabilmek için, eski kasetçalar ya da video oynatıcı cihazlarda, ya da günümüzde de kullanılan elektrik ya da su sayaçlarında bulunan mekanik sayaçları düşünebiliriz. 151
152 Akış Kontrol Deyimleri Üç basamaklı mekanik bir sayacın çalışma prensibi şu şekilde olacaktır: Birler hanesi,0 ile 9 arasındaki değerleri alırken, bu hanenin her turunda onlar hanesi 0 ile 9 arasındaki yeni değerini alacaktır. Aynı durum onlar ve yüzler haneleri arasında gerçekleşecektir. 152
153 Akış Kontrol Deyimleri Bu çalışma biçiminin, içi içe üç For döngüsünden oluşan bir yapıda simülasyonunu gerçekleştirelim. <?php for ($yuzler = 0; $yuzler <= 9; $yuzler++) { for ($onlar = 0; $onlar <= 9; $onlar++) { for ($birler = 0; $birler <= 9; $birler++) { echo "$yuzler $onlar $birler <br> ; } } }?> 153
154 Akış Kontrol Deyimleri Biraz daha karmaşık bir örneği şu şekilde geliştirelim: A 2 +B 2 =C 2 eşitliğini sağlayan pozitif tamsayılara Pisagor Üçlüleri adı verilir. 154
155 Akış Kontrol Deyimleri Örneğin =5 2 gibi. Bu durumda (3,4,5) bir Pisagor üçlüsüdür. Öyle bir kod yazalım ki, 1 ile 99 arasındaki bütün Pisagor üçlülerini bulsun ve sonuçları ekranda biçimlendirilmiş bir şekilde yazsın. 155
156 Akış Kontrol Deyimleri <?php echo "<font size=\"5\">pisagor Üçlüleri</font>"; echo "<p>"; $kareler="<font color=\"#000000\"><sup>2</sup></font>"; $sayac=1; for ($a = 1; $a <= 99; $a++) { for ($b = 1; $b <= 99; $b++) { for ($c = 1; $c <= 99; $c++) { 156
157 Akış Kontrol Deyimleri Devamı if ($a*$a+$b*$b==$c*$c and $a<$b) { echo $sayac++,"). <font color=\"#ff0000\"><b>$a</b></font>",$kareler," + <font color=\"#ff0000\"><b>$b</b></font>",$kareler," = <font color=\"#ff0000\"><b>$c</b></font>",$kareler,"<br> "; } } } }?> 157
158 Akış Kontrol Deyimleri Foreach Döngüsü Genel yapısı aşağıdaki gibidir: Foreach ($dizi as $deger) { Döngü tarafından çalıştırılacak kod; } 158
159 Akış Kontrol Deyimleri Giriş parametresi olarak dizi kullanan Foreach döngüsü, her bir tekrarda dizinin sıradaki değerini $deger değişkenine aktarır. 159
160 Akış Kontrol Deyimleri <?php $dizi=array("bir","iki","üç","dört"); foreach ($dizi as $deger) { echo "$deger<br>"; }?> bir iki üç dört 160
161 Akış Kontrol Deyimleri <?php $a = array(); $a[0][0] = "a"; $a[0][1] = "b"; $a[1][0] = "c"; $a[1][1] = "d"; foreach ($a as $v1) { foreach ($v1 as $v2) { echo "$v2<br> ; } }?> a b c d 161
162 Akış Kontrol Deyimleri Burada $v1 değişkeni $a dizinin birinci ve ikinci boyutunu oluşturan iki diziyi temsil etmektedir. $v2 değişkeni ise bu tek boyutlu dizilerin terimlerini gösterir. 162
163 Akış Kontrol Deyimleri Koşullu Döngüler Koşullu döngülerde, tekrarlanacak kodun tekrar sayısı bir koşul tarafından belirlenir. Bu tür döngü yapılarında otomatik olarak artan bir sayaç değişkeni bulunmamaktadır. 163
164 Akış Kontrol Deyimleri Koşullu döngülerin iki alt türü vardır. Bunlardan ilki koşulun döngü başlangıcında denetlendiği yapılardır. Bu durumda koşul sağlanmadığı takdirde döngü içersindeki kod hiçbir şekilde çalışmaz. 164
165 Akış Kontrol Deyimleri Diğer alt türde ise koşul, döngünün sonunda denetlenir. Birinci yapıdan farklı olarak bu durumda, koşul ne olursa olsun döngü içersindeki koşul en az bir defa çalıştırılacaktır. Söz edilen döngü türlerinin PHP deki karşılıkları sırasıyla While ve Do..While döngü ifadeleridir. 165
166 Akış Kontrol Deyimleri While Döngüsü Genel yapısı aşağıdaki gibidir: while (koşul) { Döngü tarafından çalıştırılacak kod; } 166
167 Akış Kontrol Deyimleri Kelime anlamı iken olan while deyimi, döngünün etki alanında kalan kodu koşul sağlandığı sürece çalıştıracaktır. Bu yapıda otomatik olarak artan bir sayaç değeri bulunmamaktadır, eğer bir sayaç kullanılması gerekiyorsa bunun kontrolünün programcı tarafından ayrıca yapılması gerekmektedir. 167
168 Akış Kontrol Deyimleri <?php $i=1; while ($i<=10) { echo "$i "; $i++; }?>
169 Akış Kontrol Deyimleri Döngünün çalışma şeklini daha karmaşık bir örnek üzerinde inceleyelim: 153 sayısının aşağıdaki gibi bir aritmetik özelliği vardır: =
170 Akış Kontrol Deyimleri Yani 153 sayısının basamaklarının küplerinin toplamı, yine sayının kendisine eşittir. Acaba 100 ile 999 arasında bu özelliğe sahip başka bir üç basamaklı sayı var mıdır? 170
171 Akış Kontrol Deyimleri Problemin çözümü için şu yolu izleyeceğiz: Yüzler basamağını 1 ile 9, onlar ve birler basamaklarını ise 0 ile 9 arasında bir döngüye sokarak, iç-içe oluşturulan bu döngüsel yapı içersinde basamakların küplerinin toplamının sayının bütününe eşit olup olmadığına bakacağız. 171
172 Akış Kontrol Deyimleri Eğer eşit ise bu sayının basamaklarını yazdıracağız. Sonuç olarak ekranda görüntülenen sayılar, 100 ile 999 arasında -eğer varsa- 153 ile aynı özelliğe sahip sayıların basamakları olacaktır. 172
173 Akış Kontrol Deyimleri <?php $yuzler = 1; while ($yuzler <= 9) { $onlar = 0; while ($onlar <= 9) { $birler = 0; while ($birler <= 9) { $sayi=$yuzler*100+$onlar*10+$birler; 173
174 Akış Kontrol Deyimleri $birler?> $onlar*$onlar*$onlar + if ($birler*$birler*$birler + $yuzler*$yuzler*$yuzler==$sayi) { echo "$yuzler - $onlar - } } $onlar++; } $yuzler++; } $birler++; <br>"; Devamı 174
175 Akış Kontrol Deyimleri Kod çalıştırıldığında ekranda aşağıdaki sayılar görüntülenecektir:
176 Akış Kontrol Deyimleri Aynı örneği For döngüsünü kullanarak yapınız. 176
177 Akış Kontrol Deyimleri Do..While Döngüsü Genel yapısı aşağıdaki gibidir: do { Döngü tarafından çalıştırılacak kod; } while (koşul); 177
178 Akış Kontrol Deyimleri Do..while döngüsünün While döngüsü ile arasındaki tek fark, koşulun döngü sonunda denetlenmesidir. Bunun sonucu olarak, bu yapıda döngünün etki alanında yer alan kod, koşulun sağlanıp sağlanmadığına bakmaksızın en az bir defa çalıştırılır. 178
179 Akış Kontrol Deyimleri <?php $i=1; do { echo "$i "; $i++; } while ($i<=10)?>
180 Akış Kontrol Deyimleri While ve do..while döngü yapıları arasındaki farkı daha açık olarak gösterebileceğimiz bir örnek geliştirelim. 180
181 Akış Kontrol Deyimleri $a herhangi bir pozitif tamsayı olmak üzere, bu değerden başlayarak sıradaki her terimi aşağıdaki kurala elde edilecek bir sayı dizisi oluşturalım: Eğer $a çift sayı ise bir sonraki terim=$a/2; Aksi halde bir sonraki terim=3*$a
182 Akış Kontrol Deyimleri Örneğin $a=5 olsun. Bu sayı tek olduğundan bir sonraki terim, 3*5+1=16 olacaktır. 16 çift olduğundan bir sonraki terim 16/2=8 olacaktır. Böylece dizinin terimleri, 5,16,8,4,2,1,4,2,1,4,2,1, biçiminde gidecektir. 182
183 Akış Kontrol Deyimleri Görüldüğü gibi dizinin terimi 1 e ulaştıktan sonra 4,2,1 kısır döngüsüne ulaşmaktadır. Üstelik hangi değerle başlanırsa başlansın, sonuçta dizi mutlaka bu kısır döngüye takılıp kalmaktadır. 183
184 Akış Kontrol Deyimleri Bilgisayarlar kullanılarak milyonlarca başlangıç değeri için dizinin 1 değerine ulaştığının gözlemlenmesine karşın, bunun her pozitif tamsayı için böyle olacağı günümüze kadar matematiksel olarak kanıtlanamamıştır. Collatz Problemi olarak bilinen bu problem, henüz çözülmemiş ödüllü bir problemdir. 184
185 Akış Kontrol Deyimleri Aynı örneği, iki döngü yapısını da kullanarak yapalım. <?php $a=10; while ($a!=1) { if ($a % 2 == 0) {$a=$a/2;} else {$a=3*$a+1;} echo "$a "; }?> 185
186 Akış Kontrol Deyimleri <?php $a=10; do { if ($a % 2 == 0) {$a=$a/2;} else {$a=3*$a+1;} echo "$a "; } while ($a!=1)?> 186
187 Akış Kontrol Deyimleri Bu şekliyle her iki kod çalıştırıldığında da aynı sonuç elde edilir:
188 Akış Kontrol Deyimleri Ancak örnek kodlarda $a başlangıç değeri, $a=1; olarak belirlendiğinde iki döngü yapısının çalışma sistemleri arasındaki fark ortaya çıkacaktır. 188
189 Akış Kontrol Deyimleri Bu durumda while döngüsünün kullanıldığı birinci örnek kod herhangi bir çıktı üretmezken, do..while döngüsünün kullanıldığı ikinci örnek kodun çıktısı, olacaktır. 189
190 Akış Kontrol Deyimleri Bu programı dizinin başlangıç sayısı kullanıcı tarafından girilecek şekilde tasarlayabilir misiniz? 190
191 Öğrendiklerimizi Uygulayalım: Sihirli Kareler Şu ana kadar edindiğimiz bilgilerimizi kullanabileceğimiz kapsamlı bir örnek uygulama geliştirelim. Amacımız, sihirli kare adı verilen ve sayılardan oluşan karelerin bilgisayar tarafından oluşturulmasını sağlayacak bir program yazmak. Bu sayı karelerinin özelliği, satır, sütun ve köşegen üzerindeki sayıların toplamlarının eşit olmasıdır. 191
192 Öğrendiklerimizi Uygulayalım: Sihirli Kareler Sihirli karelerin inşası için bir çok algoritma bulunmaktadır. Bizim kullanacağımız algoritma, n bir tek sayı olmak üzere, nxn boyutunda bir sihirli karenin oluşturulmasını sağlamaktadır. Algoritma, 1 den başlayarak bütün kare doluncaya kadar sayıların kare üzerine belirli kurallar dahilinde yerleştirilmesi ilkesine dayanır. 192
193 Öğrendiklerimizi Uygulayalım: Sihirli Kareler Bu kuralları aşağıdaki gibi sıralayabiliriz: KURALLAR 1. İlk sayı olan 1, karenin ilk satırının orta hücresine yerleştirilir. 2. Sıradaki her sayı, kendisinden önceki sayının sağ-üst köşesinde yer alan hücreye yerleştirilir. 193
194 Öğrendiklerimizi Uygulayalım: Sihirli Kareler Bu kuralların işletilmesi sırasında ortaya çıkabilecek dört aykırı durum vardır: 1. Sıradaki sayıyı yerleştireceğimiz hücre dolu olabilir. Bu durumda sıradaki sayı, bir önceki sayının bulunduğu hücrenin altındaki hücreye yerleştirilir. 194
195 Öğrendiklerimizi Uygulayalım: Sihirli Kareler 2. Sıradaki sayıyı yerleştireceğimiz hücre karenin üstünden dışında kalıyor olabilir. Bu durumda sıradaki sayı, dışarıda kalan hücrenin hizasındaki sütunun en altındaki hücreye yerleştirilir. 195
196 Öğrendiklerimizi Uygulayalım: Sihirli Kareler 3. Sıradaki sayıyı yerleştireceğimiz hücre karenin sağ tarafından dışında kalıyor olabilir. Bu durumda sıradaki sayı, dışarıda kalan hücrenin hizasındaki satırın en solundaki hücreye yerleştirilir. 196
197 Öğrendiklerimizi Uygulayalım: Sihirli Kareler 4. Sıradaki sayıyı yerleştireceğimiz hücre karenin sağ-üst çaprazından dışında kalıyor olabilir. Bu durumda sıradaki sayı, bir önceki sayının bulunduğu hücrenin altındaki hücreye yerleştirilir. Üç satır ve üç sütundan oluşan sihirli kareyi algoritmanın kurallarını uygulayarak oluşturalım. 197
198 Öğrendiklerimizi Uygulayalım: Sihirli Kareler Öncelikle ilk sayımız olan 1 i karenin ilk satırının orta hücresine yerleştirelim: 1 198
199 Öğrendiklerimizi Uygulayalım: Sihirli Kareler Sıradaki sayı olan 2, 1 sayısının bulunduğu hücrenin sağ-üst köşesindeki hücreye yerleşecek. Ancak burada, karenin üzerinden dışarıya çıkıldığı için 2 sayısı dışarıya çıkılan hizadaki sütunun en alt hücresine yerleştiriliyor:
200 Öğrendiklerimizi Uygulayalım: Sihirli Kareler Sıradaki sayı olan 3, 2 sayısının bulunduğu hücrenin sağ-üst köşesindeki hücreye yerleşecek. Ancak burada, karenin sağ tarafından dışarıya çıkıldığı için 3 sayısı dışarıya çıkılan hizadaki satırın en solundaki hücreye yerleştiriliyor:
201 Öğrendiklerimizi Uygulayalım: Sihirli Kareler Sıradaki sayı olan 4, 3 sayısının bulunduğu hücrenin sağ-üst köşesindeki hücreye yerleşecek. Ancak bu hücre dolu olduğu için 4 sayısı 3 sayısının bulunduğu hücrenin altında yer alan hücreye yerleştiriliyor:
202 Öğrendiklerimizi Uygulayalım: Sihirli Kareler Sıradaki sayı olan 5, 4 sayısının bulunduğu hücrenin sağ-üst köşesindeki hücreye yerleştiriliyor:
203 Öğrendiklerimizi Uygulayalım: Sihirli Kareler Sıradaki sayı olan 6, 5 sayısının bulunduğu hücrenin sağ-üst köşesindeki hücreye yerleştiriliyor:
204 Öğrendiklerimizi Uygulayalım: Sihirli Kareler Sıradaki sayı olan 7, 6 sayısının bulunduğu hücrenin sağ-üst köşesindeki hücreye yerleşecek. Ancak burada, karenin sağ-üst çaprazından dışarıya çıkıldığı için 7 sayısı 6 sayısının bulunduğu hücrenin altında yer alan hücreye yerleştiriliyor:
205 Öğrendiklerimizi Uygulayalım: Sihirli Kareler Sıradaki sayı olan 8, 7 sayısının bulunduğu hücrenin sağ-üst köşesindeki hücreye yerleşecek. Ancak burada, karenin sağ tarafından dışarıya çıkıldığı için 8 sayısı dışarıya çıkılan hizadaki satırın en solundaki hücreye yerleştiriliyor:
206 Öğrendiklerimizi Uygulayalım: Sihirli Kareler Ve son olarak sıradaki sayı olan 9, 8 sayısının bulunduğu hücrenin sağ-üst köşesindeki hücreye yerleşecek. Ancak burada, karenin üzerinden dışarıya çıkıldığı için 9 sayısı dışarıya çıkılan hizadaki sütunun en alt hücresine yerleştiriliyor:
207 Öğrendiklerimizi Uygulayalım: Sihirli Kareler Sonuç olarak elde ettiğimiz sihirli karede her satırda, her sütunda ve her iki köşegende yer alan hücrelerdeki sayıların toplamı aynıdır:
208 Öğrendiklerimizi Uygulayalım: Sihirli Kareler Şimdi bu algoritmanın PHP de kodlamasını gerçekleştireceğiz. Programımız, bizim için n=11 boyutlu sihirli kareyi oluşturacaktır. Programda ağırlıklı olarak akış kontrol deyimlerini ve dizileri kullanacağız. 208
209 Öğrendiklerimizi Uygulayalım: Sihirli Kareler <?php $dizi1=range(1,11); $dizi2=range(1,11); $dizi=array($dizi1,$dizi2); $sayi=11; $sayikare=$sayi*$sayi; $toplam=0; for($i=1;$i<=$sayi;$i++) { for($j=1;$j<=$sayi;$j++) { $dizi[$i][$j]=0; } } 209
210 Öğrendiklerimizi Uygulayalım: Sihirli Kareler $i=1; $j=floor(($sayi+1)/2); Devamı for ($k=1;$k<=$sayikare;$k++) { if ($dizi[$i][$j]>0) { $i=$i+2; $j=$j-1; } $dizi[$i][$j]=$k; $i=$i-1; $j=$j+1; 210
211 Öğrendiklerimizi Uygulayalım: Sihirli Kareler if (($i==0) and ($j>$sayi)) { $i=$i+2; $j=$j-1; } if ($i==0) {$i=$sayi;} if ($j>$sayi) {$j=1;} $toplam=$toplam+$k; } echo "<table border=\"2\" align=\"center\"><tr> ; Devamı 211
212 Öğrendiklerimizi Uygulayalım: Sihirli Kareler for($i=1;$i<=$sayi;$i++) { echo "</tr><tr>"; for($j=1;$j<=$sayi;$j++) { $a=$dizi[$i][$j]; print "<td align=\"center\">$a</td>"; } } Devamı?> $stoplam=$toplam/$sayi; echo "<p>toplamlar : $stoplam"; echo "<p>"; echo "</table>"; 212
213 Öğrendiklerimizi Uygulayalım: Sihirli Kareler Örnek kodda iki boyutlu dizi tanımlaması alternatif bir yolla yapılmıştır: $dizi1=range(1,11); $dizi2=range(1,11); $dizi=array($dizi1,$dizi2); 213
214 Öğrendiklerimizi Uygulayalım: Sihirli Kareler Bu yöntemde öncelikle range fonksiyonu kullanılarak uzunluğu 11 terimden oluşan iki tane tek-boyutlu dizi tanımlanmakta, daha sonra bunlar kullanılarak 11 11=121 terimden oluşan iki boyutlu dizimiz tanımlanmaktadır. 214
215 Öğrendiklerimizi Uygulayalım: Sihirli Kareler Aynı programı sihirli karenin boyutu kullanıcı tarafından girilecek şekilde tasarlayabilir misiniz? 215
216 Fonksiyonlar Dinamik olarak kullanılabilen altprogramlar biçiminde tanımlayabileceğimiz fonksiyonlar, PHP dilinin gücünü aldığı en önemli bileşenlerdir. Şöyle ki, günümüzde yazılmış 700 den fazla dahili PHP fonksiyonu bulunmaktadır. Bunlara anonim olarak yazılmış ve İnternetten ulaşılabilen binlerce kullanıcı-tanımlı fonksiyonu da katarsak, konunun önemi ortaya çıkacaktır. 216
217 Fonksiyonlar Fonksiyonları yazma amacımız, çeşitli programlar tarafından kullanılan, ya da aynı program içersinde tekrarlanması gereken işlevsel kodları tekrar kullanılabilir programcıklar olarak oluşturmaktır. Bu programcıklar, ana program ile iki yönlü olarak veri alışverişinde bulunabilirler. Kendi kendilerine çalışmazlar, sadece ana program tarafından çağırıldıklarında çalışırlar. 217
218 Fonksiyonlar Kullanıcı-tanımlı fonksiyonlar, PHP dilini kullanarak uygulama geliştirenler tarafından yazılan fonksiyonlardır. Bunlar İnternet üzerinden yoğun olarak paylaşılmaktadır. 218
219 Fonksiyonlar Dahili fonksiyonlar ise doğrudan PHP çözümleyicisi tarafından denetlenen, PHP geliştirme grubu tarafından yazılmış kullanıma hazır fonksiyonlardır. 219
220 Fonksiyonlar Kullanıcı-Tanımlı Fonksiyonlar Kendi programlarınızda kullanmak üzere, kendi fonksiyonlarınızı yazabilirsiniz. Bunun için genel olarak aşağıdaki gibi bir tanımlama yapmanız yeterli olacaktır: function fonksiyonadı() { fonksiyon tarafından çalıştırılacak kodlar; } 220
221 Fonksiyonlar Bu şekilde tanımlanan bir fonksiyonu çağırmak için adını yazmamız yeterli olacaktır. Basit bir örnekle başlayalım. İşlevi ekrana adınızı yazmak olan bir fonksiyon tanımlayalım ve onu ana programımızdan çağırarak kullanalım. 221
222 Fonksiyonlar <html> <body> <?php function adimiyaz() { echo "Murat Sönmez"; } echo "Benim adım "; adimiyaz();?> </body> </html> Benim adım Murat Sönmez 222
223 Fonksiyonlar Kırmızı renkle gösterilen fonksiyon tanımı, PHP tarafından doğrudan çalıştırılmaz. Ana program bloğu içersinden çağırıldığında çalıştırılacaktır. 223
224 Fonksiyonlar Parametreler ve Dönen Değerler Fonksiyonlar, ana programdan farklı türlerde veriyi alabilirler. Değerleri ana programdan fonksiyonlara taşıyan bu yapılara parametre adı verilir. 224
225 Fonksiyonlar Bir fonksiyon, parametreleri kullanarak ya doğrudan bir işlevi yerine getirir, ya da ana program için bir değer üretir. Eğer bir değer üretmiş ise bu değerin ana programa döndürülmesi için kullanılan deyim, return deyimidir. 225
226 Fonksiyonlar <html> <body> <?php function adimiyaz($ad){ echo "$ad Sönmez ;} echo "Benim adım "; adimiyaz("murat"); echo "<br>kardeşimin adı ise "; adimiyaz("merve");?> </body> </html> Benim adım Murat Sönmez Kardeşimin adı ise Merve Sönmez 226
227 Fonksiyonlar Aşağıdaki örnekte ise, fonksiyon tarafından üretilen değer ana programa gönderilmektedir. <?php $Gelir=1100; function vergiyi_dus ($Geliriniz) { $Geliriniz = $Geliriniz - (($Geliriniz/100)*20); return $Geliriniz; } echo "$Gelir TL gelirin vergi düşülmüş hali "; echo(vergiyi_dus ($Gelir)); echo " TL dir.";?> 227
228 Fonksiyonlar Aynı programı gelir tutarı kullanıcı tarafından girilecek şekilde tasarlayabilir misiniz? 228
229 Fonksiyonlar Diğer bir örnek olarak, daha önce yapmış olduğumuz tek basamaklı bir sayının Türkçe okunuşunu yazacak programı, bu defa fonksiyon kullanarak tasarlayalım. 229
230 Fonksiyonlar <?php function turkce_oku ($Gelen_Sayi){ switch ($Gelen_Sayi) { case 1: $bir="bir"; break; case 2: $bir= İKİ"; break; case 3: $bir="üç"; break; case 4: $bir="dört"; break; 230
231 Fonksiyonlar case 5: $bir="beş"; break; case 6: $bir="alti"; break; case 7: $bir="yedi"; break; case 8: $bir="sekiz"; break; case 9: $bir="dokuz"; break; } return $bir; } Devamı 231
232 Fonksiyonlar $Sayi=8; echo "$Sayi Sayısının Türkçe Okunuşu : "; echo(turkce_oku ($Sayi)); Devamı?> 232
233 Fonksiyonlar Şimdi, çok parametreli olarak geliştirilen örnek fonksiyonumuz, iki sayı ve işlem kodunu alarak sonucu ana programa geri göndermektedir. Öncelikle kullanıcı girişi için formumuzu tasarlayalım. 233
234 Fonksiyonlar <form action="" method="post"> <p>birinci Sayı : <input type="text" name="sayi_1" size="4"></p> <p>ikinci Sayı : <input type="text" name="sayi_2" size="4"></p> <p>işlem Kodu : <select size="1" name="kod"> <option value="-1" selected="selected">== S E Ç İ N İ Z ==</option> <option value="1">toplama</option> <option value="2">çıkarma</option> <option value="3">bölme</option> <option value="4">çarpma</option> </select></p> <p><input name="dugme" type="submit" value="hesapla"></p> </form> 234
235 Fonksiyonlar Örneğimizin PHP kodundan oluşan devamı: <?php if(isset($_post["dugme"])){ function islemyap($sayi1,$sayi2,$islemkodu) { switch ($islemkodu) { case 1: $sonuc=$sayi1+$sayi2; break; case 2: $sonuc=$sayi1-$sayi2; break; case 3: $sonuc=$sayi1/$sayi2; break; 235
236 Fonksiyonlar case 4: $sonuc=$sayi1*$sayi2; break; } return $sonuc; } $s1=(int)$_post['sayi_1']; $s2=(int)$_post['sayi_2']; $kod=$_post['kod']; echo islemyap($s1,$s2,$kod); }?> Devamı 236
237 Fonksiyonlar Formdan gönderilen değerleri taşıyan HTML değişkenlerinin (sayi_1 ve sayi_2), formdan gelen değerleri tutacak PHP değişkenlerinin ($s1 ve $s2) ve fonksiyonun parametrelerinin ($sayi1 ve $sayi2) farklı isimlendirildiklerinde dikkat ediniz. 237
238 Fonksiyonlar Değişkenler arasındaki değer aktarmalarında, değişkenlerin isimleri değil, içinde bulundukları yapılarda yer aldıkları konumlar önemlidir. Dolayısıyla bir fonksiyon için parametrelerinin isimlerinin, ana programda karşılık gelen değişken adlarıyla aynı olması gerekmemektedir. Bu durumda hangi sıradaki parametreye hangi değerin geldiği önemli olacaktır. 238
239 Fonksiyonlar Dahili (İçsel) Fonksiyonlar Dahili fonksiyonlar, sayıları itibarı ile dersimiz kapsamında bütün detayı ile ele alıp anlatabileceğimiz bir konu değildir. Bu fonksiyonların öğrenilmesi daha çok, gereksinim duydukça referans kaynakları vasıtasıyla gerçekleşmektedir. 239
240 Fonksiyonlar Bu kesimde, PHP fonksiyonlarından ortak kullanılanlar sınıflandırılarak listelenmiş, temel işlevleri verilmiş ve mümkün olduğunca örneklendirilmeye çalışılmışlardır. 240
241 Fonksiyonlar Dizi Fonksiyonları Fonksiyon İşlevi array() Bir dizi tanımlar array_change_key_case() Dizinin indislerini büyük ya da küçük harf olarak değiştirir array_chunk() Diziyi böler array_combine() Bir dizinin indislerini, bir diğerinin değerlerini kullanarak yeni bir dizi oluşturur array_count_values() Her değerin dizi içersindeki tekrarlanma sayılarından yeni bir dizi oluşturur array_diff() Dizileri karşılaştırır ve farklar gönderir array_diff_assoc() Dizilerin değerlerini ve indislerini karşılaştırır ve farklar gönderir array_diff_key() Dizilerin indislerini karşılaştırır ve farklar gönderir 241
242 Fonksiyonlar Fonksiyon array_diff_uassoc() array_diff_ukey() array_fill() array_filter() array_flip() array_intersect() Dizi Fonksiyonları İşlevi Dizilerin değerlerini ve indislerini kullanıcıtanımlı bir fonksiyonu kullanarak karşılaştırır ve farklar gönderir Dizilerin indislerini kullanıcı-tanımlı bir fonksiyonu kullanarak karşılaştırır ve farklar gönderir Diziyi belirlenen değerlerle doldurur Dizinin terimlerini kullanıcı-tanımlı bir fonksiyonu kullanarak filtreler Dizideki bütün indisleri, kendileriyle ilişkilendirilmiş değerlerle yer değiştirir Dizilerin değerlerini karşılaştırarak eşleşmeleri gönderir 242
243 Fonksiyonlar Fonksiyon array_intersect_assoc() array_intersect_key() Dizi Fonksiyonları İşlevi Dizilerin değerlerini ve indislerini karşılaştırarak eşleşmeleri gönderir Dizilerin indislerini karşılaştırarak eşleşmeleri gönderir array_intersect_uassoc() Dizilerin değerlerini ve indislerini kullanıcıtanımlı bir fonksiyonu kullanarak karşılaştırır ve eşleşmeleri gönderir array_intersect_ukey() array_key_exists() Dizilerin indislerini kullanıcı-tanımlı bir fonksiyonu kullanarak karşılaştırır ve eşleşmeleri gönderir Belirli bir indisin dizide olup olmadığını denetler 243
244 Fonksiyonlar Dizi Fonksiyonları Fonksiyon İşlevi array_keys() Biz dizinin bütün indislerini gönderir array_map() Biz dizinin bütün terimlerini kullanıcı-tanımlı bir fonksiyona gönderir array_merge() İki ya da daha çok diziyi diğer bir dizide birleştirir array_merge_recursive() İki ya da daha çok diziyi özyinelemeli olarak diğer bir dizide birleştirir array_multisort() Çok-boyutlu dizileri sıralar array_pad() Diziye belirli sayıda terim ekler array_pop() Dizinin son terimini siler array_product() Biz dizideki terimlerin çarpımını hesaplar array_push() Bir ya da daha çok sayıda terimi dizinin sonuna yerleştirir 244
245 Fonksiyonlar Dizi Fonksiyonları Fonksiyon İşlevi array_rand() Diziden bir ya da daha çok rastgele anahtarı verir array_reduce() Diziyi kullanıcı-tanımlı bir fonksiyonu kullanarak string türüne dönüştürür array_reverse() Diziyi ters sıradaki biçimine dönüştürür array_search() Dizide girilen bir değeri arar ve bulunduysa indisini gönderir array_shift() Diziden ilk terimi siler ve sildiği terimini değerini gönderir array_slice() Bir dizinin belirlenen bir parçasını gönderir array_splice() Bir dizinin belirlenen terimlerini siler ve değiştirir array_sum() Dizinin terimlerinin değerlerini toplar 245
246 Fonksiyonlar Fonksiyon array_udiff() array_udiff_assoc() Dizi Fonksiyonları İşlevi Dizinin değerlerini kullanıcı-tanımlı bir fonksiyonu kullanarak karşılaştırır ve bir dizi gönderir Dizinin indislerini kullanıcı-tanımlı bir fonksiyonu kullanarak karşılaştırır ve bir dizi gönderir array_udiff_uassoc() Dizinin değerlerini ve indislerini kullanıcı-tanımlı bir fonksiyonu kullanarak karşılaştırır ve bir dizi gönderir array_uintersect() Dizinin değerlerini kullanıcı-tanımlı bir fonksiyonu kullanarak karşılaştırır ve bir dizi gönderir 246
247 Fonksiyonlar Fonksiyon array_uintersect_assoc() Dizi Fonksiyonları İşlevi Dizinin indislerini kullanıcı-tanımlı bir fonksiyonu kullanarak karşılaştırır ve bir dizi gönderir array_uintersect_uassoc() Dizinin değerlerini ve indislerini kullanıcıtanımlı bir fonksiyonu kullanarak karşılaştırır ve bir dizi gönderir array_unique() array_unshift() array_values() array_walk() array_walk_recursive() Diziden tekrarlanan değerleri siler Bir ya da daha çok terimi dizinin başlangıcına ekler Dizinin bütün değerlerini gönderir Kullanıcı-tanımlı bir fonksiyonu dizinin bütün terimlerine uygular Kullanıcı-tanımlı bir fonksiyonu dizinin bütün terimlerine özyinelemeli uygular 247
248 Fonksiyonlar Dizi Fonksiyonları Fonksiyon İşlevi arsort() Dizinin terimlerini ters sıraya dönüştürür ve indisleri buna göre düzenler asort() Diziyi sıralar ve indisleri yeniden düzenler compact() Değişkenleri ve taşıdıkları değerleri içeren bir dizi oluşturur count() Dizinin terim sayısını gönderir current() Dizinin anlık işlemdeki terimini gönderir each() Dizinin anlık işlemdeki değerini ve indisini gönderir end() İşaretçiyi dizinin son terimine yönlendirir extract() Dizinin anlık işlemdeki terimine değişken ekler 248
249 Fonksiyonlar Dizi Fonksiyonları Fonksiyon İşlevi in_array() Belirli bir değerin dizide bulunup bulunmadığını denetler key() Diziden bir indis çeker krsort() Diziyi indise göre ters sırada sıralar ksort() Diziyi indise göre sıralar list() Değişkenleri dizideymiş gibi atar natcasesort() Diziyi doğal sıralama algoritmasını kullanarak büyük/küçük harf duyarlı olarak sıralar natsort() Diziyi doğal sıralama algoritmasını kullanarak sıralar next() Dizinin işaretçisini bir sonraki terime öteler pos() İşaretçinin anlık işlemdeki konumunu verir prev() Dizinin işaretçisini bir önceki terime öteler range() Terim sayısı belirterek dizi oluşturur 249
250 Fonksiyonlar Fonksiyon reset() rsort() shuffle() sizeof() sort() uasort() uksort() usort() Dizi Fonksiyonları İşlevi İşaretçiyi dizinin ilk terimine yönlendirir Diziyi ters sırada sıralar Dizi terimlerini karıştırır Dizinin terim sayısı Diziyi sıralar Diziyi kullanıcı-tanımlı bir fonksiyon kullanarak sıralar ve indisleri yeniden düzenler Diziyi kullanıcı-tanımlı bir fonksiyon kullanarak indislerine göre sıralar Diziyi kullanıcı-tanımlı bir fonksiyon kullanarak değerlerine göre sıralar 250
251 Fonksiyonlar Fonksiyon İşlevi chdir() İşlemdeki dizini değiştirir chroot() O andaki işlemin kök dizinini değiştirir dir() Dizini açar closedir() Açılan dizini kapatır getcwd() Anlık işlemdeki dizini gönderir opendir() Dizini açar readdir() İşlemdeki dizinden bir girdi okur rewinddir() Anlık işlemdeki dizini sıfırlar scandir() Belirlenen konumdaki dizin ve dosyaları gönderir Dizin (Klasör) Fonksiyonları 251
252 Fonksiyonlar <?php print_r(scandir("odevler"));?> Array ( [0] =>. [1] =>.. [2] => rar [3] => rar [4] => rar [5] => rar [6] => rar [7] => rar ) 252
253 Fonksiyonlar Hata Fonksiyonları Fonksiyon İşlevi debug_backtrace() Geriye-doğru tarama işlemi (backtrace) başlatır debug_print_backtrace() Geriye-doğru tarama işlemini ekrana yazar error_get_last() Alınan en son hatayı verir error_log() Bir hatayı sunucunun hata izlencesine, bir dosyaya ya da belirlenecek bir uzak hedefe gönderilmesini sağlar error_reporting() Hangi hataların rapor edileceğini belirler restore_error_handler() Restores the previous error handler restore_exception_handler() Bir önceki istisnai durum ayarına döner set_error_handler() Hata takibi için bir kullanıcı-tanımlı fonksiyonu atar set_exception_handler() İstisnai durumlar için bir kullanıcı-tanımlı fonksiyonu atar 253
254 Fonksiyonlar Fonksiyon trigger_error() user_error() Hata Fonksiyonları İşlevi Kullanıcı-tanımlı bir hata mesajı oluşturur Kullanıcı-tanımlı bir hata mesajı oluşturur <?php $sayi=1; if ($sayi<2){ trigger_error("kullanıcı-tanımlı hata durumu tetiklendi.");}?> Programın çalışması durdurularak belirtilen hata mesajı verilecektir. 254
255 Fonksiyonlar Fonksiyon abs() acos() acosh() asin() asinh() atan() atan2() atanh() İşlevi Sayının mutlak değerini gönderir Sayının ters kosinüs değerini gönderir Sayının ters hiperbolik kosinüs değerini gönderir Sayının ters sinüs değerini gönderir Sayının ters hiperbolik sinüs değerini gönderir Matematik Fonksiyonları Sayının -PI/2 ve PI/2 radyan değerleri arasında kalan ters tanjant değerini gönderir Bir (x,y) noktasının açısını -PI ve PI radyan değerleri arasında nümerik olarak gönderir Sayının ters hiperbolik tanjant değerini gönderir base_convert() Sayıyı bir tabandan başka bir tabana dönüştürür 255
256 Fonksiyonlar Fonksiyon bindec() ceil() cos() cosh() decbin() dechex() decoct() deg2rad() Matematik Fonksiyonları İşlevi İkili (binary) tabandaki sayıyı onlu (decimal) tabana dönüştürür Sayıya en yakın bir üst tamsayıyı gönderir Sayının kosinüs değerini gönderir Sayının hiperbolik kosinüs değerini gönderir Onlu (decimal) tabandaki sayıyı ikili (binary) tabana dönüştürür Onlu (decimal) tabandaki sayıyı onaltılı (hexadecimal) tabana dönüştürür Onlu (decimal) tabandaki sayıyı sekizli (octal) tabana dönüştürür Dereceyi radyan birimine dönüştürür 256
257 Fonksiyonlar Fonksiyon exp() expm1() floor() fmod() getrandmax() hexdec() hypot() is_finite() is_infinite() İşlevi e x değerini gönderir e x 1 değerini gönderir Sayıya en yakın bir alt tamsayıyı gönderir Sayının bölmede kalanını (mod) gönderir Matematik Fonksiyonları rand() fonksiyonu ile elde edilebilecek en büyük rastgele sayıyı gönderir Onaltılı (hexadecimal) tabandaki sayıyı onlu (decimal) tabana dönüştürür Dik üçgenin hipotenüs uzunluğunu gönderir Değer sonlu bir sayı ise True değerini üretir Değer sonsuz bir sayı ise True değerini üretir 257
258 Fonksiyonlar Fonksiyon is_nan() lcg_value() log() log10() log1p() max() min() İşlevi Değer bir sayı değil ise True değerini üretir (0,1) aralığında bir pseudo rastgele sayı üretir Matematik Fonksiyonları Bir sayının E tabanındaki doğal logaritma değerini üretir Bir sayının 10 tabanındaki logaritma değerini üretir log(1+sayı) değerini üretir İki sayıdan büyük olanı gönderir İki sayıdan küçük olanı gönderir mt_getrandmax() mt_rand() fonksiyonu ile elde edilebilecek en büyük rastgele sayıyı gönderir mt_rand() Mersenne Twister algoritmasını kullanarak rastgele sayı üretir 258
259 Fonksiyonlar Fonksiyon İşlevi mt_srand() Mersenne Twister rastgele sayı üreticisini başlatır Matematik Fonksiyonları octdec() pi() pow() rad2deg() rand() round() sin() sinh() sqrt() Sekizli (octal) tabandaki sayıyı onlu (decimal) tabana dönüştürür PI sayısının değerini gönderir x sayısının y nci kuvvetini gönderir Radyanı dereceye dönüştürür Rastgele tamsayı üretir Sayıyı en yakın tamsayıya yuvarlar Sayının sinüs değerini gönderir Sayının hiperbolik sinüs değerini gönderir Sayının karekök değerini gönderir 259
260 Fonksiyonlar Fonksiyon İşlevi srand() Rastgele sayı üreticisini başlatır tan() tanh() Sayının tanjant değerini gönderir Sayının hiperbolik tanjant değerini gönderir Matematik Fonksiyonları 260
261 Fonksiyonlar <?php echo "ceil(6.1)=",ceil(6.1); echo "<hr>"; echo "ceil(7.9)=",ceil(7.9); echo "<hr>"; echo "round( 13.4)=",round( 13.4); echo "<hr>"; echo "round( 32.5)=",round( 32.5); echo "<hr>"; echo "floor(8.1)=",floor(8.1); echo "<hr>"; echo "floor(4.9)=",floor(4.9); echo "<hr>";?> ceil(6.1)= ceil(7.9)= round( 13.4)= round( 32.5)= floor(8.1)= floor(4.9)=4 261
262 Fonksiyonlar <?php /* derece arasındaki bütün açıların sinüs, kosinüs ve tanjant değerleri hesaplanıyor. */ echo "<h1>trigonometrik Değerler Tablosu</h1> <table border=1> <tr bgcolor=#aeeef9> <td width=70>açı</td> <td width=110>sinüs</td> <td width=110>kosinüs</td> <td width=110>tanjant</td> </tr>"; for ($aci=0;$aci<=360;$aci++) { $sinus = number_format(sin(deg2rad($aci)),6); 262
263 Fonksiyonlar Devamı $kosinus = number_format(cos(deg2rad($aci)),6); if (!($aci==90) and!($aci==270)){ $tanjant=number_format(tan(deg2rad($aci)),6);} else{ $tanjant="=sonsuz= ;} echo " <tr bgcolor=#cacbee> <td width=70>$aci</td> <td width=110>$sinus</td> <td width=110>$kosinus</td> <td width=110>$tanjant</td> </tr> "; }?> 263
264 Fonksiyonlar Trigonometrik Değerler Tablosu Açı Sinüs Kosinüs Tanjant
265 Fonksiyonlar Daha önce tek basamaklı sayılar için yaptığımız, bir sayının Türkçe okunuşu örneğini, iki basamaklı sayılar için yapalım. <?php function turkce_oku ($Gelen_Sayi){ $birler = fmod($gelen_sayi,10); $onlar = floor($gelen_sayi/10); switch ($onlar) { case 1: $on="on"; break; case 2: $on="yirmi"; break; 265
266 Fonksiyonlar case 3: $on="otuz"; break; case 4: $on="kirk"; break; case 5: $on="elli"; break; case 6: $on="altmiş"; break; case 7: $on="yetmiş"; break; Devamı 266
267 Fonksiyonlar case 8: $on="seksen"; break; case 9: $on="doksan"; break; } switch ($birler) { case 1: $bir="bir"; break; case 2: $bir= İKİ"; break; case 3: $bir="üç"; break; Devamı 267
268 Fonksiyonlar case 4: $bir="dört"; break; case 5: $bir="beş"; break; case 6: $bir="alti"; break; case 7: $bir="yedi"; break; case 8: $bir="sekiz"; break; Devamı 268
269 Fonksiyonlar case 9: $bir="dokuz"; break; } return $on.$bir; } $Sayi=48; echo "$Sayi Sayısının Türkçe Okunuşu : "; echo(turkce_oku ($Sayi));?> Bu örnekte öncelikle iki basamaklı sayı onlar ve birler basamaklarına ayrılıyor, daha sonra onlar ve birler basamağına karşılık gelen Türkçe okunuşlar belirlenerek birleştiriliyor. Devamı 269
270 Fonksiyonlar Burada dikkat edilmesi gereken nokta, iki basamaklı sayının nasıl basamaklarına ayrıldığıdır. Sayının 10 modundaki değeri, doğrudan birler basamağını verir: 43 mod 10 = 3 gibi Bu işlem PHP de fmod dahili fonksiyonu kullanılarak gerçekleştiriliyor: $birler = fmod($gelen_sayi,10); 270
271 Fonksiyonlar Onlar basamağını ise sayıyı 10 a bölüp, çıkan sonucun tam kısmını alarak elde ediyoruz. 43 / 10 = 4.3 Tam kısım (4.3) = 4 gibi Bu işlem PHP de floor dahili fonksiyonu kullanılarak gerçekleştiriliyor: $onlar = floor($gelen_sayi/10); 271
272 Fonksiyonlar Üç basamaklı bir sayının Türkçe okunuşunu ekrandan yazacak programı yazabilir misiniz? 272
273 Fonksiyonlar Karekökü tamsayı olan sayılara tamkare sayılar adı verilir. Örneğin 4, karekökü olan 2 tamsayı olduğundan bir tamkaredir. 9, 16 ve 25 de tamkare sayılardır, ancak 5,6,7,8 değildir. Yazacağımız PHP programı, 1 ile 1000 arasındaki tamkare sayıları listelesin. 273
274 Fonksiyonlar <?php $sayi = 1; while ( $sayi <= 1000 ) { if (floor(sqrt($sayi))==sqrt($sayi)) { echo "$sayi, ; } $sayi ++; }?> 1, 4, 9, 16, 25, 36, 49, 64, 81, 100, 121, 144, 169, 196, 225, 256, 289, 324, 361, 400, 441, 484, 529, 576, 625, 676, 729, 784, 841, 900, 961, 274
275 Fonksiyonlar Bu örnekte dikkat etmemiz gereken nokta, sayının karekökünün tamsayı olup olmadığının anlaşılması için PHP fonksiyonlarının nasıl kullanıldığıdır. Bu işlem için iki matematik fonksiyonu kullanılmıştır: floor ve sqrt 275
276 Fonksiyonlar Eğer bir sayının karekökünün tam kısmı, sayının kareköküne eşit ise o sayı bir tamkare sayıdır: if (floor(sqrt($sayi))==sqrt($sayi)) Programın çıktısında tamkare sayılar birbirlerinden virgülle ayrılmış biçimde listelenmiştir. Ancak en sonda fazladan bir virgül basılmıştır. Koda yapacağınız bir ekleme ile bunu engelleyebilir misiniz? 276
277 Fonksiyonlar Fonksiyon addcslashes() addslashes() bin2hex() chop() chr() chunk_split() convert_cyr_string() convert_uudecode() İşlevi Bir stringde belirlenen karakterlerden öncesine \ karakteri ekler String Fonksiyonları Bir stringde ön tanımlı (tırnak işareti gibi) karakterlerden öncesine \ karakteri ekler Stringin ASCII karakterlerini onaltılık tabandaki değerlere dönüştürür rtrim() ile aynı işleve sahiptir Belirli bir ASCII değere karşılık gelen karakteri gönderir Stringi daha küçük parçalara böler Kril alfabesinden dönüşüm yapar uuencoded olarak şifrelenmiş stringi çözer 277
278 Fonksiyonlar Fonksiyon convert_uuencode() count_chars() crc32() crypt() echo() explode() fprintf() İşlevi Stringi uuencoded olarak şifreler String Fonksiyonları Bir ASCII karakterin string içersinde kaç defa geçtiğini sayar Bir string için 32-bit CRC hesabını yapar Stringi hashing metoduna göre şifreler Stringin ekran çıktısını verir Stringi diziye dönüştürür Formatlı bir stringi belirlenen çıktı formatına uygun olarak ekrana yazar get_html_translation_table() htmlspecialchars() ve htmlentities() fonksiyonları tarafından kullanılan HTML dönüşüm tablosunu verir 278
279 Fonksiyonlar Fonksiyon hebrev() hebrevc() html_entity_decode() htmlentities() String Fonksiyonları İşlevi Hebrew metni görsel metne dönüştürür Hebrew metni satırbaşları yaparak görsel metne dönüştürür HTML girdilerini karaktere dönüştürür Karakterleri HTML girdilerine dönüştürür htmlspecialchars_decode() Bazı ön-tanımlı HTML girdilerini (" gibi) karaktere dönüştürür htmlspecialchars() implode() join() Bazı ön-tanımlı karakterleri HTML girdilerine dönüştürür Biz dizinin terimlerini kullanarak string oluşturur implode() ile aynı işleve sahiptir 279
280 Fonksiyonlar Fonksiyon levenshtein() localeconv() ltrim() md5() md5_file() metaphone() money_format() nl_langinfo() nl2br() String Fonksiyonları İşlevi İki string arasındaki Levenshtein measafesini hesaplar Yerel sayı ve para birimi bilgisini görüntüler Stringin solunda yer alan boşlukları keser Bir stringin MD5 hash değerini hesaplar Bir dosyanın MD5 hash değerini hesaplar Bir stringin metaphone anahtarını hesaplar String biçimini para birimine dönüştürür Özel yerel bilgiyi verir Bir stirngde her yeni satırdan önce satırbaşı yapar 280
281 Fonksiyonlar Fonksiyon number_format() ord() parse_str() print() printf() quoted_printable_decode() quotemeta() rtrim() setlocale() İşlevi Stringi binler ayıraçlı sayı formatına dönüştürür String Fonksiyonları Bir stringin ilk karakterinin ASCII değerini verir Bir sorgulama stringini değişkenlere ayrıştırır Stringin çıktısını verir Biçimlendirilmiş (formatlı) stringin çıktısını verir Meta karakterleri tırnak içine alır Stringin sağında yer alan boşlukları keser Yerel bilgiyi ayarlar 281
282 Fonksiyonlar Fonksiyon sha1() sha1_file() similar_text() soundex() sprintf() sscanf() str_ireplace() String Fonksiyonları İşlevi Bir stringin SHA-1 hash değerini hesaplar Bir dosyanın SHA-1 hash değerini hesaplar İki string arasındaki benzerliği hesaplar Bir stringin soundex anahtar değerini hesaplar Formatlı bir stringi değişkene yazar Belirlenen bir formata göre stringden girdileri ayrıştırır String içinde karakter değişimi yapar (büyük/küçük harf duyarlı değildir) 282
283 Fonksiyonlar Fonksiyon str_pad() str_repeat() str_replace() str_rot13() str_shuffle() str_split() String Fonksiyonları İşlevi Stringin uzunluğunu belirlenen bir karakter kullanarak değiştirir Bir stringi belirlenen bir sayıda tekrarlar String içinde karakter değişimi yapar (büyük/küçük harf duyarlıdır) Bir string üzerinde ROT13 şifrelemesini çalıştırır Stringi oluşturan tüm karakterleri rastgele karıştırır Stringi diziye ayrıştırır str_word_count() Stringde yer alan kelime sayısını hesaplar strcasecmp() İki stringi karşılaştırır (büyük/küçük harf duyarlı değildir) 283
284 Fonksiyonlar Fonksiyon strchr() strcmp() strcoll() strcspn() strip_tags() stripcslashes() stripslashes() stripos() stristr() İşlevi String içersinde string arar String Fonksiyonları İki stringi karşılaştırır (büyük/küçük harf duyarlıdır) Yerel temelli string karşılaştırması Belirli bir string parçasından önce yer alan karakterlerin sayısını verir String içersinden HTML ve PHP etiketlerini siler addcslashes() fonksiyonu ile eklenen \ işaretlerini siler addslashes() fonksiyonu ile eklenen \ işaretlerini siler Bir string içersinde başka bir stringin ilk bulunuş konumunu verir (büyük/küçük harf duyarlı değildir) Bir string içersinde başka bir stringin ilk bulunuşunu verir (büyük/küçük harf duyarlı değildir) 284
285 Fonksiyonlar Fonksiyon strlen() strnatcasecmp() strnatcmp() strncasecmp() strncmp() strpbrk() strpos() İşlevi Stringin uzunluğunu gönderir String Fonksiyonları İki stringi doğal sıralama" algoritmasını kullanarak karşılaştırır (büyük/küçük harf duyarlı değildir) İki stringi doğal sıralama" algoritmasını kullanarak karşılaştırır (büyük/küçük harf duyarlıdır) İlk n karakterin string karşılaştırması (büyük/küçük harf duyarlı değildir) İlk n karakterin string karşılaştırması (büyük/küçük harf duyarlıdır) Bir string içersinde herhangi bir karakter setini arar. Bir string içersinde başka bir stringin ilk bulunuş konumunu verir büyük/küçük harf duyarlıdır) 285
286 Fonksiyonlar Fonksiyon strrchr() strrev() strripos() strrpos() strspn() String Fonksiyonları İşlevi Bir stringin başka bir string içersindeki son bulunuşunu verir Stringi tersine çevirir Bir string içersinde başka bir stringin en son bulunuşunun konumunu verir (büyük/küçük harf duyarlı değildir) Bir string içersinde başka bir stringin en son bulunuşunun konumunu verir (büyük/küçük harf duyarlıdır) Bir string içersinde belirlenen bir karakter listesinde yer alan karakterlerin sayısını verir 286
287 Fonksiyonlar Fonksiyon strstr() strtok() strtolower() strtoupper() strtr() substr() String Fonksiyonları İşlevi Bir string içersinde başka bir stringin ilk bulunuşunun konumunu verir (büyük/küçük harf duyarlıdır) Bir stringi daha küçük parçalara böler Stringi küçük harflere dönüştürür Stringi büyük harflere dönüştürür String içersinde belirlenen karakterleri dönüştürür Stringin istenen parçasını verir substr_compare() İki stringi belirlenen bir karakterden itibaren karşılaştırır (büyük/küçük harf duyarlıdır) substr_count() Bir stringde başka bir stringin bulunuş sayısını gönderir substr_replace() Bir stringin belirli bir parçasını başka bir string ile değiştirir 287
288 Fonksiyonlar Fonksiyon trim() ucfirst() ucwords() vfprintf() vprintf() vsprintf() wordwrap() İşlevi Stringin her iki tarafındaki boşlukları keser Stringin ilk karakterini büyük harfe dönüştürür String Fonksiyonları Stringi oluşturan her kelimenin ilk karakterini büyük harfe dönüştürür Formatlı stringin belirtilen yöne çıktısını gönderir Formatlı stringin çıktısını gönderir Formatlı stringi değişkene yazar Stringi belirli bir uzunluğa ulaştığında yeni satırlara böler 288
289 Fonksiyonlar Şimdi stringler üzerine bazı örnek programlar tasarlayalım. İlk örneğimizde, kullanıcının adını, soyadını ve e-posta uzantısını kullanarak e-posta adresini otomatik olarak oluşturacak programı yazalım. 289
290 Fonksiyonlar Uygulamamız e-posta adresini şu kurala göre oluştursun: <Adın ilk uzantısı> 290
291 Fonksiyonlar Örneğin adı Çetin, soyadı Öztürk olan bir kullanıcı için, gazi.edu.tr e-posta uzantısına göre, e-posta adresi oluşturulsun. 291
292 Fonksiyonlar Burada çözmemiz gereken en önemli problem, Türkçe harflerin benzer İngilizce harflere dönüştürülmesidir. Örneğin ğ harfinin g harfine dönüştürülmesi gibi. Bunu bizim için, yazacağımız bir dönüşüm fonksiyonu yapacak. 292
293 Fonksiyonlar <body> <form action="" method="post"> <p>ad : <input size="20" type="text" name="ad"></p> <p>soyad : <input size="20" type="text" name="soyad"></p> <p>e-posta Uzantısı : <input size="20" type="text" name="eposta" value="gazi.edu.tr"></p> <p><input name="dugme" type="submit" value="e- Posta Adresi"></p> </form> 293
294 Fonksiyonlar <?php Devamı function turkceharf_donustur ($harf) { switch ($harf) { case "ç": $harf="c"; break; case "ğ": $harf="g"; break; case "ö": $harf="o"; break; 294
295 Fonksiyonlar case "ş": $harf="s"; break; case "ü": $harf="u"; break; case "İ": $harf="i"; break; case "ı": $harf="i"; break; } return $harf;} Devamı 295
296 Fonksiyonlar function eposta_olustur ($adi, $soyadi) { $adilk=strtolower(substr($adi,0,1)); $soyad=strtolower($soyadi); $eposta = $adilk.".".$soyad; $yeni_eposta=""; for ($i = 0; $i <= strlen($eposta); $i++) { $yeni_eposta=$yeni_eposta.turkceharf_donustur( substr($eposta,$i,1)); } return $yeni_eposta; } Devamı 296
297 Fonksiyonlar if(isset($_post["dugme"])) { $ad = $_POST['ad']; $soyad = $_POST['soyad']; $e_posta = $_POST['eposta']; echo "<p>e-posta adresi : "; echo eposta_olustur($ad,$soyad)."@".$e_posta; }?> </body> </html> Devamı 297
298 Fonksiyonlar Yazdığımız turkceharf_donustur() fonksiyonu, kendisine gelen Türkçe harfi benzeri İngilizce harfe dönüştürmektedir. Önce adın ilk harfi ile soyad küçük harfe dönüştürülerek ve araya nokta işareti konularak birleştirilmektedir. Daha sonra oluşturulan bu string, harf harf fonksiyonumuza gönderilmekte ve içersinde bulunan Türkçe harfler dönüştürülmektedir. 298
299 Fonksiyonlar Sonuç olarak elde edilen string, e-posta uzantısı ile birleştirilmek suretiyle e-posta adresi elde edilmektedir. Aynı işleve sahip, ancak kodu önemli ölçüde azaltacak başka bir yöntemde, dönüştürme işleminde diziler kullanılmaktadır. 299
300 Fonksiyonlar <?php function Tr_Donustur($gelen_metin){ $gelen_metin = trim($gelen_metin); $aranan_harfler = array('ç', ğ', ı','ö', ş','ü', İ'); $degistirilecek_harfler = array('c','g','i','o','s','u','i'); return str_replace($aranan_harfler,$degistirilecek_harfle r,$gelen_metin); } if(isset($_post["dugme"])){ $ad = $_POST['ad']; $soyad = $_POST['soyad']; $e_posta = $_POST['eposta']; echo "<p>e-posta adresi : "; echo Tr_Donustur(strtolower($ad[0].".".$soyad))."@".$e_ posta; }?> 300
301 Fonksiyonlar strstr() fonksiyonunun kullanıldığı başka bir örnek: <?php $sifreniz = "tolgaguyer"; $adiniz = "tolga"; if ( strstr( $sifreniz, $adiniz ) ) print "Şifreniz içersinde adınız yer almamalıdır!"; else print "Teşekkürler...";?> 301
302 Fonksiyonlar Kullanıcı tarafından girilen bir metni Morse alfabesine göre kodlayan bir örnek: <form action="" method="post"> <p>metni Giriniz: <input type="text" name="metin" ></p> <p><input name="dugme" type="submit" ></p> </form> <?php $morsekodlari = array ('A' => '.-', 'B' => '-...', 'C' => '-.-.', 'D' => '-..', 'E' => '.', 'F' => '..-.', 'G' => '--.', 'H' => '...', 'I' => '..', 'J' => '.---,'K' => '-.-', 'L' => '.-..', 'M' => 302
303 Fonksiyonlar Devamı '--', 'N' => '-.', 'O' => '---', 'P' => '.--.', 'Q' => '--.-', 'R' => '.-.', 'S' => '...', 'T' => '-', 'U' => '..-', 'V' => '...-', 'W' => '.--', 'X' => '-..-', 'Y' => '-.--', 'Z' => '--..', '0' => '-----', '1' => '.----', '2' => '..---', '3' => '...--', '4' => '...-', '5' => '...', '6' => '-...', '7' => '--...', '8' => '---..', '9' => '--- -.', '.' => '.-.-.-', ',' => '--..--', ':' => '---...', '?' => '..--..', '-' => '-...-', '/' => '-..-.', '(' => '-.--.-', ' ' => '(bosluk)'); 303
304 Fonksiyonlar if(isset($_post["dugme"])) { $metin=$_post['metin']; $uzunluk=strlen($metin); $morsekodu=''; for($i=0;$i<=$uzunluk-1;$i++) { $morsekodu=$morsekodu. $morsekodlari[strtoupper($metin[$i])]. ' '; } echo("<strong> $morsekodu </strong>"); } Devamı?> 304
305 Fonksiyonlar Bu örnekte dikkat etmemiz gereken önemli bir nokta, ($metin[$i]) kullanımdır. Burada $metin bir string değişkenidir ancak $i indisi ile bir dizi gibi kullanılmıştır. 305
306 Fonksiyonlar Buradan çıkaracağımız sonuç, string türündeki her değişkenin, karakterlerden oluşmuş bir dizi olarak kullanılabileceği gerçeğidir. Bu özellik, stringler üzerinde işlem yaparken burada olduğu gibi bize önemli kolaylıklar sağlamaktadır. 306
307 Öğrendiklerimizi Uygulayalım: Bilgisayar Parçaları Siparişi Geliştireceğimiz bu uygulama, İnternet üzerinde bilgisayar parçaları siparişi vermek için tasarlanmıştır. Uygulama iki dosyadan oluşmaktadır. İlki, sipariş formunun yer aldığı HTML uygulaması, ikincisi ise sipariş bilgilerini alarak hesaplamaları ve raporlamayı gerçekleştiren PHP uygulamasıdır. 307
308 Öğrendiklerimizi Uygulayalım: Bilgisayar Parçaları Siparişi <html> <head> <title>bilgisayar Parçaları Satışı</title> <meta http-equiv="content-type" content="text/html; charset=iso "></head> <body> <h1>bilgisayar Parçaları Satışı</h1> <h2>sipariş Formu</h2> <form action="siparisi_al.php" method=post> <table border=1> <tr bgcolor=#bee9e9> <td width=150>parça Adı</td> <td align=center width=110>birim Fiyat</td> <td width=15>adet</td> </tr> 308
309 Öğrendiklerimizi Uygulayalım: Bilgisayar Parçaları Siparişi <tr bgcolor=#ffffaa> <td>kasa</td> <td align=right>85.50 TL</td> <td align=center><input type="text" name="kasa" size=3 maxlength=3></td> </tr> <td>anakart</td> <td align=right> YTL</td> <td align=center><input type="text" name="anakart" size=3 maxlength=3></td> </tr> Devamı 309
310 Öğrendiklerimizi Uygulayalım: Bilgisayar Parçaları Siparişi <tr bgcolor=#ffffaa> <td>işlemci</td> <td align=right> YTL</td> <td align=center><input type="text" name="islemci" size=3 maxlength=3></td> </tr> <tr bgcolor=#ffffaa> <td>sabit Disk</td> <td align=right> YTL</td> <td align=center><input type="text" name="sabitdisk" size=3 maxlength=3></td> </tr> Devamı 310
311 Öğrendiklerimizi Uygulayalım: Bilgisayar Parçaları Siparişi Devamı <tr bgcolor=#ffffaa> <td>cd/dvd Sürücüsü</td> <td align=right>90.00 YTL</td> <td align=center><input type="text" name="cddvd" size=3 maxlength=3></td> </tr> <tr bgcolor=#ffffaa> <td>bellek</td> <td align=right> YTL</td> <td align=center><input type="text" name="bellek" size=3 maxlength=3></td> </tr> 311
312 Öğrendiklerimizi Uygulayalım: Bilgisayar Parçaları Siparişi <tr bgcolor=#bee9e9> <td colspan=3 align=left><input type=submit value="siparişi Al"></td> </tr> </table> </form> Devamı </body> </html> 312
313 Öğrendiklerimizi Uygulayalım: Bilgisayar Parçaları Siparişi Form çalıştırıldığında devreye siparisi_al.php dosyası girecektir. Bu dosya birim fiyat sabitlerini ve formdan gelen parça adetleri verisini kullanarak toplam tutarı hesaplayacak, string fonksiyonlarının kullanıldığı bir yöntemle bu tutarı yazı ile de yazacaktır. 313
314 Öğrendiklerimizi Uygulayalım: Bilgisayar Parçaları Siparişi siparisi_al.php <html> <head> <title>bilgisayar Parçaları Satışı</title> <meta http-equiv="content-type" content="text/html; charset=iso "></head> <body> <h1>bilgisayar Parçaları Satışı</h1> <h2>sipariş Bilgileri</h2> 314
315 Öğrendiklerimizi Uygulayalım: Bilgisayar Parçaları Siparişi <?php Devamı function birler_oku ($Gelen_Sayi){ switch ($Gelen_Sayi) { case 0: $bir=""; break; case 1: $bir="bir"; break; case 2: $bir="iki"; break; case 3: $bir="üç"; break; 315
316 Öğrendiklerimizi Uygulayalım: Bilgisayar Parçaları Siparişi case 4: $bir="dört"; break; case 5: $bir="beş"; break; case 6: $bir="alti"; break; case 7: $bir="yedi"; break; case 8: $bir="sekiz"; break; case 9: $bir="dokuz"; break; } return $bir; } Devamı 316
317 Öğrendiklerimizi Uygulayalım: Bilgisayar Parçaları Siparişi function onlar_oku ($Gelen_Sayi) { switch ($Gelen_Sayi) { case 0: $on=""; break; case 1: $on="on"; break; case 2: $on="yirmi"; break; case 3: $on="otuz"; break; case 4: $on="kirk"; break; case 5: $on="elli"; break; Devamı 317
318 Öğrendiklerimizi Uygulayalım: Bilgisayar Parçaları Siparişi case 6: $on="altmiş"; break; case 7: $on="yetmiş"; break; case 8: $on="seksen"; break; case 9: $on="doksan"; break;} return $on;} Devamı 318
319 Öğrendiklerimizi Uygulayalım: Bilgisayar Parçaları Siparişi function oku ($sayi){ $basamak_sayisi=strlen($sayi); switch ($basamak_sayisi) { case 1: $sonuc=birler_oku((int)$sayi); break; case 2: Devamı $sonuc=onlar_oku((int)$sayi[0]).birler_oku(( int)$sayi[1]); break; case 3: if ($sayi[0]=="1") { 319
320 Öğrendiklerimizi Uygulayalım: Bilgisayar Parçaları Siparişi Devamı $sonuc="yüz".onlar_oku((int)$sayi[1]).birler_oku((i nt)$sayi[2]); } else { $sonuc=birler_oku((int)$sayi[0])."yüz".onlar _oku((int)$sayi[1]).birler_oku((int)$sayi[2]); } break; case 4: if ($sayi[0]=="1") { if ($sayi[1]=="0" and $sayi[2]=="0") { 320
321 Öğrendiklerimizi Uygulayalım: Bilgisayar Parçaları Siparişi $sonuc="bin".birler_oku((int)$sayi[3]); } elseif ($sayi[1]=="0") { Devamı $sonuc="bin".onlar_oku((int)$sayi[2]).birler _oku((int)$sayi[3]); } else { if ($sayi[1]=="1") { $sonuc="binyüz".onlar_oku((int)$sayi[2]).bir ler_oku((int)$sayi[3])} else { 321
322 Öğrendiklerimizi Uygulayalım: Bilgisayar Parçaları Siparişi Devamı $sonuc="bin".birler_oku((int)$sayi[1])."yüz".onlar_ oku((int)$sayi[2]).birler_oku((int)$sayi[3]); } } } else { if ($sayi[1]=="0" and $sayi[2]=="0") { $sonuc=birler_oku((int)$sayi[0])."bin".birle r_oku((int)$sayi[3]); } elseif ($sayi[1]=="0") { 322
323 Öğrendiklerimizi Uygulayalım: Bilgisayar Parçaları Siparişi Devamı $sonuc=birler_oku((int)$sayi[0])."bin".onlar_oku((i nt)$sayi[2]).birler_oku((int)$sayi[3]); } else{ if ($sayi[1]=="1"){ $sonuc=birler_oku((int)$sayi[0])."binyüz".on lar_oku((int)$sayi[2]).birler_oku((int)$sayi[3]); } else { $sonuc=birler_oku((int)$sayi[0])."bin".birler_oku(( int)$sayi[1])."yüz".onlar_oku((int)$sayi[2]).birler _oku((int)$sayi[3]);} } } break; } return $sonuc;} 323
324 Öğrendiklerimizi Uygulayalım: Bilgisayar Parçaları Siparişi function TL_Oku ($para) { $noktayeri=strpos($para,"."); if ($noktayeri<>0) { $tl=substr($para,0,$noktayeri); Devamı $kr=substr($para,$noktayeri+1,strlen($para)- $noktayeri); return oku($tl)." TL ".oku($kr)." Kr"; } else { return oku($para)." TL";} } 324
325 Öğrendiklerimizi Uygulayalım: Bilgisayar Parçaları Siparişi echo "<p>siparişiniz "; // Siparişle ilgili bütün detaylar bu php kodu // tarafından hesaplanmaktadır. echo date("j/m/y"); echo " tarihinde, saat "; echo date("h:i"); echo " itibarı ile işleme konmuştur."; echo "<p>siparişinizle ilgili detaylar aşağıda verilmiştir:"; echo "<p>"; $kasa = (int)$_post['kasa']; $anakart = (int)$_post['anakart']; $islemci = (int)$_post['islemci']; Devamı 325
326 Öğrendiklerimizi Uygulayalım: Bilgisayar Parçaları Siparişi Devamı $sabitdisk = (int)$_post['sabitdisk']; $cddvd = (int)$_post['cddvd']; $bellek = (int)$_post['bellek']; $kasa_ucreti = (double)$_post['kasabirim']; $anakart_ucreti = (double)$_post['anakartbirim']; $islemci_ucreti = (double)$_post['islemcibirim']; $sabitdisk_ucreti = (double)$_post['sabitdiskbirim']; $cddvd_ucreti = (double)$_post['cddvdbirim']; $bellek_ucreti = (double)$_post['bellekbirim']; define("kasa_ucreti", 85.50); define("anakart_ucreti", 150.0); define("islemci_ucreti", ); define("sabitdisk_ucreti", ); define("cddvd_ucreti", 90.0); define("bellek_ucreti", ); 326
327 Öğrendiklerimizi Uygulayalım: Bilgisayar Parçaları Siparişi define("kdv_orani", 15); $toplam_parca = 0; $toplam_tutar = 0.00; $toplam_parca = $kasa + $anakart + $islemci + $sabitdisk + $cddvd + $bellek; $toplam_birim_fiyat = kasa_ucreti + anakart_ucreti + islemci_ucreti + sabitdisk_ucreti + cddvd_ucreti + bellek_ucreti; $toplam_tutar = $kasa * kasa_ucreti + $anakart * anakart_ucreti + $islemci * islemci_ucreti + $sabitdisk * sabitdisk_ucreti + $cddvd * cddvd_ucreti + $bellek * bellek_ucreti;?> Devamı 327
328 Öğrendiklerimizi Uygulayalım: Bilgisayar Parçaları Siparişi <table border=1> <tr bgcolor=#c399c3> <td width=150>parça Adý</td> <td width=25>adet</td> <td width=110 align=center>birim Fiyat</td> <td width=110 align=center>tutar</td> <td width=110 align=center>kdv (%<?php echo kdv_orani?>)</td> <td width=110 align=center>kdv Dahil Tutar</td> </tr> <tr bgcolor=#d4ffd4> <td>kasa</td> <td align=right><?php echo $kasa?></td> <td align=right> <?php echo number_format(kasa_ucreti,2)." TL"?></td> Devamı 328
329 Öğrendiklerimizi Uygulayalım: Bilgisayar Parçaları Siparişi Devamı <td align=right> <?php echo number_format($kasa * kasa_ucreti,2)." TL"?></td> <td align=right> <?php echo number_format($kasa * kasa_ucreti * $kdv_orani,2)." TL"?></td> <td align=right> <?php echo number_format($kasa * kasa_ucreti * (1 + $kdv_orani),2)." TL"?></td></tr> <tr bgcolor=#d4ffd4> <td>anakart</td> <td align=right><?php echo $anakart?></td> <td align=right> <?php echo number_format(anakart_ucreti,2)." TL"?></td> <td align=right> <?php echo number_format($anakart * anakart_ucreti,2)." TL"?></td> 329
330 Öğrendiklerimizi Uygulayalım: Bilgisayar Parçaları Siparişi <td align=right> <?php echo number_format($anakart * anakart_ucreti * kdv_orani,2)." TL"?></td> <td align=right> <?php echo number_format($anakart * anakart_ucreti * (1 + kdv_orani),2)." TL"?></td></tr> <tr bgcolor=#d4ffd4> <td>ýþlemci</td> <td align=right><?php echo $islemci?></td> <td align=right> <?php echo number_format(islemci_ucreti,2)." TL"?></td> <td align=right> <?php echo number_format($islemci * islemci_ucreti,2)." TL"?></td> <td align=right> <?php echo number_format($islemci * islemci_ucreti * kdv_orani,2)." TL"?></td> Devamı 330
331 Öğrendiklerimizi Uygulayalım: Bilgisayar Parçaları Siparişi Devamı <td align=right> <?php echo number_format($islemci * islemci_ucreti * (1 + kdv_orani),2)." TL"?></td></tr> <tr bgcolor=#d4ffd4> <td>sabit Disk</td> <td align=right><?php echo $sabitdisk?></td> <td align=right> <?php echo number_format(sabitdisk_ucreti,2)." TL"?></td> <td align=right> <?php echo number_format($sabitdisk * sabitdisk_ucreti,2)." TL"?></td> <td align=right> <?php echo number_format($sabitdisk * sabitdisk_ucreti * kdv_orani,2)." TL"?></td> 331
332 Öğrendiklerimizi Uygulayalım: Bilgisayar Parçaları Siparişi <td align=right> <?php echo number_format($sabitdisk * sabitdisk_ucreti * (1 + kdv_orani),2)." TL"?></td> </tr> <tr bgcolor=#d4ffd4> <td>cd/dvd Sürücüsü</td> <td align=right><?php echo $cddvd?></td> <td align=right> <?php echo number_format(cddvd_ucreti,2)." TL"?></td> <td align=right> <?php echo number_format($cddvd * cddvd_ucreti,2)." TL"?></td> <td align=right> <?php echo number_format($cddvd * cddvd_ucreti * kdv_orani,2)." TL"?></td> Devamı 332
333 Öğrendiklerimizi Uygulayalım: Bilgisayar Parçaları Siparişi <td align=right> <?php echo number_format($cddvd * cddvd_ucreti * (1 + kdv_orani),2)." TL"?></td> </tr> <tr bgcolor=#d4ffd4> <td>bellek</td> <td align=right><?php echo $bellek?></td> <td align=right> <?php echo number_format(bellek_ucreti,2)." TL"?></td> <td align=right> <?php echo number_format($bellek * bellek_ucreti,2)." TL"?></td> <td align=right> <?php echo number_format($bellek * bellek_ucreti * kdv_orani,2)." TL"?></td> Devamı 333
334 Öğrendiklerimizi Uygulayalım: Bilgisayar Parçaları Siparişi Devamı <td align=right> <?php echo number_format($bellek * bellek_ucreti * (1 + kdv_orani),2)." TL"?></td></tr> <tr bgcolor=#ffffaa> <td>toplam</td> <td align=right><?php echo $toplam_parca?></td> <td align=right> <?php echo number_format($toplam_birim_fiyat,2)." TL"?></td> <td align=right> <?php echo number_format($toplam_tutar,2)." TL"?></td> <td align=right> <?php echo number_format($toplam_tutar * kdv_orani,2)." TL"?></td> 334
335 Öğrendiklerimizi Uygulayalım: Bilgisayar Parçaları Siparişi <td align=right> <?php echo number_format($toplam_tutar * (1 + kdv_orani),2)." TL"?></td></tr></table> <?php echo "<p>yazi İLE : "; echo TL_Oku((string)(number_format($toplam_tutar * (1 + kdv_orani),2))); echo "<p>teşekkürler...";?> </body> </html> Devamı 335
PHP ile İnternet Programlama
PHP ile İnternet Programlama Doç.Dr. Gazi Üniversitesi Gazi Eğitim Fakültesi Bilgisayar ve Öğretim Teknolojileri Eğitimi Bölümü 2. BÖLÜM: PHP Dilinin Temelleri (a) PHP Sözdizimi Yapısı Asıl olarak bir
PHP ile İnternet Programlama Doç.Dr. Tolga GÜYER
PHP ile İnternet Programlama Doç.Dr. Gazi Üniversitesi Gazi Eğitim Fakültesi Bilgisayar ve Öğretim Teknolojileri Eğitimi Bölümü 2. BÖLÜM: PHP Dilinin Temelleri (b) Akış Kontrol Deyimleri Döngüler Konuya
HSancak Nesne Tabanlı Programlama I Ders Notları
DİZİLER Bellekte ard arda yer alan aynı türden nesneler kümesine dizi (array) denilir. Bir dizi içerisindeki bütün elemanlara aynı isimle ulaşılır. Yani dizideki bütün elemanların isimleri ortaktır. Elemanlar
Uzaktan Eğitim Uygulama ve Araştırma Merkezi
JAVA PROGRAMLAMA Öğr. Gör. Utku SOBUTAY İÇERİK 2 Java da Fonksiyon Tanımlamak Java da Döngüler Java da Şart İfadeleri Uygulamalar Java da Fonksiyon Tanımlamak JAVA DA FONKSİYON TANIMLAMAK 4 Fonksiyonlar;
İnternet Programcılığı Dersi 2.Dönem Ders Notu
İnternet Programcılığı Dersi 2.Dönem Ders Notu DEĞİŞKEN TİPLERİ TAM SAYI (İNTEGER) VERİ TİPİ Negatif veya pozitif ondalık kısmı bulunmayan sayılardır. Örnek: $i=65; $x=345; ONDALIK(REAL)VERİ TİPİ Ondalıklı
Internet Programming II
Internet Programming II Elbistan Meslek Yüksek Okulu 2016 2017 Bahar Yarıyılı Öğr. Gör. Murat KEÇECĠOĞLU Kontrol deyimleri programlamanın olmazsa olmaz koşullarındandır. Şartlara (karşılaştırma) bağlı
BİLGİSAYAR TEMELLERİ VE PROGRAMLAMAYA GİRİŞ
BİLGİSAYAR TEMELLERİ VE PROGRAMLAMAYA GİRİŞ Yrd.Doç.Dr. Emel ARSLAN [email protected] C Program Akış Kontrol Yapıları Kontrol Komutları Normal şartlarda C dilinde bir programın çalışması, komutların
NESNE YÖNELİMLİ PROGRAMLAMA HAFTA # 2
NESNE YÖNELİMLİ PROGRAMLAMA HAFTA # 2 JAVA DA PROGRAM DENETİMİ VE OPERATÖRLER Java programlama dilinde temel tipleri ve nesneleri yönlendirmek ve değiştirmek için operatörler kullanılır. Atamalar sağ taraftaki
BTP 207 İNTERNET PROGRAMCILIĞI I. Ders 8
BTP 27 İNTERNET PROGRAMCILIĞI I Ders 8 Değişkenler 2 Tamsayı Değerler (Integer) Tamsayılar, tabanlı (decimal), 8 tabanlı (octal) veya 6 tabanlı (hexadecimal) olabilir. 8 tabanındaki sayıları belirtmek
ALGORİTMA VE PROGRAMLAMA I
ALGORİTMA VE PROGRAMLAMA I Yrd. Doç. Dr. Deniz KILINÇ [email protected] YZM 1101 Celal Bayar Üniversitesi Hasan Ferdi Turgutlu Teknoloji Fakültesi Genel Bakış 2 Koşul Karşılaştırma Operatörleri Mantıksal
Akış Kontrol Mekanizmaları
Akış Kontrol Mekanizmaları 1 Akış Kontrol Mekanizmaları if else switch for döngüsü for döngüsünün çalışma prensibi for döngüsüyle ilgili örnekler for döngüsüyle ilgili kurallar while döngüsü while döngüsünün
WEB PROGRAMLAMA. PHP Temelleri 2. Dr. Erman Yukselturk
WEB PROGRAMLAMA PHP Temelleri 2 Dr. Erman Yukselturk Superglobal Değişkenler 1/4 Php de önceden tanımlanmış ve script in herhangi bir yerinden çağrılabilen ve çalıştirılabilen çevreye özel bilgiler sunan
Algoritma ve Programlama: Karar Yapıları ve Döngüler
Algoritma ve Programlama: Karar Yapıları ve Döngüler Bir algoritma, herhangi bir programlama dili (C, C++, Pascal, Visual Basic, Java gibi) ile kodlandığında program haline gelir. Algoritmada yer alan
Javascript. 1) Notepad++ aşağıdaki kodları yazıp deneme.html olarak kaydedelim. 2) Biraz önceki sayfa sadece html kodların içeriyordu.
Javascript Html sayfalarının içine yazılarak, sayfayı daha etkileşimli hale getirir. click olayları, uyarı mesajları gibi hareketlerle sayfayı daha dinamik hale getirir. Javascript olmadan yazılan html
Internet Programming II. Elbistan Meslek Yüksek Okulu Bahar Yarıyılı
Internet Programming II Elbistan Meslek Yüksek Okulu 2015 2016 Bahar Yarıyılı Öğr.Gör. Murat KEÇECĠOĞLU 8 Mar. 2016 PHP de Değişken Tipleri Dizi (Array) Aynı değişken içerisinde birden fazla değer tutmak
Bil101 Bilgisayar Yazılımı I. M. Erdem ÇORAPÇIOĞLU Bilgisayar Yüksek Mühendisi
Bil101 Bilgisayar Yazılımı I Bilgisayar Yüksek Mühendisi Editör Disk 1)Kaynak kodlar editör aracılığı ile oluşturulur. (.c) Kaynak dosya Önişleyici Disk 2)Önişleyici kodlar içerisindeki ilk işleme işini
PHP, nesne-yönelimli (object-oriented) bir dil olduğu için, nesne oluşturma imkânına ve bunların kullanılmasını sağlayan metodlara da sahiptir.
PHP'nin Temelleri PHP Nedir? PHP, bir programlama dili olarak, değişkenler, değişkenlerin değerleriyle bir işlem yapmayı sağlayan işlemciler (operatörler), işlemcilerle oluşturulan deyimler ve nihayet
if (ad == "Sabri") Console.WriteLine("Merhaba Sabri. Ne zamandır gözükmüyodun...");
Koşul İfadeleri ve Akış Kontrolü Koşul ifadeleri ve akış kontrolleri programlama dillerinde her zaman en önemli yeri tutmaktadır. Yazdığımız uygulamanın hangi koşulda nasıl davranacağını belirterek bir
C# Yazım Kuralları ERCİYES. Ü. BİLGİSAYAR M. COMPUTER PROGRAMMING II 1 FEHİM KÖYLÜ
C# Yazım Kuralları 1 İçindekiler C# Yazım Kuralları Veritipleri Değişkenler Operatörler Sınıflar Nesneler, Özellik, Metot ve Olay Bileşenler 2 C# yazım kuralları Deyimlerde büyük küçük harf yazıma uyulmalı
İNTERNET PROGRAMCILIĞI DERSİ ÇALIŞMA SORULARI
İNTERNET PROGRAMCILIĞI DERSİ ÇALIŞMA SORULARI 1) Aşağıdaki seçeneklerin hangisinde PHP kod yazımı doğru olarak verilmiştir? A) B) C).. D) 2) PHP ile hazırlanmış
BÖLÜM 6: KARŞILAŞTIRMALI KONTROL YAPILARI
BÖLÜM 6: KARŞILAŞTIRMALI KONTROL YAPILARI C programlama dilinde, diğer programlama dillerinde olduğu gibi, işlemler, ilk satırdan başlamak üzere sırayla çalışır. Program kontrol yapıları ise, programın
Veri Yapıları ve Algoritmalar
1 Ders Not Sistemi Vize : % 40 Final : % 60 Kaynaklar Kitap : Veri Yapıları ve Algoritma Temelleri Yazar: Dr. Sefer KURNAZ Internet Konularla ilgili web siteleri 2 Algoritma : «Belirli bir problemin çözümünde
[email protected] http://web.hitit.edu.tr/mustafacosar
Algoritma ve Programlamaya Giriş [email protected] http://web.hitit.edu.tr/mustafacosar İçerik Algoritma Akış Diyagramları Programlamada İşlemler o o o Matematiksel Karşılaştırma Mantıksal Programlama
BİLGİSAYAR PROGRAMLAMA. Algoritma ve Akış Şemaları
BİLGİSAYAR PROGRAMLAMA Algoritma ve Akış Şemaları Algoritma tanımı Algoritma özellikleri Algoritma tasarımı Akış şemaları Dallanma simgeleri Döngü simgeleri Akış şeması tasarımı Akış şeması örnekleri Konu
PASCAL PROGRAMLAMA DİLİ YAPISI
BÖLÜM 3 PASCAL PROGRAMLAMA DİLİ YAPISI 3.1. Giriş Bir Pascal programı en genel anlamda üç ayrı kısımdan oluşmuştur. Bu kısımlar bulunmaları gereken sıraya göre aşağıda verilmiştir. Program Başlığı; Tanımlama
C Programlama Dilininin Basit Yapıları
Bölüm 2 C Programlama Dilininin Basit Yapıları İçindekiler 2.1 Sabitler ve Değişkenler......................... 13 2.2 Açıklamalar (Expresions)........................ 14 2.3 İfadeler (Statements) ve İfade
Diziler İndisli Değişkenler
Diziler İndisli Değişkenler Aynı tür bilgileri (öğrenci isimleri, şehir isimleri, kapı numaraları, fakülteler vbg.) bellekte tutmak için kullanabileceğimiz listelere dizi adı verilir. Dizi kullanmanın
Uzaktan Eğitim Uygulama ve Araştırma Merkezi
JAVA PROGRAMLAMA Öğr. Gör. Utku SOBUTAY İÇERİK 2 Java Kodlarına Yorum Satırı Eklemek Java Paket Kavramı Java Kütüphane Kavramı Konsoldan Veri Çıkışı ve JOPtionPane Kütüphanesi JOptionPane Kütüphanesi Kullanarak
JAVA DÖNGÜ DEYİMLERİ. For Döngüsü
JAVA DÖNGÜ DEYİMLERİ Belirli bir iş bir çok kez tekrarlanacaksa, programda bu iş bir kez yazılır ve döngü deyimleriyle istenildiği kadar tekrarlanabilir. Java da bu işi yapan üç ayrı deyim vardır: while
MTK467 Nesneye Yönelik Programlama. Hafta 4 - Döngüler Zümra Kavafoğlu https://zumrakavafoglu.github.io/
MTK467 Nesneye Yönelik Programlama Hafta 4 - Döngüler Zümra Kavafoğlu https://zumrakavafoglu.github.io/ while döngüsü while(koşul){ } döngü ifadeleri Koşul boolean değerli olmalıdır. Koşulun değeri true
Ders Tanıtım Sunumu. Internet Programming II. Elbistan Meslek Yüksek Okulu Bahar Yarıyılı. Öğr. Gör. Murat KEÇECİOĞLU 1
Ders Tanıtım Sunumu Internet Programming II Elbistan Meslek Yüksek Okulu 2012 2013 Bahar Yarıyılı Öğr. Gör. Murat KEÇECİOĞLU 1 PHP Program Yapısı Php çoğunlukla HTML etiketleri arasına gömülerek kullanılır.
Internet Programming II
Internet Programming II Elbistan Meslek Yüksek Okulu 2016 2017 Bahar Yarıyılı Öğr. Gör. Murat KEÇECĠOĞLU 1 PHP Program Yapısı Php çoğunlukla HTML etiketleri arasına gömülerek kullanılır. Form işlemleri
BİLGİSAYAR BİLİMİ DERSİ (KUR 1) PYTHON PROGRAMLAMA DİLİ ÇALIŞMA KÂĞIDI - 1
BİLGİSAYAR BİLİMİ DERSİ (KUR 1) PYTHON PROGRAMLAMA DİLİ ÇALIŞMA KÂĞIDI - 1 Ekrana Metin Yazdırmak Ekranda metin yazdırmak istendiğinde print komutu kullanılır. Kullanımı aşağıda verilmiştir. Parantez içinde
BÖLÜM 4 KONTROL DEYİMLERİ - 24 -
BÖLÜM 4 KONTROL DEYİMLERİ - 24 - 4.1 İf Deyimi İnsan olarak kararlarımızı hemen hemen daima "bir şey öyle ise böyle, öyle değilse şöyle davranmak" üzere almaz mıyız? PHP programında if deyimi bunu sağlar.
BİL-142 Bilgisayar Programlama II
BİL-142 Bilgisayar Programlama II (C/C++) Hazırlayan: M.Ali Akcayol Gazi Üniversitesi Bilgisayar Mühendisliği Bölümü Konular Giriş Kontrol Yapıları if Seçme Deyimi if... else Seçme Deyimi while Tekrar
YZM 2105 Nesneye Yönelik Programlama
YZM 2105 Nesneye Yönelik Programlama Yrd. Doç. Dr. Deniz KILINÇ Celal Bayar Üniversitesi Hasan Ferdi Turgutlu Teknoloji Fakültesi Yazılım Mühendisliği 1 BÖLÜM - 2 C# Programlama Dili Elemanları Bu bölümde;
FORMÜLLER VE FONKSİYONLAR
C FORMÜLLER VE FONKSİYONLAR Konuya Hazırlık 1. Excel de formül kullanmanın faydalarını açıklayınız. Formüller, bir sayfadaki verileri kullanarak işlem yapan denklemlerdir. Bir formülde, aynı sayfadaki
KONTROL YAPILARI JAVADA UC TURLU KONTROL YAPISI VARDIR BUNLAR İF ELSE İF ELSE İF SWİTCH YAPILARIDIR. IF ELSE YAPISI if (deger) { }else {
KONTROL YAPILARI JAVADA UC TURLU KONTROL YAPISI VARDIR BUNLAR İF ELSE İF ELSE İF SWİTCH YAPILARIDIR IF ELSE YAPISI if (deger) { else { YUKARIDAKI IFADEDE deger EGER TRUE İSE if PARANTEZLERİ İÇİNDEKİ DEĞER
ÖDEV (Vize Dönemi) CEVAPLAR. 1. Ekrana Merhaba Dünya! yazdıran algoritmanın akış diyagramını çiziniz ve sözde kod olarak yazınız.
ÖDEV (Vize Dönemi) CEVAPLAR 1. Ekrana Merhaba Dünya! yazdıran algoritmanın akış diyagramını çiziniz ve sözde kod olarak yazınız. PROGRAM Soru1 PRINT Merhaba Dünya! ; 2. Klavyeden girilen negatif bir sayıyı
BIL1202 ALGORİTMA VE PROGRAMLAMAYA GİRİŞ (Algoritma Geliştirmek, Satır Kod)
2017-2018 BaharYarıyılı Balıkesir Üniversitesi Endüstri Mühendisliği Bölümü 3 BIL1202 ALGORİTMA VE PROGRAMLAMAYA GİRİŞ (Algoritma Geliştirmek, Satır Kod) Yrd. Doç. Dr. İbrahim Küçükkoç Web: ikucukkoc.baun.edu.tr
BMT 101 Algoritma ve Programlama I 7. Hafta. Yük. Müh. Köksal Gündoğdu 1
BMT 101 Algoritma ve Programlama I 7. Hafta Yük. Müh. Köksal Gündoğdu 1 C++ Program Denetimi Yük. Müh. Köksal Gündoğdu 2 Program Denetimi Bir program, belirli deyim satırlarından oluşur ve genellikle bu
WEB TASARIM I. Öğr. Gör. M. Mutlu YAPICI. Ankara Üniversitesi Elmadağ Meslek Yüksekokulu
WEB TASARIM I Öğr. Gör. M. Mutlu YAPICI Ankara Üniversitesi Elmadağ Meslek Yüksekokulu Ders İzlencesi Hafta Modüller/İçerik/Konular 1. Hafta PHP Tanımı ve Sunucu Kurulumları 2. Hafta PHP Yazım Notasyonu
İnternet Programcılığı Öğr. Gör. Serkan AKSU PHP de Dizi-Değişkenler, Nesneler. Dizi Oluşturma. Tek Boyutlu Diziler
PHP de Dizi-Değişkenler, Nesneler Dizilerle ilgili örneklere geçmeden önce aşağıdaki tabloyu inceleyelim. Tabloda dizi kavramının mantığı açıklanmaktadır. Tablonun tamamını bir dizi olarak düşünün ve bu
Algoritmalar ve Programlama. Algoritma
Algoritmalar ve Programlama Algoritma Algoritma Bir sorunu / problemi çözmek veya belirli bir amaca ulaşmak için gerekli olan sıralı mantıksal adımların tümüne algoritma denir. Algoritma bir sorunun çözümü
Temel Bilgisayar Programlama Final Sınavı Çalışma Notları
Diziler Temel Bilgisayar Programlama Final Sınavı Çalışma Notları (Dr. Övünç ÖZTÜRK, Dr. Tahir Emre KALAYCI) (İnşaat Mühendisliği ve Gıda Mühendisliği Grupları İçin) Diziler aynı türden bilgileri saklamak
4- Turbo Pascal Bilgisayar Programlamada Kullanılan Şart Yapıları
4- Turbo Pascal Bilgisayar Programlamada Kullanılan Şart Yapıları Şart yapıları bir bilgisayar programının olmazsa olmazlarındandır. Şart yapıları günlük hayatımızda da çok fazla karşılaştığımız belirli
Programlama Dili Prensipleri. Lab Notları 4
Programlama Dili Prensipleri Lab Notları 4 1. Karar Yapıları IF Yapıları Karar yapıları olarak C/C++ ile Java programlama dilleri birbirine yakın ifadeler içerir. Bir programın akışı yukarıdan aşağı doğru
Bilgisayar Programlama
Bilgisayar Programlama M Dosya Yapısı Kontrol Yapıları Doç. Dr. İrfan KAYMAZ Matlab Ders Notları M-dosyası Genel tanıtımı : Bir senaryo dosyası (script file) özel bir görevi yerine getirmek için gerekli
BİLGİSAYAR PROGRAMLAMA MATLAB
BİLGİSAYAR PROGRAMLAMA MATLAB Arş. Gör. Ahmet ARDAHANLI Kafkas Üniversitesi Mühendislik Fakültesi Bu hafta? 1. Matlab ve Programlama Ortamı 2. Matlab Komut Penceresi 3. Matlab de değişken tanımlama 4.
INPUTBOX KULLANIMI. Komut Düğmesine uygulanan algoritma örneği
INPUTBOX KULLANIMI InputBox komutu, Basic programlama dilinde program algoritması içinde ekran aracışığı ile bir sorgu yönlendirerek, kullanıcının bilgi girmesini sağlamak amacıyla kullanılır. Bu komutun
Örnek 4: Örnek Özyinelemeli fonksiyon örneği Bölüm 9. C++ programlama dilinde Nesne ve sınıf
İçindekiler 1. Giriş... 1 1.2. c++ Programı Yapısı... 2 1.3.Using Direktifi... 5 Bölüm 2. Veri türleri, değişken kavramı, sabit ve değişken bildirimleri ve c++ da kullanımı 7 2.1. Temel veri türleri...
Algoritma ve Programlamaya Giriş
Algoritma ve Programlamaya Giriş Algoritma Bir sorunu çözebilmek için gerekli olan sıralı ve mantıksal adımların tümüne Algoritma denir. Doğal dil ile yazılabilir. Fazlaca formal değildir. Bir algoritmada
Bilgisayar Teknolojileri Bölümü Bilgisayar Programcılığı Programı. Öğr. Gör. Cansu AYVAZ GÜVEN
Bilgisayar Teknolojileri Bölümü Bilgisayar Programcılığı Programı Öğr. Gör. Cansu AYVAZ GÜVEN NESNE TABANLI PROGRAMLAMA Java Değişkenler ve Veri Tipleri Operatörler JAVA Java Java SUN bilgisayar şirketince
BMT 101 Algoritma ve Programlama I 8. Hafta. Yük. Müh. Köksal GÜNDOĞDU 1
BMT 101 Algoritma ve Programlama I 8. Hafta Yük. Müh. Köksal GÜNDOĞDU 1 C++ Döngü Deyimleri Yük. Müh. Köksal GÜNDOĞDU 2 Döngüler Programın belirli bölümlerinin defalarca işlenmesi söz konusu olabilir.
k ise bir gerçek sayı olsun. Buna göre aşağıdaki işlemler Matlab da yapılabilir.
MATRİS TRANSPOZU: Bir matrisin satırlarını sütun, sütunlarınıda satır yaparak elde edilen matrise transpoz matris denilir. Diğer bir değişle, eğer A matrisi aşağıdaki gibi tanımlandıysa bu matrisin transpoz
PHP ile İnternet Programlama
PHP ile İnternet Programlama Doç.Dr. Gazi Üniversitesi Gazi Eğitim Fakültesi Bilgisayar ve Öğretim Teknolojileri Eğitimi Bölümü 5. BÖLÜM: Oturum Yönetimi ve Güvenlik Sayfaya Yönlendirme PHP sayfamızdan
BBS515 Nesneye Yönelik Programlama. Ders 3 Zümra Kavafoğlu
BBS515 Nesneye Yönelik Programlama Ders 3 Zümra Kavafoğlu https://zumrakavafoglu.github.io/ Bağıntısal Operatörler operatör tanımı < küçüktür > büyüktür = büyük eşittir eşittir!= eşit
Fen ve Mühendislik Uygulamaları ile MATLAB
Fen ve Mühendislik Uygulamaları ile MATLAB Doç. Dr. M. Akif CEVİZ Atatürk Üniversitesi Mühendislik Fakültesi Makine Mühendisliği Bölümü M-Dosyaları Kontrol İfadeleri - İlişkisel ve Mantıksal Operatörler
Algoritma ve Akış Diyagramları
Algoritma ve Akış Diyagramları Bir problemin çözümüne ulaşabilmek için izlenecek ardışık mantık ve işlem dizisine ALGORİTMA, algoritmanın çizimsel gösterimine ise AKIŞ DİYAGRAMI adı verilir 1 Akış diyagramları
BTP 207 İNTERNET PROGRAMCILIĞI I. Ders 9
BTP 207 İNTERNET PROGRAMCILIĞI I Ders 9 Dizi Değişkenler (Array) 2 Tek değişkende birden fazla bilgi tutulmak istendiğinde kullanılır. Kullanım şekli: var dizi_adı= new Array(eleman1, eleman2,, elemann)
BİLGİSAYAR MÜHENDİSLİĞİ ALGORİTMA VE PROGRAMLAMA II 2.HAFTA SWİTCH (CASE), SAYAÇLAR, DÖNGÜLER,
BİLGİSAYAR MÜHENDİSLİĞİ ALGORİTMA VE PROGRAMLAMA II 2.HAFTA SWİTCH (CASE), SAYAÇLAR, DÖNGÜLER, C++ İÇİN UFAK HATIRLATMALAR Değişken adları bir harf ile başlamalıdır. (a-z, A-Z). Değişken adı numara içerebilir.
Çoktan Seçmeli Değerlendirme Soruları Akış Şemaları İle Algoritma Geliştirme Örnekleri Giriş 39 1.Gündelik Hayattan Algoritma Örnekleri 39 2.Say
İÇİNDEKİLER 1. Bilgisayarın Yapısı Ve Programlama Dilleri Giriş 1 Bilgisayar ve Programlamanın Kısa Bir Tarihçesi 2 Donanım ve Yazılım Kavramları 3 Bilgisayarın Donanımsal yapısı 4 Giriş Birimi (Input
C PROGRAMLAMA YRD.DOÇ.DR. BUKET DOĞAN PROGRAM - ALGORİTMA AKIŞ ŞEMASI
C PROGRAMLAMA DİLİ YRD.DOÇ.DR. BUKET DOĞAN 1 PROGRAM - ALGORİTMA AKIŞ ŞEMASI Program : Belirli bir problemi çözmek için bir bilgisayar dili kullanılarak yazılmış deyimler dizisi. Algoritma bir sorunun
Sınav tarihi : Süre : 60 dak. a) ABCDE b) BCDE c) ABCD d) kod hatalı e) BCD
Selçuk Üniversitesi, Mühendislik Fakültesi, Harita Mühendisliği Bölümü Yıliçi Sınavı Test Soruları Adı soyadı : Öğrenci no : Sınav tarihi : 13.04.2015 Süre : 60 dak. 1. Hangisi gerçek sayı değişmezi değildir?
Nesne Tabanlı Programlama
Nesne Tabanlı Programlama Ders Notu - 1 (Değerler, Değişkenler, İşleçler, Tip Dönüşümleri, Mantıksal Operatörler) Dicle Üniversitesi Mühendislik Fakültesi Elektrik Elektronik Mühendisliği Bölümü 1 Değerler
Uzaktan Eğitim Uygulama ve Araştırma Merkezi
JAVA PROGRAMLAMA Öğr. Gör. Utku SOBUTAY İÇERİK 2 Java Veri Tipleri ve Özelilkleri Değişken Tanımlama Kuralları Değişken Veri Tipi Değiştirme (Type Casting) Örnek Kodlar Java Veri Tipleri ve Özelilkleri
Belirli bir iş bir çok kez tekrarlanacaksa, programda bu iş bir kez yazılır ve döngü deyimleriyle istenildiği kadar tekrar tekrar çalıştırılabilir.
Bölüm 09 Döngüler for döngüsü do döngüsü while döngüsü foreach döngüsü Belirli bir iş bir çok kez tekrarlanacaksa, programda bu iş bir kez yazılır ve döngü deyimleriyle istenildiği kadar tekrar tekrar
BİLGİSAYAR PROGRAMLAMA DERSİ
BİLGİSAYAR PROGRAMLAMA DERSİ 3. DERS NOTU Konu: MATLAB de Temel İşlemler Hazırlayan: Yrd. Doç. Dr. Ahmet DUMLU 1 MATLAB (Matrix Laboratory) sayısal hesaplama dilidir. MathWorks firması tarafından geliştirilmiş
C Dersleri Bölüm 3 : Program akışı
İzmir Ekonomi Üniversitesi Bilgisayar Topluluğu www.ieubt.org C Dersleri Bölüm 3 : Program akışı Sorularınız için : [email protected] Hazırlayan : Görkem PAÇACI ([email protected]) C Program
Değişkenler. Geçerli değişken isimleri : baslamazamani, ad_soyad, x5 Geçersiz değişken isimleri : 3x, while
Değişkenler Değişkenler bir bilginin bellekteki konumunu temsil eden sembolik isimlerdir. Bilgisayarda hemen hemen tüm işlemler bellekte yapılır. Program çalıştırıldığında değişken ve bu değişkenin türüne
BIL1202 ALGORİTMA VE PROGRAMLAMAYA GİRİŞ
2017-2018 BaharYarıyılı Balıkesir Üniversitesi Endüstri Mühendisliği Bölümü 5 BIL1202 ALGORİTMA VE PROGRAMLAMAYA GİRİŞ (Çoklu Koşul Yapıları, Sözde Kod, Algoritmalar Arasında Dönüşüm) Yrd. Doç. Dr. İbrahim
JAVASCRIPT JAVASCRIPT DİLİ
JAVASCRIPT JAVASCRIPT DİLİ Netscape Navigator 2.0 ile birlikte geliştirilen JavaScript dili istemci taraflı (client-side) script dilidir. Web sayfalarında dinamik içerik sağlamak ya da kullanıcıyla iletişim
Programın Akışının Denetimi. Bir arada yürütülmesi istenen deyimleri içeren bir yapıdır. Söz dizimi şöyledir:
Programın Akışının Denetimi Bir program komutların yazıldığı sırada akar. Ama çoğunlukla, bu akışı yönlendirmek gerekir. Bu iş için denetim yapılarını kullanırız. Bunlar iki gruba ayrılabilir: Yönlendiriciler
Bölüm 4 C de Program Kontrolü
1 Bölüm 4 C de Program Kontrolü Outline 4.1 Giriş 4.2 Döngülerin Temelleri 4.3 Sayıcı Kontrollü Döngüler 4.4 for Döngü Yapısı 4.5 for Döngü Yapısıyla İlgili Notlar ve Gözlemler 4.6 for Yapısıyla İlgili
Genel Programlama II
Genel Programlama II 22.03.2011 1 Yapılar ( Structures ) Yapılar ( structures ); tam sayı, karakter vb. veri tiplerini gruplayıp, tek bir çatı altında toplar. Bu gruplandırma içinde aynı ya da farklı veri
BİLGİSAYAR PROGRAMLAMA DERSİ
BİLGİSAYAR PROGRAMLAMA DERSİ 4. DERS NOTU Konu: M-dosya yapısı ve Kontrol Yapıları Hazırlayan: Yrd. Doç. Dr. Ahmet DUMLU 1 M-Dosya Yapısı Bir senaryo dosyası (script file) özel bir görevi yerine getirmek
Bu amaçla, if ve switch gibi karar verme deyimleri, for, while, do..while gibi döngü deyimleri kullanılır.
PHP de Program Denetimi Belli durumlarda örneğin değişkenlerin aldığı değerlere veya sayfaya yapılan ziyaretlere göre PHP programının nasıl davranacağına karar vermemiz gerekir. Bu yönlendirmeleri, program
Kodlanacak programlama dilinin kaynaklarından faydalanılarak kod yazımı yapılır.
GİRİŞ Algoritması tasarlanmış (metin olarak yazılmış, sözde kodlarla kodlanmış veya akış diyagramı çizilmiş) bir problemi/işlemi, bilgisayar programlama dillerinden birisiyle kodlamak son derece kolaydır.
Genel Programlama II
Genel Programlama II 15.02.2011 1 Genel Programlama Tekrar Program : Belirli bir problemi çözmek için bir bilgisayar dili kullanılarak yazılmış deyimler dizisi. Önceki bölümde bir problemin çözümü ile
Bir dizinin boyutları sabittir ve kullanılmadan önce belirlenmelidir. Dizi boyutunu belirlemek için başka bir değişkende kullanabilirsiniz.
C# da Diziler Diziler için aynı tipteki verilerin tutulduğu bir koleksiyon diyebiliriz. Örneğin integer verinin bir yığın şeklinde tutulması için dizileri kullanırız. C# da diziler referans tipinde değişkenlerdendir.
C# Programlama Dili. İlk programımız Tür dönüşümü Yorum ekleme Operatörler
C# Programlama Dili İlk programımız Tür dönüşümü Yorum ekleme Operatörler 1 İlk Programımız Bu program konsol ekranına Merhaba dünya! yazıp kapanır. Programı geçen derste anlatıldığı gibi derleyin, sonra
İÇERİK PROGRAMLAMAYA GİRİŞ ALGORİTMA AKIŞ DİYAGRAMLARI PROGRAMLAMA DİLLERİ JAVA DİLİNİN YAPISI JAVA DA KULLANILAN VERİ TİPLERİ JAVA DA PROGRAM YAZMA
İÇERİK PROGRAMLAMAYA GİRİŞ ALGORİTMA AKIŞ DİYAGRAMLARI PROGRAMLAMA DİLLERİ JAVA DİLİNİN YAPISI JAVA DA KULLANILAN VERİ TİPLERİ JAVA DA PROGRAM YAZMA BÖLÜM-II ALGORİTMA I. GİRİŞ Bilgisayar dünyasında, insanın
ALGORİTMA VE PROGRAMLAMA I
ALGORİTMA VE PROGRAMLAMA I Yrd. Doç. Dr. Deniz KILINÇ [email protected] YZM 1101 Celal Bayar Üniversitesi Hasan Ferdi Turgutlu Teknoloji Fakültesi Genel Bakış 2 Diziler Dizi Nedir? Dizilerin Bildirimi
BİLGİSAYAR PROGRAMLAMA DERSİ
BİLGİSAYAR PROGRAMLAMA DERSİ Yrd. Doç. Dr. Fatih TOSUNOĞLU Erzurum Teknik Üniversitesi Mühendislik Fakültesi İnşaat Mühendisliği Bölümü DERS NOTU 3 KONU: M-dosya yapısı ve Kontrol Yapıları M-Dosya Yapısı
C#(Sharp) Programlama Dili
Değişkenler C#(Sharp) Programlama Dili Program yazarken her zaman sabit verilerle çalışmayız, çoğu zaman programımızda bir verinin kullanıcının davranışına göre değişmesi gerekir. Kullanıcıdan bir metin
Mühendislik Fakültesi Elektrik-Elektronik Mühendisliği C Programlama 5. Bölüm Karar ve Çevrim Kontrol Yapıları
Mühendislik Fakültesi Elektrik-Elektronik Mühendisliği C Programlama 5. Bölüm Karar ve Çevrim Kontrol Yapıları C Programlama Dr. Serkan DİŞLİTAŞ 5.1. Atlama Komutları Program akışının yönlendirilmesinde
Pythonda değişkenlerin türlerini tanımlamaya gerek yoktur
Python büyük-küçük harf ayrımı yapar. Pythonda kod yazarken girintiler kullanılır Pythonda değişkenlerin türlerini tanımlamaya gerek yoktur Klavyeden girilen bir değeri okumak ad=input("adınızı giriniz")
PROGRAMLAMAYA GİRİŞ VE ALGORİTMA «YTÜROK» EĞİTMEN:REHA ÖZGÜR ŞİMŞEK
PROGRAMLAMAYA GİRİŞ VE ALGORİTMA «YTÜROK» EĞİTMEN:REHA ÖZGÜR ŞİMŞEK Giriş-Tanımlamalar Program Nedir? Tanımlanmış bir problemi bilgisayar ortamında çözen ürüne program denir. Programlama Nedir? Tanımlanmış
2 ALGORİTMA VE AKIŞ DİYAGRAMLARI
İÇİNDEKİLER IX İÇİNDEKİLER 1 GİRİŞ 1 Kitabın Amacı 1 Algoritmanın Önemi 2 Bilgisayarın Doğuşu ve Kullanım Amaçları 3 Programlama Dili Nedir? 3 Entegre Geliştirme Ortamı (IDE) Nedir? 4 2 ALGORİTMA VE AKIŞ
Adı soyadı :... Öğrenci no :... İmza :... Tarih, Süre : dak.
Selçuk Üniversitesi Mühendislik Fakültesi Harita Mühendisliği Bölümü ra Sınavı Test Soruları dı soyadı :... Öğrenci no :... İmza :... Tarih, Süre :13.04.2017 60 dak. Dikkat!!! Soru kitapçığında ve cevap
Öğr. Gör. Serkan AKSU http://www.serkanaksu.net. http://www.serkanaksu.net/ 1
Öğr. Gör. Serkan AKSU http://www.serkanaksu.net http://www.serkanaksu.net/ 1 JavaScript JavaScript Nedir? Nestcape firması tarafından C dilinden esinlenerek yazılmış, Netscape Navigator 2.0 ile birlikte
Nesne Yönelimli Programlama
1 Nesne Yönelimli Programlama Hazırlayan: M.Ali Akcayol Gazi Üniversitesi Bilgisayar Mühendisliği Bölümü Not: Bu dersin sunumları, Java Programlama Dili ve Yazılım Tasarımı, Altuğ B. Altıntaş, Papatya
HSancak Nesne Tabanlı Programlama I Ders Notları
Konsol Uygulaması Oluşturma Konsol uygulaması oluşturmak için program açıldıktan sonra Create: Project ya da New Project seçeneği tıklanabilir. New Project penceresini açmak için farklı yollar da vardır.
BÖLÜM 3 OPERAT A ÖRLER - 19 -
BÖLÜM 3 OPERATÖRLER - 19 - 3.1 Operatörler Hakkında Yukarıdaki örnekleri birlikte yaptıysak = işaretini bol bol kullandık ve böylece PHP'nin birçok operatöründen biriyle tanıştık. Buna PHP dilinde "atama
ÜNİT E ÜNİTE KONTROL DEYİMLERİ KARAR YAPILARI. IF Deyimi GİRİŞ
GİRİŞ KARAR YAPILARI Herhangi bir olayın gerçekleşmesinin bir veya birkaç şarta bağı olduğu durumlar vardır. Ayrıca bir şartın gerçekleşmesi durumunda meydana gelecek bir veya birden çok olay söz konusu
Python Programlama Dili
Python Programlama Dili 3. Python da Döngüler Bu bölümde iki tane döngüden bahsedeceğiz: while ve for döngüleri. Ayrıca bu bölümde döngüler dışında break ve continue deyimleri ile range() ve len() fonksiyonlarına
Görsel Programlama DERS 03. Görsel Programlama - Ders03/ 1
Görsel Programlama DERS 03 Görsel Programlama - Ders03/ 1 Java Dili, Veri Tipleri ve Operatörleri İlkel(primitive) Veri Tipleri İLKEL TİP boolean byte short int long float double char void BOYUTU 1 bit
ALGORİTMA VE PROGRAMLAMA I
ALGORİTMA VE PROGRAMLAMA I YZM 1101 Celal Bayar Üniversitesi Hasan Ferdi Turgutlu Teknoloji Fakültesi Genel Bakış 2 Diziler Dizi Nedir? Dizilerin Bildirimi Dizilere Başlangıç Değeri Verme Dizilerde Arama
Program AkıĢ Kontrol Yapıları
C PROGRAMLAMA Program AkıĢ Kontrol Yapıları Normal Ģartlarda C dilinde bir programın çalıģması, komutların yukarıdan aģağıya doğru ve sırasıyla iģletilmesiyle gerçekleģtirilir. Ancak bazen problemin çözümü,
