/ DERS NOTLARI
  1. Ders Notları
  2. C# Algoritma ve Programlamaya Giriş

C# Algoritma ve Programlamaya Giriş

Bilgisayar Nedir?

Bilgisayar, aldığı verilerle mantıksal ve aritmetiksel işlemler yaparak bilgi ve veri üreten, ürettiği sonucunu saklayabilen, sakladığı sonuca istenildiğinde ulaşılabilen elektronik bir makinedir.Aşağıda birkaç bilgisayar türü listelenmiştir.

  • Süper Bilgisayarlar
  • Mainframe tipi bilgisayarlar
  • Workstation tipi bilgisayarlar (İş İstasyonları)
  • Mikro Bilgisayarlar
  • Kişisel Bilgisayarlar

Sayı Sistemleri

Elektronik sistemlerde dört farklı sayı sistemi kullanılır. Bunlar:

  • İkili (Binary) Sayı Sistemi
  • Sekizli (Oktal) Sayı Sistemi
  • Onlu (Decimal) Sayı Sistemi
  • Onaltılı (Heksadecimal) Sayı Sistemi

İkili (Binary) Sayı Sistemi

  • Sayı tabanı 2’dir.
  • 0 ve 1 olmak üzere iki rakam kullanılır.
  • 0 ve 1’ler bilgisayarda akımın geçmesi ya da geçmemesini ifade eder.
  • Örnek: (1101011010)2 , (101001)2 , (1011)2 , (10)2

Sekizli (Oktal) Sayı Sistemi

  • Sekizli (Oktal) Sayı Sistemi
  • Sayı tabanı 8’dir.
  • 0,1,2,3,4,5,6,7 rakamlarını kapsar.
  • Örnek: (10592473)8 , (8730)8 , (70)8

Onlu(Decimal) Sayı Sistemi

  • Sayı tabanı 10’dur.
  • Günlük hayatta kullandığımız sayı sistemidir.
  • 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 rakamlarını kapsar.
  • Bir sayının tabanı belirtilmemişse 10’luk tabanda olduğu kabul edilmektedir.
  • Örnek: (10293721)10 ya da 10293721 , 1453, 29

Onaltılı (Heksadecimal) Sayı Sistemi

  • Sayı tabanı 16’dır.
  • 1,2,3,4,5,6,7,8,9,A,B,C,D,E,F rakamları olmak üzere 16 rakamı kapsar.
  • Sayı sisteminde her harf bir rakamı temsil eder. Bunlar;
  • 10=A, 11=B, 12=C, 13=D, 14=E, 15=F’dir.
  • Örnek: (2157FA)16 , (E123)16 , (CB6)16 , (DE)1

Programlama Nedir ?

Programlama ya da diğer adıyla yazılım; donanıma nasıl davranacağını anlatan, bilgisayarın anlayabileceği şekilde bilgisayara yön veren komutlar, kelimeler ve aritmetik işlemlerdir.

  • Programlama bir programlama dili ile yapılır.
  • C, C++, C#, Delphi, Pascal, makine dili.

Programlaya geçilmeden önce tasarım aşamasında problem ve ihtiyaçlara göre en optimum programın tasarlanması gerekir. Yazılım bir süreçtir.

Yazılım Geliştirme Süreci

İstenen hizmetler ve sistemin çalışma ve geliştirilmesi için var olan kısıtlamalara bağlı olarak yazılım geliştirme süreci için farklı pek çok yöntem vardır. Genel olarak takip edilen yöntem:

  • Analiz
  • Tasarım
  • Kodlama
  • Derleme
  • Test
  • Dokümantasyon

İyi Bir Yazılımda Olması Gereken Özellikler

  • Doğruluk: Verilen görevin tam olarak yerine getirilmesi.
  • Genişletebilme: İhtiyaç duyulması durumunda daha sonra program kodlarında değişiklik ya da eklenti yapılabilmesi
  • Basitlik: Programın kullanımının kolay olması.
  • Modülerlik: Program kodlarının başka programlar içerisinde kullanılabilmesi.
  • Uyumluluk: Başka sistem ve alt yapılarla çalışabilmesi.
  • Kontrol Edilebilirlik: Kodlara gerekli yerlerde açıklama satırları ile ya da yazılım hakkında tutulan dokümantasyon ile açıklama bilgileri ile büyük çaplı projelerde karmaşanın önüne geçilmesi

Programlama Dilleri

  • Bir problemi bilgisayar kullanarak çözmek için problemi ve çözümünü bilgisayara anlayacağı formda sunabilmek için programlama dilleri kullanılır.
  • Programlama dilleri bilgisayar mimarisini fazla bilmeden program geliştirmeye olanak sağlayan kodlama şeklidir.
  • Günümüze kadar birçok programlama dili geliştirilmiş ve kullanılmıştır.
  • Her bir programlama dilinin kendine özel dilbilgisi yapısı ve kuralları vardır.
  • Programlama dilleri kendi içlerinde geliştirilmeye devam etmekte ve her bir programlama dilinin farklı versiyonları piyasaya sürülmektedir

Programlama Dillerinin Gelişim Süreci

Bilgisayar donanımı ve bilgi teknolojilerinin gelişimine bağlı olarak bilgisayar dilleri süreç içerisinde makine (machine) dillinden insan (human) diline benzer şekilde gelişim göstermiştir.

Programlama Dillerinin Gelişim Süreci

Programlama dilleri gelişim evrelerine göre 5 nesilde incelenmektedir:

  • Birinci nesil programlama dili-Makine Dili
  • İkinci nesil programlama dili-Çevirici (Assembly) Dil
  • Üçüncü nesil diller
  • Dördüncü nesil diller
  • Beşinci nesil diller

Birinci Nesil Programlama Makine Dili

Tamamen geliştirildiği makinenin özelliklerine odaklı makine seviyesi dillerdir.

Bilinen makine dilleri:

  • IBM 360
  • ARM
  • Intel 80x86 vb

Herhangi bir modern dille geliştirdiğimiz program derleme işlemi sonucu makine diline çevrilmektedir.

İkinci Nesil Programlama Dilleri

İnsanlar tarafından makine dillerine oranla daha anlaşılır olan bu diller assembly/çevirmen diller olarak bilinirler. Günümüzde halen özel donanımların ve işletim sistemleri çekirdeklerinin programlanmasında assembly dilleri kullanılmaktadır.

Bilinen bazı assembly dilleri:

  • BAL (Basic AssembLer)
  • FAP (Fortran Assembly Program) vb

Üçüncü Nesil Programlama Dilleri

Günümüzde yaygın kullanılan ve bilinen türlerinin geliştirildiği nesildir. İngilizce ağırlıklı olarak insanların kullandığı dile yakın, yüksek seviyede yapısal dillerdir. Üçüncü nesil dillerin bilgisayarda çalışması için derleyici (Compiler) ya da yorumlayıcı (interpreter) ihtiyacı bulunmaktadır.

Üçüncü nesil programlama dillerinden bazıları:

  • Fortran
  • C
  • C++
  • Delphi
  • Java

Dördüncü Nesil Programlama Dilleri

Belirli bir problemin çözüme yönelik dillerdir. Daha az kod yazarak, hazır şablonlar ve sihirbazlar sayesinde pratik çözümler geliştirmeye yönelik kullanılan dillerdir. Rapor üretimi, vaka tasarımı, veri yönetimi, istatistiksel analiz vb. alanlarda uygulama geliştirmeye yöneliktir.

Dördüncü nesil programlama dillerine örnek:

  • SQL
  • SPSS
  • Matlab’s Guide vb

Beşinci Nesil Programlama Dilleri

Özellikle yapay zeka alanında araştırmalarda kullanılan yeni nesil programlama dilleridir. Koşullar ve kısıtlar bilgisayara verildiğinde, bilgisayarın çözümü kendisinin bulmasına yönelik olarak tasarlanmıştır.

Beşinci nesil programlama dillerine örnek:

  • Prolog
  • Mercury vb

Yazılım Geliştirme Sürecine Ait Bazı Kavramlar

  1. Kaynak Kod: Bir programlama dilinde yazılmış olan metinlere kaynak kod adı verilir.
  2. Kod Düzenleyici (Editör): Program yazılırken geliştirilen yazılımla ilgili kullanılan dile ait yazım ipuçlarını veren, yapılan hataları bularak yerlerini gösteren özel yazılımlardır.
  3. Derleyici: Bir programlama dilinde yazılmış olan kaynak kodu bir başka programlama diline genellikle makine diline çeviren programlara derleyici denilmektedir.
  4. Yazılım Geliştirme Arabirimi: Yazılım Geliştirme arabirimi; kod düzenleyici, arayüz tasarlayıcı, derleyici ve yorumlayıcının bir arada bulunduğu programlardır.