Pages

26 Şubat 2013 Salı

PHP kelime / cümle uzunluğu bulma

PHP'de bir kelimenin veya cümlenin kaç karakterden oluştuğunu bulmak için strlen() fonksiyonunu kullanıyoruz.

$kelime = "bilgisayar"; şeklinde bir değişken tanımlıyorum.

$uzunluk = strlen($kelime) komutuyla uzunluk değişkenine kelimemizin uzunluğunu atıyorum.

echo komutu ile uzunluk adlı değişkeni ekrana yazdırıyorum ve ekrana 10 geliyor.



Yukarıdaki örnekte kelimenin uzunluğunu buldum. Herhangi bir cümlenin uzunluğunu bulurken de aynı işlemleri yapıyorum. Fonksiyon bırakılan her boşluğu bir karakter olarak sayıyor.

Örneğin strlen() fonksiyonu "bilgisayar mühendisliği" stringinin uzunluğunu

10 karakter (bilgisayar) + 1 karakter (boşluk) + 12 karakter (mühendisliği) = 23 şeklinde buluyor.


25 Şubat 2013 Pazartesi

C# ArrayList nedir? Nasıl kullanılır?



ArrayList, normal diziler gibi veri gruplarını saklamak için kullanılan nesnedir. Değer atanması ve işlenmesi bakımından oldukça kullanışlıdır.

ArrayList <Dizi Adı>;

Diziler gibi indis yapısını kullanır. Ekleme, silme, sıralama, ters çevirme işlemlerde özel yordamlar içerir. Çalışma anında araya eleman ekleme veya aradan eleman silme gibi özellikler tercih edilmesindeki en önemli nedenlerdendir.

En çok kullanılan yordamları Add() - Ekleme, Remove() - Silme ve Sort() - Sıralama yordamlarıdır.

Aşağıdaki ArrayList örneğini incelerseniz ArrayList mantığını kavrayabilirsiniz.

Dosyamıza System.Collections sınıfını eklemem gerekiyor.

ArrayList dizi = new ArrayList(); komutu ile dizi adında bir ArrayList oluşturuyorum.

dizi.Add("İstanbul");
dizi.Add("Paris");
dizi.Add("Tokyo");

şeklinde üç eleman ekliyorum.

for (int i = 0; i < dizi.Count; i++)
            {
                Console.WriteLine(dizi[i]);
            }



For döngüsü ile dizinin elemanlarını ekrana yazdırıyorum.

Kodun tamamı

static void Main(string[] args)
        {
            ArrayList dizi = new ArrayList();

            dizi.Add("İstanbul");
            dizi.Add("Paris");
            dizi.Add("Tokyo");

            for (int i = 0; i < dizi.Count; i++)
            {
                Console.WriteLine(dizi[i]);
            }

            Console.ReadKey();
}

21 Şubat 2013 Perşembe

PHP date() fonksiyonu



 PHP'de tarih ve saat işlemleri nasıl yapılır? Bu yazıda date() ve mktime() fonksiyonlarının nasıl kullanıldığını anlatmaya çalışacağım.

PHP'de tarih işlemleri date() fonksiyonu ile yapılıyor.

d -> Gün

m -> Ay

Y -> Yıl

olarak kullanılıyor. Örneğin <?php echo date("Y"); ?> kodunu çalıştırırsak ekrana yılı yazdırırız.

Gün/Ay/Yıl gibi bir tarih yazdırmak için echo date("d/m/Y"); kodunu kullanırız. / yerin . veya - işaretlerini de koyabiliriz.

Bir sonraki günü bulma


<?php
$yarin = mktime(0,0,0,date("m"),date("d")+1,date("Y"));
echo "Yarın ".date("d/m/Y", $yarin);
?>


C - Pointerlar


Pointer kullanımı


Bir programın icrası sırasında, program tarafından kullanılmakta olan tüm bilgiler (datalar) ve program kodları (fonksiyonlar) bellekte uygun lokasyonlara yerleştirilir. Bu lokasyonlardaki bilgilere ya da rutinlere ulaşmak için, değişken veya fonksiyonların isimlerinden yararlanılır. Lokasyondaki bilgilere veya program kodlarına ulaşabilmek için farklı bir yöntem daha kullanılabilir. Bu yöntem pointer kullanımıdır. Yöntemdeki temel prensip ulaşılacak lokasyon için, bu lokasyona karşılık gelen isim yerine, lokasyonun adresinin kullanılmasıdır.

C dilinin çok önemli bir parçası olan pointer kullanımı, programların etkinliğini ve süratini arttırır.

Pointer kullanımının getirdiği avantajlar :

- Bütün bellek alanlarına ulaşabilme.

- Fonksiyonlar arası değer transferi.

- Programlar arası değer transferi.

- Sistem komut satırından parametre okumak.

- Değer transferlerinde kolaylıklar.

- Fonksiyonların yönlendirilmesi.

- Fonksiyonların parametre gibi transfer edilmesi.

- Dinamik değişken alanı kullanımı.

- Boş bellekten yararlanma.

- Diziler üzerinde geliştirilmiş operasyonlar.

- Stringler üzerinde geliştirilmiş opersayonlar.

- Hız ve bellek kazancı.

19 Şubat 2013 Salı

HTML renk kodu bulma programı

İnternette gezerken bu programla karşılaştım. Web tasarımı ile ilgilenen arkadaşların işine yarayacağını düşündüm. Kurulum gerektirmeyen programın boyutu sadece 8,03 KB. Programı buradan indirebilirsiniz.

Programın görünümü


(Project Euler) 2.Problem - Fibonacci serisi - C - C# - PHP



Project Euler'in 2.problemi Fibonacci serisi ile ilgili. Ben de bu yazıda 1 ve 2 ile başlayarak Fibonacci serisinin ilk 10 elemanını bulacağım.

C, C# ve PHP ile yazdığım kodları paylaşacağım ancak ilk önce algoritmaya biraz göz atalım.

1 ve 2 ile başlayacağız. Bu durumda

1.eleman -> 1
2.eleman -> 2
3.eleman -> 1 + 2 = 3
4.eleman -> 2 + 3 = 5
5.eleman -> 3 + 5 = 8
6.eleman -> 5 + 8 = 13
7.eleman -> 8 + 13 = 21
8.eleman -> 13 + 21 = 34
9.eleman -> 21 + 34 = 55
10.eleman -> 34 + 55 = 89

Bir dizi oluşturuyorum. Dizimin adı dizi olsun. dizi[0] = 1 ve dizi[1] = 2 yapıyorum.

2'den başlayarak bir for döngüsü oluşturuyorum.

for(i=2;i<10;i++)
{
     dizi[i] = dizi[i-1] + dizi [i-2];
}

şeklinde işlemleri yaptırıyorum.

PHP KODU

<?php
$dizi = Array();
$dizi[0] = 1;
$dizi[1] = 2;

for($i=2;$i<10;$i++)
{
    $dizi[$i] = $dizi[$i-1] + $dizi[$i-2];
}

for($i=0;$i<10;$i++)
{
    echo $i+1 . ".eleman = " .$dizi[$i] . "<br />";
}
?>

 
C KODU

#include<stdio.h>
#include<conio.h>

main()
{
   int i;
   int dizi[10];
  
   dizi[0] = 1;
   dizi[1] = 2;
  
   for(i=2;i<10;i++)
   {
      dizi[i] = dizi[i-1] + dizi[i-2];                
   }     
  
   for(i=0;i<10;i++)
   {
      printf("%d.eleman = %d\n",i+1,dizi[i]);               
   }
  
   getch();
}


C# KODU

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace fibonacci
{
    class Program
    {
        static void Main(string[] args)
        {
            int[] dizi = new int[10];

            dizi[0] = 1;
            dizi[1] = 2;

            for (int i = 2; i < 10; i++)
            {
                dizi[i] = dizi[i - 1] + dizi[i - 2];
            }

            for (int i = 0; i < 10; i++)
            {
                Console.WriteLine(i+1 + ".eleman = " + dizi[i]);
            }

            Console.ReadKey();
        }
    }
}

jQuery Hide - Show (Göster - Gizle)



jQuery efektlerinden Hide ve Show'u anlatacağım. HTML elementlerini gizleyip göstermeye yarayan komutların kullanımı oldukça basit.

Bir HTML dosyası oluşturalım.

İlk olarak <head> </head> etiketleri arasında jquery dosyamı ekliyorum.

<script src="//ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js">
</script>

 
Body kısmında

<p>Gösterilecek yazı.</p>
<button id="goster">Göster</button>
<button id="gizle">Gizle</button>


kodlarını ekliyorum. Ardından tekrar head kısmına gelip

<script type="text/javascript">
$(document).ready(function(){
  $("#gizle").click(function(){
    $("p").hide();
  });
  $("#goster").click(function(){
    $("p").show();
  });
});
</script>

 
kodunu ekliyorum. Burada dikkat etmeniz gereken nokta yukarıda jquery dosyasını eklerken kullandığımız <script> kodları arasına kod eklememek. Yeni bir <script> tagı açıp kodlarımı onun içine ekliyorum.

Böylece Gizle butonuna bastığımızda yazı gizleniyor, Göster butonuna bastığımızda ise yazı tekrar gösteriliyor.

Kodun tamamı :

<!DOCTYPE html>
<html>
<head>
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js">
</script>
<script type="text/javascript">
$(document).ready(function(){
  $("#gizle").click(function(){
    $("p").hide();
  });
  $("#goster").click(function(){
    $("p").show();
  });
});
</script>
</head>
<body>
<p>Gösterilecek yazı.</p>
<button id="gizle">Gizle</button>
<button id="goster">Göster</button>
</body>
</html>

18 Şubat 2013 Pazartesi

C Switch - Case ile menü yapımı

C programlama dilinde Switch - Case kullanarak menü yapacağım. Menü aşağıdaki gibi olacak.

1 - Ekle
2 - Guncelle
3 - Sil

İlk olarak printf ile menüyü ekrana yazdırıyorum.

printf("1 - Ekle\n2 - Guncelle\n3 - Sil");


Şimdi geldik seçim kısmına. Kullanıcı 1'e basarsa ekleme, 2'ye basarsa güncelleme, 3'e basarsa silme fonksiyonu çalışacak.

int secim; şeklinde bir değişken tanımlıyorum.

scanf("%d",&secim); komutu ile kullanıcının seçimini öğreniyorum.

switch(secim)
    {
       case 1 : ekle(); break;  
       case 2 : guncelle(); break;
       case 3 : sil(); break;
       default : printf("Gecersiz secim"); break; 
    }


komutuyla da kullanıcının istediği fonksiyonu çalıştırıyorum.

 Kodun tamamı :

#include<conio.h>
#include<stdio.h>
#include<stdlib.h>

ekle()
{
    system("cls");
    printf("Ekleme fonksiyonu calisti."); 
}

guncelle()
{
    system("cls");
    printf("Guncelleme fonksiyonu calisti.");  
}

sil()
{
    system("cls");
    printf("Silme fonksiyonu calisti.");   
}

main(){
    int secim;
   
    printf("1 - Ekle\n2 - Guncelle\n3 - Sil\n\n");
   
    scanf("%d",&secim);
   
    switch(secim)
    {
       case 1 : ekle(); break;  
       case 2 : guncelle(); break;
       case 3 : sil(); break;
       default : printf("Gecersiz secim"); break; 
    }
   
    getch();      
}

jQuery nedir? jQuery giriş.



jQuery; hızlı, küçük ve zengin özelliklere sahip JavaScript kütüphanesidir. HTML sayfalarında animasyonlar, olay idare (event handling) eklemeye yarayan jQuery, günümüz tarayıcılarında sorunsuz çalışmaktadır.

jQuery kullanan bazı siteler :



jQuery indir :


Buraya tıklayarak jQuery indirebilirsiniz.

Sayfaya nasıl eklenir ?


1) Kendi dosyamızdan ekleme

<head>
<script src="jquery-1.8.3.min.js"></script>
</head>


2) Google üzerinden ekleme

<head>
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js">
</script>
</head>


3) Microsoft CDN üzerinden ekleme

<head>
<script src="//ajax.aspnetcdn.com/ajax/jQuery/jquery-1.8.3.min.js">
</script>
</head>

Camel Harflendirme (Camel Case)



Değişken isimlerinin ilk sözcüğünün küçük harfle, sonraki sözcüklerinün ise büyük harfle başladığı yazım biçimidir.

Örnek :

buBirDegiskendir

Pascal Harflendirme (Pascal Case)



Değişken isminde kullanılan sözcükler büyük harfle başlar, küçük harfle devam eder.

Macarca Yazım (Hungarian Notation)


Charles Simonyi


1981 yılında Microsoft'ta yazılım geliştirici olarak işe başlayan ve Word, Excel gibi programların yaratıcısı olan Charles Simonyi adlı mühendisin, programlamayı kolaylaştırmak için geliştirdiği bir biçimdir.

13 Şubat 2013 Çarşamba

Lightbox nedir? Nasıl kullanılır?



Lightbox; web sayfalarındaki resimleri görüntülemek için kullanılan basit ve kullanışlı bir uygulamadır.

7 Şubat 2013 Perşembe

DOM Hiyerarşisi

DOM (Document Object Model)

Platform ve dilden bağımsız, dökümanların yapısal bir grup olarak temsilini sağlayarak, programların ve script kodlarının dokümanların içeriğine, yapısına ve biçim özelliklerine erişimini ve kullanımını sağlayan bir arabirimdir.

HTML DOM API, HTML sayfalarının/dokümanlarının hiyerarşik düzende nesnel gösterimini sağlayan bir arabirimdir. Bu bölüm, HTML DOM metodlarının ve özelliklerinin JavaScript ile kullanımını içermektedir.

6 Şubat 2013 Çarşamba

C - Matris Toplama

Elimizde 4x3 tipinde iki matris olsun



İşlemini yapıyorum.

İki tane [4][3] boyutunda dizi oluşturuyorum. İçerisine değerleri giriyorum. Aynı boyutta bir dizi daha oluşturuyorum ve for döngüleri içerisinde iki diziyi toplayarak toplamları üçüncü diziye atıyorum.

#include<conio.h>
#include<stdio.h>

main(){
      int matris1[4][3] = {{3,5,8},{2,5,4},{1,1,5},{6,9,7}};
      int matris2[4][3] = {{6,6,2},{9,12,3},{7,3,15},{2,1,9}};  
      int toplam[4][3];
      
      int i,j;
     
      for(i=0;i<4;i++)
      {
         for(j=0;j<3;j++)
         {
            toplam[i][j] = matris1[i][j] + matris2[i][j];          
         }               
      }
     
      for(i=0;i<4;i++)
      {
         for(j=0;j<3;j++)
         {
            printf("%d    ",toplam[i][j]);        
         }        
        
         printf("\n\n");      
      }
     
      getch();
}


Toplam aşağıdaki gibi bulunuyor.

5 Şubat 2013 Salı

(Project Euler) Problem 1 Çözüm - 3 ve 5'in katları



Project Euler'de sorulan soru aşağıda. 1'den 1000'e kadar 3'e ve/veya 5'e bölünen sayıları ve kaç tane olduklarını bulacağım.

If we list all the natural numbers below 10 that are multiples of 3 or 5, we get 3, 5, 6 and 9. The sum of these multiples is 23.

Find the sum of all the multiples of 3 or 5 below 1000.

İkinci else if'te k'yı azaltmamın sebebi 3'e ve 5'e bölünen sayıları 2 kere saymasını engellemek. Örneğin 15 hem 3'e hem 5'e bölünür. Bir kere sayması için if şartını koydum.

#include<stdio.h>
#include<conio.h>

main(){
    int i,k=0;
   
    for(i=1;i<=1000;i++)
    {
       if(i%3==0)
       {
          printf("%d  ",i);  
          k++;      
       }  
      
       else if(i%5==0)
       {
          printf("%d  ",i);    
          k++;
       }    
      
       else if((i%3==0)&&(i%5==0))   
       {
          k--;    
       }      
      
       else
       {
          continue;   
       }
    }
   
    printf("\n\n\n3 ve 5'in kati olan %d sayi var",k);
   
    getch();
}



3 Şubat 2013 Pazar

Mantık Kapıları (NAND - NOR - XOR - XNOR)

1 ) VEDEĞİL (NAND) Kapısı

Gösterimi


Devre çizimindeki gösterimi


Doğruluk çizelgesi


2 ) VEYADEĞİL (NOR) Kapısı

Gösterimi


Devre çizimindeki gösterimi




 Doğruluk çizelgesi


3 ) ÖZELVEYA (XOR) Kapısı

Gösterimi


Devre çizimindeki gösterimi



 Doğruluk çizelgesi


4 ) ÖZELVEYADEĞİL (XNOR) Kapısı

Gösterimi


Devre çizimindeki gösterimi



 Doğruluk çizelgesi






Boole Cebri - Mantık Kapıları (AND - OR - NOT)

Mantıksal kapıların temel elemanları VE, VEYA ve DEĞİL kapılarıdır, bu kapılar özel devre sembolleri ile gösterilirler. Diğer tüm kapılar bu kapılardan türetilmiştir.

1 ) Ve (And) Kapısı

Gösterimi


Devre çizimindeki gösterimi


Doğruluk Çizelgesi


2 ) Veya (Or) Kapısı

Gösterimi


Devre çizimindeki gösterimi


Doğruluk çizelgesi


3 ) Değil (Not - Inverter) Kapısı

Gösterimi


Devre çizimindeki gösterimi

Doğruluk çizelgesi

 






Eşlik Biti - Çift Eşlik - Tek Eşlik

Eşlik Biti (Parity Bit) : İkili gösterimdeki bir sayıda 1'lerin toplamının her zaman çift ya da her zaman tek olmasını sağlayacak şekilde sözcüğe eklenen bit.

Çift Eşlik (Even Parity) : Eşlik biti de dahil olmak üzere bir karakterin içerisindeki 1 bitlerinin sayısının çift olması.

Tek Eşlik (Odd Parity) : Eşlik biti de dahil olmak üzere bir karakterin içerisindeki 1 bitlerinin sayısının tek olması.


Eşlik bitinin uygulama alanlarından birisi de 7 bitlik ASCII kodlarıdır.

Avatantajları :


Yalnızca bir bit kullanarak hata kontrolü yapması. Ancak bu kontroller çok güvenli değildir.

Dezavantajları :


İletilen sayıda iki bit birden bozulmaya uğrarsa tespit edemez.

Gürültülü bir iletişim ortamında bu yöntemle verinin iletilmesi çok uzun zaman alabilir veya hiç iletilemeyebilir.


2 Şubat 2013 Cumartesi

C# Veri Türleri Arası Dönüşüm



Veri türleri arasında dönüştürme işlemleri daha çok sayısal veri türlerinde kullanılır. .NET Framework iki çeşit dönüşümü destekler.

1) Bilinçsiz Dönüşüm (implicit type conersion) : Derleyinicin bir değişkenin türünü değişkenin değerinde herhangi bir değişme olmadan başka bir türe dönüştürmesi.

2) Bilinçli Dönüşüm (explicit type conversion) : Derleyici desteklemese de programcının dönüştürme operatör veya yordamlarını kullanarak bilinçli olarak iki türü birbirine dönüştürmesidir.

Bilinçsiz Dönüştürme


Hangi veri türü hangi veri türlerine bilinçsiz dönüşebilir


byte -> byte, short, int, long, decimal, float, double

short -> short, int, long, decimal, float, double

int -> int, long, decimal, float, double

long -> long, decimal, float, double

decimal -> decimal, float, double

float -> float, double

double -> double

char -> char, string


Bilinçli Dönüştürme


System.Convert fonksiyonları


Convert.ToBoolean (boolean)

Conver.ToByte (byte)

Convert.ToChar (char)

Convert.ToDateTime (date)

Convert.ToDouble (double)

Convert.ToDecimal (decimal)

Convert.ToInt32 (integer)

Convert.ToInt64 (long)

Convert.ToSingle (single)

Convert.ToString (string)

PHP sınıf ve nesne tanımlama



PHP  object oriented (nesneye yönelik) bir dildir. Nesnelerle (object) ve sınıflarla (class) çalışma imkanı sunar.

PHP'de class oluşturma

Futbolcu adında bir sınıf oluşturalım.

class Futbolcu { }

Sınıfımızın içinde ad ve soyad değişkenleri olsun.

class Futbolcu
{
   public $ad = "Cristiano";
   public $soyad = "Ronaldo";
}

 
Şimdi bir nesne oluşturalım.

$nesne1 = new Futbolcu();

Nesne yardımıyla ekrana ad ve soyad yazdıralım.

echo  $nesne->ad . " " . $nesne->soyad;

Kodun tamamı

<?php
class Futbolcu
{
   public $ad = "Cristiano";
   public $soyad = "Ronaldo";
}

$nesne = new Futbolcu();

echo  $nesne->ad . " " . $nesne->soyad;
?>


Ekran çıktısı

Cristiano Ronaldo olur.

1 Şubat 2013 Cuma

C'de iki boyutlu diziler



Arkadaşlar bildiğiniz gibi C'de diziler int sayilar[5] şeklindeydi. İçerisinde 5 eleman bulundurabilen bir dizi oluşturuyorduk. Peki iki boyutlu diziler nasıl oluyor ?

int dizi[5][5] şeklinde iki boyutlu diziler oluşturabiliyoruz. İki boyutlu diziler matris uygulamalarında oldukça sık kullanılıyor. İleride matrislerle ilgili örnek de vereceğim.

Aşağıdaki gibi bir dizi oluşturuyoruz. Ve for döngüsü ile dizinin elemanlarını yazıdrıyoruz.

int sayilar[3][3] = {{1,2,3},{10,11,12},{20,21,22}};
Kodun tamamı

#include<conio.h>
#include<stdio.h>

main(){
    int sayilar[3][3] = {{1,2,3},{10,11,12},{20,21,22}};
   
    int i,j;
   
    for(i=0;i<3;i++)
    {
       for(j=0;j<3;j++)
       {
          printf("%d\n",sayilar[i][j]);               
       }               
      
       printf("\n\n");
    }
   
    getch();
}