• OĞUZHAN YILDIRIM

Yazılıma Genel Bakış - C# Programlamaya Giriş


Öncelikle uzun bir aradan sonra tekrardan merhabalar. Okulda final dönemim olmasından dolayı hem kendi işime hem de siteye fazla bakamadım. Bugün sizler için aslında bir Bilgisayar Mühendisliği öğrencisinin işin en temelinde gördüğü konulardan bahsedeceğim. Böyle bir yazı yazıyor olma amacım şu an bu konu üzerine çalışıyor oluşum. Çok fazla üzerinde durmadan en temel bilgileri kısa kısa verip bu yazıyı bitirmeyi düşünüyorum. Yazılım konusu hakkında hiçbir bilgisi olmayan insanlarında biraz olsun bilgilenmesini sağlayacağını düşünüyorum. Keyifli okumalar diliyorum.

Algoritma nedir ?

Her şeyin temeli olan bu Algoritma nedir ? Gelin önce onu bir inceleyelim.


Algoritma; bir problemin çözümünde uygulanacak işlemlerin maddeler halinde ya da şekiller yardımıyla sırası ile ifade edilmesidir.


Algoritma; günlük hayatta yapacağımız işler için hazırladığımız planların, programlama dillerindeki karşılığıdır. Haftalık market alışverişlerinizi yaparken çıkardığınız ihtiyaç listesi bile, aslında hayatta uyguladığınız küçük algoritmalardan sadece birisidir. Diğer bir deyişle algoritma; çözeceğimiz ve uygulamaya dökeceğimiz problem için hazırlanacak işlem basamaklarıdır. Buradan çıkarılacak en büyük sonuç ise; öncelikli çözülecek probleme hakimiyetin sağlanması ve ihtiyaç duyulan tüm unsurları düşünerek en verimli şekilde bu problemin çözülmesi olacaktır.


Bir algoritmanın iskeleti aşağıdaki gibidir:

  1. Başla

  2. Tanımla

  3. Yapılacak işlemler

  4. Sonuçların kullanıcıya sunulması

  5. Dur

Programlama Dili Nedir ?

Programlama dili, yazılımcının bir algoritmayı ifade etmek amacıyla, bir bilgisayara ne yapmasını istediğini anlatmasının yoludur. Programlama dilleri, yazılımcının bilgisayara hangi veri üzerinde işlem yapacağını, verinin nasıl depolanıp iletileceğini, hangi koşullarda hangi işlemlerin yapılacağını tam olarak anlatmasını sağlar.

Şu ana kadar 150’den fazla programlama dili yapılmıştır. Bunlardan bazıları Pascal, Basic, C, C#, C++, Java, JavaScript, Cobol, Perl, PHP, Python, Ada, Fortran, Delphi ve Swift'tir.

C# Nedir ? Nerelerde Kullanılır ?

Algoritmayı şöyle kısaca tanımladıktan sonra bu sıralar da üstüne yoğun olarak düştüğüm C# programlama dilinden bahsetmek istiyorum.


Bu dilin tasarlanmasına Pascal, Delphi derleyicileri ve J++ programlama dilinin tasarımlarıyla bilinen Anders Hejlsberg liderlik etmiştir. Birçok alanda Java'yı kendisine örnek alır ve C# da java gibi C ve C++ kod sözdizimine benzer bir kod yapısındadır. .NET kütüphanelerini kullanmak amacıyla yazılan programların çalıştığı bilgisayarlarda uyumlu bir kütüphanenin ve yorumlayıcının bulunması gereklidir. Bu, Microsoft'un .NET Framework'u olabileceği gibi ECMA standartlarına uygun herhangi bir kütüphane ve yorumlayıcı da olabilir. Yaygın diğer kütüphanelere örnek olarak Portable.Net ve Mono verilebilir.

Performans

  • C#, Sanal Makine'ye dayalı dillerden biridir, direkt yerleşik kod'a derlenen dillerden daha yavaştır.

  • Bellek yönetiminde bir atık toplayıcısına ihtiyaç duyuyor olması, sistem kaynaklarını C, C++ veya Rust (programlama dili) gibi dillere göre daha fazla tükettiği anlamına gelir. Sistem kaynaklarının kullanımına bağlı performans düşüşü olabilir.

Platform

  • .NET Microsoft uygulama bonservisi Windows üzerinde geçerlidir. Fakat C# programlarını Windows, Linux veya macOS üzerinde yürüten başka uygulamalar da yer almaktadır.

Güvenlik

  • C# sanal makineye dayalı bir dil olduğundan kaynak kodlarının korunması zordur. Kaynak kodları karıştırıp şifreleyen ek uygulamalar ile güvenlik düzeyi artırırsa da tam olarak koruma sağlanmaz.

Kullanım Alanları


  • Konsol Uygulamaları

Grafiksel kullanıcı arayüzünden çok, komut satırı penceresinde programcı tarafından yazılan uygulama çalışmalarına verilen isimdir. Bu uygulama modelini kullanıcının etkileşim kurması gerekmeyen uygulamalarda basit bir arayüz oluşturmak için kullanılabilir.

  • Web Form Uygulaması (ASP.net)

Web form uygulamaları ise Ado.Net yerine ASP.Net sayfa yapısı ile çalışmaktadır. Web form uygulamaları temel olarak Windows Form Uygulaması gibi düşünülebilir. Fakat aralarında temel faklılıklar vardır. Web Form uygulamaları internet üzerinden erişilebilen form uygulamalarıdır. Bundan dolayı uygulamalar kişisel bilgisayar yerine web tarayıcısı ile çalışmaktadır.

  • Mobil Programlama

Windows Phone işletim sistemleri için uygulama geliştirme kısmıdır. Eğer Windows Phone için uygulama geliştirmek istiyorsanız bu kısmı kullanmanız gerekmektedir.

  • Windows Form Uygulamaları (Ado.Net)

Grafiksel kullanıcı arayüzü (GUI – Graphical User Interface) olarak tanımlanır. Windows form uygulamalarını, konsol uygulamalarından ayıran en önemli özelliği de budur. Windows Form uygulaması oluşturmak için Toolbox adı verilen araç kutusundan nesnel araçlar sürükle-bırak yöntemi ile kolayca oluşturulabilir.

C# Programlamaya Giriş

Kısa ve öz bir şekilde genel olarak bahsettikten sonra yazılıma biraz daha yakından bakalım. Bu kısımdan sonra anlatacaklarım kodlamaya ilk adım attığımız yer aslında. Bu kısımda yazdığımız kodlar tüm dillerde neredeyse aynı anlama gelmektedir ve aynı şekilde çalışmaktadır. (syntax(sözdizimi) yapısı farklı olabilir.)

Yavaştan başlayalım ve temel bilgileri görelim.

Operatörler
  • Birinci öncelikliler

x++, x--

  • Tek operand alan operatörler

+, -, !, ~, ++x, --x, (Tür)x

  • Çarpma ve bölme

*, /, %

  • Toplama ve çıkarma

+, -

  • Kaydırma operatörleri

<<, >>

  • İlişkisel ve tür testi operatörleri

<, >, <=, >=, is, as

  • Eşitlik operatörü

==, !=

  • Bitsel Ve (AND)

&

  • Bitsel Özel Veya (XOR)

^

  • Bitsel Veya (OR)

|

  • Mantıksal Ve

&&

  • Mantıksal Veya

||

  • Koşul operatörü

?:

  • Atama ve işlemli atama operatörleri

=, *=, /=, %=, +=, -=, <<=, >>=, &=, ^=, |=


Veri Tipleri

Visual Studio 2019 üzerinden bir konsol uygulaması projesi açarak başlıyorum. Temel bilgilerden en önemlisi önce değişken tanımlamayı görelim. Resmin sağ alt kısmında kodun çıktısını görüyorsunuz.

  • Integer(int)

  1. Uygulama geliştirirken en sık kullandığımız değişken türüdür kendisi. Tam sayı tutar ve veri aralığı geniştir. 32 bitlik veri depolar.

  2. -2147483648 ile 2147483647 arasında değer alabilir.

  • Long

  1. long türündeki değişkenler 64 bitlik veri depolarlar.

  2. –9223372036854775808 ile 9223372036854775807 arasında değer alabilmektedir.

  • Short

  1. short türündeki değişkenler 16 bitlik veri depolarlar.

  2. -32768 ile 32767 arasında değer alabilmektedir.

  • Byte

  1. Byte türündeki değişkenler 8 bitlik veri depolarlar. 8 bitlik binary sistemdeki veriye byte da denilmektedir.

  2. 0 ile 255 arasında değer alabilmektedir. Yalnız burada dikkat edilmesi gereken nokta sadece pozitif değer alabilmektedirler.

  • Double

  1. double türündeki değişkenler 64 bitlik gerçek sayı depolarlar.

  2. 1.7E +/- 308 (15 basamak) arasında değer alabilmektedir.

  3. Ondalıklı sayıları tutabilirler.

  • Char

  1. Char veri türü 16 bit uzunluğunda Unicode standartlarında karakterlerin karşılıklarını tutan veri tipidir.

  • Bool

  1. Doğru ve Yanlış olmak üzere iki değer alan veri tipidir. Uygulama içerisinde true(doğru) ve false(yanlış) değer ataması yapılmaktadır.

Enum

Bu yapı yazılım dilinde enum, enumaration ya da enum sabitleri olarak adlandırılır. Değişkenlerin alabileceği değerlerin sabit (belli) olduğu durumlarda programı daha okunabilir hale getirmek için kullanılır. Programda birçok değişkene tek tek sayısal değer vermek yerine "enum" kullanılabilir.

Şart Blokları
  • If - Else

If-else yapısı diğer programlama dillerinde olduğu gibi C#’da da, koşul ifadesi olarak kullanılmaktadır. Programda alternatif durumlarla karşılaşıldığında, duruma özgü komutların işletilmesini sağlar. Programcıların en çok tercih ettiği koşul yapısıdır. If yapısının kendi içerisinde birçok farklı kullanımı bulunmaktadır, bu kullanımları teker teker örneklerle incelemekte fayda var. If bloğu kendi başına kullanılabileceği gibi else bloğuyla kullanımı daha yaygındır.

Örnek olarak aşağıdaki kod örneğine bakabilirsiniz.

  • Switch - Case

Switch - Case yapısı, çok durumlu koşullarda if-else blokları yerine tercihen kullanılırlar. Switch - Case ile yapılabilecek tüm işlemler if-else ile de yapılabilmektedir. Fakat kod okunabilirliğini arttırdığı için birçok programcı switch-case yapısını karmaşık if-else blokları yerine kullanmaktadır.

Okuduğunuz için hepinize teşekkür ederim. Sık sık yeni konuların yazsını da yazacağım. Bugün itibari ile giriş kısmı bilgilerini hallettik. İnternetten araştırarak , örnekler yaparak bu konuları pekiştirebilirsiniz.


67 görüntüleme0 yorum