31 Ekim 2016 Pazartesi

JavaScript Veri Türleri

JavaScript değişkenleri birçok değişken türünü içerisinde bulundurabilir.
  • String
  • Number
  • Boolean
  • Array
  • Object
  • daha fazlası..

Aşağıdaki kod yapısını inceleyiniz.
var sayi = 13;      //number
var blogadi = "Sturdy Geek";    //string
var dizi = ["elma", "armut", "nar"];   //array
var insan = {gozRengi:"yeşil", sacRengi:"siyah"}; //object

Veri Türleri Kavramı


Programlamada Veri Türleri önemli bir kavramdır. Değişkenler üzerinde çalışırken türler hakkında bilgi sahibi olmamız oldukça önemlidir.

Şimdi biraz uygulamaya geçelim.

Öncelikle bir string veri türüne sahip değer ile number veri türüne sahip değeri aynı değişkene atarsanız JavaScript number veri türüne sahip değeri, string olarak yorumlayacaktır.

Aşağıdaki kod yapısında ne demek istediğimizi gösterelim.
var goster1 = "merhaba" + 12;
var goster2 = 12 + "merhaba";

document.getElementById("goster-1").innerHTML = goster1; // sonuç -> merhaba12
document.getElementById("goster-2").innerHTML = goster2; // sonuç -> 12merhaba
Ancak dikkat edilmesi gereken bir husus var. JavaScript yorumlanabilen yani interpreter bir programlama dilidir. Aşağıdaki kod yapısını dikkatle inceleyin.
var goster1 = "merhaba" + 12 + 2;
var goster2 = 12 + 2 + "merhaba";

document.getElementById("goster-1").innerHTML = goster1; // sonuç -> merhaba122
document.getElementById("goster-2").innerHTML = goster2; // sonuç -> 14merhaba
İşlemler yorumlanırken soldan sağa doğru gittiği için goster1 değişkeninin yazdıracağı değer ilk önce 12 ile 2 sayısının toplamı olur daha sonrasında ise string veri türü geldiği için elde edilen 14 sayısıda string olarak yorumlanır. goster2 değişkeninin değerleri doğrudan string ile başladığı için ondan sonra gelen değerlerde string olarak yorumlanır.


JavaScript Dinamik Türleri


JavaScript'in dinamik türleri de vardır. Bunun anlamı aynı değişkende farklı türleri kullanabiliriz demektir.
var slm;   //değişken şu an tanımsız (undefined)
var slm = 12;  //değişken şu an bir number
var slm = "arda";  //değişken şu an bir String

30 Ekim 2016 Pazar

ASP.NET MVC Link Oluşturma

ASP.NET MVC ile proje üzerinde link oluşturmak için Html.ActionLink metodu kullanılır. Aşağıda gösterilecek örnekte bir controller içerisinde iki action arasında link verme gösterilmektedir.

İlk önce Html.ActionLink metodunun yapısını inceleyelim.

@Html.ActionLink("linkİsmi", "actionİsmi", "controllerİsmi")

linkİsmi kısmına bağlantı yapacağımız action metodunun ismi gelebilir. Örneğin bizim HomeController içinde Iletisim isminde bir action metodumuz olsun linkİsmi bölümüne İletişim yazabiliriz.

actionİsmi bölümünde ise çalışacak olan action metodunun ismi yazılır örnek olarak Iletisim.

controllerİsmi kısmında ise action metodları arasında bağlantı yaptığımız ve aynı controller içinde bulunduklarından dolayı controller ismini yazmalıyız.

Aşağıdaki kodları inceleyerek yukarıdaki yazılanları daha iyi anlayabilirsiniz.

HomeController.cs
public class HomeController : Controller
{
        // GET: Home
        public ActionResult Index()
        {
            return View();
        }
        public ActionResult Iletisim()
        {
            return View();
        }
}

Index.cshtml
@{
    Layout = null;
}

<h1>Anasayfa</h1>

@Html.ActionLink("İletişim","Iletisim","Home")

Iletisim.cshtml
@{
    Layout = null;
}

<h1>İletişim</h1>

@Html.ActionLink("Anasayfa", "Index", "Home")

Bunun dışında link oluşturmak için bir metodumuz daha vardır. Bu metod ise Url.Action metodudur. Ancak kullanımı Html.ActionLink metoduna göre daha farklıdır. Link bağlantısını kendimiz HTML ile oluşturmak zorundayız. Aşağıdaki gibi mesela.

<a href="@url.Action("actionİsmi", "controllerİsmi")"> linkİsmi </a>

Index.cshtml
@{
    Layout = null;
}

<h1>Anasayfa</h1>

<a href="@Url.Action("Iletisim", "Home")">İletişim</a>

29 Ekim 2016 Cumartesi

C++ Matris Çarpımı (nxn)

#include <iostream>

using namespace std;

int main()
{
    int n,i,j;
    cout << "matris boyutu gir : ";
    cin >> n;
    double u[n][n], l[n][n];
    double s[n][n] = {};
    cout << "1. matris" << endl;
    for (i = 0; i<n; ++i)
        for (j = 0; j<n; ++j){
            cout << "[" << i+1 << "][" << j+1 <<"] : ";
            cin >> l[i][j];
        }
    cout << endl <<"2. matris" << endl;
    for (i = 0; i<n; ++i)
        for (j = 0; j<n; ++j){
            cout << "[" << i+1 << "][" << j+1 <<"] : ";
            cin >> u[i][j];
        }

    cout << endl <<  "Sonuc" << endl;

    for(int r = 0; r<i; r++){
        for(int c=0; c<j; c++){
            for(int in=0; in <i; in++){
                s[r][c] += l[r][in]*u[in][c];
            }
            cout << s[r][c] << " ";
        }
        cout << endl;

    }

    return 0;

}


27 Ekim 2016 Perşembe

Code::Blocks içinde OpenGL & GLUT Kullanımı

Code::Blocks indirmek için tıklayınız :
http://www.codeblocks.org/downloads/26

GLUT dosyasını indirmek için bu adrese gidiniz :
indir

GLUT dosyasını indirdikten sonra açın ve aşağıdaki adımları uygulayın :
  • glut32.dll kopyala, c:\windows\system dosya adresine yapıştır.
  • glut32.dll kopyala, c:\windows\system32 dosya adresine yapıştır.
  • glut32.lib kopyala, C:\Program Files (x86)\CodeBlocks\MinGW\lib adresine yapıştır.
  • glut.h kopyala C:\Program Files (x86)\CodeBlocks\MinGW\include\GL adresine yapıştır.
Bu adresler temel alınabilir ancak dosya yolları sizinkinde farklı olabilir. Fakat genel olarak .lib ve .h dosyaları mingw dosyası içerisinde, .dll dosyası ise system klasörü içerisine atılır.

Code::Blocks programını açın ve yeni bir proje oluşturun.


Karşınıza çıkan pencereden GLUT project kategorisini seçip go butonuna tıklayın.


Next butonuna tıklayarak devam edin.


Proje başlığına isim verin ve projenin nereye kaydolmasını istiyorsanız o yerin adres yolunu belirtin.


GLUT dosyalarının bilgisayar içerisindeki bulunduğu kısmı seçmeliyiz. Seçilen adres yolunun alt dosyaları include ve lib olmalıdır.


Daha sonra ayarlar aşağıdaki şekilde olacak şekilde Finish butonuna tıklıyoruz.


Aşağıdaki resimde görüldüğü gibi bir kod yapısı çıkacak karşımıza.


Project >> Build options... yolunu izleyin.


Karşınıza çıkan pencereden Linker Settings sekmesine giriniz.


Add libary penceresinden C:\Program Files (x86)\CodeBlocks\MinGW\lib dosyasını çağırın.


Question penceresi çıktığında Hayır butonuna tıklayın.


Ok butonuna tıklayarak devam edin.


Gerekli kütüphaneyi ekledikten sonra OK butonuna tıklayın.


Artık kodu derleyip çalıştırmak kaldı. Bu işlemleri yapalım ve aşağıdaki gibi bir görüntü karşınıza çıkıyorsa işlem başarılı bir şekilde tamamlanmıştır.



YARARLANILAN KAYNAKLAR

1. http://www.sci.brooklyn.cuny.edu/~goetz/codeblocks/glut/

25 Ekim 2016 Salı

C++ Konsolda Yazıya Renk Verme

#include <iostream>
#include <windows.h>

using namespace std;

int main(){
    HANDLE renkVer;
    int n;

    renkVer = GetStdHandle(STD_OUTPUT_HANDLE);

    for(n = 1; n < 255; n++){
        SetConsoleaTextAttribute(renkVer, n);
        cout << n << " Sturdy Geek " << endl;
    }


    return 0;
}


C++ Random Sayı Üretme - (Uygulamalar)

C++ ile random yani rastgele sayı üretmek için ilk önce ctime başlık dosyasını eklemeliyiz. Daha sonra srand fonksiyonu ile zamanı parametre alarak sürekli rastgele sayı kendini tekrar etmeyen sayılar oluşturabiliriz. Aşağıda uygulama kodları yazılmıştır.
#include <iostream>
#include <ctime>
#include <cstdlib>

using namespace std;

int main(){
    int sayi, random_sayi;

    cout << "Sayi gir";
    cin >> sayi;

    srand(time(0));

    random_sayi = (rand () % sayi) + 1;

    cout << random_sayi;

    return 0;
}
Girilen sayı kadar random sayı oluşturma
#include <iostream>
#include <ctime>
#include <cstdlib>

using namespace std;

int main(){

    int sayi;

    cout << "Sayi gir : ";
    cin >> sayi;

    int random_sayi;

    srand(time(0));

    for(int i=0; i<sayi; i++){
        random_sayi = (rand () % sayi) + 1;
        cout << random_sayi;
    }

    return 0;
}

23 Ekim 2016 Pazar

Üye Kayıt İşlemi - PHP ve MySQL

Üye kaydetme işlemini PHP ve MySQL kullanarak oluşturacağız. Siteye giren ziyaretçi eğer siteye kayıt olmak isterse üye kayıt sistemi ile gerekli bilgileri girerek üye kaydını yapabilecek.

Öncelikle yapılması gereken htdocs klasörü içerisinde uyelik adında bir dosya oluşturmak. Daha sonra ise kayit.php dosyasını uyelik klasöründe oluşturmak.

Oluşturulan kayit.php dosyasını kullandığınız herhangi bir editörle açın. Benim kullanacağım editör Sublime Text.

İlk önce üye kaydı formu oluşturulmalı. Kayıt olacak kullanıcının gireceği bilgiler de şu şekilde olacak:
  • Kullanıcı Adı
  • E-mail Adresi
  • Şifre
  • Şifre Doğrulama
Kullanıcı bu bilgileri girdikten sonra kayıt ol butonuna bastığında eğer girdiği bilgiler kurallara uygunsa kayıt işlemi gerçekleşecek eğer girilen bilgiler düzgün şekilde girilmediyse bilgilerin doğru girilmesi konusunda uyarı verilecek ve tekrar yapılması istenecek.

kayit.php sayfasının kodları şu an için aşağıdaki gibi.


<!DOCTYPE html>
<html>
<head>
 <title>Üye Kayıt</title>
</head>
<body>
<div class="baslik">
 <h1>Üye Kaydı</h1>
</div>

<form>
 <table>
  <tr>
   <td>Kullanıcı Adı:</td>
   <td><input type="text" name="uyeadi" class="stiltext"></td>
  </tr>
  <tr>
   <td>E-mail:</td>
   <td><input type="email" name="email" class="stiltext"></td>
  </tr>
  <tr>
   <td>Şifre:</td>
   <td><input type="password" name="sifre" class="stiltext"></td>
  </tr>
  <tr>
   <td>Şifre Doğrulama:</td>
   <td><input type="password" name="sifre2" class="stiltext"></td>
  </tr>
  <tr>
   <td></td>
   <td><input type="submit" name="kayit_btn" value="Kayıt Ol"></td>
  </tr>
 </table>
</form>

</body>
</html>

Kodun Ekran çıktısı ise şimdilik şu şekilde.

Bu görünümü elde ettiyseniz yola devam. Öncelikle bilmemiz gereken iki tane form metotu vardır. Bunlar get ve post metotlarıdır. get metotu ile kullanıcıdan alınan bilgiler url adresi kısmında görülmektedir. Ancak post metotu ile url kısmında kullanıcının girdiği bilgiler görünmez. Kayıt işlemleri gibi özel durumlarda post metotunu kullanmak gereklidir. Bu sayede bilgileri açık hale getirmiyoruz.

Kullanıcı bilgilerini post metodu ile kayit.php sayfasına action ile yollaycağız. Bunu yapmak için <form> etiketini kullanacağız. <form method="post" action="kayit.php"> olacak şekilde yazalım.



Daha sonra <!DOCTYPE html> etiketinin üstüne php etiketi açıyoruz ve session başlatıp, veri tabanı bağlantısını yapıyoruz.
<?php
 session_start();

  $vt = @new mysqli("localhost", "root", "", "uyelik");
?>



Şimdi ise veritabanı oluşturmak için localhost/phpmyadmin adresine girelim. uyelik adında bir veritabanı oluşturalım. Veritabanına uyeler adında 4 tane sütunlu bir tablo oluşturalım.

Sıra sütunları oluşturmada. İlk önce id adı tanımladı ve bu alacağı değerler int olarak belirlendi. Her üyenin diğer üyelerden farklı id numarası olacak ve bunu da AUTO_INCREMENT ile sağlıyoruz, karakter uzunluğunu ise 10 verdik. uyeadi, email ve sifre adında üç sütun daha oluşturuldu. Bu sütunların alacağı değerler sayı, harf ve özel işaretler olabileceği için VARCHAR olarak ayarlandı.Uyarı - Eğer #1075 hatası ile karşılaşırsanız tablo oluşturmada, INDEX kısmındaki PRIMARY değerini UNIQUE yapın.

Üye kayıt işlemlerinin olacağı asıl kısma geldik. Bu bölümde php kodları yazacağız. PHP kodlarını yazdığımız etiket içerisinde if karar yapısı oluşturuyoruz. Daha sonra isset() fonksiyonu ile post değişkeninin sorgulanmasını yapıyoruz. isset fonksiyonu değişkenin tanımlanıp tanımlanmadığını sorgular.


<?php
 session_start();

 $vt = @new mysqli("localhost", "root", "", "uyelik");

 if(isset($_POST['kayit_btn'])){
  
 }
?>

Önemli - kayit_btn post değişkeni içerisine yazılır. Kodları böyle yazarak anlattığımdan dolayı kod örneklerini bundan sonra parça parça göstereceğim.


if(isset($_POST['kayit_btn'])){
  session_start();
  $uyeadi = $vt->real_escape_string($_POST['uyeadi']);
  $email = $vt->real_escape_string($_POST['email']);
  $sifre = $vt->real_escape_string($_POST['sifre']);
  $sifre2 = $_POST['sifre2'];
 }

if içerisinde tekrar session başlattık. Kullanıcının girdiği üye bilgilerini oluşturduğumuz değişkenlere atandı. Şimdi dikkat ettiyseniz sifre2 değişkeni de tanımlandı. Bu değişkenin içindeki değer sadece doğrulama amaçlı kullanılacak.Eğer doğru ise kullanıcı kayıt olacak. Kullanıcının şifresi ise veritabanında md5 olarak şifrelenecek. $sql değişkeni oluşturulup sql kodları ile bu kullanıcı bilgilerini içeren değişkenler veritabanındaki değerlere atanacak. Daha sonra bu yazma işlemini gerçekleştirmek için mysqli_query() sayesinde sql ile vt arasında bağlantı kuruyoruz. Ardından session değişkeni oluşturup doğrulama  amaçlı uyarı mesajı kullanıcı karşısına çıkacak ve "Şu an içerdesin" yazısını görecek. Tekrar session değişkeni oluşturup kullanıcının üye adını bu değişkene atıyoruz. Daha sonrasında ise header() fonksiyonu ile başka sayfaya yönlendirme yapıyoruz.

Eğer şifre karşılaştırma yanlış çıkarsa else içerisindeki kodlar çalışacak ve uyarı verecek.


if(isset($_POST['kayit_btn'])){
 session_start();
  $uyeadi = $vt->real_escape_string($_POST['uyeadi']);
  $email = $vt->real_escape_string($_POST['email']);
  $sifre = $vt->real_escape_string($_POST['sifre']);
  $sifre2 = $_POST['sifre2'];

  if($sifre == $sifre2){
   $sifre = md5($sifre);
   $sql = $vt->query("INSERT INTO uyeler(uyeadi,email,sifre) VALUES('$uyeadi','$email','$sifre')");
   $_SESSION['uyari'] = "Şu an içerdesin";
   $_SESSION['uyeadi']= $uyeadi;
   header("location: index.php");
  }else{
   $_SESSION['uyari'] = "Girilen İki Şifre Uyuşmamaktadır.";
  }
 }

 }

Şimdi ise biraz görünüme önem verelim. Bir tane style.css adlı dosya oluşturup bunu kayit.php dosyama dahil ediyorum. Oluşturuduğumuz bu dosyanın uyelik klasörü içinde olmasına dikkat edin. Ardından style.css dosyasına aşağıdaki kodları yazıyorum.


body{
 padding: 0;
 margin:0;
}
.baslik{
 background:#bad7f2;
 color:#333;
 text-align: center;
 top:0;
 width:100%;
 padding: 7px;
}
form{
 width: 45%;
 padding: 30px;
 border: 1px solid #ccc;
 margin: 5px auto;
}
.stiltext{
 margin-top:2px;
 height: 28px;
 border: 1px solid #666;
 font-size: 16px;
 padding: 1px;
 width: 100%;
}
#hatamesaji{
 width: 50%
 margin: 5px auto;
 height: 30px;
 border: 1px solid #ff0000;
 background: #ffb9b8;
 color: #ff0000;
 text-align: center;
 padding-top: 10px;
}
td{
 text-align:right;
}


style.css dosyasını dahil etmek için kayit.php kodları içerisinde ... etiketleri içerisine eklemelisiniz.


<link rel="stylesheet" type="text/css" href="style.css">

Üye kayıt formunun görünümüne bakalım.













Dikkat ettiyseniz header() fonksiyonu ile indx.php sayfasına yönlendirme yaptık. uyelik dosyası içerisine index.php dosyası açıp aşağıdaki kodları ekliyorum.


<!DOCTYPE html>
<html>
<head>
 <title>PHP Üyelik Sistemi</title>
 <link rel="stylesheet" type="text/css" href="style.css">
</head>
<body>

<div class="baslik">
 <h1>Ana Sayfa</h1>
</div>

<div>
<h4>Hoş geldin <?php echo $_SESSION['uyeadi'];?></h4>
</div>

</body>
</html>


Şimdi ilk kayıt işlemini yapalım. Kayıt başarılı olursa index.php sayfasına yönlenecek ve Hoş geldin phpbil diyecek.



Üye kayıt ile ilgili kısmı burada bitirmiş olduk. Diğer yazıda Üye girişi ve üye çıkış işlemi anlatılacaktır. Herhangi bir sorunda aşağıdan yorum atarak berlirtirseniz yardımcı olabilirim.