Teknolojinin Bilimsel İlkeleri (Donanım)

BİLGİSAYAR

Verileri depolayan, veriler üzerinde aritmetiksel ve mantıksal işlemler yapan ve sonuçları gösteren elektronik ve mekanik cihazlardır. Günümüzde birbirleriyle bağlantılı olarak iletişim aracı görevini de üstlenirler. Temel olarak donanım ve yazılım olmak üzere iki öğeden oluşurlar.

Donanım (Hardware)

Bilgisayarın elektronik, mekanik ve fiziksel bileşenleridir. Donanımlar işlevlerine göre merkezi, giriş, çıkış veya giriş/çıkış(hem giriş hem de çıkış) donanımları olarak sınıflandırılırlar.

Merkezi donanımlar: Anakart, işlemci, RAM
Giriş donanımları:  Klavye, fare, tarayıcı, web kamerası, mikrofon, grafik tablet vb.
Çıkış donanımları: Monitör(ekran), projeksiyon cihazı, yazıcı, hoparlör vb.
Giriş/Çıkış donanımları: HDD, SSD, Dokunmatik ekran, kombo yazıcı/tarayıcı, flash bellek vb.

 

Temel Donanımlar

CPU (Central Processing Unit – Merkezi İşlem Birimi – Mikro işlemci – İşlemci)
Bilgisayarda tüm verilerin işlendiği, tüm süreçlerin denetlendiği ve yönetildiği en merkezi birimdir. Bilgisayarın en önemli bileşenidir. Anakarta işlemci soketi ile yerleştirilir. Yüksek hızlarda çalıştığı için çok ısınır, dolayısıyla soğutucu metal parçalara ve fana ihtiyaç duyar.

 

Anakart (Mainboard)
Bilgisayarın kasa içindeki veya dışındaki tüm  bileşenlerini birleştiren ana elektronik devredir. Üzerine diğer tüm parçalar çeşitli bağlantı noktaları üzerinden bağlanır. Anakart üzerindeki bağlantı noktaları türleri:

Soket, anakarta paralel takılan devre bağlantı alanı
Slot, anakarta dik takılan devre bağlantı alanı
Port, anakarta bir kablo veya kablo grubu ucundaki bir jack(cak veya konektör) ile yapılan bağlantı alanı

Donanım bileşenleri anakarta olan bağlantısına göre şöyle sınıflandırılırlar:
Dahili (Internal): Kasa içindeki donanımlar
Harici (External): Kasa dışındaki donanımlar
Tümleşik (Onboard) Anakart devresi üzerinde bütünleşik (ayrılamaz) olarak bulunan bileşenler.

Bilgisayarın değiştirilebilecek temel parçalarının min. ve maks. kapasitelerini anakart belirler. Parça değişimi veya ilavesi ile yapılan donanımsal iyileştirmelere upgrade (donanımsal güncelleme) adı verilir. Taşınabilir bilgisayarların çoğu bileşeni onboard (tümleşik) olduğundan upgrade imkanları kısıtlıdır.

 

RAM
Bilgisayarda sadece o esnada çalışan uygulamaların yüklendiği geçici (elektrik kesildiğinde silinen) hafızalardır. Kalıcı belleklere göre daha düşük kapasiteli ancak hızlıdırlar. Elektronik olarak imal edilen chipler(entegre) ve bunların yerleştirildiği kart şeklindedir. Anakart üzerinde işlemci soketinin yakınındaki RAM slotlarına takılırlar.

 

HDD (Hard Disk Drive – Sabit Disk Sürücü)
Bilgisyara yüklenmiş tüm programların, çeşitli programlarla oluşturulup kaydedilmiş belgelerin, resim, müzik gibi arşivlenmiş dosyaların tutulduğu yüksek kapasiteli kalıcı hafızalardır. Verileri özel alaşımlı diskler üzerine okuma/yazma kafası adı verilen bir mekanizma ile manyetik olarak yazar ve okurlar; bu nedenle yavaş çalışırlar. Dahili olanları anakarta SATA portu üzerinden kabloyla bağlanırlar. Harici olanları USB, e-SATA vb. portlarla anakarta dışarıdan bağlanırlar.

 

SSD (Solid State Disk – Katı Hal Diskleri)
Günümüzde HDD’lere alternatif olarak aynı işi görmek üzere üretilmişlerdir. Farkları üretim teknolojilerinin tamamen elektronik olması ve böylece HDD’lere göre daha hızlı çalışmalarıdır. Ancak HDD’lere göre kapasiteleri düşük ve maliyetleri fazladır. Anakarta aynen HDD’ler gibi SATA (dahili), USB veya e-SATA (harici) portları üzerinden kabloyla bağlanırlar.

 

ROM (Read Only Memory – Yalnız okunabilir bellek)
Anakart üzerinde ilk açılışta çalışan temel programın (BIOS) tutulduğu entegre bir kalıcı hafızadır. BIOS programı hiçbir program yüklenmeden ilk açılışta devreye girip sistemin çalışmasını test eder bu işleme POST denir. Ardından setup ayarlarını uygulayarak sistemi işletim sistemine devreder. ROM (Yalnız okunabilir bellek) adını almasına rağmen günümüzdeki çeşitlerinde (Flash ROM) içine yazılabilmektedir. Ancak içine yazması yavaş, zor ve risklidir bu işleme BIOS güncelleme denir. Okuması kolaydır, zira bilgisayarın her açılışda içindeki  program okunarak çalıştırılır. Riskli yazma işlemine girmeden değiştirilen setup ayarları ve sürekli değişen sistem saat/tarih bilgisi bu entegrenin içinde RAM gibi çalışan özel bir alana yazılır. Ancak bu alanın sürekli elektrikle beslenmesi gerekir. Bunun için anakart üzerindeki bir pille (BIOS pili, CR2032) besleme sağlanmış olur.

 

CD/DVD/BD Sürücüler
Verileri, belgeleri vb. birden fazla bilgisayara aktarmak veya arşivlemek için kullanılan taşınabilir optik diskleri okuyan (veya bazılarında yazan) donanım bileşenleridir. Veriler sürücüden çıkarılabilir diskler üzerine lazer ışığı yardımıyla yazılır ve okunurlar; bu nedenle optik (ışıkla iş gören) hafıza olarak sınıflandırılırlar. Veri yazamada ve okumada farklı lazer teknlojileri kullanılarak sırasıyla CD, DVD, BD çeşitleri geliştirilmiştir.

 

Bellek
Verilerin geçici veya kalıcı olarak tutulduğu  bileşenlerdir.

Geçici bellek: fiziksel bellek(sistem belleği/RAM), ön bellek(cache) gibi bilgilerin yalnızca çalışma anında tutulduğu hafızalardır.
Kalıcı bellek: HDD, SSD, ROM gibi bilgisayar kapatıdığında içeriği silinmeyen hafızalardır.

Dahili bellekler (Kasanın içinde): HDD, SSD, RAM, İşlemcinin içindeki bellekler (L1 ve L2 cache (önbellekler) ve Register (Kaydedici))
Harici bellekler (Taşınabilir): Flash bellek, taşınabilir disk, CD/DVD/BD gibi verilerin bir bilgisayardan diğerine aktarılabilmesini sağlayan kalıcı belleklerdir.

Dahili Bellekler kapasitelerine göre (Büyükten küçüğe): HDD, SSD, RAM, L2 Cache, L1 Cache, Register

Dahili Bellekler hızlarına göre (Hızlıdan yavaşa): Register, L1 Cache, L2 Cache, RAM, SSD, HDD

Üretim teknolojisine göre belleklerin sınıflandırılması:
Elektronik bellekler (SSD, RAM, ROM, Flash Bellek ve hafıza kartları),
Manyetik bellekler (HDD),
Optik bellekler (CD, DVD, BD)

Sanal bellek: RAM’in yetersiz kaldığı durumlarda HDD, SSD veya Flash belleklerin bir kısmının RAM gibi kullanılması ile oluşturulan takviye belleklerdir.

Yazılım (Program, Software)

Donanımların neyi nasıl yapacağını düzenleyen komutlar topluluğudur. Yazılım türleri:

Sistem yazılımı (işletim sistemi)
Bilgisayarın çalışmasını sağlayan, donanımlarla diğer yazılımlar arasında iletişimi gerçekleştiren ana programdır (Windows, Linux, MacOS vb.).

Uygulama yazılımı (Paket yazılım)
Bilgisayarda istenilen işleri yapmada kullanılan amaca özel programlardır (Media Player, Word, Photoshop,  Acrobat Reader, Chrome vb.).

Sürücü yazılımı (Driver software)
Farklı üreticiler tarafından üretilen donanımların özelliklerini işletim sistemine tanıtmak için yüklenen özel programlardır (Ekran kartı sürücüsü, ses kartı sürücüsü vb.). Yeni bir donanım takıldığında veya işletim sistemi yeni kurulduğunda sürücülerin yüklenmesi gerekir. Ancak sürücüler yüklendikten sonra ilgili donanım tüm özellikleriyle kullanılabilir.

 

Mayın Tarlası Örnek Uygulaması

Mayın tarlası örneği kodları:


Button[,] b = new Button[10, 10];
        int[,] mayin;
        int mayin_adet;

        private void Form1_Load(object sender, EventArgs e)
        {
           mayin = new int[b.GetLength(0), b.GetLength(1)];
            /// mayın üretme 
           mayin_adet = b.Length/4;
            Random r=new Random();
            for (int i = 0; i < mayin_adet; i++)
            {
                int sat=r.Next(mayin.GetLength(0));
                int sut=r.Next(mayin.GetLength(1));
                if(mayin[sat,sut]==-1)
                {
                    i--;
                continue;
                }
                mayin[sat,sut ] = -1;
                adet_yaz(sat,sut);
            }

            for (int i = 0; i < b.GetLength(0); i++)
            {
                for (int j = 0; j < b.GetLength(1); j++)
                {
                    b[i, j] = new Button();
                    b[i, j].Name = "b" + i + "_" + j;
                    //b[i, j].Text = mayin[i, j].ToString();
                    b[i, j].Width = 50;
                    b[i, j].Height = 50;
                    b[i, j].Left = j * b[i, j].Width;
                    b[i, j].Top = i * b[i, j].Height;
                    b[i, j].Click += new EventHandler(btn_tiklanidi);//olay tanimlama
                    b[i, j].MouseDown += b_tik;
                        Controls.Add(b[i, j]);
                }
            }
        }

        void b_tik(object sender, MouseEventArgs e)
        {
            if (e.Button == MouseButtons.Right && (sender as Button).Text == "P") (sender as Button).Text = "";
            else if (e.Button == MouseButtons.Right) (sender as Button).Text = "P";
        }



        void btn_tiklanidi(object sender, EventArgs e)
        {
            string[] bno=(sender as Button).Name.Substring(1).Split('_');
            int i = Convert.ToInt32(bno[0]);
            int j = Convert.ToInt32(bno[1]);
            if (mayin[i, j] != -1)
            {
                if (mayin[i, j] != 0) b[i, j].Text = mayin[i, j].ToString();
                else etrafi_bosalt(i,j);
                b[i, j].Enabled = false;
            }
            else {
                hepsini_ac();
            }
        }

        void adet_yaz(int sat, int sut)
        {
            int sat_bas = (sat == 0) ? 0 : (sat - 1);
            int sat_bit = (sat == (mayin.GetLength(0) - 1)) ? (mayin.GetLength(0) - 1) : (sat + 1);
            int sut_bas = (sut == 0) ? 0 : (sut - 1);
            int sut_bit = (sut == (mayin.GetLength(1) - 1)) ? (mayin.GetLength(1) - 1) : (sut + 1);

            for (int i = sat_bas; i <= sat_bit; i++)
            {
                for (int j = sut_bas; j <= sut_bit; j++)
                {
                    if (mayin[i, j] != -1) mayin[i, j]++;
                }
            }
        }

        void hepsini_ac()
        {
            for (int i = 0; i < b.GetLength(0); i++)
            {
                for (int j = 0; j < b.GetLength(1); j++)
                {
                    if (mayin[i, j] == -1) b[i, j].Text = "*";
                    else if (mayin[i, j] != 0) b[i, j].Text = mayin[i, j].ToString();

                    b[i, j].Enabled = false;
                }
            }
        }

        void etrafi_bosalt(int sat,int sut)
        {
            b[sat, sut].Text = "x";
            int sat_bas = (sat == 0) ? 0 : (sat - 1);
            int sat_bit = (sat == (mayin.GetLength(0) - 1)) ? (mayin.GetLength(0) - 1) : (sat + 1);
            int sut_bas = (sut == 0) ? 0 : (sut - 1);
            int sut_bit = (sut == (mayin.GetLength(1) - 1)) ? (mayin.GetLength(1) - 1) : (sut + 1);

            for (int i = sat_bas; i <= sat_bit; i++)
            {
                for (int j = sut_bas; j <= sut_bit; j++)
                {
                    if (b[i,j].Text=="x") continue;
                    if (mayin[i, j] != 0) b[i, j].Text = mayin[i, j].ToString();
                    else etrafi_bosalt(i, j);
                    b[i, j].Enabled = false;

                }
            }
            b[sat, sut].Text = "";
        }

Animasyon Teknikleri 2 Arasınav Uygulaması

2013 2014 Öğretim yılı bahar dönemi Bil.Des.Tas. ve Ani. Programın Animasyon Teknikleri 2 dersi uygulama sınavı .fla dosyası için tıklayınız.

anim tekn 2 vize

Uygulama kodları:

var firla:Boolean = false;
var hiz:int = 10;
var topyon:int = hiz;
this.stop();

addEventListener(Event.ENTER_FRAME, fl_EnterFrameHandler);

function fl_EnterFrameHandler(event:Event):void
{
	top.x +=  topyon;
	top.rotation +=  topyon;
	if (firla)
	{
		ci.y -=  hiz;
	}
	if (top.hitTestObject(tsac) || top.hitTestObject(tsoc))
	{
		topyon *=  -1;
	}
	if (top.hitTestPoint(ci.x,ci.y,true))
	{
		gotoAndPlay("bitti");
	}
	if (ci.hitTestObject(usc))
	{
		firla = false;
		ci.x = uc.x;
		ci.y = uc.y;
	}
}


stage.addEventListener(KeyboardEvent.KEY_DOWN, fl_KeyboardDownHandler);

function fl_KeyboardDownHandler(event:KeyboardEvent):void
{
	if (event.keyCode == Keyboard.LEFT)
	{
		uc.x -=  hiz;
	}
	else if (event.keyCode==Keyboard.RIGHT)
	{
		uc.x +=  hiz;
	}
	else if (event.keyCode==Keyboard.SPACE)
	{
		firla = true;

	}
	if (uc.hitTestObject(sac))
	{
		uc.x -=  hiz;
	}
	else if (uc.hitTestObject(soc))
	{
		uc.x +=  hiz;

	}
	if (! firla)
	{
		ci.x = uc.x;
	}
}

Döngü İstisna Komutları

İki farklı istisna komutu vardır.  Bunlar;
a) break;
b) continue;
a) break;   : Bu komut her döngüde kullanılabilir. Kullanıldığı yerde döngüyü kırar. Döngü tamamen sonlandırılır.
b) continue;  : Bu komut döngüyü tamamen sonlandırmaz; ancak döngünün o andaki çevrimini sonlandırır ve sonraki çevrime geçer (yani sadece çalıştığı andan itibaren aynı bloktaki kalan komutları sadece o anki çevrim için atlamış olur).
Not: Her iki döngü istisna komutu da koşula bağlı olarak döngü bloğu içinde kullanılmalıdır.
Örnek Kullanımı
Soru: 1 , 26 arası rasgele 10 adet sayıyı yazdıran, oluşturulan sayılar 3′ün katı olmayacak ve sayılardan biri 23 olursa sayı üretilmesi sonlandırılsın?
Cevap:


private void button1_Click(object sender, EventArgs
{
Random rasgele_sayi = new Random();
for (int i = 0; i < 10; i++)
{
  int uretilen_degerler = rasgele_sayi.Next(1, 26);
  if ((uretilen_degerler % 3) == 0)
  {
    i--;
    continue;
  }

label1.Text += uretilen_degerler.ToString() + "\n";
if (uretilen_degerler == 23)break;

}
}