/**
*
* @author Gökhan
*/
import java.io.*;
import javax.swing.*;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
public class DosyaOku extends JFrame implements ActionListener{
JTextArea jtxa;
int i;
DefaultListModel<String> dlm;
JList<String> jlist;
public DosyaOku(){
this.setDefaultCloseOperation(3);
this.setSize(new Dimension(500,500));
this.setLayout(new FlowLayout());
JPanel jpn=new JPanel();
jpn.setPreferredSize(new Dimension(400,400));
dlm = new DefaultListModel<String>();
jlist = new JList(dlm);
JScrollPane jscp = new JScrollPane(jlist);
jscp.setPreferredSize(new Dimension(166, 150));
jpn.add(jscp);
JButton jbtn=new JButton("Dosyayı Göster");
jbtn.setPreferredSize(new Dimension(120,30));
jbtn.addActionListener(this);
jpn.add(jbtn);
this.add(jpn);
this.setVisible(true);
}
public static int satirDondur(){
int sayac=0;
try{
FileInputStream f=new FileInputStream("A.txt");
try (DataInputStream d = new DataInputStream(f)) {
BufferedReader b=new BufferedReader(new InputStreamReader(d));
while(b.readLine()!=null){
sayac++;
}
}
}
catch(Exception e)
{
System.err.println("Hata" + e.getMessage());
}
return sayac;
}
public static void main(String[] args) {
new DosyaOku();
}
@Override
public void actionPerformed(ActionEvent e) {
String [] str=new String[satirDondur()];
try{
FileInputStream f=new FileInputStream("A.txt");
try (DataInputStream d = new DataInputStream(f)) {
BufferedReader b=new BufferedReader(new InputStreamReader(d));
for(i=0;i<str.length;i++){
str[i]=b.readLine();
dlm.addElement(str[i]);
}
}
}
catch(Exception ex)
{
System.err.println("Hata" + ex.getMessage());
}
}
}
Bir önceki yazımızda klasörümüze eklediğimiz bir text dosyamızı nasıl okuyabileceğimizi görmüştük.Şimdi de JList,JScrollPane ve JButton component'leri ile okuduğumuz dosyayı listeliyoruz.Böylece dosya üzerinde silme veya güncelleme işlemleri yapabilir.Veya bu dosyaları kontrollü bir şekilde veritabanına yazabiliriz.
İYİ ÇALIŞMALAR...
SWİNG İLE OKUDUĞUMUZ DOSYAYI GÖRÜNTÜLEME
JAVA-Dosya Okuma
/**
*
* @author Gökhan
*/
import java.io.*;
public class DosyaDonusturucu {
public static int satirDondur(){
int sayac=0;
try{
FileInputStream f=new FileInputStream("A.txt");
try (DataInputStream d = new DataInputStream(f)) {
BufferedReader b=new BufferedReader(new InputStreamReader(d));
while(b.readLine()!=null){
sayac++;
}
}
}
catch(Exception e)
{
System.err.println("Hata" + e.getMessage());
}
return sayac;
}
public static void main(String[] args) {
String [] str=new String[satirDondur()];
try{
FileInputStream f=new FileInputStream("A.txt");
try (DataInputStream d = new DataInputStream(f)) {
BufferedReader b=new BufferedReader(new InputStreamReader(d));
for(int i=0;i<str.length;i++){
str[i]=b.readLine();
System.out.println(str[i]);
}
}
}
catch(Exception e)
{
System.err.println("Hata" + e.getMessage());
}
}
}
Öncelikle oluşturduğumu txt dosyasını java projemize ekledik sonrada txt dosyamızın kaç satırdan oluştuğunu öğrenmek için bir fonksiyon oluşturduk.Bunun nedeni dosyayı okuyacağımız için oluşturacağımız dizinin boyutunu belirlemek.Böylece geriye null değerler dönmeyecektir.Bu yordama gerek kalmadanda array.split kullanarak dosyayı okumamız mümkün...
İYİ ÇALIŞMALAR...
*
* @author Gökhan
*/
import java.io.*;
public class DosyaDonusturucu {
public static int satirDondur(){
int sayac=0;
try{
FileInputStream f=new FileInputStream("A.txt");
try (DataInputStream d = new DataInputStream(f)) {
BufferedReader b=new BufferedReader(new InputStreamReader(d));
while(b.readLine()!=null){
sayac++;
}
}
}
catch(Exception e)
{
System.err.println("Hata" + e.getMessage());
}
return sayac;
}
public static void main(String[] args) {
String [] str=new String[satirDondur()];
try{
FileInputStream f=new FileInputStream("A.txt");
try (DataInputStream d = new DataInputStream(f)) {
BufferedReader b=new BufferedReader(new InputStreamReader(d));
for(int i=0;i<str.length;i++){
str[i]=b.readLine();
System.out.println(str[i]);
}
}
}
catch(Exception e)
{
System.err.println("Hata" + e.getMessage());
}
}
}
Öncelikle oluşturduğumu txt dosyasını java projemize ekledik sonrada txt dosyamızın kaç satırdan oluştuğunu öğrenmek için bir fonksiyon oluşturduk.Bunun nedeni dosyayı okuyacağımız için oluşturacağımız dizinin boyutunu belirlemek.Böylece geriye null değerler dönmeyecektir.Bu yordama gerek kalmadanda array.split kullanarak dosyayı okumamız mümkün...
İYİ ÇALIŞMALAR...
BOOTSTRAP UYGULAMA-1
<!DOCTYPE html>
<html lang="en">
<head>
<!-- Required meta tags -->
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
<!-- Bootstrap CSS -->
<link rel="stylesheet" type="text/css" href="css/fontawesome-all.min.css"/>
<link rel="stylesheet" type="text/css" href="css/bootstrap.min.css"/>
<link rel="stylesheet" type="text/css" href="css/main.css"/>
<link href="https://fonts.googleapis.com/css?family=Indie+Flower" rel="stylesheet">
<link href="https://fonts.googleapis.com/css?family=Caveat" rel="stylesheet">
<title>CODINGISLIFE</title>
</head>
<body>
<section id="cover">
<div class="container">
<div class="row">
<nav class="navbar navbar-toggleable-sm fixed-top navbar-expand-lg navbar-light bg-green">
<a class="navbar-brand" href="#"><img src="img/logo.png" alt="CODINGISLIFE"/></a>
<button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbarNav" aria-controls="navbarNav" aria-expanded="false" aria-label="Toggle navigation">
<span class="navbar-toggler-icon"></span>
</button>
<div class="collapse navbar-collapse justify-content-end" id="navbarNav">
<ul class="navbar-nav">
<li class="nav-item">
<a class="nav-link" href="#">Home <span class="sr-only">(current)</span></a>
</li>
<li class="nav-item">
<a class="nav-link" href="#">Code</a>
</li>
<li class="nav-item">
<a class="nav-link" href="#">About</a>
</li>
<li class="nav-item">
<a class="nav-link " href="#">Contact</a>
</li>
</ul>
</div>
</nav>
</div>
<div class="row text-center">
<div class="col-sm-12">
<h1>CODINGISLIFE</h1>
</div>
<div class="col-sm-12">
<h2>HOW IS IT GOING ?</h2>
</div>
<div class="col-sm-12">
<a href="#"><button type="buton" class="btn btn-secondary">GO TO CODE</button></a>
</div>
</div>
</div>
</section>
<script src="js/jquery-3.3.1.min.js"></script>
<script src="js/bootstrap.min.js"></script>
<script src="js/main.js"></script>
</body>
</html>
-------------------------Main.css------------------------
html,
body,
#cover{
height: 100%;
}
#cover{
background:url('../img/sec.jpg') no-repeat center fixed;
-webkit-background-size:cover;
}
.fixed-top{
max-width: 1140px;
margin:0px auto;
margin-top: 30px;
}
h1{
margin-top:15%;
font-family: 'Indie Flower', cursive;
font-size 45px;
color:#ffffff;
font-style:italic;
}
h2{
font-family: 'Caveat', cursive;
color:#ffffff;
}
.btn-secondary{
background-color: yellow;
color: red;
font-size: 30px;
padding:40x 40px;
}
a.nav-link{
color:white !important;
}
<html lang="en">
<head>
<!-- Required meta tags -->
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
<!-- Bootstrap CSS -->
<link rel="stylesheet" type="text/css" href="css/fontawesome-all.min.css"/>
<link rel="stylesheet" type="text/css" href="css/bootstrap.min.css"/>
<link rel="stylesheet" type="text/css" href="css/main.css"/>
<link href="https://fonts.googleapis.com/css?family=Indie+Flower" rel="stylesheet">
<link href="https://fonts.googleapis.com/css?family=Caveat" rel="stylesheet">
<title>CODINGISLIFE</title>
</head>
<body>
<section id="cover">
<div class="container">
<div class="row">
<nav class="navbar navbar-toggleable-sm fixed-top navbar-expand-lg navbar-light bg-green">
<a class="navbar-brand" href="#"><img src="img/logo.png" alt="CODINGISLIFE"/></a>
<button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbarNav" aria-controls="navbarNav" aria-expanded="false" aria-label="Toggle navigation">
<span class="navbar-toggler-icon"></span>
</button>
<div class="collapse navbar-collapse justify-content-end" id="navbarNav">
<ul class="navbar-nav">
<li class="nav-item">
<a class="nav-link" href="#">Home <span class="sr-only">(current)</span></a>
</li>
<li class="nav-item">
<a class="nav-link" href="#">Code</a>
</li>
<li class="nav-item">
<a class="nav-link" href="#">About</a>
</li>
<li class="nav-item">
<a class="nav-link " href="#">Contact</a>
</li>
</ul>
</div>
</nav>
</div>
<div class="row text-center">
<div class="col-sm-12">
<h1>CODINGISLIFE</h1>
</div>
<div class="col-sm-12">
<h2>HOW IS IT GOING ?</h2>
</div>
<div class="col-sm-12">
<a href="#"><button type="buton" class="btn btn-secondary">GO TO CODE</button></a>
</div>
</div>
</div>
</section>
<script src="js/jquery-3.3.1.min.js"></script>
<script src="js/bootstrap.min.js"></script>
<script src="js/main.js"></script>
</body>
</html>
-------------------------Main.css------------------------
html,
body,
#cover{
height: 100%;
}
#cover{
background:url('../img/sec.jpg') no-repeat center fixed;
-webkit-background-size:cover;
}
.fixed-top{
max-width: 1140px;
margin:0px auto;
margin-top: 30px;
}
h1{
margin-top:15%;
font-family: 'Indie Flower', cursive;
font-size 45px;
color:#ffffff;
font-style:italic;
}
h2{
font-family: 'Caveat', cursive;
color:#ffffff;
}
.btn-secondary{
background-color: yellow;
color: red;
font-size: 30px;
padding:40x 40px;
}
a.nav-link{
color:white !important;
}
Uygulamamızdaki önemli yerler değinelim.İlk olarak section ile başladık çünkü bu uygulamadaki amacımız bir web sitesinin üst kısmını tasarlamak.Daha sonra bunun için konteynır'ı kullandık nedeni belli bir bölge yaratmaktı.Oluşturduğumuz bölgeleri satırlara böldük.Ve en üst tarafta logo ve menü
kısmını tasarlamak için nav etiketini ve gerekli bootstrap.css class'larından faydalandık.Ve daha sonra menumuzu tasarlamak için <li> etiketlerinden faydalandık.Tabi ki burada da bootstraptan faydalandık.Bootstrapsız bu işi yapmaya çalışsaydık,boyutlarından renklerine,renklerinden liste özelliklerine herşeyi ayarlamamız gerekecekti.Size tavsiyem bir önceki yazımızdaki şekilde bootstrap'ı kurup paylaşacağım örnekleri satır satır deneyerek çalıştırıp öğrenmeniz.Giriş düzeyinde anlattım fakat sonraki örneklerde anlatma olmayacak.Önemli olan bu kodları uygulamak.Bootstrap'ı çok iyi bir şekilde öğrenmek istiyorsanız yapmanız gereken tek şey bol örnek.
İYİ ÇALIŞMALAR...
DURUM GEÇİŞ TABLOLARI
Bu yazımızda dün çözdüğümüz örneğin durum geçiş tablosuna göz atacağız.Örneği anlamadan direkt buraya atlamanızı tavsiye etmem.O örnekte durum geçiş şemasını oluşturmuştuk.Bu örnekte ise durum geçiş tablosunu oluşturacağız.
Tablomuzdan kısaca bahsedecek olursak Mevcut durumumuz A=0 B=0' dan başlayalım.Tıpkı bir önceki örnekte olduğu sonraki durumu buluyor.Sonraki durum önceki durum ile aynı idr o durum konumunu koruyordu.Sonraki durum A=0 B=0 konumunu korur.x=1 olduğunda A=0 B=1 01 durumuna geçer.Bu arada Y' değerimizide unutmuyoruz.Anlayacağınız durum geçiş şemasını çizerseniz.Bu tabloyu çıkartmak o kadar da zor değil.Şimdi tek tek A ve B flip flopu için bakalım.
Burada A' x=0'da hangi noktalarda "1" sorusuna cevap arayıp bunları lojik olarak yazacağız.Bunun amacı tabloyu terimler ile ifade edebilmektir.
Bir sonraki yazımızda durum indirgemelere bakmaya çalışacağız.İYİ ÇALIŞMALAR
Tablomuzdan kısaca bahsedecek olursak Mevcut durumumuz A=0 B=0' dan başlayalım.Tıpkı bir önceki örnekte olduğu sonraki durumu buluyor.Sonraki durum önceki durum ile aynı idr o durum konumunu koruyordu.Sonraki durum A=0 B=0 konumunu korur.x=1 olduğunda A=0 B=1 01 durumuna geçer.Bu arada Y' değerimizide unutmuyoruz.Anlayacağınız durum geçiş şemasını çizerseniz.Bu tabloyu çıkartmak o kadar da zor değil.Şimdi tek tek A ve B flip flopu için bakalım.
Burada A' x=0'da hangi noktalarda "1" sorusuna cevap arayıp bunları lojik olarak yazacağız.Bunun amacı tabloyu terimler ile ifade edebilmektir.
Bir sonraki yazımızda durum indirgemelere bakmaya çalışacağız.İYİ ÇALIŞMALAR
ARDIŞIL DEVRE ANALİZİ-2
Bir örnek üzerinden devam edelim.
Örnek
Aşağıda verilen mantık devresi ardışıl bir fonksiyon gerçekleştirmektedir.Devrenin girişi "x" çıkışı "y",durumlar ise "A-B" çiftidir.Durum geçiş şemasını oluşturunuz...
Sorumuzda bize verilen yerler...
Yazımdan dolayı özür diliyorum :) Amacımızın öğrenmek olduğunu düşününce yazının pek öneminin kaldığı söylenemez zaten :)
Çözüm
Öncelikle inceleyeceğimiz 4 durumumuz var.A=0,0,1,1 B=0,1,0,1 değerlerini tek tek incelememiz gerekiyor.Bununla birlikte A=0 B=0 X=0 ve A=0 B=0 X=1 için de ayrı ayrı hesaplamalıyız.Yukarıda yaptığımız tek şey A,B ve X değerlerini yerine koyarak Rb,Sb ve Ra,Sa yı bulmak.Burada bulduğumuz değerlere göre A ve B nin yeni değerlerini buluyoruz.Bu yeni değerlerden durum değişikli olup olmayacağını bulup hangi X ve Y değerlerinde durum değişikliğinde olduğunuda durum dairemizin üzerine yazıyoruz.Örneğin A=0 B=1 Sa=1 Ra=0 ve Sb=0 Rb=1 değerlerini elde ettik.A'nın yeni değeri 1 olacaktır.Çünkü R-S flip flopta set'leme söz konusu.Diğer tarafta B=0 olacaktır.Çünkü bir resetleme söz konusudur.Yeni değerlerimi A=1 B=0 yani 10 durumumuza gideceğiz.Bu duruma hangi X ve Y değerleri ile gittiğimiz okumuzun üzerine yerleştiriyoruz..Birkaç soru çözdükten sonra işiniz gerçekten basit..Bir sonraki yazımızda bu sorunun Durum geçiş tablosunu tasarlayıp bazı işlemler yapacağız.
İYİ ÇALIŞMALAR...
Örnek
Aşağıda verilen mantık devresi ardışıl bir fonksiyon gerçekleştirmektedir.Devrenin girişi "x" çıkışı "y",durumlar ise "A-B" çiftidir.Durum geçiş şemasını oluşturunuz...
Sorumuzda bize verilen yerler...
Yazımdan dolayı özür diliyorum :) Amacımızın öğrenmek olduğunu düşününce yazının pek öneminin kaldığı söylenemez zaten :)
Çözüm
Öncelikle inceleyeceğimiz 4 durumumuz var.A=0,0,1,1 B=0,1,0,1 değerlerini tek tek incelememiz gerekiyor.Bununla birlikte A=0 B=0 X=0 ve A=0 B=0 X=1 için de ayrı ayrı hesaplamalıyız.Yukarıda yaptığımız tek şey A,B ve X değerlerini yerine koyarak Rb,Sb ve Ra,Sa yı bulmak.Burada bulduğumuz değerlere göre A ve B nin yeni değerlerini buluyoruz.Bu yeni değerlerden durum değişikli olup olmayacağını bulup hangi X ve Y değerlerinde durum değişikliğinde olduğunuda durum dairemizin üzerine yazıyoruz.Örneğin A=0 B=1 Sa=1 Ra=0 ve Sb=0 Rb=1 değerlerini elde ettik.A'nın yeni değeri 1 olacaktır.Çünkü R-S flip flopta set'leme söz konusu.Diğer tarafta B=0 olacaktır.Çünkü bir resetleme söz konusudur.Yeni değerlerimi A=1 B=0 yani 10 durumumuza gideceğiz.Bu duruma hangi X ve Y değerleri ile gittiğimiz okumuzun üzerine yerleştiriyoruz..Birkaç soru çözdükten sonra işiniz gerçekten basit..Bir sonraki yazımızda bu sorunun Durum geçiş tablosunu tasarlayıp bazı işlemler yapacağız.
İYİ ÇALIŞMALAR...
ARDIŞIL DEVRE ANALİZİ-1
1-DURUM GEÇİŞ ŞEMASI YÖNTEMİ
2-DURUM GEÇİŞ TABLOSU YÖNTEMİ
3-DURUM DENKLEMLERİ
Sırası ile bu işlemeleri gözden geçirelim...
1-DURUM GEÇİŞ ŞEMASI
Devrenin her bir durumu devre ile durumlar arasındadır.Geçişler ise daireleri birbirine bağlayan yönlü oklar ile gösterilir.Her dairenin içinde ki 2'li sayi dairenin temsil ettiği durumu tanımlar.Geçişleri gösteren oklar üzerine ise söz konusu durum geçişinin hangi girdilerle gerçekleştiği ve çıktının ne olduğu yazılır.Bu gösterim için '/' işareti kullanılır.Kesme işaretinin soluna girdi sağına çıktı yazılır..
Şimdi bir tam toplayıcı devresi üzerinden bellirttiğimiz adımlardan faydalanarak devrenin geçiş şemasını çizelim..
Di eldemizin 0 olduğu,Dj eldemizin 1 olduğu durumdur.İlk satır ile başlayacak olursak bakın A=0,B=0,TOPLAM(SUM)=0 bu durumda elde değerimiz 0 olur.Bu durum Di=0'dan başladı öyle değil mi ? Peki şimdi ne oldu ?Değerimiz 0'dı 0 kaldı.Değerimiz değişmediği için ok'u kendi durumumuza(state) geri döndürüyoruz.Eldemizin 1 olduğu durumlarda da Dj durumumuza geçiyoruz.Yazım kuralımıza bakacak olursak örneğin 1,1/0 A=1 B=1 Toplam=0 Elde=1 olduğundan durum değiştirdik..Otomat dersi alan aslında bunun bir nevi mealy makinesi olduğunu görmüştür.Yukarıda da belirttiğimiz gibi ilk giriş/çıkış şeklinde yazılıyor.
Yazılarımda normal konuşma dilini kullandığımdan noktalama işaretlerini gözden kaçırıyor olabilirim.Bu gibi durumları iletişimden(footer bölümünden) bana bildirebilirseniz mutlu olurum.
İYİ ÇALIŞMALAR...
2-DURUM GEÇİŞ TABLOSU YÖNTEMİ
3-DURUM DENKLEMLERİ
Sırası ile bu işlemeleri gözden geçirelim...
1-DURUM GEÇİŞ ŞEMASI
Devrenin her bir durumu devre ile durumlar arasındadır.Geçişler ise daireleri birbirine bağlayan yönlü oklar ile gösterilir.Her dairenin içinde ki 2'li sayi dairenin temsil ettiği durumu tanımlar.Geçişleri gösteren oklar üzerine ise söz konusu durum geçişinin hangi girdilerle gerçekleştiği ve çıktının ne olduğu yazılır.Bu gösterim için '/' işareti kullanılır.Kesme işaretinin soluna girdi sağına çıktı yazılır..
Şimdi bir tam toplayıcı devresi üzerinden bellirttiğimiz adımlardan faydalanarak devrenin geçiş şemasını çizelim..
Di eldemizin 0 olduğu,Dj eldemizin 1 olduğu durumdur.İlk satır ile başlayacak olursak bakın A=0,B=0,TOPLAM(SUM)=0 bu durumda elde değerimiz 0 olur.Bu durum Di=0'dan başladı öyle değil mi ? Peki şimdi ne oldu ?Değerimiz 0'dı 0 kaldı.Değerimiz değişmediği için ok'u kendi durumumuza(state) geri döndürüyoruz.Eldemizin 1 olduğu durumlarda da Dj durumumuza geçiyoruz.Yazım kuralımıza bakacak olursak örneğin 1,1/0 A=1 B=1 Toplam=0 Elde=1 olduğundan durum değiştirdik..Otomat dersi alan aslında bunun bir nevi mealy makinesi olduğunu görmüştür.Yukarıda da belirttiğimiz gibi ilk giriş/çıkış şeklinde yazılıyor.
Yazılarımda normal konuşma dilini kullandığımdan noktalama işaretlerini gözden kaçırıyor olabilirim.Bu gibi durumları iletişimden(footer bölümünden) bana bildirebilirseniz mutlu olurum.
İYİ ÇALIŞMALAR...
BOOTSTRAP NEDİR ? NASIL KULLANILIR ?
Twitter Bootstrap açık kaynak kodlu, web sayfaları veya uygulamaları geliştirmek için kullanılabilecek araçlar bütünü ve önyüz çatısı. Bootstrap, web sayfaları veya uygulamalarında kullanılabilecek, HTML ve CSS tabanlı tasarım şablonlarını içerir.Bootstrap ile çok basit şekilde profesyonel web sitesi şablonları hazırlayabilirsiniz..
Şimdi bootstrap framework'unu nasıl kullanırız ona değinelim öncelikle buradan bootstrap'ı indiriyoruz.
Daha sonra jquery'i indirip bootstrap'ı indirdiğimiz klasöre atıyoruz.Jquery'de bir javascript kütüphanesidir.Tasarımlarımızı yaparken bize yardımcı olacak.Onuda buradan indirebilirsiniz.
Şimdide nasıl kullanacağımıza bir göz atalım.
Klasörümüz bu şekilde olacak bootstrap klasörünün içinde bir index.html ve css dosyasının içinde main.css adında iki dosyayıda bizim oluşturmamız gerekiyor.Projemizi index.html üzerine ve bootstrap'ın etkisiz olduğu yerde kendi yazdığımız css kodlarını barındıracak bir main.css dosyası..
Daha sonra bu dosyayı brackets'tan açıp kodlarımızı yazmaya başlayalım..
NOT ! ! ! BOOTSTRAP'I öğrenmek için temel bir html ve css bilgisi gerekmektedir.
Yukarıda dosyalarımızı açıp burada index.html sayfasına ilgili css ve script class'larını ekledik.Bildiğiniz üzere css ve script dosyalarımızı index.html sayfasına import etmez isek bu dosyaları kullanamayacağız..
Şimdilik kısa bir giriş yaptık.Merak etmeyin bootstrap'tı en ince ayrıntısına kadar öğreneceksiniz...
İYİ ÇALIŞMALAR...
PHP İLE HAVA DURUMU BOTU
<?php
$sehir=@file_get_contents("http://www.nkfu.com/turkiye-81-il-listesi/");
preg_match_all('@<td width="143">(.*?)</td>@si',$sehir,$sehirler);
function getir($key){
if(isset($_POST[$key]))
return $_POST[$key];
}
if(count($_POST)>0){
$sehirim=getir("sehirr");
$degisecek=["ğ","ı","ş","I","ö","Ç","ç","ü","Ş"];
$yeni=["g","i","s","i","o","C","c","u","S"];
$sehirim=str_replace($degisecek,$yeni,$sehirim);
$veri=@file_get_contents("http://www.mynet.com/havadurumu/asya/turkiye/".$sehirim."");
preg_match_all('@<span class="hvDeg1">(.*?)</span>@si',$veri,$enYuksek);
preg_match_all('@<span class="hvDeg2">(.*?)</span>@si',$veri,$enDusuk);
preg_match_all('@<span class="hvMood">(.*?)</span>@si',$veri,$hvMood);
preg_match_all('@<span class="hvDay">(.*?)</span>@si',$veri,$hvGun); }
?>
<html>
<head>
<meta charset="utf-8">
</head>
<body>
<form method="POST" >
<select name="sehirr" >
<?php for($i=0;$i<=81;$i++) echo "<option value='".$sehirler[0][$i] = strip_tags($sehirler[0][$i])."'>".$sehirler[0][$i]."</option>";?>
</select>
<input type="submit" value="Göster"></br></br>
</form>
<table border="4" style="margin-left:200px">
<tr><td colspan="6" style="text-align:center"><?php $s=strtoupper($sehirim); echo $s;?> 5 GÜNLÜK HAVA DURUMU</td>
<tr>
<td>GÜNLER</td>
<td><?php echo @$hvGun[0][0]?></td>
<td><?php echo @$hvGun[0][1]?></td>
<td><?php echo @$hvGun[0][2]?></td>
<td><?php echo @$hvGun[0][3]?></td>
<td><?php echo @$hvGun[0][4]?></td>
</tr>
<tr>
<td>DURUM</td>
<td><?php
$durum=strip_tags(str_replace($degisecek,$yeni,$hvMood[0][0]));
if($durum=="Yagisli") echo "<img src='rain.png'/>";
else if($durum=="Parcali Bulutlu") echo "<img src='parcali.png'/>";
else if ($durum=="Kar Yagisli") echo "<img src='kar.png'/>";
else if ($durum=="Hafif Kar Yagisli") echo "<img src='kar.png'/>";
else if ($durum=="Cok Bulutlu") echo "<img src='bulutlu.png'/>";
else if ($durum=="Gunesli") echo "<img src='gunesli.png'/>";
?></br>
<?php echo @$hvMood[0][0] ?>
</td>
<td><?php
$durum=strip_tags(str_replace($degisecek,$yeni,$hvMood[0][1]));
if($durum=="Yagisli") echo "<img src='rain.png'/>";
else if($durum=="Parcali Bulutlu") echo "<img src='parcali.png'/>";
else if ($durum=="Kar Yagisli") echo "<img src='kar.png'/>";
else if ($durum=="Hafif Kar Yagisli") echo "<img src='kar.png'/>";
else if ($durum=="Cok Bulutlu") echo "<img src='bulutlu.png'/>";
else if ($durum=="Gunesli") echo "<img src='gunesli.png'/>";
?></br><?php echo @$hvMood[0][1]?></td>
<td><?php
$durum=strip_tags(str_replace($degisecek,$yeni,$hvMood[0][2]));
if($durum=="Yagisli") echo "<img src='rain.png'/>";
else if($durum=="Parcali Bulutlu") echo "<img src='parcali.png'/>";
else if ($durum=="Kar Yagisli") echo "<img src='kar.png'/>";
else if ($durum=="Hafif Kar Yagisli") echo "<img src='kar.png'/>";
else if ($durum=="Cok Bulutlu") echo "<img src='bulutlu.png'/>";
else if ($durum=="Gunesli") echo "<img src='gunesli.png'/>";
?></br><?php echo @$hvMood[0][2]?></td>
<td><?php
$durum=strip_tags(str_replace($degisecek,$yeni,$hvMood[0][3]));
if($durum=="Yagisli") echo "<img src='rain.png'/>";
else if($durum=="Parcali Bulutlu") echo "<img src='parcali.png'/>";
else if ($durum=="Kar Yagisli") echo "<img src='kar.png'/>";
else if ($durum=="Hafif Kar Yagisli") echo "<img src='kar.png'/>";
else if ($durum=="Cok Bulutlu") echo "<img src='bulutlu.png'/>";
else if ($durum=="Gunesli") echo "<img src='gunesli.png'/>";
?></br><?php echo @$hvMood[0][3]?></td>
<td><?php
$durum=strip_tags(str_replace($degisecek,$yeni,$hvMood[0][4]));
if($durum=="Yagisli") echo "<img src='rain.png'/>";
else if($durum=="Parcali Bulutlu") echo "<img src='parcali.png'/>";
else if ($durum=="Kar Yagisli") echo "<img src='kar.png'/>";
else if ($durum=="Hafif Kar Yagisli") echo "<img src='kar.png'/>";
else if ($durum=="Cok Bulutlu") echo "<img src='bulutlu.png'/>";
else if ($durum=="Gunesli") echo "<img src='gunesli.png'/>";
?></br><?php echo @$hvMood[0][4]?></td>
</tr>
<tr>
<td>EN YÜKSEK SICAKLIK</td>
<td><?php echo @$enYuksek[0][0]?></td>
<td><?php echo @$enYuksek[0][1]?></td>
<td><?php echo @$enYuksek[0][2]?></td>
<td><?php echo @$enYuksek[0][3]?></td>
<td><?php echo @$enYuksek[0][4]?></td>
</tr>
<tr>
<td>EN DÜŞÜK SICAKLIK
<td><?php echo @$enDusuk[0][0]?></td>
<td><?php echo @$enDusuk[0][1]?></td>
<td><?php echo @$enDusuk[0][2]?></td>
<td><?php echo @$enDusuk[0][3]?></td>
<td><?php echo @$enDusuk[0][4]?></td>
</tr>
</table>
</body>
</html>
BELLEK ÇEŞİTLERİ (SALT-OKU BELLEKLER)
1)SALT OKU BELLEKLER
1.1)Salt Oku Bellek (ROM)
Bu bellek tür bellek türene bilgi yazılması, sadece üretim sırasında yapılabilir.Yarı iletken malzemeden bellek yapılırken kullanılan maskeler,belleğin içermesi gereken bilgileri oluşturacak şekilde hazırlanır.
1.2)Programlanabilir Salt Oku Bellek (PROM)
Üretildikleri an bütün gözeleri 0 veya 1 ile yüklü belleklerdir.Her bellek gözesi içinde bir sigorta bulunmaktadır.Bu sigortalar özel bir yöntem ve aygıt aracılığı ile arttırılabilir.Bir gözenin sigortasının atmış olması o gözenin konumunun değişmesi demektir.
1.3)Silinebilir Programlanabilir Salt Oku Bellek
Defalarca okunup silinebilen bu bellekler 3' e ayrılır.Şimdi bunları gözden geçirelim..
1.3.1)EPROM
EPROM'lar üretildiklerinde tüm bellek gözeleri 1 konumundadır.1 konumunda olan gözelerden istenenler,özel yöntemler ve aygıtlarla 0 konumuna geçebilir.Mor ötesi ışığın yarı iletken üzerine belli bir süre tutulması sonunda,tüm gözeler 1 konumuna gelir.Böylece EPROM silinmiş olur.Bu silinme tek bir göze yapılamaz.Tüm bellek silinmiş olur.Tekrar programlanma yeteneği olduğundan ROM'dan pahalıdır.
1.3.2)EEPROM
Silinebilir ve programlanabilir belleklerin en gelişmiş olanı,elektriksel olarak silinebilen salt oku belleklerdir.Bu belleklerde,bellek gözlerine istenen bir değer yazılabilir ve yazılan bu bilgi yeni bir yazmaya kadar kalır.Bellek gözesine yazılan bilgi 0 ve 1'lerden oluşabilir.EEPROM'un silinmesi tüm gözelerin 0'a bağlı olmasıdır.
1.3.3)FLASH
EEPROM'un özel bir biçimidir.Flash belleğe yazmadan önce,veri yazılacak bellek bölgesinin silinmesi gerekir.Daha sonra, yazılacak veriler küme halinde yazılır...
1.1)Salt Oku Bellek (ROM)
Bu bellek tür bellek türene bilgi yazılması, sadece üretim sırasında yapılabilir.Yarı iletken malzemeden bellek yapılırken kullanılan maskeler,belleğin içermesi gereken bilgileri oluşturacak şekilde hazırlanır.
1.2)Programlanabilir Salt Oku Bellek (PROM)
Üretildikleri an bütün gözeleri 0 veya 1 ile yüklü belleklerdir.Her bellek gözesi içinde bir sigorta bulunmaktadır.Bu sigortalar özel bir yöntem ve aygıt aracılığı ile arttırılabilir.Bir gözenin sigortasının atmış olması o gözenin konumunun değişmesi demektir.
1.3)Silinebilir Programlanabilir Salt Oku Bellek
Defalarca okunup silinebilen bu bellekler 3' e ayrılır.Şimdi bunları gözden geçirelim..
1.3.1)EPROM
EPROM'lar üretildiklerinde tüm bellek gözeleri 1 konumundadır.1 konumunda olan gözelerden istenenler,özel yöntemler ve aygıtlarla 0 konumuna geçebilir.Mor ötesi ışığın yarı iletken üzerine belli bir süre tutulması sonunda,tüm gözeler 1 konumuna gelir.Böylece EPROM silinmiş olur.Bu silinme tek bir göze yapılamaz.Tüm bellek silinmiş olur.Tekrar programlanma yeteneği olduğundan ROM'dan pahalıdır.
1.3.2)EEPROM
Silinebilir ve programlanabilir belleklerin en gelişmiş olanı,elektriksel olarak silinebilen salt oku belleklerdir.Bu belleklerde,bellek gözlerine istenen bir değer yazılabilir ve yazılan bu bilgi yeni bir yazmaya kadar kalır.Bellek gözesine yazılan bilgi 0 ve 1'lerden oluşabilir.EEPROM'un silinmesi tüm gözelerin 0'a bağlı olmasıdır.
1.3.3)FLASH
EEPROM'un özel bir biçimidir.Flash belleğe yazmadan önce,veri yazılacak bellek bölgesinin silinmesi gerekir.Daha sonra, yazılacak veriler küme halinde yazılır...
BELLEK
Bilgisayarın çalışmasına yön verecek programı ve programın üzerinde çalışacağı verileri saklamak için bellek kullanılmaktardır.
Eskiden kullanılan bir sürü bellek çeşidi yerini şimdiki zamanlarda kullanılan yarıiletken belleklere bıraktı.Yarı iletken bellekler eskiden kullanılan çekirdek belleklere göre çok daha ucuz ve kullanışlıdır.Yarı iletken bellekler kullanılırken enerjiye ihtiyaç duyarlar ve enerjileri kesilirse çalışmazlar.Bu nedenle yani bilgileri tutmak amacıyla iki tür bellek geliştirilmiştir.
1-Salt Oku Bellekler
2-Oku/Yaz Bellekler
1-Salt Oku Bellekler
Bilgisayarda sürekli kalması istenen bilgilerin saklanması için kullanılan bellek türleridir.Özel amaçlı ve sabit programla çalışan bilgisayarların programları ile bilgisayar açıldığında kullanıcıya hizmet verecek yol verme programları bu tür belleklere yazılmalıdır.Şimdi diyeceksiniz ki madem bu bellekler salt oku bellek biz bunlara nasıl program yazabiliyoruz.Bunlar üretilirken bu programlar özel araçlarla yazılıyor.Anlayacağınız bilgisayarınızın açılması görüntünün ekrana gelmesi klavye tuşlarının algılanması bunlar bedavadan olan şeyler değil.İşte bu gibi programları bilgisayar üreticisi bu bellekleri üretirken ayarlıyor.
2-Oku/Yaz Bellekler
Bilgisayar içindeki kullanıcı programının yazılacağı veya verilerin yazılacağı bellek türü oku/yaz bellektir.İşte bu bellekler biz kullanıcılara hitap ediyor..
Bir sonraki post'umuzda bu belleklerin çeşitlerini inceleyeceğiz.
İYİ ÇALIŞMALAR...
Eskiden kullanılan bir sürü bellek çeşidi yerini şimdiki zamanlarda kullanılan yarıiletken belleklere bıraktı.Yarı iletken bellekler eskiden kullanılan çekirdek belleklere göre çok daha ucuz ve kullanışlıdır.Yarı iletken bellekler kullanılırken enerjiye ihtiyaç duyarlar ve enerjileri kesilirse çalışmazlar.Bu nedenle yani bilgileri tutmak amacıyla iki tür bellek geliştirilmiştir.
1-Salt Oku Bellekler
2-Oku/Yaz Bellekler
1-Salt Oku Bellekler
Bilgisayarda sürekli kalması istenen bilgilerin saklanması için kullanılan bellek türleridir.Özel amaçlı ve sabit programla çalışan bilgisayarların programları ile bilgisayar açıldığında kullanıcıya hizmet verecek yol verme programları bu tür belleklere yazılmalıdır.Şimdi diyeceksiniz ki madem bu bellekler salt oku bellek biz bunlara nasıl program yazabiliyoruz.Bunlar üretilirken bu programlar özel araçlarla yazılıyor.Anlayacağınız bilgisayarınızın açılması görüntünün ekrana gelmesi klavye tuşlarının algılanması bunlar bedavadan olan şeyler değil.İşte bu gibi programları bilgisayar üreticisi bu bellekleri üretirken ayarlıyor.
2-Oku/Yaz Bellekler
Bilgisayar içindeki kullanıcı programının yazılacağı veya verilerin yazılacağı bellek türü oku/yaz bellektir.İşte bu bellekler biz kullanıcılara hitap ediyor..
Bir sonraki post'umuzda bu belleklerin çeşitlerini inceleyeceğiz.
İYİ ÇALIŞMALAR...
BUYRUKLAR
Bilgisayarın nasıl çalıştığını anlatmak üzere verilen örnekten de anlaşıldığı gibi,belli işlemleri bilgisayara yaptırabilmek için,işlemler adımlara ayrıştırılmaktadır.Bilgisayara neyi nasıl yapacağını yani nasıl çalışacağını anlatan adımlara buyruk diyoruz.Buyrukların tarihsel gelişimi üzerinde fazla durmak istemiyorum.Kısaca deyinelim...
Buyruklar başlangıçta 5 bölümden oluşyordu.Bu bölümler Komut-1.İşlenen adresi-2.işlenen adresi-Sonucun adresi ve bir sonraki buyruğun adresi.Bir önceki örneğimizi hatırlayacak olursak X ile Y yi toplamıştık.Bakın yukarıdaki 5 bölümde adımlar şu şekilde ilerliyor.X ve Y toplanıyor sonuc başka bir yere yazılıyor.Daha sonra kalınan buyruk adresinde yola devam ediliyor.Şimdi biz bu işlemleri sadeleştirebildiğimiz kadar sadeleştirip en yalın buyruk tanımını bulalım...
1-İlk olarak belleğimizdeki buyrukların sırayla çalıştığını var sayalım.Böylece bir sonraki buyruğun adresini tutmak zorunda kalmayacağız.
2-X ve Y 'yi toplayıp Z'ye yazdık.Öyle değil mi? peki ya X+Y işlemini x veya y register'ına yazamaz mıyız ?Böylece Sonucun adresine de gerek kalmadı...
3-Bu adımda devreye karşımıza ACC (akümülatör) çıkıyor.Bu X ve Y sayılarının bir tanesini orada depolayabiliriz o halde.Elimizde komut satırımız ACC ve X kaldı.Buyruğumuzun son hali budur.
KOMUT-KÜTÜK ADI-İŞLENEN ADRESİ
Günümüzde de sıfır,bir ve iki adresli buyruklar birlikte kullanılmaktadır...
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...