320 likes | 594 Vues
BPR151 ALGORİTMA VE PROGRAMLAMA - I. Öğr . Gör. Bayram AKGÜL bayramakgul@bartin.edu.tr http://bmyo.bartin.edu.tr/akgul. Bugünkü konular. Program Kodlamaya Hazırlık Temel Programlama Kavramları Syntax Değişken MS Visual Studio Kullanımı İlk Program C # Program yapısı.
E N D
BPR151 ALGORİTMA VE PROGRAMLAMA - I Öğr. Gör. Bayram AKGÜL bayramakgul@bartin.edu.tr http://bmyo.bartin.edu.tr/akgul
Bugünkü konular • Program Kodlamaya Hazırlık • Temel Programlama Kavramları • Syntax • Değişken • MS Visual Studio Kullanımı • İlk Program • C# Program yapısı
Programlama Dilleri(PL) • Programlama dilleri algoritmaları bilgisayarlara uygulamak için kullanılan kurallar bütünüdür. • Bu kurallar syntax olarak adlandırılır. (veya programlama dilinin yazım kuralları olarak isimlendirilir.) • Her programlama dilinin kendine has yazım kuralları vardır. • Syntax: yazım kuralı
C# si şarp diye okunur :) • Microsoft tarafından geliştirilmiş olan bir programlama dilidir. • C++ ve Java dillerine oldukça benzer, ancak C#'ın bu dillere benzerliği yanında farkları da vardır. • C#, • C++'dan farklı olarak % 100 nesne yönelim tekniğine sahiptir. • Java'dan farklı olarak ise C#'ta gösterici (pointer) kullanılabilir. Böylelikle eski yazılım bileşenleriyle uyumlu bir şekilde çalışılabilir.
.NET Framework • C# kodları, normal programlama dillerinden farklı olarak direkt makine koduna derlenmez. • ÖnceIL(Intermediate Language) denilen bir ara koda derlenir. • Derlenen bu kodun dosyasına assembly denir ve uzantısı exeveyadll'dir. • Bu program çalıştırılmak istendiğinde .Net Framework devreye girer ve IL kodu makine koduna dönüştürür, böylelikle bilgisayar kodu anlayabilir. • Bu yüzden yazdığımız programın bir bilgisayarda çalışması için o bilgisayarda .Net Framework programının kurulu olması gerekir.
.NET Framework • .Net Framework, oluşturduğu makine kodlarını geçici bir süreliğine belleğe koyar, eğer aynı kodlar tekrar çalıştırılmak istenirse tekrar IL koddan makine koduna dönüşüm yapmak yerine bu belleğe kaydettiği makine kodlarını kullanır. • Bu yüzden oluşturduğumuz programımızı ilk çalıştırdığımız zaman programımız biraz yavaş çalışabilir, ancak daha sonraki çalışmalarda oldukça hızlanacaktır.
C# ile yapabileceklerimiz • Konsol uygulaması geliştirme • Windows uygulaması geliştirme • ASP.NET uygulaması geliştirme • Web servisleri yazma • Mobil uygulama geliştirme (PDA, cep telefonları vb. için) • DLL yazma
İlk Program classSelamVer { staticvoid Main() { System.Console.Write("Merhaba Sınıf!"); } }
Program Başlangıcı • classSelamVersatırıylaSelamVer adında yeni bir sınıf oluştururuz. • C#'ta yazdığımız her programın en az bir sınıf içermesi zorunludur.
{ } Süslü Parantezler • {ve} işaretleri herhangi bir sınıfın veya metodun içeriğini belirtmek için kullanılır. • İlk{ karakteriyle önceki satırda açtığımız SelamVer adlı sınıfımızın içeriğine alınacak kodların başladığını, programın son satırındaki} karakteriyle de sınıfımızın içeriğine alınacak kodların sona erdiğini belirtiyoruz.
Ana Metod • staticvoid Main() satırıyla program sınıfının içine Main adlı bir metot yerleştirildi. • Bu metodun adı mutlakaMain olmalı, yoksa program çalışmaz. • Bu metot mutlaka oluşturulan sınıfın içinde olmalı. • { ve } karakterleriyle metodun içeriği belirtildi. • Dikkat ettiyseniz bir iç içe { ve } karakterleri söz konusu. Bu durumda koyulan ilk } karakteri son açılan { karakterini kapatır.
Çalışan Kod • Programımızın pratikte iş yapan tek kısmı: System.Console.Write("Merhaba Sınıf!");satırıdır. • Bu satırla konsol ekranaMerhaba Sınıf!yazdırılmaktadır. • Bunun için .Net Framework kütüphanesindeki hazır bir metottan yararlanılmaktadır. • Bu metot, System isim alanının altındaki Console sınıfında bulunuyor, ismi Write ve konsol ekranına yazı yazdırmaya yarıyor. • Bu metod parantezler arasındaki çift tırnaklar arasına alınan metni ekrana yazdırıyor. • Satırın sonundaki noktalı virgül (;) karakterini ise { ve } karakterleri açıp kapatmayan bütün C# satırlarında kullanmamız gerekiyor.
Programın İkinci Versiyonu usingSystem; classSelamVer { staticvoid Main() { Console.Write("Merhaba Sınıf!"); } }
using Deyimi • Bu programımızın işlevsel olarak ilk programdan herhangi bir farkı yoktur. • Yani ikisi de aynı şeyi yapıyor. • Ancak kodda bir farklılık var. • En üste usingSystem; satırı eklenmiş ve System.Console.Write("Merhaba Sınıf!"); satırındakiSystemkalkmıştır.
using Deyimi • using deyimi C#'ta isim alanı kullanma hakkı elde etmek için kullanılan bir anahtar sözcüktür. • Yani aynı isim alanında kullanacağımız birden fazla sınıf varsa bu isim alanını using anahtar sözcüğüyle belirtiyoruz. • Böylece bu isim alanının sınıflarını kullanırken isim alanının adını yazmak zorunda kalmayız.
Programın Üçüncü Versiyonu usingSystem; classilk_Program { staticvoid Main() { Console.WriteLine("Enter tuşuna basın!"); Console.ReadLine(); Console.WriteLine("Enter tuşuna bastınız!"); } }
ReadLine Metodu • Bu programımız önce ekrana Enter tuşuna basın! yazar. Kullanıcı enter tuşuna bastığında da Enter tuşuna bastınız! yazıp kendini kapatır. • Console sınıfına ait olan ReadLinemetodu programın kullanıcıdan bilgi girişi için beklemesini sağlar, yani programı enter tuşuna basılana kadar bekletir. • Kullanıcı enter tuşuna bastığında da diğer satıra geçilir. • Dikkat ettiyseniz ReadLine metodunda parantezlerin arasına hiçbir şey yazmıyoruz. C#'ta bazı metotların parantezleri arasına bir şeyler yazmamız gerekirken, bazı metotlarda da hiçbir şey yazılmaması gerekir.
Başla Kullanıcıya inchgirmesini bildir İnch’i al santimetre = inch * 2.54 inchveSantimetreyi ekranayazdır. Bitiş Örnek C# Programı PROBLEM İnch’i santimetreye dönüştür. using System; namespaceilk_program { classProgram { /* inch’isantimetreyedönüştürme */ staticvoid Main() { doubleinch; doublesantimetre; Console.Write("inchgir: "); inch = double.Parse(Console.ReadLine()); santimetre = inch * 2.54; Console.WriteLine("{0} inch {1} santimetre eder",inch, santimetre); } } }
Örnek C# Programını anlama using System; namespaceilk_program { classProgram { //inch’isantimetreyedönüştürme staticvoid Main() { doubleinch; doublesantimetre; Console.Write("inchgir: "); inch = double.Parse(Console.ReadLine()); santimetre = inch * 2.54; Console.WriteLine("{0} inch {1} santimetre eder",inch, santimetre); } } } Standart işlemler kütüphanesini yükle Program alanı ve sınıf adı Açıklamalar: /* …. */arasında Veya // ile başlar Main(): Programın nerden başlayacağını gösterir Süslü parantezler Bir kod bloğunun başlangıç ve bitişini işaret eder.
Örnek C# Programını anlama (devam) using System; namespaceilk_program { classProgram { /* inch’isantimetreyedönüştürme */ staticvoid Main() { doubleinch; doublesantimetre; Console.Write("inchgir: "); inch = double.Parse(Console.ReadLine()); santimetre = inch * 2.54; Console.WriteLine("{0} inch {1} santimetre eder",inch, santimetre); } } } • Değişkenler • değişken bir hafıza alanıdır. İçeriği programın çalışması süresince doldurulabilir ve değiştirilebilir. • doublebir değişken tipidir • inchvesantimetredeğişken adlarıdır. • İfadeler • program adımlarıdır. • her ifade noktalı virgül ile biter (;)
Örnek C# Programını anlama (devam) using System; namespaceilk_program { classProgram { /* inch’isantimetreyedönüştürme */ staticvoid Main() { doubleinch; doublesantimetre; Console.Write("inchgir: "); inch = double.Parse(Console.ReadLine()); santimetre = inch * 2.54; Console.WriteLine("{0} inch {1} santimetre eder",inch, santimetre); } } } Output - Çıktı Ekrana bir şeyler yazdırmak için Console.Writeveya Console.WriteLinefonksiyonunu kullanacağız Input - Girdi Klavyeden bir şeyler okumak için Console.ReadLinefonksiyonunu kullanacağız. Hesaplamalar Hesaplamalar için matematiksel ifadeleri/operatörleri kullanacağız.
Örnek C# programının Çalışması using System; namespaceilk_program { classProgram { /* inch’isantimetreyedönüştürme */ staticvoid Main() { doubleinch; doublesantimetre; Console.Write("inchgir: "); inch = double.Parse(Console.ReadLine()); santimetre = inch * 2.54; Console.WriteLine("{0} inch {1} santimetre eder",inch,santimetre); } } } PROGRAM VERİLER inch 15.4 ? ? santimetre 39.116 ? inch gir: 15.4 inch39.116 santimetre eder 15.4
Örnek C# programının Çalışması using System; namespaceilk_program { classProgram { /* inch’isantimetreyedönüştürme */ staticvoid Main() { doubleinc; doublecm; Console.Write("inchgir: "); inc = double.Parse(Console.ReadLine()); cm = inch * 2.54; Console.WriteLine("{0} inch= {1} cm ",inc,cm); } } } PROGRAM VERİLER inc 15.4 ? ? cm 39,116 ? Inch gir: 15.4 inch = 39,116 cm 15.4
C# Program Yapısı using System; /* program alan adı olmak zorunda değil*/ namespaceilk_program { // program sınıfı olmak zorunda classProgram { /* Main olmak zorunda */ staticvoid Main() { /* Değişkenlerprogramdakullanılacakverileritutar. */ DeğişkenTanımlama; /* Program basamakları: I/O, hesaplamalar (ifadeler) */ ifade1; ifade2; … ifadeN; } } }
sayi1 sayi2 Değişken Nedir? • İçeriği programın çalışması boyunca doldurulabilen ve değiştirilebilen bir hafıza alanıdır. • Her değişkenin bir tipi ve ismi vardır. • Tip o hafıza alanında saklanacak verinin tip bilgilerini ifade eder. • İsimo hafıza bölgesine ulaşmamız için bir etikettir. Hafıza name • intsayi1; /* bir tam sayıyı depolar (152) */ • floatsayi2; /* bir ondalıklı sayıyı depolar (65.324) */
Değişken Tanımlama • Temel değişken tanımlama formatı veritipi veriAdı, veriAdı, ... ; veritipiaşağıdakiler olabilir int/* tam sayıları tutar, 34532 */ float/* gerçek sayıları tutar, 15.342 */ double/* gerçek sayıları tutar, fakat çok daha hassas*/ /* 345.22359573943 */ char/* bir karakter tutar, ‘A’ */ string /* yazıları tutar, "Merhaba sınıf" */
Değişken İsimleri • C#değişkenleri harf ve rakam kombinasyonlarından oluşabilirler fakat: • İlk karakter rakam olamaz! • fahrenheit, santigrat, toplam, a123, i1, i2, i3, _12abc • Büyük veya küçük harfler kullanılabilir • Küçük ve büyük harfler aşağıdaki gibi kullanılabilir • toplam, Toplam, TOPLAM • Alt çizgi (_) ilk karakter olabilir veya arada/sonda kullanılabilir. • ogrenci_no, _ogrNo, __ogr_no_
Değişken İsimleri (devam) • C#değişken isimleri harf ve rakamların birleşiminden oluşabilir, fakat: • Değişken isimleri boşluk, tire veya tırnak içeremez • “ogrenci” : tırnaklar(“) geçersiz • ogrenci-no: geçersiz karakter ( - ) • ogrenci no: arada boşluk kullanılmamalı (ogrenci_no) • Değişken isimleri büyük/küçük harf duyarlıdır • toplam, ToplamvetoplaMhepsi farklı değişkenlerdir.
C# Temel Veri Tipleri • Tam sayılar • int, uint, short, ushort, long, ulong, byte, sbyte • Virgüllü sayılar (gerçek sayılar) • float, double, decimal • Boolean tipi (doğru/yanlış) (true/false) • bool • Yazı tipleri • char • string
Haftaya • Veri tipleri ve özellikleri • Değişken tanımlama ve değer atama
Dinlediğiniz için teşekkürler… Öğr. Gör. Bayram AKGÜL