MULTİVİBRATÖRLER

Multivibratör nedir ?

    Multivibratörler devrelerde gerekli olan kare dalga sinyalini yani tetikleme sinyalini üreten devrelerdir.

1-Kararsız multivibratörler

Kararsız multivibratör devrelerinde, girişe enerji verildiğinde çıkış durmadan "0" ve "1" olmaktadır. Kararsız denilmesinin sebebi çıkışın "0" mı "1" mi olacağına karar verememesi ve bu iki durum arasında sürekli olarak gelgit yapmasıdır.

Örneğin trafik ışıkları orada belirli bir saniyeler aralıklarında renklerin değişmesi gerekiyor.Bunun otomatik olması için kararsız multivibratör kullanılmalıdır.


Burada butona hiç basılmayacağı için dalgalar halinde yani belirlenen saniye aralıklarında sinyal üreteceğinden devremizde ona göre davranacaktır.

2-Tek kararlı multivibratörler

Tek kararlı multivibratörlere default olarak 0 değeri atanmıştır.Yani her butona basıldığında 1 sinyali üretilecektir.Butona basılmaz ise sinyal üretilmeyecektir.Kumandalı oyuncak araba gibi düşünebilirsiniz.Butona bastığınızda araba hareket ediyor.Sürekli gitmesi için basılı kalmanız gerekiyordur.








Butona basılmadığında sürekli 0 sinyali üretecektir.

3-Çift kararlı multivibratörler

Çift kararlı multivibratörlerde ise her butona basıldığında sinyal üretir.Sinyal kullanıcının elindedir.Butonlar kontrolü ile dalga üretirlir.Herhangi bir default değeri yoktur.Tamamen kendiniz kontrol edersiniz..

APARTMAN AİDAT OTOMASYONU(C#-MsSQL PROJE-1)



using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace ApartmanYonetim
{
    public partial class Giris : Form
    {
        public Giris()
        {
            InitializeComponent();
        }
        private void simpleButton3_Click(object sender, EventArgs e)
        {
            MessageBox.Show("Yeni Şifrenizi almak için uygulama programcısını arayın...");
        private void Giris_Load(object sender, EventArgs e)
        {

        }
        private void simpleButton1_Click(object sender, EventArgs e)
        {
            Aidat a = new Aidat();
            if (kullaniciAdi.Text == "Gokhan" && sifre.Text == "123456")
            {
                a.Show();
            }
        }
    }
}



using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using System.Data.SqlClient;
using System.Data;

namespace ApartmanYonetim
{
    public partial class Aidat : Form
    {
        public Aidat()
        {
            InitializeComponent();
        }
        void griddoldur()
        {
           SqlConnection con = new SqlConnection("server=LOCALHOST; Initial Catalog=ApartmanYonetim;Integrated Security=SSPI");
           SqlDataAdapter da = new SqlDataAdapter("Select *FROM aidat order by blok,daireNo", con);
           DataSet ds = new DataSet();
           con.Open();
           da.Fill(ds, "aidat");
           dataGridView1.DataSource = ds.Tables["aidat"];
           con.Close();
        }
        private void dataGridView1_CellContentClick(object sender, DataGridViewCellEventArgs e)
        {

        }

        private void Aidat_Load(object sender, EventArgs e)
        {
           
        }

        private void veriGirisi_Click(object sender, EventArgs e)
        {
            ListeyeEkle l = new ListeyeEkle();
            l.Show();
        }

        private void sil_Click(object sender, EventArgs e)
        {
            ListedenSil sil = new ListedenSil();
            sil.Show();
       
        }

        private void yazdir_Click(object sender, EventArgs e)
        {
            griddoldur();
        }

        private void simpleButton1_Click(object sender, EventArgs e)
        {
            Guncelle g = new Guncelle();
            g.Show();

        }

        private void ode_Click(object sender, EventArgs e)
        {
            ekleOde ek = new ekleOde();
            ek.ShowDialog();
        }

        private void dataGridView1_CellClick(object sender, DataGridViewCellEventArgs e)
        {

        }
    }
}

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using System.Data.SqlClient;
namespace ApartmanYonetim
{
    public partial class ListeyeEkle : Form
    {
        public ListeyeEkle()
        {
            InitializeComponent();
        }
        private void simpleButton1_Click(object sender, EventArgs e)
        {
            string sorgu = "insert into aidat(blok,kat,daireNo,borc,borcSahibi) values (@blok,@kat,@daireNo,@borc,@borcSahibi)";
            SqlConnection con = new SqlConnection("server=LOCALHOST; Initial Catalog=ApartmanYonetim;Integrated Security=SSPI");
            SqlCommand cmd = new SqlCommand(sorgu,con);
            cmd.Parameters.AddWithValue("@blok", tBlok.Text);
            cmd.Parameters.AddWithValue("@kat", tKat.Text);
            cmd.Parameters.AddWithValue("@daireNo", tDaire.Text);
            cmd.Parameters.AddWithValue("@borc", tBorc.Text);
            cmd.Parameters.AddWithValue("@borcSahibi", tBorcSahibi.Text);
            con.Open();
            cmd.Connection = con;
            try
            {
                cmd.ExecuteNonQuery();
            }
            catch (Exception ex) {
                MessageBox.Show("Bu daire dolu!!!");
            }
            con.Close();
        }
        private void simpleButton2_Click(object sender, EventArgs e)
        {
            Close();
        }
    }
}


using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using System.Data.SqlClient;
namespace ApartmanYonetim
{
    public partial class ListedenSil : Form
    {
        public ListedenSil()
        {
            InitializeComponent();
        }

        private void simpleButton1_Click(object sender, EventArgs e)
        {
            SqlConnection con = new SqlConnection("server=LOCALHOST; Initial Catalog=ApartmanYonetim;Integrated Security=SSPI");
            string sorgu = "Delete From aidat Where daireNo=@no";
            SqlCommand cmd = new SqlCommand(sorgu, con);
            cmd.Parameters.AddWithValue("@no", Convert.ToInt32(tdaireNo.Text));
            con.Open();
            cmd.ExecuteNonQuery();
            con.Close();
        }

        private void simpleButton2_Click(object sender, EventArgs e)
        {
            Close();
        }
    }
}


using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using System.Data.SqlClient;
namespace ApartmanYonetim
{
    public partial class ekleOde : Form
    {
        public ekleOde()
        {
            InitializeComponent();
        }

        private void groupControl1_Paint(object sender, PaintEventArgs e)
        {

        }

        private void simpleButton1_Click(object sender, EventArgs e)
        {

            string sorgu = "update aidat set borc=borc+@eklenecek";
            SqlConnection con = new SqlConnection("server=LOCALHOST; Initial Catalog=ApartmanYonetim;Integrated Security=SSPI");
            SqlCommand cmd = new SqlCommand(sorgu, con);
            int aidat=Convert.ToInt32(tBekle.Text);
            cmd.Parameters.AddWithValue("@eklenecek",aidat);
            con.Open();
            cmd.Connection = con;
            cmd.ExecuteNonQuery();
            con.Close();
        }

        private void simpleButton2_Click(object sender, EventArgs e)
        {
            string sorgu = "update aidat set borc=borc-@odenecek where daireno=@daireNo";
            SqlConnection con = new SqlConnection("server=LOCALHOST; Initial Catalog=ApartmanYonetim;Integrated Security=SSPI");
            SqlCommand cmd = new SqlCommand(sorgu, con);
            int aidat = Convert.ToInt32(tOdenecek.Text);
            cmd.Parameters.AddWithValue("@odenecek", aidat);
            cmd.Parameters.AddWithValue("@daireNo", tDaireNo.Text);
            con.Open();
            cmd.Connection = con;
            cmd.ExecuteNonQuery();
            con.Close();
        }
    }
}


using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using System.Data.SqlClient;
namespace ApartmanYonetim
{
    public partial class Guncelle : Form
    {
        public Guncelle()
        {
            InitializeComponent();
        }
        private void simpleButton1_Click(object sender, EventArgs e)
        {
             SqlConnection con = new SqlConnection("server=LOCALHOST; Initial Catalog=ApartmanYonetim;Integrated Security=SSPI");
            
            if(cKayit.Text=="Borc"){
               
                int cevir = Convert.ToInt32(tDeger.Text);
                string sorgu="Update aidat set borc=@borc where daireNo=@daireNo";
                SqlCommand cmd = new SqlCommand(sorgu, con);
                con.Open();
                cmd.Connection = con;
                cmd.Parameters.AddWithValue("@borc",cevir);
                cmd.Parameters.AddWithValue("@daireNo", tdaireNO.Text);
                cmd.ExecuteNonQuery();
                con.Close();

        }
            else if (cKayit.Text=="BorcSahibi")
            {
             
                string sorgu="Update aidat set borcSahibi=@borcSahibi where daireNo=@daireNo";
                SqlCommand cmd = new SqlCommand(sorgu, con);
                con.Open();
                cmd.Connection = con;
                cmd.Parameters.AddWithValue("@borcSahibi",tDeger.Text);
                cmd.Parameters.AddWithValue("@daireNo", tdaireNO.Text);
                cmd.ExecuteNonQuery();
                con.Close();
            }
            else if (cKayit.Text == "Blok")
            {

                string sorgu = "Update aidat set blok=@blok where daireNo=@daireNo";
                SqlCommand cmd = new SqlCommand(sorgu, con);
                con.Open();
                cmd.Connection = con;
                cmd.Parameters.AddWithValue("@blok", tDeger.Text);
                cmd.Parameters.AddWithValue("@daireNo", tdaireNO.Text);
                cmd.ExecuteNonQuery();
                con.Close();
            }
            else if (cKayit.Text == "Kat")
            {

                string sorgu = "Update aidat set kat=@kat where daireNo=@daireNo";
                SqlCommand cmd = new SqlCommand(sorgu, con);
                con.Open();
                cmd.Connection = con;
                cmd.Parameters.AddWithValue("@kat", tDeger.Text);
                cmd.Parameters.AddWithValue("@daireNo", tdaireNO.Text);
                cmd.ExecuteNonQuery();
                con.Close();
            }
            else if (cKayit.Text == "DaireNo")
            {

                string sorgu = "Update aidat set daireNo=@daireNoo where daireNo=@daireNo";
                SqlCommand cmd = new SqlCommand(sorgu, con);
                con.Open();
                cmd.Connection = con;
                cmd.Parameters.AddWithValue("@daireNoo", tDeger.Text);
                cmd.Parameters.AddWithValue("@daireNo", tdaireNO.Text);
                cmd.ExecuteNonQuery();
                con.Close();
            }
        }
    }
}






T-SQL TABLO OLUŞTURMA DML DDL DCL KOMUTLARI

use ISTEKutuphane
GO
CREATE TABLE OduncAl(
YapilanIslemSayisi INT IDENTITY(1,1),
ISTE_no int PRIMARY KEY NOT NULL,
Ad varchar(25) NOT NULL,
Soyad varchar(25) NOT NULL,
AlinanKitapNo int NOT NULL,
AlisTarihi date NOT NULL,
SonIadeTarihi date NOT NULL,
Ceza bit NOT NULL,
KitapYorumu varchar(300) NULL
)
GO
/*ALTER DATABASE ISTEKutuphane
MODIFY FILE
(
NAME=Kitaplik,
SIZE=250MB
);
*/
ALTER TABLE OduncAl --TABLOMUZA SÜTUN EKLEDİK...
ADD
CezaSuresi int DEFAULT(0)

ALTER TABLE OduncAl --TABLOMUZA SÜTUN EKLEDİK...
ADD
CezaSuresiSilinecek int DEFAULT(0)
SELECT *FROM OduncAl
--DROP TABLE OduncAl tablomuzu siler

INSERT INTO OduncAl VALUES(10101,'Gokhan','Guzelkokar',143,'2018-01-06','2018-01-26',0,NULL,NULL,NULL)
INSERT INTO OduncAl VALUES(10105,'Hasan','Selvi',123,'2018-01-06','2018-01-26',0,NULL,NULL,NULL)
INSERT INTO OduncAl VALUES(10145,'Selen','Bakmaz',132,'2018-01-07','2018-01-27',0,NULL,NULL,NULL)
INSERT INTO OduncAl VALUES(10112,'Merve','Soylu',42,'2018-01-06','2018-01-26',0,NULL,NULL,NULL)
INSERT INTO OduncAl VALUES(10162,'Şinasi','Şaşmaz',53,'2018-01-01','2018-01-21',0,NULL,NULL,NULL)
INSERT INTO OduncAl VALUES(10117,'Tahir','Gürsoy',35,'2018-01-06','2018-01-26',0,NULL,NULL,NULL)

--TABLOMUZA VERİLERİMİZİ EKLEDİK

UPDATE OduncAl SET Ceza=1,CezaSuresi=10
WHERE ISTE_no=10101 --GUNCELLEME YAPTIK

/*CREATE LOGIN ISTEKutuphane WITH PASSWORD='LOGIN_SIFRESI'
CREATE USER KutuphaneUser FOR LOGIN ISTEKutuphane;
VERİTABANIMIZA DIŞARIDAN ERİŞEBİLMEK İÇİN

YETKİLENDİRME
GRANT ALL TO KutuphaneUser
GRANT CREATE TABLE TO KutuphaneUser --TABLO YARATMA YETKİSİ
AYNI ŞEKİLDE
DENY CREATE TABLE TABLO OLUŞTURMA YETKİSİNİ KALDIRMA
REVOKE ALL TO PUBLİC --PUBLİC'E VERİLEN TÜM YETKİLERİ KALDIRMA
*/

T-SQL İLE VERİTABANI OLUŞTURMA

CREATE DATABASE ISTEKutuphane
ON PRIMARY --Bu veritabanına ait birincil d
osya grubumuz
(
NAME='Kitaplik',--DOSYAMIZIN ADI
FILENAME='C:\ISTE\Kitaplik.mdf',--DOSYAMIZIN FİZİKSEL ADI
SIZE=15MB,--VERİTABANI BOYUTU
MAXSIZE=30MB,--MAX VERİTABANI BOYUTU
FILEGROWTH=5MB --VERİTABANIMIZIN GENİŞLETİLMESİ GEREKİYORSA 5 ER MB GENİŞLETİLİR
)
LOG ON
(
NAME='ISTELog',
FILENAME='C:\ISTE\Log.ldf',
SIZE=2048KB,
MAXSIZE=500GB,
FILEGROWTH=5MB
)
EXEC sp_helpdb ISTEKutuphane

PHP İLE CAPTCHA YAPIMI

<!--captcha.php -->
<?php
session_start();
$letters=array("a","b","c");
$randomselect=rand(0,2);
$random=rand(10000000,90000000);
$text=$letters[$randomselect].$random;
$_SESSION["captcha"]=$text;
$pic=imagecreatetruecolor(100,30);
$backgroucolor=imagecolorallocate($pic,55,55,55);
$fontcolor=imagecolorallocate($pic,35,255,155);
imagefill($pic,0,0,$backgroucolor);
imagestring($pic,5,5,5,$text,$fontcolor);
header("Cache-Control:no-cache");
header("Content-type:image/png");
imagepng($pic);
imagedestroy($pic);

?>
---------------------------------------------------------------------------
<!-- index.php -->
<!DOCTYPE html>
<html>
<head>
</head>
<body>
<form action="dogrula.php" method="POST">
<table border="3">
<tr>
<td>
Please enter in the picture
</td>
<td>
<input type="text" name="captcha">
</td>
</tr>
<tr>
<td colpan="2">
<img src="captcha.php">
</td>
<td>
<input type="submit" name="submit" value="GIRIS">
</td>
</tr>
</table>
</body>
</html>
----------------------------------------------------------------------------------------------------
<!--dogrula.php-->
<?php 
session_start();
if(isset($_REQUEST["captcha"] && $_REQUEST["captcha"]!=""
&& $_SESSION["captcha"]=$_REQUEST["captcha"]){
echo "TRUE";
}
else 
echo "FALSE";
?>

MERKEZ BANKASINDAN ANLIK ALINAN DOLAR KURU İLE TL DÖNÜŞÜMÜ YAPAN PHP PROGRAMI

<!--cek.php -->

<!--Burada merkez bankasından sadece doları çekmek için bir dizi oluşturup o diziye foreach ile ayırdığımız dizinin ilk satırını atıp kullandık...-->

<?php

$linkdolar="http://www.tcmb.gov.tr/kurlar/today.xml";



$data = new SimpleXMLElement($linkdolar,0,true);

$dizi=array();

$dolaralis=array();

foreach ($data as $value)

 {

  array_push($dizi,$value->Isim);

  array_push($dolaralis,$value->ForexSelling);

 }

?>

--------------------------------------------------------------------------------------------------------

<!-- MerkezBankasi.php -->

<?php

function getir($key){

 if(isset($_POST[$key]) && strlen($_POST[$key])>0)



  return $_POST[$key];

   return false;

}

$dolartl = "";

$miktar = "";

$sonuc = "";

  if(count($_POST)==4)

  {

   $dolartl = getir("dolartl");

 

   $miktar = getir("miktar");

   $secim1 = getir("secim1");

   $secim2 = getir("secim2");

 

   if (!($dolartl  && $miktar && $secim1 && $secim2)) {

   $sonuc="veri girisi hatali";

   }

  else

    {

          if($secim1!=$secim2)

          {

              include "kur.php";

              $kur = new kur($dolartl);

              $tip=$secim1.$secim2;

              $deger=$kur->donustur($tip,$miktar);

              $sonuc=$miktar." ".$secim1."<br>";

              $sonuc.=$deger." ".$secim2;

          }

          else

              $sonuc="secimler ayni!";

    }

  }

?>

<html>

 <head>

  <meta charset="UTF-8">

 </head>

 <body>

  <form method="POST">

   <table border="3">

   <tr>

   <?php include "Cek.php"; ?>

    <td>Dolar</td>

    <td><input type="text" name="dolartl" value="<?php echo $dolaralis[0]; ?>"> </td>

   </tr>

   <tr><td colspan="2"><br></td></tr>

   <tr>

    <td>Miktar:</td>

    <td><input type="text" name="miktar" value="<?php echo $miktar; ?>"></td>

   </tr>

   <tr>

            <td>

                Seçim-1:

            </td>

            <td>

                <input type="radio" name="secim1" value="TL" checked>TL

                <input type="radio" name="secim1" value="$">USD

            </td>

        </tr>

        <tr>

            <td>

                Seçim-2:

            </td>

            <td>

                <input type="radio" name="secim2" value="TL" checked>TL

                <input type="radio" name="secim2" value="$">USD

            </td>

        </tr>

  <?php

        if (strlen($sonuc) > 0)

            echo "<tr><td colspan='2' style='text-align: center;  color: #ff6144;'>" . $sonuc . "</td></tr>";

        ?>

  <tr><td colspan="2" style=text-align:center><input type="submit" value="Cevir"></td></tr>

  </table>

  </form>

 </body>

</html>

---------------------------------------------------------------------------------------

<!-- kur.php -->



<?php

class kur

{

    public $dolartl;

    public function __construct($dolartl)

    {

        $this->dolartl=$dolartl;



    }

    public function donustur($tip,$miktar)

    {

        switch ($tip)

        {

            case "TL$": return $this->tl2dolar($miktar);

            case "\$TL": return $this->dolar2tl($miktar);

            default: return "Seçimler Uygun Değil!";

        }

    }

    public function tl2dolar($miktar)

    {

        $sonuc=$miktar/$this->dolartl;

        return round($sonuc,2);

    }



    public function dolar2tl($miktar)

    {

        $sonuc=$miktar*$this->dolartl;

        return round($sonuc,2);

    }

}

?>

İŞLETİM SİSTEMLERİ-ÖNEMLİ NOTLAR -1-

ÇOK DÜZEYLİ KUYRUKLAR

1-Bellek büyüklüğü önceliği ve proses türüne göre birbirinden farklı her işlem için ayrı bir hazır kuyruğu bulunmaktadır.

2-Prosesler bu bilgilere göre kalıcı olarak bir kuyruğa atanmaktadır.

3-Her kuyruğun kendine ait bir iş sıralama algoritması bulunur.

ÇOK DÜZEYLİ GERİ BESLEMELİ KUYRUKLAR

1-Prosesler işlemci kullanımlarına kuyruklara yerleşir

2-Her işlemci kullanımında diğre kuyruğa alınır

3-Çok düzeyli kuyrukta işlemler FIFO ile dönüşümlü sıralamanın hibrit yapısı gibidir.

PETRI NETLER

1-Bilgi akışında sistemlerin kontrollerinde ve aynı anda gerçekleşen aktivitelerin olduğu sistemlerin analizinde de ölümcül kilitlenmenin sezilmesi ve giderilmesi için uygulanana yöntemdir.

ÖLÜMCÜL KİLİTLENME

1-Çok prosesli ortamlarda prosesler bellek alanı cpu kullanımı dosyalar giriş çıkış birimlerigibi sonlu sayıdaki kaynaklar için yarışırlar.Bir proses kaynak alamadığında bekleme durumuna geçer.Kaynağı elinde bulunduran diğer proseste bekleme durumunda olabilir.Bu durumda kaynağı bırakamaz ve kaynağı bekleyen proses bekleme durumunda kalır.Yani ölümcül kilitlenme kaynakları paylaşan ve haberleşen proseslerin sonsuza kadar bekleme durumunda kalıp bloke olmasıdır.
Prosesler elindeki kaynakları bırakmadan başka kaynak isterlerse ölümcül kilitlenmeye neden olabilirler.

BİR İPLİK OLUŞTURUP 1 SN SONRA SIGKILL SİNYALİNİ GÖNDERECEK C++ PROGRAMI

#include <iostream>
#include <signal.h>
using namespace std;

void *iplik_islemi( )
{
    while(1)
         cout<<"BEN İPLİK"<<endl;

}
int main( ){
     pthread_t iplik;
     pthread_create(&iplik,NULL,iplik_islemi,NULL);
     sleep(1);
     pthread_kill(iplik,SIGKILL);
     pthread_join(iplik,NULL);



}

KENDİSİNE kill( ) SİSTEM ÇAĞRISIYLA SIGKILL KOMUTUNU GÖNDERİP SONLANAN C++ PROGRAMI

#include <iostream>
#include <signal.h>
using namespace std;

int main( ){
    kill(getpid( ),SIGKILL);
    cout<<"SİNYAL GÖNDERİLDİ..."<<endl;


}

SIGINT İLE CTRL+C KOMUTUNU YAKALAMAK (C++,İSLETİM SİSTEMLERİ)

#include <iostream>
#include <stdlib.h>
#include <signal.h>
#include <windows.h>
using namespace std;
void Sinyal_Yakala(){
    cout<<"Sinyal Yakalandi..."<<endl;
}

int main()
{
    while(true){
    if( signal(SIGINT,Sinyal_Yakala)==SIG_ERR)
cout<<"Sinyal Yakalanamadı..."<<endl;

}
}

BİR İPLİK OLUŞTURAN VE BU İPLİĞİN SONLANMASINI pthread_join( ) SİSTEM ÇAĞRISIYLA BEKLEYEN İPLİK(C++,İSLETİM SİSTEMLERİ)

#include <iostream>
#include <pthread.h>
using namespace std;
void *iplik_islemi(){
    Cout<<"Iplik"<<endl;
}
int main() {
    pthread_t iplik;
    pthread_create(&iplik,NULL,iplik_islemi,NULL);
    cout<<"İpliğin sonlanmasını bekle"<<endl;
    pthread_join(iplik,NULL);
    cout<<"İplik Sonlandı";

}

Spring Boot Uygulamasını Heroku üzerinde Deploy Etme

Bu yazımızda sizlere spring boot ile yazılmış basit bir Rest api'nin heroku üzerinde nasıl deploy edebileceğimizi göstereceğim. Önce ...