PHP İLE API OLUŞTURMA

PHP İLE API OLUŞTURMA.
Bu örneğimizde kendi oluşturacağımız api ile veri tabanı ile iletişim kurarak ekleme, düzenleme, listeleme ve silme işlemlerini gerçekleştireceğiz.

Merhaba arkadaşlar,

Bu örneğimizde kendi oluşturacağımız api ile veri tabanı ile iletişim kurarak ekleme, düzenleme, listeleme ve silme işlemlerini gerçekleştireceğiz.

Yapacağımız Örneği Test Etmek İçin Tıklayınız

İlk olarak “ArticleAPI” adında bir veri tabanı oluşturalım. Ardından bu veritabanımıza “article” adında bir tablo oluşturalım. Bu tabloda

  • id : Yazının Uniq numarası
  • title: Yazının başlığı
  • slag: Yazının SEO uyumlu başlıkları
  • text: Yazının metin kısmı

Veritabanımızı oluşturduk. Artık kod kısmımıza geçebiliriz. İlk olarak “apiOrnegi” adında bir klasör oluşturalım. Bu klasör de 4 temel dosyamız bulunacaktır. Bunlar

  • .htaccess
  • class.Article.php
  • database.php
  • index.php

Veritabanı Bağlantısı (database.php)

İlk olarak veritabanı bağlantımızı yapalım. Bunun için database dosyamızı açalım ve Database adında bir class oluşturalım.

<?php 
Class Database
{
 //Kodlar buraya...
}
?>

Veritabanı bağlantımız da kullanacağımız kullanıcı adı, şifre, veritabanı adres ve veritabanı adı parametreleri için birer değişken oluşturalım.

<?php 
Class Database
{
    private $user ;
    private $host;
    private $pass ;
    private $db;
}
?>

Bu değişkenlerimiz sabit bir değeri tutacakları için construct içerisinde bu değişkenlere sabit değerler atayalım.

<?php 
Class Database
{
    private $user ;
    private $host;
    private $pass ;
    private $db;

    public function __construct()
    {
        $this->user = "root";
        $this->host = "localhost";
        $this->pass = "";
        $this->db = "ArticleAPI";
    }
}
?>

Sabit değerleri atadığımıza göre artık bağlantı cümlemizi oluşturabiliriz. Bağlantı cümlesi için connect isimli bir metot oluşturalım. Ardından içerisine bağlantı cümlemizi ekleyelim. Oluşturduğumuz bağlantı değişkenini geri döndürelim. return $conn;

Database.php Tüm Kodlar

<?php 
Class Database
{
    private $user ;
    private $host;
    private $pass ;
    private $db;

    public function __construct()
    {
        $this->user = "root";
        $this->host = "localhost";
        $this->pass = "";
        $this->db = "ArticleAPI";
    }
    public function connect()
    {

        $conn = new PDO("mysql:host=".$this->host.";dbname=".$this->db.";", $this->user, $this->pass);
        return $conn;
    }
}
?>

Bağlantı cümlesi de eklendiğine göre veritabanı bağlantımız tamamlanmıştır.


Veritabanı İşlemleri (class.Article.php)

Veritabanı işlemlerimizi gerçekleştireceğimiz “Article” isminde bir sınıf oluşturalım. Bu sınıfımız içerisinde

  •  __construct(): Veritabanı nesnemizi tutacağımız yapıcı metot.
  • getAll() : Tüm listeyi getirecek olan metot.
  • getId($id = ”): Id ye göre veri getirecek olan metot.
  • getSlag($slag = ”): SEO url tipinde veri getirecek metot.
  • setArticle($title = ”, $text = ”): Yazı ekleme işleminde kullanacağımız metot.
  • editArticle($id = ”, $title = ”, $text = ”): Yazı düzenleme işleminde kullanacağımız metot.
  • deleteArticle($id = ”): Yazı silmek için kullanacağımız metot.
  • permalink($str, $options = array()): Başlıklarımızı SEO uyumlu hale getirecek metot.

Metotları belirlediğimize göre ilk sınıfımızı oluşturmaya başlayalım. İlk olarak sınıfımızın bulunduğu dosyaya veritabanı dosyamız olan “database.php” dahil edelim. Ardından kurucu metot da bu sınıfımızdan bir adet nesne oluşturalım.

<?php
require_once 'database.php';
class Article
{
	private $conn;
	public function __construct() {
		$conn= new Database();
		$this->conn = $conn->connect();
	}
}

Artık veritabanı sınıfımızdan türeyen “$conn” adında bir nesnemiz var. Bu nesnemizi kullanarak veritabanı işlemlerimizi yapabiliriz.

Tümünü Listeleme Metodu

Veri tabanına sorgu göndererek bütün yazıları aldığımız metot. Veri tabanından gelen verileri JSON tipinde geri gönderiyoruz.

function getAll()
	{
		
		$statement = $this->conn->prepare("SELECT * FROM article");
		$statement->execute();
		$results = $statement->fetchAll(PDO::FETCH_ASSOC);
		$json = json_encode($results);
		return $json;
	}

Tek Yazı Gösterme Metodu (ID)

Kullanıcıdan bir id değeri alıyoruz. Bu id değeri sayısal bir değer değilse veya sistemde kayıtlı değilse Not Found hatasını geri döndürüyoruz.

ID değeri sayısal bir değerse ve bu değere eşit bir verinin olup olmadığını kontrol ediyoruz. Eğer böyle bir veri varsa veriyi JSON tipinde geri döndürüyoruz.

function getId($id = '')
	{
		$results = [
			"error"	=> "Not Found"
		];
		if (is_numeric($id)) {
			
			
			$statement = $this->conn->prepare("SELECT * FROM article WHERE id=:id");
			$statement->execute(array(
				"id"		=> $id
			));
			$count = $statement->rowCount();
			if ($count > 0)
				$results = $statement->fetchAll(PDO::FETCH_ASSOC);
		}


		$json = json_encode($results);
		return $json;
	}

Tek Yazı Gösterme Metodu (SLAG – SEO Tip)

Kullanıcıdan bir slag (SEO tipi) değeri alıyoruz. Bu değerin karakter sayısı 1 den küçükse veya sistemde kayıtlı değilse Not Found hatasını geri döndürüyoruz.

Bu değere eşit bir verinin olup olmadığını kontrol ediyoruz. Eğer böyle bir veri varsa veriyi JSON tipinde geri döndürüyoruz.

function getSlag($slag = '')
	{
		$results = [
			"error"	=> "Not Found"
		];
		if (strlen($slag) > 0) {
			
			
			$statement = $this->conn->prepare("SELECT * FROM article WHERE slag=:slag");
			$statement->execute(array(
				"slag"		=> $slag
			));
			$count = $statement->rowCount();
			if ($count > 0)
				$results = $statement->fetchAll(PDO::FETCH_ASSOC);
		}
		$json = json_encode($results);
		return $json;
	}

Yazı Ekleme Metodu

Veri tabanına kayıt işlemini bu metot yardımı ile gerçekleştiriyoruz. Kullanıcıdan başlık ve metin değerlerini alıyoruz.

Başlık veya metin değerlerimizden herhangi birisi boşa eğer Missing Parameter şeklinde bir hata mesajı veriyoruz.

Başlık değerimizi permalink metoduna gönderiyoruz ve bize geri gelen slag değerini değişkene aktarıyoruz. Ardından veri tabanına kayıt ediyoruz.

Kayıt sırasında bir hata oluşursa Something went wrong. şeklinde bir uyarı mesajı döndürüyoruz.

Kayıt başarıyla tamamlanması durumunda Article Added şeklinde bir uyarı mesajı döndürüyoruz.

function setArticle($title = '', $text = '')
	{
		$results = [
			"error"	=> "Missing Parameter"
		];

		if (strlen($title) > 0 && strlen($text) > 0) {
			$title = htmlspecialchars($title);
			$text  = htmlspecialchars($text);
			$slag = $this->permalink($title);

			
			

			$sql = "INSERT INTO article (title, slag, text) VALUES (:title,:slag, :text)";
			$query = $this->conn->prepare($sql);
			$status = $query->execute(array(
				"title"	=> $title,
				"slag"	=> $slag,
				"text"	=> $text
			));
			if ($status == true)
				$results = [
					"success"	=> "Article Added"
				];
			else
				$status = [
					"error"	=> "Something went wrong."
				];
		}
		$json = json_encode($results);
		return $json;
	}

Yazı Düzenleme Metodu

Bu metot için kullanıcıdan 3 adet değer alıyoruz. Bu değerlerden herhangi birisi boş olarak gelmesi durumunda Missing Parameter şeklinde uyarı mesajında bulunuyoruz.

Bu değerlerden en önemlisi id değeridir. Id değeri ile sistemde değiştirilmek istenen yazının olup olmadığını kontrol ediyoruz.

Değiştirilmek istenen yazı bulunamazsa eğer kullanıcıya Not Found şeklinde uyarı mesajında bulunuyoruz.

Değiştirilmek istenen değer bulunursa eğer veritabanımızı yeni değerler ile güncelliyoruz ve kullanıcıya Article Edit şeklinde uyarı mesajında bulunuyoruz.

function editArticle($id = '', $title = '', $text = '')
	{
                $title = htmlspecialchars($title);
		$text  = htmlspecialchars($text) ;
		$results = [
			"error"	=> "Missing Parameter"
		];

		$editStatus = false;
		if (is_numeric($id)) {
			$statement = $this->conn->prepare("SELECT * FROM article WHERE id=:id");
			$statement->execute(array(
				"id"		=> $id
			));
			$count = $statement->rowCount();
			$editStatus = ($count > 0) ? true : false;
		}
		if ($editStatus == false) {
			$results = [
				"error"	=> "Not Found"
			];
		}
		if (strlen($title) > 0 && strlen($text) > 0 && $editStatus == true) {
			$title = htmlspecialchars($title);
			$text  = htmlspecialchars($text);
			$slag = $this->permalink($title);
			$sql = "UPDATE article  SET title=:title,slag=:slag, text=:text WHERE id =:id";
			$query = $this->conn->prepare($sql);
			$status = $query->execute(array(
				"title"	=> $title,
				"slag"	=> $slag,
				"text"	=> $text,
				"id"	=> $id
			));
			if ($status == true)
				$results = [
					"success"	=> "Article Edit"
				];
			else
				$results = [
					"error"	=> "Something went wrong."
				];
		}
		$json = json_encode($results);
		return $json;
	}

Değiştirilmek istenen değer bulunursa eğer veritabanımızı yeni değerler ile güncelliyoruz ve kullanıcıya Article Edit şeklinde uyarı mesajında bulunuyoruz.

Yazı Silme Metodu

Bu metodumuz da kullanıcan id değerini alıyoruz. Id değeri boş gelmesi durumunda kullanıcıya Missing Parameter şeklinde bir uyarı döndürüyoruz.

Id değerinin olması durumunda ilk olarak veri tabanında girilen id değerine uygun bir verinin olup olmadığını kontrol ediyoruz.

İstenilen kayıt yoksa kullanıcıya Not Found şeklinde uyarı mesajında bulunuyoruz.

İstenilen kayıt varsa kaydı siliyoruz ve kullanıcıya Article Deleted şeklinde uyarı mesajında bulunuyoruz.

function deleteArticle($id = '')
	{

		$results = [
			"error"	=> "Missing Parameter"
		];
		$deleteStatus = false;
		if (is_numeric($id)) {
			$statement = $this->conn->prepare("SELECT * FROM article WHERE id=:id");
			$statement->execute(array(
				"id"		=> $id
			));
			$count = $statement->rowCount();
			$deleteStatus = ($count > 0) ? true : false;
		}
		if ($deleteStatus == false) {
			$results = [
				"error"	=> "Not Found"
			];
		}
		if ($deleteStatus == true) {
			
			
			$sql = "DELETE FROM article WHERE id=:id";
			$delete = $this->conn->prepare($sql);
			$status = $delete->execute(array(
				"id"	=> $id
			));
			if ($status == true)
				$results = [
					"success"	=> "Article Deleted"
				];
			else
				$results = [
					"error"	=> "Something went wrong."
				];
		}

		$json = json_encode($results);
		return $json;
	}

İstenilen kayıt varsa kaydı siliyoruz ve kullanıcıya Article Deleted şeklinde uyarı mesajında bulunuyoruz.

Permalink Metodu

Bu fonksiyon ile kullanıcı dostu url’ler oluşturmak için türkçe metinlerinizi derleyebilirsiniz. 

Bu metot alıntıdır. => Php Sef Link Fonksiyonu

function permalink($str, $options = array())
	{
		$str = mb_convert_encoding((string)$str, 'UTF-8', mb_list_encodings());
		$defaults = array(
			'delimiter' => '-',
			'limit' => null,
			'lowercase' => true,
			'replacements' => array(),
			'transliterate' => true
		);
		$options = array_merge($defaults, $options);
		$char_map = array(
			// Latin
			'À' => 'A', 'Á' => 'A', 'Â' => 'A', 'Ã' => 'A', 'Ä' => 'A', 'Å' => 'A', 'Æ' => 'AE', 'Ç' => 'C',
			'È' => 'E', 'É' => 'E', 'Ê' => 'E', 'Ë' => 'E', 'Ì' => 'I', 'Í' => 'I', 'Î' => 'I', 'Ï' => 'I',
			'Ð' => 'D', 'Ñ' => 'N', 'Ò' => 'O', 'Ó' => 'O', 'Ô' => 'O', 'Õ' => 'O', 'Ö' => 'O', 'Ő' => 'O',
			'Ø' => 'O', 'Ù' => 'U', 'Ú' => 'U', 'Û' => 'U', 'Ü' => 'U', 'Ű' => 'U', 'Ý' => 'Y', 'Þ' => 'TH',
			'ß' => 'ss',
			'à' => 'a', 'á' => 'a', 'â' => 'a', 'ã' => 'a', 'ä' => 'a', 'å' => 'a', 'æ' => 'ae', 'ç' => 'c',
			'è' => 'e', 'é' => 'e', 'ê' => 'e', 'ë' => 'e', 'ì' => 'i', 'í' => 'i', 'î' => 'i', 'ï' => 'i',
			'ð' => 'd', 'ñ' => 'n', 'ò' => 'o', 'ó' => 'o', 'ô' => 'o', 'õ' => 'o', 'ö' => 'o', 'ő' => 'o',
			'ø' => 'o', 'ù' => 'u', 'ú' => 'u', 'û' => 'u', 'ü' => 'u', 'ű' => 'u', 'ý' => 'y', 'þ' => 'th',
			'ÿ' => 'y',
			// Latin symbols
			'©' => '(c)',
			// Greek
			'Α' => 'A', 'Β' => 'B', 'Γ' => 'G', 'Δ' => 'D', 'Ε' => 'E', 'Ζ' => 'Z', 'Η' => 'H', 'Θ' => '8',
			'Ι' => 'I', 'Κ' => 'K', 'Λ' => 'L', 'Μ' => 'M', 'Ν' => 'N', 'Ξ' => '3', 'Ο' => 'O', 'Π' => 'P',
			'Ρ' => 'R', 'Σ' => 'S', 'Τ' => 'T', 'Υ' => 'Y', 'Φ' => 'F', 'Χ' => 'X', 'Ψ' => 'PS', 'Ω' => 'W',
			'Ά' => 'A', 'Έ' => 'E', 'Ί' => 'I', 'Ό' => 'O', 'Ύ' => 'Y', 'Ή' => 'H', 'Ώ' => 'W', 'Ϊ' => 'I',
			'Ϋ' => 'Y',
			'α' => 'a', 'β' => 'b', 'γ' => 'g', 'δ' => 'd', 'ε' => 'e', 'ζ' => 'z', 'η' => 'h', 'θ' => '8',
			'ι' => 'i', 'κ' => 'k', 'λ' => 'l', 'μ' => 'm', 'ν' => 'n', 'ξ' => '3', 'ο' => 'o', 'π' => 'p',
			'ρ' => 'r', 'σ' => 's', 'τ' => 't', 'υ' => 'y', 'φ' => 'f', 'χ' => 'x', 'ψ' => 'ps', 'ω' => 'w',
			'ά' => 'a', 'έ' => 'e', 'ί' => 'i', 'ό' => 'o', 'ύ' => 'y', 'ή' => 'h', 'ώ' => 'w', 'ς' => 's',
			'ϊ' => 'i', 'ΰ' => 'y', 'ϋ' => 'y', 'ΐ' => 'i',
			// Turkish
			'Ş' => 'S', 'İ' => 'I', 'Ç' => 'C', 'Ü' => 'U', 'Ö' => 'O', 'Ğ' => 'G',
			'ş' => 's', 'ı' => 'i', 'ç' => 'c', 'ü' => 'u', 'ö' => 'o', 'ğ' => 'g',
			// Russian
			'А' => 'A', 'Б' => 'B', 'В' => 'V', 'Г' => 'G', 'Д' => 'D', 'Е' => 'E', 'Ё' => 'Yo', 'Ж' => 'Zh',
			'З' => 'Z', 'И' => 'I', 'Й' => 'J', 'К' => 'K', 'Л' => 'L', 'М' => 'M', 'Н' => 'N', 'О' => 'O',
			'П' => 'P', 'Р' => 'R', 'С' => 'S', 'Т' => 'T', 'У' => 'U', 'Ф' => 'F', 'Х' => 'H', 'Ц' => 'C',
			'Ч' => 'Ch', 'Ш' => 'Sh', 'Щ' => 'Sh', 'Ъ' => '', 'Ы' => 'Y', 'Ь' => '', 'Э' => 'E', 'Ю' => 'Yu',
			'Я' => 'Ya',
			'а' => 'a', 'б' => 'b', 'в' => 'v', 'г' => 'g', 'д' => 'd', 'е' => 'e', 'ё' => 'yo', 'ж' => 'zh',
			'з' => 'z', 'и' => 'i', 'й' => 'j', 'к' => 'k', 'л' => 'l', 'м' => 'm', 'н' => 'n', 'о' => 'o',
			'п' => 'p', 'р' => 'r', 'с' => 's', 'т' => 't', 'у' => 'u', 'ф' => 'f', 'х' => 'h', 'ц' => 'c',
			'ч' => 'ch', 'ш' => 'sh', 'щ' => 'sh', 'ъ' => '', 'ы' => 'y', 'ь' => '', 'э' => 'e', 'ю' => 'yu',
			'я' => 'ya',
			// Ukrainian
			'Є' => 'Ye', 'І' => 'I', 'Ї' => 'Yi', 'Ґ' => 'G',
			'є' => 'ye', 'і' => 'i', 'ї' => 'yi', 'ґ' => 'g',
			// Czech
			'Č' => 'C', 'Ď' => 'D', 'Ě' => 'E', 'Ň' => 'N', 'Ř' => 'R', 'Š' => 'S', 'Ť' => 'T', 'Ů' => 'U',
			'Ž' => 'Z',
			'č' => 'c', 'ď' => 'd', 'ě' => 'e', 'ň' => 'n', 'ř' => 'r', 'š' => 's', 'ť' => 't', 'ů' => 'u',
			'ž' => 'z',
			// Polish
			'Ą' => 'A', 'Ć' => 'C', 'Ę' => 'e', 'Ł' => 'L', 'Ń' => 'N', 'Ó' => 'o', 'Ś' => 'S', 'Ź' => 'Z',
			'Ż' => 'Z',
			'ą' => 'a', 'ć' => 'c', 'ę' => 'e', 'ł' => 'l', 'ń' => 'n', 'ó' => 'o', 'ś' => 's', 'ź' => 'z',
			'ż' => 'z',
			// Latvian
			'Ā' => 'A', 'Č' => 'C', 'Ē' => 'E', 'Ģ' => 'G', 'Ī' => 'i', 'Ķ' => 'k', 'Ļ' => 'L', 'Ņ' => 'N',
			'Š' => 'S', 'Ū' => 'u', 'Ž' => 'Z',
			'ā' => 'a', 'č' => 'c', 'ē' => 'e', 'ģ' => 'g', 'ī' => 'i', 'ķ' => 'k', 'ļ' => 'l', 'ņ' => 'n',
			'š' => 's', 'ū' => 'u', 'ž' => 'z'
		);
		$str = preg_replace(array_keys($options['replacements']), $options['replacements'], $str);
		if ($options['transliterate']) {
			$str = str_replace(array_keys($char_map), $char_map, $str);
		}
		$str = preg_replace('/[^\p{L}\p{Nd}]+/u', $options['delimiter'], $str);
		$str = preg_replace('/(' . preg_quote($options['delimiter'], '/') . '){2,}/', '$1', $str);
		$str = mb_substr($str, 0, ($options['limit'] ? $options['limit'] : mb_strlen($str, 'UTF-8')), 'UTF-8');
		$str = trim($str, $options['delimiter']);
		return $options['lowercase'] ? mb_strtolower($str, 'UTF-8') : $str;
	}

Bu metot alıntıdır. => Php Sef Link Fonksiyonu

Son metodumuzu da ekledik. Artık bu fonksiyonları çağırarak apimizi çalıştırabiliriz.

Devamını okumak için lütfen diğer sayfaya geçiniz…

Seo Ve Google Analytics

Arama Motoru Optimizasyonu (SEO), web sitenizin Google, Yahoo! ve Bing gibi motorlarla yapılan arama sonuçlarında sıralamasını iyileştirme işlemidir. SEO web sitesi tasarımının ayrılmaz bir parçası haline gelmiştir.

Arama Motoru Optimizasyonu (SEO), web sitenizin Google, Yahoo!, Yandex ve Bing gibi motorlarla yapılan arama sonuçlarında sıralamasını iyileştirme işlemidir. SEO web sitesi tasarımının ayrılmaz bir parçası haline gelmiştir. Arama motorlarında üst sıralarda yer almak için SEO kullanmak, daha fazla potansiyel müşteri ve satış elde etmenizi sağlar. İnternet üzerinden web sitesi ile para kazanabilirsiniz. SEO nedir, neden önemlidir ve nasıl çalışır? Site analiz nasıl yapılır?

SEO Nedir ve Neden Önemlidir?

Arama motoru optimizasyonu anlamına gelen SEO, web sitesini internet arama motorlarında üst sıralara taşımak için ve trafik elde etmek için optimize etmektir. Kullandığınız anahtar kelimelerle arama motorlarında üst sıralarda yer alabiliyorsanız, web sitenize daha fazla tıklama alırsınız. Aslında, çalışmalar bir sayfaya yapılan tıklamaların çoğunun ilk birkaç konumda sıralanan sonuca gittiğini göstermektedir. 

Arama motorları, insanların internet üzerinden bilgi bulmaları konusunda devrim yarattı ve yalnızca Google her gün 3,5 milyardan fazla arama alıyor. Dolayısıyla, daha fazla kişi, ürün ve hizmet bulmak için Google’a ve diğer arama motorlarına yöneldikçe, alakalı aramalar için üst sıralarda yer almak hayati önem taşımaktadır. Arama motorlarından gelen bu ücretsiz trafik, işletmeniz için çok fazla gelir sağlayabilir. 


Arama motoru sonuçları nasıl belirlenir? 

Her arama motoru, bir sitenin alaka düzeyini veya önemini belirlemek ve site analiz etmek için kullandıkları kendi algoritmalarına sahiptir ve en önemlisi bu algoritmalar zaman içinde değişir, bu yüzden SEO sürekli bir süreçtir. Verilerin alaka düzeyini hesaplamak için her arama motoru tarafından işlenir, böylece bir kullanıcı bir arama ifadesi girdiğinde en uygun sonuçları verir. Algoritmalar arama motorları arasında biraz farklı olsa da, site analiz için en önemli bileşenler içerik, anahtar kelimeler ve sitenizin mimarisidir. 

Arama pazarının yaklaşık % 80’lik payı ile Google çoğu optimizasyon için birincil hedeftir. Kaliteli bağlantılar içeren harika içerikler sağlayın, ürününüzü arayan ve web sitenizi ziyaret eden kişiler tarafından kullanılan kelimeleri ve kelime öbeklerini seçin. Bağlantıları ve içeriği güncel tutmayı unutmayın. Sıralamadaki yerini arttırmak ve onu korumak için yeni ve alakalı içerik eklemeye devam edin. Önce, hangi anahtar kelimeleri sıralamak istediğinize karar vermeniz gerekir. Anahtar kelimeler, kullanıcıların Google’a yazdığı kelimeler ve kelime öbekleridir. Anahtar kelime araştırması yaparak, hedef kitlenizi çekebilecek ürün ve hizmetlerinizle alakalı popüler anahtar kelimeleri bulabilirsiniz. 


Google Analytics

Google Analytics ücretsiz, çok yönlü ve kullanımı kolaydır. SEO kalitenizi en üst düzeye çıkarmak ve kampanyanız için hızlı kazançları keşfetmek için de kullanabilirsiniz. Google Analytics, işletmenizin anahtar kelimelerden organik sayfa görüntülemelerine kadar SEO performansını izlemek ve iyileştirmek için kullanabileceği değerli veriler içerir. 

Google Analytics hesabınıza, Google Search Console hesabını bağladığınızda çok daha etkili bir şekilde kullanabilirsiniz. Google Search Console, kullanıcıların içeriğinizi bulmak için hangi anahtar kelimeleri kullandığını, hangi içeriği bulduklarını ve Google’da nerede sıralandığını gösterir. Bilgileri analiz edebilir ve sayfalarınızın optimizasyonunu iyileştirmenin yollarını belirleyebilirsiniz, böylece Google’ın ilk sayfasında sıralanma şansınız artar. 


Bloğumu halen incelemediniz mi ? https://enginyenice.com/

Hakkımda: https://enginyenice.com/hakkimda/

İletişim: https://enginyenice.com/iletişim/

Laravel Framework

Laravel Framework web geliştirme hizmetleri PHP’ye temiz ve şık bir web geliştirme çerçevesi sağlarken aynı zamanda geliştiricileri karmaşık kodlamadan kurtarır.

Laravel web geliştirme hizmetleri PHP’ye temiz ve şık bir web geliştirme çerçevesi sağlarken aynı zamanda geliştiricileri karmaşık kodlamadan kurtarır. Laravel, etkileyici ancak basit sözdizimini kullanırken harika uygulamalar geliştirmeye yardımcı olur. Laravel uyarlanabilir ve kullanımı kolaydır. Özel ihtiyaçlarınızı karşılayan çoklu modüller sunar. Laravel PHP Framework farklı web projelerinde kullanılan ortak görevleri basitleştirir. Bazı dev endüstriler tarafından kullanılır. Laravel’in yaratıcısı Taylor Otwell, “Laravel PHP ekosisteminde en güçlü olanıdır çünkü sadece modern web uygulamaları oluşturmak için gereken özellikleri içerir” demiştir. 

Laravel Framework bize etkileyici ve zarif bir sözdizimi sağlar. Laravel, gelişimi yaratıcı, keyifli ve gerçekten tatmin edici bir deneyim haline getirir. Laravel, yönlendirme, kimlik doğrulama, oturumlar ve önbellekleme gibi çoğu web projesinde kullanılan rutin görevlerinizi kolaylaştırmanıza yardımcı olacak kullanışlı bir framework. Erişilebilir olmasının yanı sıra, büyük ve sağlam uygulamalar için gereken güçlü araçları da sağlar. 


Şablon Aracı

Laravel, geliştiricilerin yoğun içerik ile olağanüstü düzenler oluşturmalarına yardımcı olan önceden yüklenmiş güçlü ve hafif bir şablon motoruna sahiptir. Laravel şablonu, sağlam CSS ve JS kodlamasıyla çeşitli sağlam widget’lar sunar. Tüm şablonlar, basit ancak işlevsel amaçlarla tasarlanmıştır. Genellikle saatlerce ve yüzlerce satırlık kod yazma gerektiren görevler, Laravel framework ile birkaç dakika içinde önceden oluşturulmuş işlevlerle gerçekleştirilebilir.


Kimlik Doğrulama ve Yetkilendirme

En iyi Laravel geliştirme şirketlerinden bazıları güvenli kimlik doğrulama ve yetkilendirme sağlar. Herhangi bir web uygulaması sahibinin güvenli kaynaklara erişen özgün ve yetkili kullanıcıların olduğundan emin olmalıdır. Hemen hemen her şey hazır olarak yapılandırıldığı için yetkilendirmenin uygulanması oldukça basittir. Laravel, iyi düzenlenmiş ve yönetilmesi çok kolay olan yetkilendirme mantığını ve kontrol erişimini sıralayan temel bir yöntemi de kolaylaştırır. 


Dahili Kütüphaneler

Laravel, önceden yüklenmiş dinamik kütüphanelere sahip tek sağlayıcı olarak size en iyi şekilde kolaylık sağlayan framework. Bu kütüphaneler, diğer PHP framework’lerinde bulunmayan Nesneye Dayalı kütüphaneleri içerir. Sorunsuz uygulama sunmanın yanı sıra, parola sıfırlama, dinamik istemcileri kontrol etme ve şifreleme gibi çeşitli özellikler içerir. 


MVC Mimari Desteği 

Model View Controller mimarisi Laravel’i web uygulama geliştirme için en iyi framework yapan faktördür. Performansı artırır, netlik sağlar ve daha iyi dokümantasyon sağlar. Şablonu ve temel kodları değiştirmeyi kolaylaştırır. Kısacası, yerleşik işlevleri genel süreci kolaylaştırır. Geliştiriciler sadece birkaç dakika içinde bir Laravel uygulaması geliştirmeye başlayabilirler. Her zaman büyük bir zaman tasarrufu sağlar. Daha hızlı ve yönetilmesi kolay olan güçlü bir web sitesi oluşturmanıza yardımcı olan ideal araçları ve hoş fikirleri kolaylaştırır.


Çok Dilde Uygulama Oluşturucu

Laravel’in geliştirme hizmetlerinin sağladığı diğer tüm avantajların yanı sıra, çok dilli uygulamaların oluşturulması da bir diğer avantajdır. Gerçekten, farklı dillere sahip farklı ülkelerde erişimini genişletmek isteyen işletmeler için doğru seçenektir. Laravel framework, web uygulamanızı farklı diller için kolay ve hızlı bir şekilde oluşturmanıza yardımcı olur. 


Laravel Bağlantı Linkleri

Anasayfa : laravel.com

Dökümantasyon : laravel.com/docs/7.x

Haberler: laravel-news.com/


Bloğumu halen incelemediniz mi ? https://enginyenice.com/

Hakkımda: https://enginyenice.com/hakkimda/

İletişim: https://enginyenice.com/iletişim/

Yazılım Hakkında

Yazılım. Teknoloji çağı, beraberinde birçok yenilikleri getirdi. Bunların arasında en önemlilerinden olan yazılım ve programlama, insanların hayatlarını oldukça kolaylaştırmaktadır.

Teknoloji çağı, beraberinde birçok yenilikleri getirdi. Bunların arasında en önemlilerinden olan yazılım ve programlama, insanların hayatlarını oldukça kolaylaştırmaktadır. Yazılım, farklı işlevler görmek için tasarlanmış olan elektronik cihazların birbirleriyle uyum sağlamasını ve haberleşmesini sağlayan makine komutlarıdır. Yazılım, günümüzde insanların daha az emek sarf ederek daha çok iş yapmasını sağlamaktadır.

Yazılım Nasıl Yapılır?

Yazılım yapmak için üniversitede bilgisayar, yazılım ya da matematik mühendisliklerinden biri okunabilir. Ancak yazılım öğrenmek için üniversite bitirme zorunluluğu yoktur. İnternet üzerinde birçok farklı kaynakta yeterli bilgiye ulaşabilirsiniz. İşte sitemiz olan enginyenice.com da size bu hizmeti vermektedir. Sitemizde farklı programlama dillerinden örneklerle yazılım öğrenecek, daha önce öğrendiyseniz bilgilerinizi pekiştireceksiniz.


Programlama Dilleri Nelerdir?

Programlama dili, belli bir standarda uygun olarak yazılan, yazılım ve komut geliştirme imkanı veren bilgisayar dilidir. Çok sayıda programlama dili mevcuttur. Bunlar arasında en çok kullanılanlarından olan c, c#, c++, java, php, laravel gibi dilleri sitemizden faydalanarak öğrenebilirsiniz. Ayrıca sitemizde yer alan örnekler sayesinde öğrendiklerinizi pekiştirebilir, yaptığınız hataları öğrenebilirsiniz.


Yazılımcı Kimdir?

Günümüzde kullanılan neredeyse bütün teknolojik cihazların çalışması yazılım sayesinde mümkün olmaktadır. Yazılım komutları oluşturan kodlardan meydana gelir. Yazılımcı ise en basit anlamıyla bu kodları yazan kişidir. Projelerde bir yazılımcı olabileceği gibi bir grup yazılımcı beraber de çalışabilir. Masaüstü, web, mobil yazılım gibi yazılım türleri mevcuttur. Yazılımcı bunlardan sadece birinde ya da daha fazlasında uzmanlaşarak o alanda çalışabilir. 


Yazılımın Geleceği

Yazılım, geleceğin meslekleri arasında zirvede yer almaktadır. Çünkü çağımızın teknoloji çağı olması sebebiyle makineleşmeye doğru hızlı bir yönelim olmaktadır. Bunun sonucun da insanlar gerek üniversite okuyarak gerekse internet üzerinden çevrim içi dersler alarak yazılıma yönelmeye başlamışlardır. Sizler de çağın gerisinde kalmak istemiyorsanız yazılım öğrenmeye başlamalısınız. Bu konuda sitemizde yer alan içerikler size çok yardımcı olacaktır.


Neden Yazılım Öğrenilmeli?

Günümüzün en popüler çalışma alanlarından biri olmasının dışında yazılım, bir ihtiyaç haline gelmiştir. Çünkü, en basitinden bir örnekle yapmanız gereken çok uzun bir toplama işlemini yazılım sayesinde yalnızca bir kaç saniye gibi kısa bir sürede çözebilirsiniz. Aynı şekilde girilen bir sayının faktöriyeli hesaplamak için hesap makinesi kullanmanız gerekirken yazılım sayesinde hesap makinesi olmadan, kısa bir sürede çözebilirsiniz. Üniversitelerde birçok hoca, öğrencilerin notlarını hesaplamak için yazılım kullanmaktadır.

Yukarıda sayılan ve sayılmamış olan birçok program koduna enginyenice.com sitesinde ulaşabilirsiniz. Eğer yazılım konusunda kendinizi geliştirmek isterseniz enginyenice.com doğru adrestir!


Online Yazılım Kursları

Udemy: İstediğiniz her konuda videolu yazılım kursları bulabilirsiniz.

Bir Milyon İstihdam: Bir çok yazılım kursunu ücretsiz bir şekilde izleyebilir ve sertifika sahibi olabilirsiniz.

Youtube: Bir çok konuda içerik barındırdığı gibi yazılım konusunda da kaliteli içerikler barındırmaktadır.


Bloğumu halen incelemediniz mi ? https://enginyenice.com/

Hakkımda: https://enginyenice.com/hakkimda/

İletişim: https://enginyenice.com/iletişim/

Yazılım Nedir?

Yazılım Nedir? En basit tanımıyla ise yazılımın ne olduğuna bakacak olursak, elektronik bir aracı, belirlenmiş bir işi yapması için tasarlanmış komutların tümü diyebiliriz. Bu komutlar işlemci sayesinde işlenerek işlem gören bir olay haline dönüşür.

En basit tanımıyla ise yazılımın ne olduğuna bakacak olursak, elektronik bir aracı, belirlenmiş bir işi yapması için tasarlanmış komutların tümü diyebiliriz. Bu komutlar işlemci sayesinde işlenerek işlem gören bir olay haline dönüşür. 

Yazılıma Başlarken Dikkat Edilecek Hususlar

Bireysel ya da kurumsal olarak yaptığınız işlerde yazılım sektöründen ilerlemek için öncelikle işletim sistemini ve ya donanımı seçmelisiniz. Bir bilgisayar için yazılım yapıyor iseniz öncelikle hangi işletim sistemi üzerinde çalışacağınızı seçmelisiniz. Akabinde kullanacağınız programlama dilini seçmeniz gerekir. Sonrasında yazdığınız kodlar bir derleyici sayesinde makine diline dönüştürülür. Ayrıca kullanılan dil ve derleyici birbirleri ile uyumlu olmalıdır.

Elektronik donanım yapıyor iseniz belirlediğiniz ihtiyaçlarınıza göre fiyat performans açısından size en uygun donanım ve işlemciyi seçmelisiniz. Şuan piyasada çok fazla sayıda işlemci bulunduğundan en uygununu seçmek size ve ihtiyaçlarınıza kalmaktadır. Sonrasında işlemcinizin destekleyeceği bir dil ve derleyici bulmalısınız. Her işlemci her dile ait desteği sağlamadığından araştırmanızı iyi yapıp bu doğrultuda seçimler yapmanızda fayda var.


Yazılımın Çeşitleri

Yazılım her ne kadar insanların çoğunun ilgisi dışında kalsa da günlük hayatımızı son derece kolaylaştıran bir etmendir. Hayatımızı kolaylaştıran yazılım Uygulama ve Sistem Yazılımları olarak 2’ye ayrılır. 


Genel kullanım alanlarına göre yazılımları aşağıdaki gibi sıralayabiliriz.

  • TİCARİ YAZILIMLAR
  • UYGULAMA YAZILIMLARI
  • EĞLENCE YAZILIMLARI
  • SUNUM YAZILIMLARI
  • SİSTEM YAZILIMLARI
  • HİZMET YAZILIMLARI
  • İŞLETİM SİSTEMİ YAZILIMLARI
  • BİLGİSAYAR PROGRAMLAMA ARAÇLARI

Şeklinde daha da çoğaltabiliriz.


Yazılım Dilleri

Web sitesi oluşturmak, dosya yazmak ve ya okumak, bir arayüze sahip uygulamalar yapmak gibi faklı amaçlar neticesinde oluşturulan yazılım dilleri kullanım alanlarına göre zaman zaman komplike bir hale dönüşebiliyor.

En yaygın yazılım dillerini, CSS, JAVA, C#,C++, Python, PHP, HTML, ASP ve Visual Basic şeklinde sıralayabiliriz.

Şimdi bunları detaylı olarak inceleyelim.

HTML Nedir?

Web sitesi yapımında öğrenilmesi gereken HTML günümüzde çeşitli kaynaklardan kolayca öğrenilecek diller arasındadır. Bir internet sitesini ve ya uygulamasını kodlayabilmek için HTML ve CSS birlikte yazılması gerekmektedir. HTML Eğitimi

CSS Nedir?

Web sitelerinin oluşturulmasında HTML ile birlikte kullanılan CSS, HTML gibi kolay öğrenilebilecek diller arasındadır. CSS ve HTML ile kodlanmış bir sitenin kullanımı için bunlara ek olarak PHP kullanılmalıdır. CSS Eğitimi

PHP Nedir?

Yazılım dilleri ile kodlanmış bir web sitesinin, kullanıcılar tarafından görüntülenmesi için gerekli aracılardan birisidir. PHP.NET

ASP Nedir?

Microsoft’un geliştirdiği ASP, web sitelerindeki içeriklerin düzenlenmesi, yenilenmesi gibi işlemlerin yapılmasını sağlamaktadır. ASP.NET

Visual Basic Nedir?

Kullanıcı ara birimi olan yazılımlar oluşturmak amacıyla kullanılan bir dildir. Java ve C# dillerine göre daha basit sayıldığından başlangıç olarak önerilmektedir.  Visual Basic

Java Nedir?

Genellikle kullanıcı ara birimlerinin geliştirilmesi için kullanılır. C# gibi yazılım dillerine nazaran daha basit ve yaygın olduğu söylenebilir. Java

C# Nedir?

Kullanıcı ara birimlerinin tasarlanmasında kullanılır. Java ve Visual Basic’e göre daha zor detaylar içermektedir.  C#

C++ Nedir?

Yaygın olan programlama dillerindendir. Nesne tabanlı programlamalar için kullanılmaktadır. C yazılım dilinin eklentisidir. C++

Python Nedir?

Günümüzün en popüler yazılım dillerinden birisidir. Uygulama, web ve sistem programlama gibi çoklu kullanım alanı oluşturmasından dolayı diğer dillere ek olarak öğrenilmesi gerekir. Python


Bloğumu halen incelemediniz mi ? https://enginyenice.com/

Hakkımda: https://enginyenice.com/hakkimda/

İletişim: https://enginyenice.com/iletişim/

Üçgenin Alanını Hesaplama

Üçgenin Alanını Hesaplama C Programlama dilini ve CodeBlocks geliştirme ortamını kullanarak üçgenin alanını hesaplayacağız.

Merhaba arkadaşlar,

Bugün ki yazımızda C Programlama dilini ve CodeBlocks geliştirme ortamını kullanarak üçgenin alanını hesaplayacağız.

Üçgenin alanını hesaplayabilmek için 2 temel değeri bilmemiz gerekiyor. Bunlar:

  • Taban alanı
  • Yükseklik

Temel iki değeri de biliyorsak, üçgenin alanını hesaplayabiliriz. Üçgenin alanını hesaplayabilmemiz için gerekli olan formül:

Üçgenin alanı = (Taban alanı * yükseklik) / 2

Formülümüzü de öğrendiğimize göre örneğimizi kodlamaya geçebiliriz.

Örneğimizde taban alanı ve yükseklik değerlerini kullanıcıdan alacağımız ve hesaplanan değeri ekrana yazdıracağımız için üç adet değişken oluşturalım. Bunlar:

  • Taban Alanı (integer tipinde “tabanAlani”)
  • Yükseklik (integer tipinde “yukseklik”)
  • Üçgenin Alanı (float tipinde “hesaplananAlan”)

Değişkenlerimizi oluşturalım ve gerekli değerleri kullanıcıdan alalım.

/*
* Engin Yenice
* enginyenice.com
*/
#include <stdio.h>
#include <stdlib.h>

int main()
{
    int tabanAlani,yukseklik;
    float hesaplananAlan;
    printf("Taban Alani: ");
    scanf("%d",&tabanAlani);
    printf("Yukseklik: ");
    scanf("%d",&yukseklik);
    return 0;
}

Kullanıcıdan taban alanı ve yükseklik değerlerimizi aldık. Aldığımız değerleri formülde uygun bir şekilde kullanırsak üçgenimizin alanını hesaplayabiliriz.

/*
* Engin Yenice
* enginyenice.com
*/
#include <stdio.h>
#include <stdlib.h>

int main()
{
    int tabanAlani,yukseklik;
    float hesaplananAlan;
    printf("Taban Alani: ");
    scanf("%d",&tabanAlani);
    printf("Yukseklik: ");
    scanf("%d",&yukseklik);


    hesaplananAlan = (tabanAlani * yukseklik) / 2.0;
    printf("Hesaplanan alan: %f",hesaplananAlan);

    return 0;
}

Tüm Kodlar

Üçgenin alanını hesaplama örneğinin tüm kodları

/*
* Engin Yenice
* enginyenice.com
*/
#include <stdio.h>
#include <stdlib.h>

int main()
{
    int tabanAlani,yukseklik;
    float hesaplananAlan;
    printf("Taban Alani: ");
    scanf("%d",&tabanAlani);
    printf("Yukseklik: ");
    scanf("%d",&yukseklik);


    hesaplananAlan = (tabanAlani * yukseklik) / 2.0;
    printf("Hesaplanan alan: %f",hesaplananAlan);

    return 0;
}

Üçgenin alanını hesaplama örneğimi incelediğiniz için teşekkür ederim. Sağlıklı günler dilerim.

Bloğumu halen incelemediniz mi ? https://enginyenice.com/

Hakkımda: https://enginyenice.com/hakkimda/

İletişim: https://enginyenice.com/iletişim/

Rastgele Şifre Üretme

Rastgele Şifre Üretme – 1, İnternet sitelerine kayıt olurken sık sık karşımıza çıkan şifre üretme programlarının bir benzerini oluşturmaya çalışacağız

Merhaba arkadaşlar,

Bugün sizlerle beraber bir önceki örneğimiz olan Rastgele Sayı Üretme örneğinin devamı niteliğinde olacaktır.

Örneğimizde internet sitelerine kayıt olurken sık sık karşımıza çıkan şifre üretme programlarının bir benzerini oluşturmaya çalışacağız. Fakat bu yazımızı iki parçaya böleceğiz. İlk parça da istenilen karakter sayısına göre rastgele şifre üreteceğiz. Örneğimizin ikinci parçasında ise kullanıcının belirlediği kriterlere göre şifre oluşturacağız.

Şifre oluşturma işlemine başlayabilmemiz için ilk olarak karakterlerimizi belirlememiz gerekiyor. Harf aralığımız olarak İngiliz Alfabesini tercih edeceğiz. Sayı aralığı olarak 0-9 sayı aralığını kullanacağız. Şifremizin daha güçlü olması için şifreleme örneğimize sembollerde ekleyeceğiz. Şimdi tek tek belirlediğimiz aralıkları inceleyelim

İngiliz Alfabesi Büyük Harf Aralığı

A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z

İngiliz Alfabesi Küçük Harf Aralığı

a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z

Sayı Aralığı

0, 1, 2, 3, 4, 5, 6, 7, 8, 9

Sembol Aralığı

!, +, -, ?, *, _ , /, @, ‘, }, {, ,, /

Temel olarak aralığı bu şekilde tanımlayabiliriz.


Belirlediğimiz aralıkları birer dizi olarak örneğimize ekleyelim.

char buyukAlfabe[26] = {'A','B','C','D','E','F','G','H','I','J','K','L','M','N','O','P','Q','R','S','T','U','V','W','X','Y','Z'};
char kucukAlfabe[26] = {'a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z'};
char rakam[10] = {'0','1','2','3','4','5','6','7','8','9'};
char sekil[13] = {'!','+','-','?','*','_','/','@','\'','}','{',',','\/'};

Dizimizi oluşturduk. Artık kullanıcıdan kaç karakterli bir şifre istediğini öğrenebiliriz. Bu karakter değerine ileride tekrar ihtiyacımız olacağı için “karakterSayisi” adında bir değişken oluşturalım ve bu değişkene kullanıcıdan alacağımız değeri atayalım.

char buyukAlfabe[26] = {'A','B','C','D','E','F','G','H','I','J','K','L','M','N','O','P','Q','R','S','T','U','V','W','X','Y','Z'};
char kucukAlfabe[26] = {'a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z'};
char rakam[10] = {'0','1','2','3','4','5','6','7','8','9'};
char sekil[13] = {'!','+','-','?','*','_','/','@','\'','}','{',',','\/'};
printf("Kac karakterli bir sifre olusturmak istiyorsunuz ? \n");
int karakterSayisi = 1;
scanf("%d",&karakterSayisi);

Kullanıcıdan üreteceğimiz şifrenin kaç karakterli olacağını da öğrendiğimize göre artık şifremizi üretebiliriz. Rastgele şifreler oluşturacağımız için rastgele sayı üretme örneğimizde kullandığımız “time.h” kütüphanesi “srand()” ve “rand()” fonksiyonlarını da bu örneğimizde kullanacağız. Bundan dolayı “time.h” kütüphanemizi örneğimize dahil edelim ve ardından “srand()” fonksiyonumuz ile başlangıç değerimizi belirtelim.

Her bir karakter için ayrı ayrı bir değer oluşturmamız gerektiği için belirlediğimiz karakter sayısı kadar dönen bir while döngüsü kuralım.

While döngüsünün dışına “belirlenenKarakter” adında bir değişken oluşturalım. Bu değişken döngü her döndüğünde rastgele olarak belirlenen karakteri tutacaktır.

srand(time(NULL));
char belirlenenKarakter = '-';
int sayac = 0;
while(sayac != karakterSayisi)
{
     //Rastgele seçim işlemleri
     sayac++
}

Artık karakter sayısı kadar dönüş yapan bir while döngüsü oluşturduk. Her bir karakterin nasıl seçileceğini belirtebiliriz.

Bizim en başta belirtmiş olduğumuz 4 farklı dizi vardı (büyük harf, küçük harf, rakam ve sembol). Bunlar arasından rastgele bir seçim yapmamız ve bu seçimi bir değişkende tutmamız gerekiyor. Bu işlem için “secim” adında bir integer değer oluşturalım ve bu değişkene rastgele 0-4 arasında bir sayı seçimi yapmasını isteyelim.

srand(time(NULL));
char belirlenenKarakter = '-';
int sayac = 0;
while(sayac != karakterSayisi)
{
        int secim = rand() % 4;
        sayac++;
}

Evet artık rastgele 0 ile 4 aralığında bir seçim yaptık.

Peki bu bizim ne işimize yarayacak ? Biz bu seçim ile karakter tipini belirtmiş olacağız.

  • 0 : Büyük harf seçimi
  • 1: Küçük harf seçimi
  • 2: Rakam seçimi
  • 3: Sembol seçimi

şeklinde bir yapı kuracağız. Bu yapıyı kurmak için “switch case” yapısını kullanacağız. Hemen yapımızı kuralım.

     srand(time(NULL));
    char belirlenenKarakter = '-';
    int sayac = 0;
    while(sayac != karakterSayisi)
    {
        int secim = rand() % 4;
        switch(secim)
        {
        case 0:
            //Buyuk Harf Sec
            break;
        case 1:
            //Kucuk Harf Sec
            break;
        case 2:
            //Rakam Sec
            break;
        case 3:
            //Sembol Sec
            break;
        }

    sayac++;
    }

Switch case yapımız da kurulduğuna göre rastgele seçimler yapabiliriz. Bu seçimlerimizi de “belirlenenKarakter” değişkenini aktararak hafızada tutabiliriz.

 srand(time(NULL));
    char belirlenenKarakter = '-';
    int sayac = 0;
    while(sayac != karakterSayisi)
    {
        int secim = rand() % 4;
        switch(secim)
        {
        case 0:
            belirlenenKarakter = buyukAlfabe[rand() % 26];
            break;
        case 1:
            belirlenenKarakter = kucukAlfabe[rand() % 26];
            break;
        case 2:
            belirlenenKarakter = rakam[rand() % 10];
            break;
        case 3:
            belirlenenKarakter = sekil[rand() % 13];
            break;
        }
    sayac++;
    }

Döngümüz her döndüğünde rastgele bir karakter üretebiliyor artık tek yapmamız gereken bu karakteri ekrana yazmak. While döngüsünün sonuna oluşan değeri çıktı olarak eklersek eğer başarılı bir şekilde şifremizi oluşturuyor olacağız.

    srand(time(NULL));
    char belirlenenKarakter = '-';
    int sayac = 0;
    while(sayac != karakterSayisi)
    {
        int secim = rand() % 4;
        switch(secim)
        {
        case 0:
            belirlenenKarakter = buyukAlfabe[rand() % 26];
            break;
        case 1:
            belirlenenKarakter = kucukAlfabe[rand() % 26];
            break;
        case 2:
            belirlenenKarakter = rakam[rand() % 10];
            break;
        case 3:
            belirlenenKarakter = sekil[rand() % 13];
            break;
        }
    printf("%c",belirlenenKarakter);
    sayac++;
    }

Artık rastgele şifre üretme örneğimizin ilk parçasının sonuna geldik. İkinci parçasında bu işlemi bir fonksiyon haline getireceğiz ve kullanıcın talep ettiği özelliklerde (Sadece harf , sadece sayı, sembol ve sayı, vs…) şifreler oluşturacağız. Yazımızı bitirmeden önce tüm kodları ve ardından ekran çıktısını eklemek isterim.


Tüm Kodlar

/*
* Engin Yenice
* enginyenice.com
*/
#include <stdio.h>
#include <stdlib.h>
#include "time.h"
int main()
{
    char buyukAlfabe[26] = {'A','B','C','D','E','F','G','H','I','J','K','L','M','N','O','P','Q','R','S','T','U','V','W','X','Y','Z'};
    char kucukAlfabe[26] = {'a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z'};
    char rakam[10] = {'0','1','2','3','4','5','6','7','8','9'};
    char sekil[13] = {'!','+','-','?','*','_','/','@','\'','}','{',',','\/'};

   printf("Kac karakterli bir sifre olusturmak istiyorsunuz ? \n");
    int karakterSayisi = 1;
    scanf("%d",&karakterSayisi);
    
    srand(time(NULL));
    char belirlenenKarakter = '-';
    int sayac = 0;
    while(sayac != karakterSayisi)
    {
        int secim = rand() % 4;
        switch(secim)
        {
        case 0:
            belirlenenKarakter = buyukAlfabe[rand() % 26];
            break;
        case 1:
            belirlenenKarakter = kucukAlfabe[rand() % 26];
            break;
        case 2:
            belirlenenKarakter = rakam[rand() % 10];
            break;
        case 3:
            belirlenenKarakter = sekil[rand() % 13];
            break;
        }
    printf("%c",belirlenenKarakter);
    sayac++;
    }
    return 0;
}

Rastgele şifre üretme – 1 örneğimi incelediğiniz için teşekkür ederim. Sağlıklı günler dilerim..

Bloğumu halen incelemediniz mi ? https://enginyenice.com/

Hakkımda: https://enginyenice.com/hakkimda/

İletişim: https://enginyenice.com/iletişim/

Rasgele Sayı Üretme

Rasgele Sayı Üretme – C Programlama dilini kullanarak rastgele sayı üreten bir örnek uygulama hazırlayacağız.

Merhaba arkadaşlar,

Bugün ki yazımızda sizlerle birlikte C Programlama dilini ve CodeBlocks derleyicisini kullanarak rastgele sayı üreten bir örnek uygulama hazırlayacağız.

C Programlama dilinde rastgele sayı üretmek için “stdlib.h” kütüphanesinde bulunan “rand();” fonksiyonu kullanılmaktadır. Fakat “rand();” fonksiyonunun genel sorunu sürekli aynı değeri veya belirli bir aralıktaki sayıları vermesidir. Biz bu konuda 4 adet örnek örnek kodlayacağız bunlar:

  1. rand() fonksiyonu ile sayı üretmek.
  2. rand() fonksiyonu ile belirli bir aralıkta sayı üretmek.
  3. srand() fonksiyonu ile başlangıç değeri kullanarak rastgele sayı üretmek.
  4. srand() fonksiyonu ile başlangıç değeri kullanarak belirli bir aralıkta sayı üretmek.

İlk örneğimize başlayalım.

/* Engin Yenice
*  enginyenice.com
*/
#include <stdio.h>
#include <stdlib.h>
int main()
{
int rastgele;
rastgele=rand();
printf("%d",rastgele);
return 0;
}

rand() Fonksiyonu İle Sayı Üretmek

rand() fonksiyonunu kullanabilmek için ilk olarak “stdlib” kütüphanemizi dahil ediyoruz. Kütüphanemizi dahil ettikten sonra rand() fonksiyonumuzu kullanabiliriz.

Rastgele oluşacak sayımızı hafızada tutmak için bir adet integer değişken oluşturalım. Ben bu değişkene “rastgele” ismini vereceğim. Ardından rastgele değişkenimize rand() fonksiyonunu eşitleyerek rastgele bir sayı oluşturalım ve oluşturduğumuz sayıyı ekrana basalım.


Kod


Rastgele bir sayı ürettik fakat programı kapatıp tekrar başlattığımızda aynı değeri üretiyor bunun sebebini 3. örnekte detaylıca inceleyeceğiz. Şimdi kendi belirlediğimiz değer aralığında “rand()” fonksiyonu ile değer üretelim.


rand() Fonksiyonu İle Belirli Bir Aralıkta Sayı Üretmek

Aralık belirlemek için temel matematik formüllerinden yararlanacağız. Bu örneğimizde ise 150 ile 200 sayıları arasında bir rastgele sayı üretmeye çalışacağız. Başlangıç aralığımız belli olduğu için bir adet “baslangic” adında integer değişken oluşturalım. Oluşturduğumuz değişkene başlangıç değerimizi verebiliriz. Artık başlangıç değerimiz belirlendi.

Peki bitiş değerimizi nasıl tespit edeceğiz? Çok basit bir mod alma yöntemi ile bitiş belirlediğimiz aralıkta sabit kalabiliriz. Bunun için ilk olarak bitiş değerinden başlangıç değerini çıkarım.

Fark = 200 – 150

Fark = 50

Bizim üreteceğimiz sayının en fazla 50 olması gerekiyor. Peki bunu nasıl yapabiliriz ? Bunu yapabilmek için mod alma işlemi gerçekleştireceğiz. Üreteceğimiz sayının 51 e göre modunu alırsak. Yeni oluşacak sayımız en fazla 50 değerini alabilir. Artık rastgele bir sayı üretmiş olduk. Üretmiş olduğumuz sayıyı başlangıç değerimiz ile toplarsak 150 ile 200 arasında bir sayı üretmiş olacağız.


Kod

/* Engin Yenice
*  enginyenice.com
*/
#include <stdio.h>
#include <stdlib.h>

int main()
{
int rastgele;
int baslangic = 150;
rastgele=rand() % 50;
printf("%d",rastgele);
return 0;
}

150 ile 200 arasında rastgele bir sayı ürettik fakat programı tekrar başlattığımızda sürekli aynı değeri ürettiğini göreceksiniz. Bunun sebebini 3. örneğimiz olan “srand() fonksiyonu ile başlangıç değeri kullanarak rastgele sayı üretmek” başlığı altında inceleyeceğiz.


srand() Fonksiyonu İle Başlangıç Değeri Kullanarak Rastgele Sayı Üretmek

Biz ilk örneklerimizde sürekli aynı değerin üretildiğinden şikayetçiydik. Bunun sebebi srand değeri belirlememiş olmamızdan kaynaklanıyordu. rand() fonksiyonu kullanıldığında eğer ki srand() (başlangıç değeri) belirlenmediyse varsayılan olarak srand(1) şeklinde kabul edilmektedir.

Biz bu değerin sürekli farklı bir başlangıç değeri olması için başlangıç değerimize “time.h” kütüphanemizi kullanarak zamanı gönderiyoruz bu sayede benzersiz sonuçlar elde edebiliyoruz.

Örneğimize ilk olarak “time.h” kütüphanesini dahil edelim. Artık başlangıç değerimizi (srand()) verebiliriz. Burada iç içe fonksiyon kullanacağız ve time kütüphanesinden gelen time() fonksiyonu ile srand() fonksiyonunu beraber kullanacağız.

Kullanım:

srand(time(NULL)); 

Kod

/* Engin Yenice
*  enginyenice.com
*/
#include <stdio.h>
#include <stdlib.h>
#include "time.h"

int main()
{
srand(time(NULL));
int rastgele;
rastgele=rand();
printf("%d",rastgele);
return 0;
}

srand() Fonksiyonu İle Başlangıç Değeri Kullanarak Belirli Bir Aralıkta Sayı Üretmek

Bir önceki örneğimizde her çalıştırıldığında rastgele değer üreten bir örnek oluşturmuştuk. Bu örneğimizde ise 150 ile 200 arasında rastgele sayılar üretmeye çalışacağız. Başlangıç aralığımız belli olduğu için bir adet “baslangic” adında integer değişken oluşturalım. Oluşturduğumuz değişkene başlangıç değerimizi verebiliriz. Artık başlangıç değerimiz belirlendi.

Peki bitiş değerimizi nasıl tespit edeceğiz? Çok basit bir mod alma yöntemi ile bitiş belirlediğimiz aralıkta sabit kalabiliriz. Bunun için ilk olarak bitiş değerinden başlangıç değerini çıkarım.

Fark = 200 – 150

Fark = 50

Bizim üreteceğimiz sayının en fazla 50 olması gerekiyor. Peki bunu nasıl yapabiliriz ? Bunu yapabilmek için mod alma işlemi gerçekleştireceğiz. Üreteceğimiz sayının 51 e göre modunu alırsak. Yeni oluşacak sayımız en fazla 50 değerini alabilir. Artık rastgele bir sayı üretmiş olduk. Üretmiş olduğumuz sayıyı başlangıç değerimiz ile toplarsak 150 ile 200 arasında bir sayı üretmiş olacağız.

İlk olarak time.h kütüphanesini dahil ediyoruz. Ardından srand() ve time() fonksiyonlarımızı bir arada kullanarak başlangıç değeri atıyoruz. Artık 150 ile 200 değerleri arasında rastgele değerler üretebiliriz.

Kod

/* Engin Yenice
enginyenice.com
*/
#include <stdio.h>
#include <stdlib.h>
#include "time.h"

int main()
{
srand(time(NULL));
int baslangic = 150;
int rastgele;
rastgele=baslangic + rand()%51;
printf("%d",rastgele);
return 0;
}


Rastgele sayı üretme örneğimi incelediğiniz için teşekkür ederim. Sağlıklı günler dilerim.

Bloğumu halen incelemediniz mi ? https://enginyenice.com/

Hakkımda: https://enginyenice.com/hakkimda/

İletişim: https://enginyenice.com/iletişim/

Üniversite Harf Notu Hesaplama

Üniversite not ortalamanızın hangi harf notuna denk geldiğini hesaplayabilen bir Üniversite harf notu hesaplama uygulaması

Merhaba arkadaşlar,

Öncelikle Kurban Bayramınızı en içten dileklerimle kutlarım.

Bugün sizlerle üniversite not ortalamanızın hangi harf notuna denk geldiğini hesaplayabilen bir Üniversite harf notu hesaplama uygulaması kodlayacağız.

Üniversite Harf Notu Nasıl Hesaplanır

Kocaeli Üniversitesinde okuduğum için genel olarak Kocaeli Üniversitesinin harf notu hesaplama oranlarını kullanacağım.

Harf notu hesaplanırken vize notunuzun %40’ı alınır ve final notunuzun %60’ı alınarak oluşan yeni notlar toplanır. Biz bu oranı daha iyi anlayabilmek için Vizeden 80 finalden 75 aldığımızı varsayalım.

Vize: 80

Vize %40 = 32 Puan etmektedir.

Final: 75

Final %60 = 45 Puan etmektedir.

Ders Harf Notumuz = (Vize %40) + (Final %60) = 77 Puan etmektedir.

Peki bu 77 puan hangi harf notuna denk geliyor. Bunun için harf notu aralıklarını inceleyelim.

Harf NotuPuan Aralığı
AA88-100
BA81-87
BB74-80
CB67-73
CC60-66
DC53-59
DD46-52
FD46-52
FF0-38
Harf notu – Puan Aralığı Tablosu

Tabloya göre Not ortalaması 77 olan bir öğrenci BB Harf notunu alabilmektedir.


Üniversite Harf Notu Hesaplama Örneği

Yapacağımız örnekte kullanıcıdan vize sınavından aldığı notu isteyeceğiz ve ardından her not aralığı için en az kaç puan alması gerektiğini göstereceğiz.

Örneğin: Vize notunu 80 olarak sisteme giren bir öğrenci için

FD NOTUNU ALMANIZ ICIN GEREKEN PUAN: 11.67
DD NOTUNU ALMANIZ ICIN GEREKEN PUAN: 23.33
DC NOTUNU ALMANIZ ICIN GEREKEN PUAN: 35.00
CC NOTUNU ALMANIZ ICIN GEREKEN PUAN: 46.67
CB NOTUNU ALMANIZ ICIN GEREKEN PUAN: 58.33
BB NOTUNU ALMANIZ ICIN GEREKEN PUAN: 70.00
BA NOTUNU ALMANIZ ICIN GEREKEN PUAN: 81.67
AA NOTUNU ALMANIZ ICIN GEREKEN PUAN: 93.33

şeklinde bir bilgi mesajı gösterilecektir.


İlk olarak void tipinde finalHesapla adında tek parametreli bir fonksiyon oluşturalım.

void finalHesapla(int vize)
{
  // finalHesapla fonksiyonu
}

vize notumuzun %40’ı pozitif doğal sayılar kümesinde yer alacağı için float değişken tipinde bir değişken oluşturuyoruz ve bu değişkenimize vize notumuzun %40’ını ekliyoruz.

void finalHesapla(int vize)
{
    float vizeOran = vize * 0.4;
}

Vize notumuzun %40’ınıda aldığımıza göre artık geçme notu aralığımızı belirleyebiliriz.

Biz örneğimizde minimum kaç almasının gerektiğini hesapladığımız için harf notlarımızın minimum değerlerinin tutulduğu bir dizi oluşturuyoruz.

Birde bu diziye karşılık gelecek harf notlarının tutulduğu char tipinde bir dizi oluşturuyoruz.

Harf notumuz için minimum kaç puan gerektiğini hafızada tutmak için ise float tipinde bir değişken oluşturuyoruz.

void finalHesapla(int vize)
{
    float vizeOran = vize * 0.4;
    //FF,FD,DD,DC,CC,CB,BB,BA,AA
    int gecmeNotlari[9] = {0,39,46,53,60,67,74,81,88};
    char *gecmeHarfleri[9] = {"FF","FD","DD","DC","CC","CB","BB","BA","AA"};
    float gerekli;
}

Artık döngümüzü oluşturabiliriz. Döngümüzün kontrolünü “gecmeNotlari” dizisini tek tek kontrol ederek gerçekleştireceğiz. Bunun için for döngüsü kullanacağız.

void finalHesapla(int vize)
{
    float vizeOran = vize * 0.4;
    //FF,FD,DD,DC,CC,CB,BB,BA,AA
    int gecmeNotlari[9] = {0,39,46,53,60,67,74,81,88};
    char *gecmeHarfleri[9] = {"FF","FD","DD","DC","CC","CB","BB","BA","AA"};
    float gerekli;
    for(int i = 0 ; i < 9; i++)
    { //gecme notları dizisini tek tek inceliyoruz.
    
    }
}

“VizeOran” yani vizemizin %40’ı “gecmeNotlari” dizisindeki elemanlardan küçük yada eşit olması durumunda o harf notuna sahip olabir. Örneğin:

Vize oranı 40 olan bir öğrenci kurallarımıza göre asla FF not alamaz.

void finalHesapla(int vize)
{
    float vizeOran = vize * 0.4;
    //FF,FD,DD,DC,CC,CB,BB,BA,AA
    int gecmeNotlari[9] = {0,39,46,53,60,67,74,81,88};
    char *gecmeHarfleri[9] = {"FF","FD","DD","DC","CC","CB","BB","BA","AA"};
    float gerekli;
    for(int i = 0 ; i < 9; i++)
    {//gecme notları dizisini tek tek inceliyoruz.
        if(vizeOran <= gecmeNotlari[i])
        { // vizeOran degerimiz gecme notundan kucuk veya esitse bu blok calisiyor.
        }

    }
}

Artık tek yapmamız gereken şey harf notunu alabilmemiz için harf notumuzun üzerine kaç puan almamız gerektiğini hesaplamak. Bunun için “gerekli” adına bir değişken oluşturmuştuk. Bu değişkenimize “gecmeNotlari” dizimizden seçili olan değerden vize oranımızı çıkartıyoruz. Örneğin:

Vize %40’ı 40 olan bir öğrenci için DD Notunu bulmamız için DD notumuzun minimum değerinden Vizemizin %40’ını çıkartıyoruz.

DD = 46

Gerekli Puan = 46 – 40 = 4

Ardından bulduğumuz bu değer bizim final notumuzun %60’ı olmuş oluyor. Gerçek notumuzu hesaplamak için bulduğumuz değeri 100 ile çarpıp 60’a bölmemiz gerekiyor.

Gerekli Puan = (4*100) / 60 = 6,667

Buna sonuca göre DD puanı alabilmemiz için final sınavında 6,667 puan almamız gerekmektedir.

void finalHesapla(int vize)
{
    float vizeOran = vize * 0.4;
    //FF,FD,DD,DC,CC,CB,BB,BA,AA
    int gecmeNotlari[9] = {0,39,46,53,60,67,74,81,88};
    char *gecmeHarfleri[9] = {"FF","FD","DD","DC","CC","CB","BB","BA","AA"};
    float gerekli;
    for(int i = 0 ; i < 9; i++)
    {//gecme notları dizisini tek tek inceliyoruz.
        if(vizeOran <= gecmeNotlari[i])
        { // vizeOran degerimiz gecme notundan kucuk veya esitse bu blok calisiyor.
            gerekli = (float)gecmeNotlari[i] - vizeOran;
            gerekli = (gerekli * 100) / 60;
        }

    }
}

Artık harf notunu almamız için gerekli olan notu bulduk bu not 100’den büyük ise diğer not aralığına geçeceğiz fakat bulduğumuz gerekli not 100’den küçük ise ekrana gerekli notu göstereceğiz.

void finalHesapla(int vize)
{
    float vizeOran = vize * 0.4;
    //FF,FD,DD,DC,CC,CB,BB,BA,AA
    int gecmeNotlari[9] = {0,39,46,53,60,67,74,81,88};
    char *gecmeHarfleri[9] = {"FF","FD","DD","DC","CC","CB","BB","BA","AA"};
    float gerekli;
    for(int i = 0 ; i < 9; i++)
    {//gecme notları dizisini tek tek inceliyoruz.
        if(vizeOran <= gecmeNotlari[i])
        { // vizeOran degerimiz gecme notundan kucuk veya esitse bu blok calisiyor.
            gerekli = (float)gecmeNotlari[i] - vizeOran;
            gerekli = (gerekli * 100) / 60;
            if(gerekli > 100) //Alinmasi gereken deger 100'den buyukse bu blok calisiyor.
                continue; // For dongusunun basina git
            else // Alinmasi gereken not 100'den kucukse bu blok calisiyor.
                printf("%s NOTUNU ALMANIZ ICIN GEREKEN PUAN: %.2f\n",gecmeHarfleri[i],gerekli);
        }

    }
}

Evet fonksiyonumuzu hazırladık artık main bloğumuzda bu fonksiyonu çalıştırabiliriz.

int main()
{
    int vize;
    printf("Vize notunuz: ");
    scanf("%d", &vize);
    finalHesapla(vize);
    return 0;
}

Bu şekilde örneğimizi tamamladık.


Örneğimizin Tüm Kodları

Örneğimizde bulunan kodların tamamının bir araya getirilmiş halidir.

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


/**
88-100 AA | 81-87 BA  | 74-80 BB | 67-73 CB  | 60-66 CC | 53-59 DC | 46-52 DD | 39-45 FD |0-38 FF
*/
void finalHesapla(int vize)
{
    float vizeOran = vize * 0.4;
    //FF,FD,DD,DC,CC,CB,BB,BA,AA
    int gecmeNotlari[9] = {0,39,46,53,60,67,74,81,88};
    char *gecmeHarfleri[9] = {"FF","FD","DD","DC","CC","CB","BB","BA","AA"};
    float gerekli;
    for(int i = 0 ; i < 9; i++)
    {//gecme notları dizisini tek tek inceliyoruz.
        if(vizeOran <= gecmeNotlari[i])
        { // vizeOran degerimiz gecme notundan kucuk veya esitse bu blok calisiyor.
            gerekli = (float)gecmeNotlari[i] - vizeOran;
            gerekli = (gerekli * 100) / 60;
            if(gerekli > 100) //Alinmasi gereken deger 100'den buyukse bu blok calisiyor.
                continue; // For dongusunun basina git
            else // Alinmasi gereken not 100'den kucukse bu blok calisiyor.
                printf("%s NOTUNU ALMANIZ ICIN GEREKEN PUAN: %.2f\n",gecmeHarfleri[i],gerekli);
        }

    }
}
int main()
{
    int vize;
    printf("Vize notunuz: ");
    scanf("%d", &vize);
    finalHesapla(vize);
    return 0;
}


Üniversite harf notu hesaplama örneğimi incelediğiniz için teşekkür ederim. Sağlıklı günler dilerim.

Bloğumu halen incelemediniz mi ? https://enginyenice.com/

Hakkımda: https://enginyenice.com/hakkimda/

İletişim: https://enginyenice.com/iletişim/

Palindromik Sayıları Bulma

Palindromik sayıları bulma.
C programlama dilini kullanarak 0 ile 1.000 arasındaki tüm palindromik sayıları tespit edilmesi.

Merhaba arkadaşlar,

Bu yazımızda sizlerle birlikte C programlama dilini ve CodeBlocks derleyicisini kullanarak 0 ile 1.000 arasındaki tüm palindromik kuralına uyan sayıları bulmaya çalışacağız. Örneğimizi kodlamaya geçmeden önce Palidromik sayılarla ilgili kısaca bilgi vermek istiyorum.

Okumaya devam et “Palindromik Sayıları Bulma”