Kullanıcı Yönetimi

PHP ile kullanıcı yönetimi örneği yapıyoruz. Bu örnekte kayıt ol, giriş yap ve çıkış yap sayfaları bulunmaktadır.

Merhaba arkadaşlar,

Bu yazımızda kullanıcı yönetimini örnekleyen bir uygulama gerçekleştireceğiz. Bu uygulamamızda veritabanı ile iletişim kurarak içersinde:

  1. Kayıt Ol
  2. Giriş yap
  3. Çıkış Yap

özellikleri bulunan bir örnek uygulama geliştireceğiz.

Veritabanı Oluşturma

Örneğimizde veritabanı ile iletişim kuracağımız için ilk olarak bir adet veritabanı oluşturalım (Ben bu örneğimiz için demo adında bir veritabanı oluşturacağım. ).

Oluşturduğumuz veritabanına bir adet User adında tablo ekleyelim. Tablomuzda 3 adet satır bulunacaktır bu satırlar:

  1. id => integer tipinde. AUTO_INCREMENT
  2. username => varchar tipinde
  3. password => varchar tipinde
CREATE TABLE `user` (
  `id` int(11) NOT NULL,
  `username` varchar(254) COLLATE utf8_turkish_ci NOT NULL,
  `password` varchar(254) COLLATE utf8_turkish_ci NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_turkish_ci;

SQL komutu ile oluşturmak isteyenler için tablonun SQL kodunu yukarıda belirttim.


Proje Klasör Yapısı

  1. includes
    1. header.php
    2. footer.php
  2. settings
    1. Database.php
    2. class.User.php
  3. index.php
  4. login.php
  5. register.php
  6. logout.php

şeklinde olacaktır. Bu sayede projemizi daha düzgün bir şekilde yönetebileceğiz.


settings/Database.php

Database.php dosyamızın içerisinde veritabanına bağlanma işlemini gerçekleştireceğiz. Bunun için Database isminde bir sınıf oluşturalım. Oluşturduğumuz sınıfın içerisinde veritabanına bağlanmamız için gerekli olacak temel değişkenleri tanımlayalım.

  • host: Veritabanı sunucumuz. (localhost)
  • db: Veritabanı adımız. (demo)
  • user: Veritabanı kullanıcı adımız. (root)
  • pass: Veritabanı şifremiz. (boş)

Değişkenlerimizi oluşturduktan sonra yapıcı metodumuz (__construct) içerisinde değişkenlere uygun değerleri değerlerimizi atayalım.

Veritabanı bağlantımız için connect adında bir metot oluşturalım ve PHP PDO özelliği ile bağlantımızı gerçekleştirelim. Oluşturduğumuz bağlantıyı metot dışarısına return (geri döndürmek) edelim.

<?php 
class Database  
{
    private $host;
    private $db;
    private $user;
    private $pass;
    public function __construct()
    {
        $this->host = "localhost";
        $this->db   = "demo";
        $this->user = "root";
        $this->pass = "";
    }
    public function connect()
    {
        $conn = new PDO("mysql:host=".$this->host.";dbname=".$this->db.";", $this->user, $this->pass);
        return $conn;
    }
}

settings/class.User.php

class.User.php dosyamızın içerisine ilk olarak veritabanımızı (Database.php) dahil edelim. Ardından User adında bir sınıf oluşturalım.

Oluşturduğumuz sınıfımızın içerisine bir adet değişken oluşturalım.

  • conn: Veritabanı nesnemizin tutulacağı değişken

Sınıfın kurucu metodunda (__construct) Database sınıfımızda yeni bir nesne oluşturalım ve bu nesnemizin connect metodunu sınıfımızın içerisinde oluşturduğumuz conn nesnesine atayalım.

Veritabanı nesnemizi de oluşturduğumuza göre sınıfımızda olacak fonksiyonları belirleyebiliriz.

  1. Register: Kullanıcı kayıt etmek için kullanılacak metot
  2. Login: Kullanıcı girişi için kullanılacak metot
  3. Logout: Kullanıcı çıkışı için kullanılacak metot

Sınıfımızı oluşturmaya ilk olarak Register metotu ile başlayalım.

settings/class.User.php Register Metodu

Register metodu ile veritabanımıza yeni bir kullanıcı ekleyeceğiz. Kullanıcı ekleyebilmek için gerekli olan verilerin neler olduğunu tespit edelim.

  1. username: Kullanıcı adı
  2. password: Şifre
  3. rePassword: Şifre tekrarı

Kullanıcıdan 3 adet değer alacağız ve bu alacağımız değerleri kontrol edeceğiz.

İlk olarak kullanıcıdan gelen bu 3 değerin en az 4 karakter olması gerektiğini belirtelim.

Şifre ile şifre tekrar değerlerinin birbirleri ile aynı olup olmadığını kontrol edelim.

Kayıt olunmak istenen kullanıcı adı ile başka bir kullanıcı kayıtlı mı kontrol edelim.

Kontrollerimizden başarıyla geçilmesi durumunda kullanıcıdan alınan şifre değerini md5() fonksiyonu ile şifreleyelim. Oluşturulan yeni şifre ve kullanıcı adı ile veritabanımıza kayıt talebinde bulunalım.

Kaydın başarılı olması durumunda kullanıcıyı login.php yönlendirelim.

Kaydın başarısız olması durumunda kullanıcıya bir hata mesajı gösterelim.


settings/class.User.php Login Metodu

Login metodu ile kullanıcının sisteme girebilmesi için gerekli olan parametreleri belirleyelim.

  1. username: Kullanıcı adı
  2. password: Kullanıcı şifre

Kullanıcıdan gelen bu değerleri belirli şartlara göre kontrol edelim.

İlk olarak kullanıcının bize göndermiş olduğu değerlerin karakter sayılarının 4 karakterden uzun olup olmadıklarını kontrol edelim.

Gönderilen şifre değerini md5() fonksiyonu ile şifreleyelim. Oluşan şifreyi ve kullanıcı adını veritabanında kayıtlı olup olmadılarını kontrol edelim. Sorgumuzdan gelen sonuç 0’dan büyük ise kullanıcı sistemde kayıtlıdır fakat gelen değer 0’a eşit ise sistemde kayıtlı değildir.

Kullanıcı sistemde kayıtlı ise username adında bir SESSION oluşturalım ve içerisine kullanıcıdan gelen kullanıcı adını aktaralım ve index.php yönlendirelim.

Kullanıcı sisteme kayıtlı deği ise kullanıcıya hata mesajı gösterelim.


settings/class.User.php Logout

Oluşturulan SESSION değerlerini temizleyelim ve index.php yönlendirelim.


settings/class.User.php Tüm Kodları

<?php
require_once 'Database.php';
class User
{
    private $conn;
    public function __construct() {
        $conn = new Database(); 
        $this->conn = $conn->connect();
    }
    public function Register($username = '',$password = '',$rePassword = '')
    {
        $RegisterMessage= "";
        if(strlen($username) < 4 || strlen($password) < 4)
        {
            $RegisterMessage = [
                "status"    => "danger",
                "message"   => "Username or password is less than 4 characters"
            ];
            return $RegisterMessage;
        }

        if($password != $rePassword){
            $RegisterMessage = [
                "status"    => "danger",
                "message"   => "Password does not match Password Repeat."
            ];
            return $RegisterMessage;
        }

        $query = "SELECT count(username) FROM User WHERE username=:username";
        $userCount = $this->conn->prepare($query);
        $userCount->execute(array(
            'username'  => $username
        ));
        $result = $userCount->fetchColumn();
        if($result > 0)
        {
            $RegisterMessage = [
                "status"    => "warning",
                "message"   => "Such a user already exists"
            ];
            return $RegisterMessage;
        }
        $md5Password = md5($password);
        $query  = "INSERT INTO User (username,password) VALUES (:username,:password);";
        $insert = $this->conn->prepare($query);
        $status = $insert->execute(array(
            "username"  => $username,
            "password"  => $md5Password
        ));
        if($status == true)
        {
            header('Location: login.php?register=success');
        }
        else
        {
            $RegisterMessage = [
                "status"    => "danger",
                "message"   => "Database error."
            ];
            return $RegisterMessage;
        }
    }
    public function Login($username= '',$password = '')
    {
        $LoginMessage= "";

        if(strlen($username) < 4 || strlen($password) < 4)
        {
            $LoginMessage = [
                "status"    => "danger",
                "message"   => "Username or password is less than 4 characters"
            ];
            return $LoginMessage;
        }
        $md5Password = md5($password);

        $query = "SELECT count(username) FROM User WHERE username=:username AND password=:password";
        $userCount = $this->conn->prepare($query);
        $userCount->execute(array(
            'username'  => $username,
            'password'  => $md5Password
        ));
        $result = $userCount->fetchColumn();
        if($result > 0){ 
            $_SESSION['username'] = $username;
            header('Location: index.php');
        } else { 
            $LoginMessage = [
                "status"    => "danger",
                "message"   => "Username or password is wrong."
            ];
            return $LoginMessage;
        }
    }
    public function Logout(){
        session_destroy();
    }
}

İncludes/header.php

İlk olarak SESSION ve Tampon değerimizi başlatım. Ardından örneğimizin güzel gözükmesi açısından Bootstrap ekleyelim.

<?php
ob_start();
session_start();
?>
<!doctype html>
<html lang="tr">
<head>

    <meta charset="utf-8">
    <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
    <link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.5.2/css/bootstrap.min.css" integrity="sha384-JcKb8q3iqJ61gNV9KGb8thSsNjpSL0n8PARn9HuZOnIxN0hoP+VmmDGMN5t9UJ0Z" crossorigin="anonymous">
    <title>User Management</title>
</head>
<body class="mt-3">
    <div class="container">
        <h3 class="text-center">Engin Yenice</h3>

İncludes/footer.php

Eklediğimiz Bootstrap devamında bulunan scriptleri bu kısma ekleyelim.

</div>

<script src="https://code.jquery.com/jquery-3.5.1.slim.min.js" integrity="sha384-DfXdz2htPH0lsSSs5nCTpuj/zy4C+OGpamoFVy38MVBnE+IbbVYUew+OrCXaRkfj" crossorigin="anonymous"></script>
<script src="https://cdn.jsdelivr.net/npm/popper.js@1.16.1/dist/umd/popper.min.js" integrity="sha384-9/reFTGAW83EW2RDu2S0VKaIzap3H66lZH81PoYlFhbGU+6BZp6G7niu735Sk7lN" crossorigin="anonymous"></script>
<script src="https://stackpath.bootstrapcdn.com/bootstrap/4.5.2/js/bootstrap.min.js" integrity="sha384-B4gt1jrGC7Jh4AgTPSdUtOBvfO8shuf57BaghqFfPlYxofvL8/KUEfYiJOMMV+rV" crossorigin="anonymous"></script>
</body>
</html>

İndex.php

Sayfamızın başına ilk olarak header.php dahil edelim. Ardından SESSION olup olmadığını kontrol edelim.

SESSION varsa eğer ekrana Hoşgeldin [Kullanıcı Adı] şeklinde bir mesaj versin ve bir çıkış butonu bulunsun.

SESSION yoksa eğer giriş yap ve kayıt ol butonları görünsün şeklinde şart koşalım.

<?php
include 'includes/header.php';
?>
    <?php
if(isset($_SESSION['username']))
{ ?>
    <div class="text-center">
        <hr>
        <h4 class=""><i>Hoşgeldin </i> <strong><?=$_SESSION['username']?></strong></h4>
        <a href="logout.php" class="btn btn-outline-danger text-center">Çıkış Yap</a>
        <hr>
    </div>
    <?php } else { ?>
    <div class="d-flex justify-content-center">
        <div class="buttons">
            <a href="login.php" class="btn btn-outline-primary">Login</a>
            <a href="register.php" class="btn btn-outline-success">Register</a>
        </div>
    </div>
    <?php
}
    ?>
<?php
include 'includes/footer.php';
?>

Login.php

Sayfamızın başına ilk olarak header.php dahil edelim. Ardından SESSION olup olmadığını kontrol edelim.

SESSION olması durumunda kullanıcıyı index.php yönlendirelim.

Kullanıcının giriş bilgilerini dolduracağı bir form oluşturalım ve ardından bu formun post edilmesi durumunda ilk olarak User sınıfını sayfaya dahil edelim ve ardından User sınıfının Login metoduna gerekli değerleri gönderelim. Bu metotdan dönen değeri statusMessage adında bir değişkene aktaralım. Ardından bu değişkendeki bilgileri kullanıcıya gösterelim.

<?php
include 'includes/header.php';
if(isset($_SESSION['username']))
{
    header('Location: index.php');
}
if(isset($_POST['login']))
{
    require_once("settings/class.User.php");
    $User = new User();
    $userName   = htmlspecialchars(trim($_POST['username']));
    $password   = htmlspecialchars(trim($_POST['password']));
    $statusMessage = $User->Login($userName,$password);
    ?>
    <div class="alert alert-<?=$statusMessage['status']?>"><?=$statusMessage['message']?></div>
<?php }
if(isset($_GET['register']) && $_GET['register'] == "success")
{ ?>
    <div class="alert alert-success">Registration Successful</div>
<?php } ?>
<h3>Login Page</h3>
<form method="post" action="" >
    <div class="form-group">
        <label>Username</label>
        <input type="text" name="username" class="form-control">
    </div>
    <div class="form-group">
        <label>Password</label>
        <input type="password" name="password" class="form-control">
    </div>
    <button type="submit" name="login" class="btn btn-primary">Login</button>
    <a href="index.php" class="btn btn-secondary">Back</a>
</form>
<?php
include 'includes/footer.php';
?>

Register.php

Sayfamızın başına ilk olarak header.php dahil edelim. Ardından SESSION olup olmadığını kontrol edelim.

SESSION olması durumunda kullanıcıyı index.php yönlendirelim.

Kullanıcının giriş bilgilerini dolduracağı bir form oluşturalım ve ardından bu formun post edilmesi durumunda ilk olarak User sınıfını sayfaya dahil edelim ve ardından User sınıfının Register metoduna gerekli değerleri gönderelim. Bu metotdan dönen değeri statusMessage adında bir değişkene aktaralım. Ardından bu değişkendeki bilgileri kullanıcıya gösterelim.

<?php
include 'includes/header.php';
if(isset($_SESSION['username']))
{
    header('Location: index.php');
}
if(isset($_POST['register']))
{
    require_once("settings/class.User.php");
    $User = new User();
    $userName   = htmlspecialchars(trim($_POST['username']));
    $password   = htmlspecialchars(trim($_POST['password']));
    $rePassword = htmlspecialchars(trim($_POST['rePassword']));
    $statusMessage = $User->Register($userName,$password,$rePassword);
    ?>
    <div class="alert alert-<?=$statusMessage['status']?>"><?=$statusMessage['message']?></div>
<?php }
?>
<h3>Register Page</h3>
<form method="post" action="" >
    <div class="form-group">
        <label>Username</label>
        <input type="text" name="username" class="form-control">
    </div>
    <div class="form-group">
        <label>Password</label>
        <input type="password" name="password" class="form-control">
    </div>
    <div class="form-group">
        <label>Re. Password</label>
        <input type="password" name="rePassword" class="form-control">
    </div>
    <button type="submit" name="register" class="btn btn-primary">Create</button>
    <a href="index.php" class="btn btn-secondary">Back</a>
</form>
<?php
include 'includes/footer.php';
?>

Logout.php

İlk olarak SESSION ve Tampon değerimizi başlatım. User sınıfını sayfaya dahil edelim ve bu sınıftan bir adet nesne oluşturalım ardından User sınıfının Logout metodunu çağıralım. Bu metot sayesinde kullanıcıya ait SESSION bilgileri silinecektir. Ardından index.php yönlendirelim.

<?php
ob_start();
session_start();
require_once("settings/class.User.php");
$User = new User();
$User->Logout();
header('Location: index.php');

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/

Teknoloji Ve Teknolojik Ürün Ne Demektir?

Teknoloji her gün ve neredeyse her saat gelişim gösteren bir olgudur. Hayatımıza her konuda katkı sağlayan teknoloji medeni bir toplum için vazgeçilmezdir…

Teknoloji her gün ve neredeyse her saat gelişim gösteren bir olgudur. Hayatımıza her konuda katkı sağlayan teknoloji medeni bir toplum için vazgeçilmezdir. Kolaylık sağlamasının yanı sıra birçok soruna da çözüm sağlar. 

Tanımlar

ilk olarak teknoloji bir aletten daha fazlası olarak bir bilimdir. Bu bilimde kullanılan aletler, geliştirilen teknikler ve yapılanların tümü teknoloji bilimine hizmet eder. Bu bilimde tasarlanan, elektronik veya programlanmış her ürün teknolojik üründür. 

Teknolojinin Faydaları

Bilinçli ve dozunda kullanılan teknolojinin faydaları yadsınamaz bir gerçektir. Buna şu günlerde de en çok önem verdiğimiz sağlık sektörü dahildir. Sağlık sektöründe teknoloji sayesinde birçok yenilik ve ürün geliştirilmiş, hastalıkların iyileşmesine müthiş katkı sağlamıştır. Kolaylık ise ikinci bir faydasıdır. Günlük rutin işlerin çoğu teknoloji sayesinde daha kolay ve kısa sürede halledilir. Böylelikle bunların yanı sıra hayatımıza konfor alanı da sunar. Ulaşım sektörü de teknolojiden nasibini almış ve istenilen yere varma konusunda ürünleri ile daha hızlı ve daha güvenli bir hizmet sunmuştur. Eğitim konusunda da aynı şekilde gelişim gösterilmiş ve akıllı tahta, bilgisayar vb. ürünler ile destek göstermiştir. Bir diğer yarar sağladığı sektör olarak habercilik, medya örnek olarak verilebilir. İletişimsizlik ve haberleşme özgürlüğünü düşününce ne derece önemli olduğu ortaya çıkmış oluyor. Sanayi ve endüstrileşme de teknoloji konusunda gelişim göstermiş ve birçok makine gelişimi ile üretime katkı sağlamıştır. Bu da ülke ekonomisini olumlu anlamda etkiler. Teknoloji aynı zamanda güvenlik güçlerinin de işlerini kolaylaştırmış ve onlara suçluları yakalamak konusunda yardım sağlamıştır. Buna örnek vermek gerekirse DNA incelemelerinde kullanılan teknoloji ve güvenlik kameraları, alarm sistemleri örnek olarak verilebilir. 


Teknolojinin Zararları

Tüm saydığımız yararlara rağmen, bilinçsiz ve zamansız kullanım teknolojinin zararlarına da sebebiyet veriyor. Buradan yola çıkarak kötü zaman kullanımı denilebilir. Bu doğrultuda düşünüldüğü takdirde ise insanların bu kadar her şeyi elinin altında barındırması ve kolaylık sağlaması ile tembellik ortaya çıkar. Tembelliğin bir getirisi olarak hareketsizlik ise sağlıksız bir bedene sahip olunmasına sebebiyet veriyor. Aynı zamanda teknoloji düşkünlüğü zamanla bir bağımlılığa dönüşüyor. Psikolojik bir rahatsızlık olarak da sayabileceğimiz bu bağımlılık, asosyalliğe iten en önemli nedendir. Teknolojik aletler ile çok fazla vakit geçirildiği takdirde yaydıkları radyasyondan da etkilenmek sağlığınız için zararlı bir hal alıyor. Özellikle çocuklarda olumsuz olarak en çok etki eden teknoloji konusu, şiddet, pornografi, cinsellik gibi birçok zararlı konu barındırıyor.


Teknolojik Gelişmeler Nasıl Takip Edilir?

Gün geçtikçe yeni bir gelişme olan teknolojiyi haliyle takip etmek de zor oluyor. İnsanlar bu alanda nasıl takipte kalarak yeniliklerini keşfedeceklerini bilmiyorlar. En ulaşılabilir olarak sosyal medya hesaplarından teknoloji etiketlerini, hesaplarını ve kanallarını takip edebilirsiniz. Onun haricinde gazete, dergi ve televizyon gibi kitle iletişim araçlarından da teknolojik gelişmelerden haberdar olmanız mümkündür. 


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

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

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