import javax.swing.*;
public class TEST {
public static void main(String[] args) {
//pi = 4 - 4/3 + 4/5 -4/7+4/9-4/11+...+
String s;
int i;
double pi=0;
int artieksi=-1;
for(i=1;i < 100000;i++)
{
artieksi*=-1;
pi+=4/(2.0*i-1.0)*artieksi;
}
s="pi = "+pi;
JOptionPane.showMessageDialog(null,s,"pi sayısı hesabı",JOptionPane.PLAIN_MESSAGE);
}
}
JAVA-SWİNG Pİ SAYISININ HESABI
JAVA-DATE() (THREAD İLE ZAMAN KONTROLÜ)
import java.util.*;
public class Tutoriall {
public static void main(String[] args) {
try{
System.out.println(new Date()+"\n");
Thread.sleep(10000);
System.out.println(new Date()+"\n");
}
catch(Exception e)
{
System.out.println("Got on exception");
}
}
}
public class Tutoriall {
public static void main(String[] args) {
try{
System.out.println(new Date()+"\n");
Thread.sleep(10000);
System.out.println(new Date()+"\n");
}
catch(Exception e)
{
System.out.println("Got on exception");
}
}
}
JAVA-INHERITANCE (KALITIM BASİT ÖRNEK)
class FutbolTakimi
{
public int TakiminDegeri;
int EnDegerliOyuncusu;
int Ligi(int t)
{
return t;
}
}
class BirinciLig extends FutbolTakimi
{
FutbolTakimi Gs=new FutbolTakimi();
}
public class WhatIsInheritance {
public static void main(String[] args) {
BirinciLig gs=new BirinciLig();
gs.EnDegerliOyuncusu=33;
}
}
{
public int TakiminDegeri;
int EnDegerliOyuncusu;
int Ligi(int t)
{
return t;
}
}
class BirinciLig extends FutbolTakimi
{
FutbolTakimi Gs=new FutbolTakimi();
}
public class WhatIsInheritance {
public static void main(String[] args) {
BirinciLig gs=new BirinciLig();
gs.EnDegerliOyuncusu=33;
}
}
FLİP-FLOP DEVRELERİ
Flip-Floplar, çift kararlı ve eşzamanlı aygıtlardır. Eşzamanlı terimi burada, çıkışın
yalnızca saat (clock )denilen tetikleme sinyalinin belirli bir noktasında durum
değiştirdiğini anlatmaktadır.Çift kararlı olmasının nedeni de budur.Saat sinyali geldiğinde çalışacaktır.O saat sinyalini ya sizin vermeniz gerekir yada bunu otomatik yapabilecek bir aygıtınız olmalıdır.
FLİP FLOP TİPLERİ
1-S-R TİPİ FF
2-J-K TİPİ FF
3-D TİPİ FF
4-T TİPİ FF
(a) Yükselen kenar tetiklemeli
(b) Düşen kenar tetiklemeli
Yükselen ve düşen kenar tetiklemelerinin mantığı basittir.Bir önceki konumuzda gördüğümüz multivibratörlerdeki sinyal tetiklemeleri,0'dan 1'e tetikleniyorsa yükselen,1'den 0'a tetikleniyorsa düşen kenar tetiklemelidir,denir.Gösterimleri şekildeki gibi..
1-S-R TİPİ FF
S-R tipi ff daha önceki kaydımızda gördüğümüz latch devresinin clok'lu hali yani saat sinyali ile çalışıyor.Yükselen ve düşen kenar tetiklemeli saat sinyali ile..
Saat sinyalimiz olmadığında set ve resetin ne olduğu önemli değildir.Flip-flopumuz çalışmayacaktır.
Saat sinyalimiz olduğunda set 1 reset 0 olduğunda kurma set 0 reset 1 olduğunda ise resetleme yapacaktır..
2-J-K TİPİ FF
J-K tipi ff'un set,reset ve S=0 R=0 durumları R-S tipi ff ile aynıdır.Fakat S=1 R=1 durumunda tanımsız olan durum J-K flip flop'ta tümleyen oluyor.Yani o durum tanımsız olmuyorda bir önceki durumun tersi alınıyor. J-K tipi ff''ta J=SET----K=RESET gibi düşünebiliriz..
3-D TİPİ FF
DATA tipi flip flop tek bir bit saklanacağında kullanılır.Bilgisayardaki depolama birimleri olan registerlar D tipi ff'tan oluşuyor.
Şekilde de göründüğü gibi ne verirseniz o çıkıyor yani bildiğiniz banka.Ama veri bankası :)
4-T TİPİ FF
J-K Flip-Flopun J ve K girişleri birbirine bağlanarak elde edilen flip-flop
türüdür. J = K = 0 iken saat işareti uygulansa da çıkışlar durum değiştirmez. J=K= 1 olduğunda ise her tetikleme de çıkışlar bir önceki durumlarının tümleyenine dönüşürler. Flip-flop adını bu özelliğinden (toggle) alır.
TABLOLARI ÇİZECEK ZAMANIM OLMADIĞINDAN AŞAĞIDAKİ KAYNAKTAN FAYDALANDIM..
EGE ÜNİVERSİTESİ
EGE MESLEK YÜKSEKOKULU
Yrd.Doç.Dr. MUSTAFA ENGİN Yrd.Doç.Dr. DİLŞAD ENGİN
yalnızca saat (clock )denilen tetikleme sinyalinin belirli bir noktasında durum
değiştirdiğini anlatmaktadır.Çift kararlı olmasının nedeni de budur.Saat sinyali geldiğinde çalışacaktır.O saat sinyalini ya sizin vermeniz gerekir yada bunu otomatik yapabilecek bir aygıtınız olmalıdır.
FLİP FLOP TİPLERİ
1-S-R TİPİ FF
2-J-K TİPİ FF
3-D TİPİ FF
4-T TİPİ FF
(a) Yükselen kenar tetiklemeli
(b) Düşen kenar tetiklemeli
Yükselen ve düşen kenar tetiklemelerinin mantığı basittir.Bir önceki konumuzda gördüğümüz multivibratörlerdeki sinyal tetiklemeleri,0'dan 1'e tetikleniyorsa yükselen,1'den 0'a tetikleniyorsa düşen kenar tetiklemelidir,denir.Gösterimleri şekildeki gibi..
1-S-R TİPİ FF
S-R tipi ff daha önceki kaydımızda gördüğümüz latch devresinin clok'lu hali yani saat sinyali ile çalışıyor.Yükselen ve düşen kenar tetiklemeli saat sinyali ile..
Saat sinyalimiz olmadığında set ve resetin ne olduğu önemli değildir.Flip-flopumuz çalışmayacaktır.
Saat sinyalimiz olduğunda set 1 reset 0 olduğunda kurma set 0 reset 1 olduğunda ise resetleme yapacaktır..
2-J-K TİPİ FF
J-K tipi ff'un set,reset ve S=0 R=0 durumları R-S tipi ff ile aynıdır.Fakat S=1 R=1 durumunda tanımsız olan durum J-K flip flop'ta tümleyen oluyor.Yani o durum tanımsız olmuyorda bir önceki durumun tersi alınıyor. J-K tipi ff''ta J=SET----K=RESET gibi düşünebiliriz..
3-D TİPİ FF
DATA tipi flip flop tek bir bit saklanacağında kullanılır.Bilgisayardaki depolama birimleri olan registerlar D tipi ff'tan oluşuyor.
Şekilde de göründüğü gibi ne verirseniz o çıkıyor yani bildiğiniz banka.Ama veri bankası :)
4-T TİPİ FF
J-K Flip-Flopun J ve K girişleri birbirine bağlanarak elde edilen flip-flop
türüdür. J = K = 0 iken saat işareti uygulansa da çıkışlar durum değiştirmez. J=K= 1 olduğunda ise her tetikleme de çıkışlar bir önceki durumlarının tümleyenine dönüşürler. Flip-flop adını bu özelliğinden (toggle) alır.
TABLOLARI ÇİZECEK ZAMANIM OLMADIĞINDAN AŞAĞIDAKİ KAYNAKTAN FAYDALANDIM..
EGE ÜNİVERSİTESİ
EGE MESLEK YÜKSEKOKULU
Yrd.Doç.Dr. MUSTAFA ENGİN Yrd.Doç.Dr. DİLŞAD ENGİN
TUTUCU (LATCH)
TUTUCU DEVRELERİ
Tutucu, Flip-Floptan ayrı olarak değerlendirilen çift kararlı bir veri saklama aygıtıdır.Flip-Floplarla tutucular arasındaki benzerlik,tutucunun da Flip-Flop gibi iki ayrı kararlı durumda bulunabilmesidir.
Tutucunun S (set) ve R (reset) adında 2 girişi Q ve Q' adında da 2 çıkışı bulunur.
Flip-Floplarla tutucular arasındaki benzerlik,
tutucunun da Flip-Flop gibi iki ayrı kararlı durumda bulunabilmesidir.
S R Qn+1 Q'n+1 YORUM
0 0 Qn Q' Tutucu önceki durumunda kalır.
0 1 0 1 Tutucu sıfırlanır.
1 0 1 0 Tutucu kurulur.
1 1 1 1 TANIMSIZ
Doğruluk tablosu yukarıda görüldüğü gibidir.
S=0,R=1 olduğunda sıfırlama, S=1,R=0 olduğunda kurma yapılır.
Tutucu, Flip-Floptan ayrı olarak değerlendirilen çift kararlı bir veri saklama aygıtıdır.Flip-Floplarla tutucular arasındaki benzerlik,tutucunun da Flip-Flop gibi iki ayrı kararlı durumda bulunabilmesidir.
Tutucunun S (set) ve R (reset) adında 2 girişi Q ve Q' adında da 2 çıkışı bulunur.
Flip-Floplarla tutucular arasındaki benzerlik,
tutucunun da Flip-Flop gibi iki ayrı kararlı durumda bulunabilmesidir.
S R Qn+1 Q'n+1 YORUM
0 0 Qn Q' Tutucu önceki durumunda kalır.
0 1 0 1 Tutucu sıfırlanır.
1 0 1 0 Tutucu kurulur.
1 1 1 1 TANIMSIZ
Doğruluk tablosu yukarıda görüldüğü gibidir.
S=0,R=1 olduğunda sıfırlama, S=1,R=0 olduğunda kurma yapılır.
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.
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
*/
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
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);
?>
<?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);
}
}
?>
<!--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);
}
}
?>
Kaydol:
Kayıtlar (Atom)
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 ...
-
Bu yazımda hobi olarak ilgilendiğim bug bounty'i anlatmaya çalışacağım. Daha sonra bu konu üzerinde kendimizi geliştirmek için neler yap...
-
Flip-Flop doğruluk tabloları girişlerin durumuna bağlı olarak çıkışların ne olması gerektiğini anlatan tablolardır. Kısaca bir doğruluk tabl...