Programlama Dillerinin Sınıflandırılması

Ebat: px
Şu sayfadan göstermeyi başlat:

Download "Programlama Dillerinin Sınıflandırılması"

Transkript

1 1 Programlama Nedir Genel olarak programlama, Kullanıcıların isteklerini karşılayacak Muhasebe, Stok, Oyun, İşletim Sistemi gibi programları oluşturacak alt yapıyı (Kodları) hazırlamaktır. Bu alt yapıyı oluşturan kişilere programcı denir. Bir programın çalışması demek, Mikroişlemciye daha önceden hazırlanmış bir kod yığınının gönderilmesi demektir. Bu kodlar işlemcinin anlayacağı ASM dilinde yazılmış kısa kodlardır, ASM en hızlı programlama dili olmakla beraber, kullanılması en zor programlama dilidir. ASM dilinde kullanılan tüm komutlar sadece işlemciye ve donanıma hitap etmektedir ve programı yazan kişinin tüm donanımı bilmesi gerekmektedir. Örnek vermek gerekirse A markalı bir ekran kartı için yazılmış bir program B markaları bir ekran kartında çalışmaz, çünkü donanımsal olarak farklılıklar vardır. ASM dili için kısaca bilgisayarın anadili diyebiliriz, çünkü CPU sadece ASM kodlarını anlayacak bir yapıya sahiptir. PC işlemcilerinin ilk çıktığı günlerde sadece ASM dili olduğu için program yazmak gerçekten çok zordu. Her değişen donanım yada işlemci için tekrar program yazılması gerekiyordu, donanımsal zorluklar dışında yazılımsal zorluklarda vardı, Ekrana bir şeyler yazmak için bile bol miktarda kod yazılıyordu. Bu tip sorunları kaldırmak için kullanılması kolay üst seviye programlama dilleri oluşturuldu (C, Basic, Pascal, Cobol v.s.). Üst Seviye programlama dilleri ile yazılan kodlar işlemci tarafından anlaşılamayan kodlardır, bu kodlar Compiler (Derleyici) tarafından işlenerek CPU nun anlayacağı kodlara (ASM) çevrilir. Düşük seviyeli programlama dilleri herhangi bir derleyiciye yada yorumlayıcıya ihtiyaç duymadan direk olarak kullanılmak üzere yazıldıkları işlemciler tarafından çalıştırılabilirler. Bu yüzden işlemciden işlemciye farklılık gösterirler. Karşılaştırma yapmak gerekirse, yüksek seviyeli bir programlama dili programın geliştirilmesinde kullanılması gereken bilgisayarın yapısına bağlı semantik uygulamaları ortadan kaldırır, böylelikle bir programın geliştirilme aşaması daha kolay ve anlaşılır hale gelir. Üst Seviye Dillerde yazılan programların kodları her ne kadar kısa görünsene derlenip çalışan duruma getirildiklerinde boyutları, Alt Seviye Dilde yazılan programdan daha büyük olurlar. Sebep ise ASM dili ile yazılan programda hedefe direk (Çok hızlı) ulaşılırken, Üst Seviye dilde derleme esnasında kod içine donanım ve işlemciyi tespit eden v.s. kodların eklenmesidir. Bu yüzden üst seviyede yazılan programlar ASM dilinde yazılan programdan çok daha yavaş çalışırlar. Üst seviye programla dilleri sadece bir çeviri aracıdır, tek programlama dili ASM dır. Fakat ASM diline C gibi yakın olan programlama dilleri de bazı kaynaklarda alt seviye dil olarak geçer. Programlama mantığı oluşmadan önce, her şey donanımsal olarak yapılıyordu 1944 yılında yapılan MARK I, elektromanyetik mekanizmalar kullanarak işlemler yapan son bilgisayardır yılından sonra program işleyebilen analog ağırlıklı bilgisayarlar geliştirildi.

2 yılında transistorun ve 1970 lerde bütünleşmiş işlemcilerin çıkmasıyla programlama hızla ilerleyerek günümüzdeki konumuna gelmiştir. Programlama Dillerinin Sınıflandırılması Programlama dilleri seviyelerinde ve uygulama alanına göre aşağıdaki gibi sınıflandırılabilir. Bir programlama dili ya insan ya da makine anlayışına yakındır. İnsan anlayışına daha yakın programlara dillerine Yüksek Seviyeli programlama dilleri, Makineye yakın olanlara ise düşük seviyeli programla dilleri denir. Yüksek Seviye Programlama ile yazılan projelerin Kaynak Kodları kısa, Derlenmiş halleri ise uzun olur ve çalışma hızları ise yavaştır. Alçak Seviye Programlama ile yazılan projelerin Kaynak Kodları uzun, Derlenmiş halleri ise kısadır olur ve çalışma hızları ise en yüksek seviyededir. Seviye durumuna göre sınıflandırma aşağıdaki gibidir. Düşük Seviye o Assembler(ASM) Orta Seviye o C, C++ (C Plus Plus), C#(C Sharp) Yüksek Seviye o Fortran, Basic, Pascal, Cobol Çok Yüksek Seviye o Dbase, VBasic, Access Benzer şekilde bazı uygulamalar bazı programlama dilleri ile çok daha kolay hazırlanabilmektedir. Bu bağlamda, programlama dillerini uygulama alanına göre şu şekilde sınıflandırabiliriz. Bilimsel ve mühendislik dilleri o Fortran, C, Pascal Sistem programlama dilleri o C, Assembler Veri tabanı dilleri o Dbase, Clipper, FileMaker Yapay zeka dilleri o Prolog, LISP Genel amaçlı programlama dilleri o C, Pascal, Basic Algoritma Algoritma özellikle matematik ve bilgisayar biliminde bir işi yapmak için açık seçik bir şekilde tanımlanan, sonlu işlem basamakları kümesidir. Algoritma kavramının ortaya çıkışı bilgisayar dünyasının dönüm noktalarından biri olarak kabul edilir.

3 3 Algoritma sözcüğü adını Ebu Abdullah Muhammed İbn Musa El Harezmi adındaki Müslüman - Türk âlimden almıştır. Âlimin ismini telaffuz edemeyen Avrupalılar "algorizm" sözcüğünü "sayıları kullanarak aritmetik problemler çözme kuralları" anlamında kullanırlar. Bu sözcük daha sonra "algoritma"ya dönüşür ve yaygın olarak kullanılır. Latince çevirisinin Avrupa'da çok büyük ilgi gördüğü, Hisab el-cebir ve el-mukabala kitabı dünyanın ilk cebir kitabı ve aynı zamanda ilk algoritma koleksiyonunu oluşturur. Algoritma herhangi bir problemin çözümü için izlenecek yol anlamına gelmektedir. Bir problemi sonlu bir zamanda çözebilmek için geliştirilmiş açık seçik, yürütülebilir, sıralı, basit ve gerektikçe tekrar eden adımlardan oluşan yöntemlerdir. Bir problemin çözüleceği yöntemi oluşturma ise algoritma tasarlama olarak tanımlanır. Bu tanıma göre bir algoritmanın özellikleri; Yürütülebilir olmalı Açık seçik olmalı (belirsizliklere yer vermemesi) Sıralı olmalı olarak sıralanabilir. Esasen insanlar günlük hayatta farkında olmadan problemlerin çözümünde algoritma kullanırlar. Hatta günlük rutin işlerimizde yemek yaparken, sabah kalkarken, gece yatarken, işe giderken, telefonla birini ararken, birine yapmasını gerekenleri söylerken farkına varmasak da algoritma kullanırız. Mesela sabah kalktığımızda işe gitmeden önce yaptığımız işleri, işlem basamaklarına ayıracak olursak; Yataktan kalk Elini yüzünü yıka Dişlerini fırçala Pijamalarını çıkar Elbiselerini giy Kahvaltını yap İşe git Şeklinde ifade etmiş oluruz. İşte bu şekildeki ifadeye algoritma denmektedir. İki sayının çarpımını hesaplayan basit bir matematiksel işlemin algoritmasını; Birinci sayıyı gir (a) İkinci sayıyı gir (b) Girilen sayıları topla ( carp=a*b ) Sonucu göster (carp) ve tekrar 1. adımdan başla Şeklinde ifade edebiliriz.

4 4 C# ile Programlamaya Giriş Aşağıda C# dilinde yazılmış basit bir program görülmektedir. 1. using System; 2. namespace ConcoleApplication class Program static void Main(string[] args) Console.WriteLine("İlk Programınız Hayırlı Olsun!!!"); 9. Console.ReadLine(); Burada 1 numaralı satır program içerisinde Console fonksiyonlarını kullanabilmemiz için gerekli program içerisine Console bileşenini içerisinde barındıran System isim uzayını (namespace) programa eklemeyi sağlar. 2. satır programımıza verdiğimiz isim olan ConcoleApplication1 adında bir isim uzayı tanımlamaktadır. 3. ve 12. satırdaki ve bu tanımlamanın başladığı ve bittiği noktaları belirtmektedir. 4. satır sınıf (class) tanımlamasını, 6. satır ise fonksiyon tanımlamasını yapmaktadır. 8. ve 9. satırlar ise program içerisinde çalışacak kodlardır.

5 5 Değişken Tanımlama ve Değer Atama Program yazarken her zaman sabit verilerle çalışmayız, çoğu zaman programımızda bir verinin kullanıcının davranışına göre değişmesi gerekir. Kullanıcıdan iki sayıyı alıp, sonra toplayıp ekrana yazan bir program buna örnek verilebilir. Çoğu programlama dilinde değişkenler kullanılmaya başlanmadan önce tanımlanırlar. Değişken türü bellekte ayrılan gözeneğin büyüklüğünü belirtmemizi sağlar. Bir değişken tanımlama aşağıdaki gibi yapılmaktadır. <değişken tipi> değişken_adı; <değişken tipi> değişken_adı,...; <değişken tipi> değişken_adı=ilk_değer; Birçok programlama dilinde olduğu gibi C# da da standart tip tanımlamaları mevcuttur. Bulardan bazıları; Tür Boyut Kapasite byte 1 bayt 0,..., 255 (tam sayı) short 2 bayt ,..., (tam sayı) ushort 2 bayt 0,..., (tam sayı) int 4 bayt ,..., (tam sayı) uint 4 bayt 0,..., (tam sayı) long 8 bayt ,..., (tam sayı) ulong 8 bayt 0,..., (tam sayı) float 4 bayt ±1.5*10-45,..., ±3.4*10 38 (reel sayı) double 8 bayt ±5.0*10-324,..., ±1.7* (reel sayı) decimal 16 bayt ±1.5*10-28,..., ±7.9*10 28 (reel sayı) Değişken tanımlamalarındaki önemli noktalardan birisi de ilk değer verilmeyen değişkenlerin programın çalışmasını sıkıntıya sokacağıdır. Değişken tanımlamaları yapılırken aşağıdaki kurallara dikkat edilmek zorundadır. Değişken adları boşluk, simge içeremez. Değişkenler bir sayısal karakterle başlayamaz. C#'ın diğer bütün komut, metot ve benzerlerinde olduğu gibi değişken adlarında büyük-küçük harf duyarlılığı vardır. Yani degisken isimli bir değişkenle Degisken isimli bir değişken birbirinden farklıdır. Değişken adları Türkçe karakterlerden(ğ,ü,ş,ö,ç,ı) oluşabilir. C# da korunmuş kelimeler değişken adı olarak kullanılamaz. Korunmuş kelimeler (reserved words) C# programlama dilinin işleyişinde temel rol oynayan ve C# derleyicisine daha önceden tanımlanmış kelimelerdir. Bunlar içerisinde en sık kullanılanları aşağıdaki tabloda listelenmiştir.

6 6 namespace do goto class while int struct if double new else bool this switch float void case decimal for continue true foreach break false Değişkenlere tanımlandığı yerde yada programın herhangi bir yerinde doğrudan atama gerçekleştirilebilir. Aşağıdaki örneği inceleyelim. int a, b = 10; a = 5; Bu örnekte, int türünden a ve b değişkenleri tanımlanmış ve b değişkenine tanımlandığı anda 10 değeri atanmıştır. a değişkenine ise bir sonraki satırda 5 değeri atanmıştır. Değişkenlere değer ataması yukarıdaki örnekte olduğu gibi sabit bir değerin değişkene atanması şeklinde olduğu gibi dışsal kaynaklardan da değer ataması sağlanabilir. Bunu en sık kullanılan yolu Console fonksiyonlarını kullanmaktır. Aşağıdaki örneği inceleyelim. int i; i = Convert.ToInt32(Console.ReadLine()); Bu örnekte ise, öncelikle i değişkeni tanımlanmış ve komut satırından girilen değer bu değişkene aktarılmıştır. Komut satırından okuma işlemi Console.ReadLine() ile gerçekleştirilmiştir. Burada dikkat edilmesi gereken bir diğer nokta ise komut satırından okuduğumuz değerin metinsel değerler olduğudur. Dolayısıyla metinsel olmayan bir değişkene doğrudan atama işlemi yaptığımız zaman veri kaybı ortaya çıkacaktır. Bunu engellemek amacıyla tür dönüşümleri gerçekleştirilmektedir. Yukarıdaki örnekte Convert.ToInt32() fonksiyonu () içerisindeki bir değeri int tipinde bir değere dönüştürmektedir. Convert sınıfı System isim uzayı ile birlikte gelmekte ve using System tanımlaması yapılarak doğrudan kullanılabilmaktedir. Convert sınıfı ile hemen hemen bütün türler arasında veri kaybı yaşanmadan dönüşüm gerçekleştirebiliriz. Diğer tipler için dönüşüm fonksiyonları aşağıdaki gibidir. Convert.ToBoolean(x) Convert.ToByte(x) Convert.ToSbyte(x) Convert.ToInt16(x) Convert.ToUInt16(x) Convert.ToInt32(x) Convert.ToUInt32(x) Convert.ToInt64(x) Convert.ToUInt64(x) Convert.ToSingle(x) Convert.ToDouble(x) Convert.ToDecimal(x) Convert.ToChar(x) Bazı türler arasında Convert sınıfını kullanmadan da dönüşüm işlemleri gerçekleştirebiliriz. Örneğin, int tipinde bir değişken değerini double tipinde bir değişkene hiçbir kayıp olmadan doğrudan aktarabiliriz. Dikkat edilmesi gereken nokta ise küçük boyutlu değişkenlerdeki değerin doğrudan büyük boyutlu değişkenlere aktarılabileceğidir (decimal

7 7 tipi için istisnai bir durum söz konusudur). Buradaki temel mantık ise daha büyük hafızaya ihtiyaç duyan değişken daha büyük değerler tutabilir. Dolayısıyla aktarım esnasında veri kaybı yaşanmaz. Sabit değişkenler Programımızda bazen değeri hiç değişmeyecek değişkenler tanımlamak isteyebiliriz. Örneğin pi isimli float türünden bir değişken tanımlayıp buna 3.14 değerini verip programımızda pi sayısına ihtiyaç duyulduğunda bu değişkeni kullanabiliriz. Sabit değişkenlerin normal değişkenlerden farkı değişkeni değiştirmek istediğimizde ortaya çıkar, sabit olarak belirtilen değişkeni değiştirirsek derleyici hata verip programımızı derlemez. Bu daha çok uzun program kodlarında işe yarayabilir. Ayrıca sabit değişkenlere tanımlandığı satırda değer vermeliyiz. Herhangi bir değişkeni sabit olarak belirtmemiz için değişken türünden önce const anahtar sözcüğü kullanılır. const int a = 5; const float pi = 3.14; const char c ='s';

8 8 Operatörler Programlama dillerinde tek başlarına herhangi bir anlamı olmayan ancak programın işleyişine katkıda bulunan karakter ya da karakter topluluklarına operatör denir. Örneğin a+b ifadesinde + işareti bir operatördür. Operatörlerin etki ettikleri sabit ya da değişkenlere ise operand denir. Örneğin a+b ifadesinde a ve b birer operanddır. C#'ta operatörlerın bazıları tek, bazıları çift, bazıları da üç operand alır. Peki eğer bir ifadede birden fazla operatör varsa ne olacak? Örneğin 2+3*7 gibi bir ifadede önce hangi işlem yapılacak? Burada önce toplama işlemi yapılırsa sonuç 35 olur, ancak önce çarpma işlemi yapılırsa sonuç 23 olur. İşte C#'ta bu gibi durumları önlemek için operatör önceliği diye kavram bulunmaktadır. Operatör öncelikleri ile ilgili şu kuralları bilmenizde fayda var: Önce parantez içleri yapılır. Örneğin (3+5)*9 gibi bir ifadede önce toplama işlemi yapılır. İç içe parantezler söz konusuysa önce en içteki parantez yapılır, sıra ile dıştaki parantezlere gidilir. Örneğin (2+(9+2)*5)*2 gibi bir ifadede önce 9 ile 2 toplanıp 11 değeri bulur, sonra 11 ile 5 çarpılıp 55 değeri bulunur, sonra 55 ile 2 toplanıp 57 değeri bulunur, en son da 57 ile 2 çarpılıp 114 değeri bulunur. C#'ta farklı operatörlerin farklı önceliği vardır. Yani ifadede bir parantez yoksa önce öncelik sırası daha önde olan operatörün işlemi yapılır. Aşağıdaki tabloda operatörler öncelik sırasına göre listelenmiştir. Tablo, öncelik sırası en önde olandan en geride olana göre sıralanmıştır. Yani aynı ifadede parantez söz konusu değilse bu tablodaki daha üstte olan operatör daha önce işletilecektir. Arttırma ve azaltma operatörleri x++, x-- Çarpma ve bölme *, /, % Toplama ve çıkarma +, - İlişkisel operatörler <, >, <=, >= Eşitlik operatörü ==,!= Mantıksal Ve Mantıksal Veya Koşul operatörü?: Atama ve işlemli atama operatörleri =, *=, /=, %=, +=, -=, <<=, >>=, &=, ^=, = Yukarıdaki tablodaki bazı operatörler aynı sırada, yani bunların öncelik sırası eşit. C#'ta eğer operatörler eşit öncelikliyse, soldan sağa işlem yapılır. Yani 2*6/5 işleminde önce 2 ile 6 çarpılır, sonra da sonuç 5'e bölünür. Matematiksel operatörler + Toplama operatörü - Çıkarma operatörü / Bölme operatörü * Çarpma operatörü %: Mod alma operatörü &&

9 9 Matematiksel operatörlerden ilk dördü bilinen basit operatörlerdir. % operatörü ise önündeki operandın ardındaki operatöre bölümünde kalan sayıyı vermektedir ve rassal sayı üreteçlerinde sıklıkla kullanılmaktadır. Aşağıdaki örneği inceleyelim. int a=12, b = 5, c; c = a % b; Bu örnekte, a sayısı b sayısına bölünerek kalan değer c değişkenine aktarılmaktadır. Sonuç olarak c değişkeninin değeri 2 olmaktadır. Bir artırma ve bir eksiltme operatörleri C#'ın en çok kullanılan operatörlerindendir. Önüne veya sonuna geldiği değişkeni bir artırır (++) veya bir eksiltirler (--), sabitlere uygulanamazlar. Hem uygulandığı değişkenin değerini 1 artırır veya eksiltirler. Ön ek ve son ek olmak üzere iki şekilde kullanılabilirler. Karşılaştırma operatörleri İki değerin birbirine göre büyüklüğünü, küçüklüğünü yada eşitliğini kontrol ederler. Yalnızca sayısal türdeki (char da dâhil) değişken ya da sabitlerle kullanılabilirler. Char la sayısal türler karşılaştırıldığında char ın Unicode karşılığı hesaba katılır. Bu operatörler şunlardır: < (küçüktür) > (büyüktür) <= (küçük eşittir) >= (büyük eşittir) == (eşittir)!= (eşit değildir). Karşılaştırma sonucu iki değer üretilebilir. Bunlar; true (doğru) yada false (yanlış) tır. Dikkat edilmesi gereken önemli bir başka nokta ise false değerinin matematiksel karşılığının 0, true değerinin ise 1 olduğudur. Bunun tersi de söz konusudur. 0 rakamının mantıksal karşılığı false, 0 dan farklı herhangi bir sayının mantıksal karşılığı true dur. Bu özellikleri kullanarak sayısal değerler bir sonraki başlıkta anlatılacak olan mantıksal operatörlerde operand olarak kullanılabilir. Örneğin, int a = -12, b = 1, c = 0; bool d = Convert.ToBoolean(a); bool e = Convert.ToBoolean(b); bool f = Convert.ToBoolean(c); İşlemleri sonucunda d ve e değişkenleri true, f değişkeni ise false değerini alacaktır.

10 10 Mantıksal operatörler Bu operatörler true veya false sabit ya da değişkenleri mantıksal ve, veya, değil işlemine sokarlar. Bunlar şunlardır. && (ve) (veya)! (değil) Bu operatörü kullanan operandların değerlerine göre mantıksal operatörün sonuçları ise aşağıdaki gibidir. Op1 Op2 Op1 && Op2 Op1 Op2! Op1 true true true true --- true false false true --- false true false true --- false false false false --- true false false true Atama ve işlemli atama operatörleri Atama (=) operatörüyle ilgili bilmeniz gereken iki şey var. Bunlar; 1. Sol tarafta kesinlikle yalnızca bir tane değişken olmalı. 2. = operatöründe işlemler sağdan sola gerçekleşir Aşağıdaki örneği ele alalım. int a = -12, b = 1, c; c = a = b; Burada, öncelikle a=b işlemi, ardından da c=a işlemi gerçekleşecektir. Sonuç olarak da c=1, a=1, b=1 ataması gerçekleşecektir. İşlemli atama operatörleri ise atama operatörünün yaptığı işi daha kısa kodla yaparlar. Aşağıdaki tabloda işlemli atama operatörleri görülmektedir. İşlem İşlemli atama a=a+b a+=b a=a-b a-=b a=a*b a*=b a=a/b a/=b a=a%b a%=b?: operatörü?: operatörü C#'ta üç operand alan tek operatördür. Verilen koşula göre verilen değerlerden birini tutar. Kullanımı şöyledir: koşul? doğruysa_değer : yanlışsa_değer;

11 11 Aşağıdaki örneği inceleyelim. int a = -12, b = 1, c; c = (a < b)? a : b; Bu örnekte, a ve b değişken değerleri karşılaştırılıyor ve küçük olan değer c ye aktarılıyor. Sonuç olarak c=-12 değerini alır.

12 12 Akış Kontrol Mekanizmaları Program yazarken çoğu zaman çeşitli koşullara göre farklı komutlar çalıştırmamız gerekir. Benzer şekilde çoğu komutun da yalnızca bir kez çalıştırılması bizim için yeterli gelmez, belli koşulları sağladığı sürece sürekli çalıştırılmasını istediğimiz komutlar olabilir. İşte bu gibi durumlar için C#'ta akış kontrol mekanizmaları vardır. Aslında en basitinden en karmaşığına kadar bütün programlama dillerinde bu mekanizmalar mevcuttur ve programlama dillerinin en önemli öğelerinden birisidir. If else if yapısı Bu deyim sayesinde belli şartlar sağlandığında söz konusu komutlar çalıştırılır. if else if deyiminin kullanım şekilleri aşağıdaki gibidir. if (şart) //şart sağlanırsa çalıştırılacak kodlar if (şart) //şart sağlanırsa çalıştırılacak kodlar else //şart sağlanmazsa çalıştırılacak kodlar if (1. şart) //1. şart sağlanırsa çalıştırılacak kodlar else if (2. şart) //2. şart sağlanırsa çalıştırılacak kodlar else //hiçbir şart sağlanmazsa çalıştırılacak kodlar İf deyiminin genel kullanım kuralları ise şu şekildedir. İf deyiminde else ifadesinin olma zorunluluğu yoktur. Bu durumda sadece şart sağlanırsa blok içerisindeki kodlar çalıştırılır. else" ifadesi içerisindeki kodlar hiçbir şart sağlanmadığı takdirde çalıştırılır. Birden fazla else if ibaresi bulunabilir. Böyle bir durumda sırasıyla bütün şartlar tek tek kontrol edilir ve şartın sağlandığı blok çalıştırılır, diğerleri ise hiç kontrol edilmeden yapının bitiminden itibaren program çalıştırılmaya devam edilir. İç içe istendiği kadar if else if ifadesi kullanılabilir. Eğer if, else if, else ibarelerinden sonra tek satır kod çalıştırılacaksa bunları parantez içerisinde yazma zorunluluğu yoktur. Bu durum birz sonra anlatılacak olan döngüler için de geçerlidir. int a = -12, b = 1; if (a < b) Console.WriteLine("a b'den küçük"); else Console.WriteLine("b a'dan küçük"); Console.ReadLine();

13 13 Yukarıdaki örnekte a ve b sayıları karşılaştırılıyor ve büyüklük küçüklük durumuna göre ekrana ilgili bilgiler yazılıyor. int a = -12, b = 1; if (a < b) Console.WriteLine("a b'den küçük"); Console.WriteLine(a); else Console.WriteLine("b a'dan küçük"); Console.WriteLine(b); Console.ReadLine(); Bu örnekte ise aynı karşılaştırma yapılıyor, ancak ek olarak ekrana sayılar da yazdırılıyor. Dikkat edilecek olursa bir önceki örnekte tek satır kod olduğu için parantez kullanılmamıştır. Burada ise şart sağlandığı takdirde birden fazla satır işletileceği için parantez kullanma zorunluluğu vardır. switch case yapısı switch deyimi bazı if else deyimlerinin yaptığı işi daha az kodla yapar. Genellikle bazı karmaşık if else bloklarını kurmaktansa switch'i kullanmak programın anlaşılırlığını artırır. Ancak tabii ki basit if else bloklarında bu komutun kullanılması gereksizdir. Genel kullanım şekli aşağıdaki gibidir. switch (ifade) case sabit1: //ifade==sabit1 olduğunda çalıştırılacak kodlar break: case sabit2: //ifade==sabit2 olduğunda çalıştırılacak kodlar break:... default: //ifade hiçbir case e uymuyorsa çalıştırılacak kodlar break: switch ile ilgili bilinmesi gereken kurallar ise şu şekildedir. İfadenin ürettiği değer hangi case sabitinde varsa o case deki komutlar işletilir. Eğer ifadenin ürettiği değer hiçbir case sabitinde yoksa default komutları işletilir. Her bir case sabiti birbirinden farklı olmak zorundadır. Herhangi bir case'e ait komutların break; satırı ile sonlandırılması gerekmektedir. Eğer break; satırı ile sonlandırılmazsa programımız hata verir. Eğer farklı case sabitlerinin aynı komutları çalıştırmasını istiyorsak case ler arasına hiçbir şey yazmadan alt alta yazılabilir.

14 14 case anahtar sözcüğünün yanındaki ifade mutlaka ya sabit ya da sabitlerden oluşan bir ifade olmalıdır. default durumunu istediğiniz yere yazabilirsiniz, aynı şekilde istediğiniz case i de istediğiniz yere yazabilirsiniz. Yani case lerin sırası önemli değildir. Bir switch bloğunda default durumu bulunmak zorunda değildir. switch'in parantez içindeki ifadesi bir değişken olabileceği gibi, bir sabit ya da ifade de olabilir. Aşağıdaki örneği inceleyelim. int not; Console.Write("1 ile 5 arasında bir not girin--->"); not = Convert.ToInt32(Console.ReadLine()); switch (not) case 1: Console.WriteLine("Başarısız..."); break; case 2: Console.WriteLine("Zayıf..."); break; case 3: Console.WriteLine("Orta..."); break; case 4: Console.WriteLine("İyi..."); break; case 5: Console.WriteLine("Çok İyi..."); break; default: Console.Write("Yanlış Bir Not Girdiniz."); break; Console.ReadLine(); Bu örnekte, ekrana 1 ile 5 arasında bir sayı girilmesi isteniyor. Girilen sayıya göre de başarı durumu ekrana yazılıyor. if ve switch yapıları benzer işlevler görseler de kullanım yerlerine ve birbirlerine göre değişik avantajları vardır. if else if yapılarında, kontrol edilen değişkenlerin ya da değerlerin her seferinde tekrar yazılması gerekir. Bu durumda switch karar yapısı, kodların yazılışını ve okunuşunu kolaylaştırması açısından tercih edilmelidir. Ancak switch ile belli değerler aralığında kontrol yapılması, case ifadelerinin ardı ardına yazılması gerektiği için zordur. Döngüler Programda bazı işlemlerin tekrar çalışması için, onları her seferinde yazmak gerekir. Ancak bu çözüm, çok fazla tekrar için hem yazmayı hem de okumayı zorlaştırır. Örneğin yüz tane sayının toplanması için işlemin yüz defa yazılması gerekir. Ayrıca, döngü sayısının değişken olduğu durumlarda tekrar kodları yazmak programcının işini oldukça zorlaştırmaktadır. Bu sıkıntıları ortadan kaldırmak için geliştirilen döngüler bütün programlama dillerinde olduğu gibi C# programlama dilinin de vazgeçilmez bileşenlerinden

15 15 birisidir. Döngüler ile işlem sadece bir defa yazılır ve tekrar sayısına göre bu işleme geri dönülür. Yaygın olarak kullanılan döngüler ise sırasıyla for, while ve do while döngüleridir. for döngüsü for döngüsü bir işlemin ya da işlem grubunun belirli sayıda yapılması için kullanılır. Genel kullanım şekli aşağıdaki gibidir. for (A; B; C) //Döngü içerisinde çalıştırılacak kodlar. Burada; A: Başlangıç ataması, for döngüsü içerisinde yalnızca bir kez çalıştırılır. B: Döngünün devam şartı, her döngünün başında bir kez kontrol edilir ve şart sağlanıyorsa döngü çalıştırılır. Sağlanmıyorsa döngünün bitiminden devam edilir. C: Döngünün her tamamlanmasında yapılacak işlem, her döngünün sonunda bir kez gerçekleştirilir. for döngüsünün kullanımı ile ilgili basit bir örnek aşağıdaki gibidir. namespace ConcoleApplication1 class Program static void Main(string[] args) int i, toplam = 0; for (i = 0; i < 100; i++ ) toplam += i; Console.WriteLine("0'dan 100'e kadar olan sayıların toplamı= 0", toplam); Console.ReadLine(); Bu örnekte 0 dan 100 e kadar olan sayıların toplamı bulunmakta ve ekrana yazılmaktadır. C# ın diğer bileşenlerinde olduğu gibi for döngüsü kullanılırken bazı kurallara dikkat edilmek zorundadır. Bunlar sırasıyla; for deyiminden sonra mutlaka bir parantez olmalı ve bunun içerisinde birbirinden ; ile ayrılmış üç bölge olmalı. Bu bölgeler sırasıyla, Başlangıç ataması, Döngünün devam şartı ve Döngünün her tamamlanmasında yapılacak işlem yazılmalıdır. Bunlardan biri ya da birkaçı olmasa dahi ilgili bölge boş bırakılmalıdır. Yukarıdaki örnekte int i, toplam = 0; for (i = 0; i < 100; i++ ) yerine

16 16 int i=0, toplam = 0; for (; i < 100; i++ ) yazılabilir. Dikkat edilecek olursa başlangıç ataması döngüye başlamadan gerçekleştirildi ve for döngüsünde ilgili bölge boş bırakıldı. for deyiminden sonraki parantez içerisindeki her bölgeye birden fazla işlem yazılabilir ve karmaşık karşılaştırma işlemleri gerçekleştirilebilir. Birden fazla işlem yapılacaksa her işlem arasına, konulmalıdır. Yukarıdaki örnekte int i, toplam = 0; for (i = 0; i < 100; i++ ) yerine int i, toplam; for (i = 0, toplam = 0; i < 100; i++ ) yazılabilir. for deyiminde döngü içerisinde çalıştırılacak tek satır kod varsa küme parantezi içerisine almaya gerek yoktur. Örnek: Ekrandan girilen bir sayının faktöriyelini hesaplayan program using System; namespace ConcoleApplication1 class Program static void Main(string[] args) int sayi, i; long fakt = 0; Console.Write("Faktöriyeli alınacak sayıyı girin >>> "); sayi = Convert.ToInt32(Console.ReadLine()); if (sayi >= 0) for (i = 2, fakt = 1; i <= sayi; i++) fakt *= i; Console.WriteLine("0 sayısının faktöriyeli= 1", sayi, fakt); else Console.WriteLine("Negatif bir sayı girdiniz..."); Console.ReadLine(); Örnek: NXN boyutlu bir matrisin elemanları indisleri toplamına eşittir. Ekrandan girilen bir sayı boyutundaki matrisi ekrana formatlı bir şekilde yazan program

17 17 using System; namespace ConcoleApplication1 class Program static void Main(string[] args) int boyut, i, j, toplam = 0; Console.Write("Matrisin Boyutunu girin >>> "); boyut = Convert.ToInt32(Console.ReadLine()); if (boyut >= 0) for (i = 1; i <= boyut; i++) for (j = 1; j <= boyut; j++) toplam = i + j; Console.Write("0\t", toplam); Console.WriteLine(); else Console.WriteLine("Negatif bir sayı girdiniz..."); Console.ReadLine(); while ve do while döngüsü while döngüsü belirli bir şart sağlandığı sürece bir işlemin ya da işlem gurubunun yapılması için kullanılır. Genel kullanımı şu şekildedir. while (şart) //Döngü içerisinde çalıştırılacak kodlar. do while döngüsü ise while döngüsünde olduğu gibi belirli bir şart yerine getirildiği sürece bir işlemin ya da işlem gurubunun yapılması için kullanılır. Genel kullanımı ise şu şekildedir. do //Döngü içerisinde çalıştırılacak kodlar. while (şart); do while döngüsü ise while döngüsü arasındaki tek fark while döngüsünde döngünün devam ettirilmesi koşulu döngünün başında kontrol edilirken do while döngüsünde bu işlem sonda yapılır. Bu nedenle do while döngüsünde döngü içerisindeki kod en az bir kez çalıştırılır. while döngüsünde ise bu zorunluluk yoktur.

18 18 Örnek: Ekrana girilen bir tamsayının ikili düzende karşılığını ekrana ters sırada yazan program using System; namespace ConcoleApplication1 class Program static void Main(string[] args) int sayi, kalan; Console.Write("Bir Sayı Girin >>> "); sayi = Convert.ToInt32(Console.ReadLine()); if (sayi >= 0) while (sayi > 1) kalan = sayi % 2; sayi = (sayi - kalan) / 2; Console.Write("0 ", kalan); Console.WriteLine("0 ", sayi); else Console.WriteLine("Negatif bir sayı girdiniz..."); Console.ReadLine(); //Programın ekran çıktısı Bir Sayı Girin >>>

19 19 DİZİLER: Dizi değişkenleri, aynı tipte birçok veriyi bir arada tutmayı sağlar. Benzer işlemlerde kullanılan değişkenler bir dizi altında listelenebilir. Bildirim Şekilleri: <tip>[] DiziAdı=new <tip>[boyut]; <tip>[] DiziAdı; <tip>[] DiziAdı=...; Örneğin kullanıcıdan alınan yaş bilgileri int tipinde bir dizi içinde toplanabilir. int [] yas; Dizilerin kaç eleman içereceği, dizi tanımlanırken ya da daha sonra belirtilebilir: int [] yas = new int [10]; yada int [] yas; //... yas = new int[4]; Dizilerin indisleri sıfırdan başlar. Örnekteki isimler dizisinin 4 tane int tipinden elemanı vardır. Dizilerin elemanlarına ulaşmak için, istenilen elemanın indisi verilmesi gerekir. using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace ConsoleApplication1 class Program static void Main(string[] args) int[] yas = new int[4]; yas[0] = 20; yas[1] = 21; yas[2] = 19; yas[3] = 20; for (int i = 0; i < 4; i++) Console.WriteLine(yas[i]); Console.ReadLine();

20 20 Dizilere tek tek değer atanabildiği gibi, tanımlarken de başlangıç değerleri atanabilir. int [] yas = 20, 21, 19, 20; Diziler tek boyutlu olduğu gibi, birkaç boyutlu diziler de tanımlanabilir. // İlk boyutunda 5, İkinci boyutunda 6 int değeri olan // 2 boyutlu dizi int [,] matris = new int[5,6]; Burada dizinin ilk boyutunda 5 tane eleman vardır. İlk boyuttaki her eleman için İkinci boyutta 6 eleman bulunur. Dolayısıyla toplam 30 elemanlı bir dizidir. Bu dizide bir boyut daha olsaydı, o boyutun her elemanı için diğer boyutlardaki 30 eleman bulunacaktı. Çok boyutlu dizilerin eleman sayıları boyutlarındaki eleman sayılarını çarparak hesaplanabilir. int [,,,,] dizi = new int[boyut1,boyut2,boyut3,...,boyutn]; // Eleman sayısı= boyut1 * boyut2 *... * boyutn Çok boyutlu dizilere başlangıç değerleri, dizinin boyutu dikkate alınarak verilmelidir. Boyutlardaki elemanlar küme parantezleri ile gruplanmalıdır. // İlk boyutunda 2, ikinci boyutunda 4 eleman olan // 2 boyutlu dizi int [,] matris = 1, 2, 3, 4, 5, 6, 7, 8; Çok boyutlu dizilerin elemanlarına ulaşmak için, her boyut için indis göstermek gerekir. matris[0, 0] = 1; Bazı dizi özellikleri ve metotları Length: Dizinin bütün boyutlarındaki toplam eleman sayısını veren özelliktir Rank: Dizinin boyut sayısını veren özelliktir. GetLength: İndisi verilen boyutun kaç elemanlı olduğunu gösterir. Burada indisin sıfırdan başladığına dikkat edilmelidir. int GetLength(int dimension)

21 21 using System; namespace ConsoleApplication1 class Program static void Main(string[] args) int[,] yasmatrisi = 20, 19, 17, 30, 32, 33 ; Console.WriteLine("Toplam Eleman Sayısı= 0", yasmatrisi.length); Console.WriteLine("Boyut Sayısı= 0", yasmatrisi.rank); Console.WriteLine("1. Boyuttaki Eleman Sayısı= 0", yasmatrisi.getlength(0)); Console.WriteLine("2. Boyuttaki Eleman Sayısı= 0", yasmatrisi.getlength(1)); Console.ReadLine(); //Ekran Çıktısı Toplam Eleman Sayısı= 6 Boyut Sayısı= 2 1. Boyuttaki Eleman Sayısı= 2 2. Boyuttaki Eleman Sayısı= 3 Clear: Parametre olarak verilen dizinin, belirtilen indis aralığındaki tüm değerleri temizler. Temizleme işleminde atanan değer, dizi elemanlarının tiplerine göre değişir. Örneğin int tipinde tanımlı bir dizinin elemanları temizlenirse 0 değerini alacaktır. Buna karşın String tipindeki elemanlar (boş yazı) değerini alır. void Clear(Array array, int index, int length) Reverse: Parametre olarak verilen dizinin eleman sırasını tersine çevirir. Dizinin tüm elemanlarının veya belirli indis aralığındaki elemanlarının sırası tersine çevrilebilir. void Reverse(Array array) void Reverse(Array array, int index, int length) IndexOf: İlk parametrede verilen dizide, ikinci parametrede verilen değeri arar. Aranan değer dizide bulunursa indisi, bulunamazsa -1 döndürür. int IndexOf(Array array,object value) Copy: Bir dizinin elemanlarını diğerine kopyalar. void Copy(Array src,array dest,int length) Equal: İki dizinin birbinin aynısı olup olmadığını kontrol eder. İki dizi de aynı ise true, değilse false döndürür. bool Equals(Object obj)

22 22 Resize: Bir dizinin boyutunu değiştirir. void Resize<T>(ref T[] array,int newsize) Sort: Bir dizinin içerisindeki verileri sıralar. void Sort(Array array) public static void Sort(Array array,int index,int length) using System; namespace ConsoleApplication1 class Program static void Main(string[] args) int i; int[] Data2 = 3,5,6,2,1,9,8,10,4,7 ; int[] Data=new int[data2.length]; Array.Copy(Data2, Data, Data2.Length); Console.WriteLine("Dizinin orjinal hali:\t"); for (i = 0; i < Data.Length; i++) Console.Write("0,", Data[i]); Console.WriteLine(); Array.Sort(Data); Console.WriteLine("Dizinin sıralanmış hali:"); for (i = 0; i < Data.Length; i++) Console.Write("0,", Data[i]); Console.WriteLine(); Array.Reverse(Data, 2, 3); Console.WriteLine("Bir parçanın ters çevrilmiş hali:"); for (i = 0; i < Data.Length; i++) Console.Write("0,", Data[i]); Console.WriteLine(); Array.Clear(Data, 1, 5); Console.WriteLine("Bir parçanın temizlenmiş hali:"); for (i = 0; i < Data.Length; i++) Console.Write("0,", Data[i]); Console.WriteLine(); Array.Resize(ref Data, (Data.Length + 4)); Console.WriteLine("Dizinin boyutunun arttırılmış hali:"); for (i = 0; i < Data.Length; i++) Console.Write("0,", Data[i]); Console.WriteLine(); Console.WriteLine("9'un yeri 0", Array.IndexOf(Data, 9)); Console.WriteLine((Array.Equals(Data, Data2))? "Diziler Birbirine eşit." : "Diziler Birbirine eşit değil."); Console.ReadLine();

23 23 //Ekran Çıktısı Dizinin orjinal hali: 3,5,6,2,1,9,8,10,4,7, Dizinin sıralanmış hali: 1,2,3,4,5,6,7,8,9,10, Bir parçanın ters çevrilmiş hali: 1,2,5,4,3,6,7,8,9,10, Bir parçanın temizlenmiş hali: 1,0,0,0,0,0,7,8,9,10, Dizinin boyutunun arttırılmış hali: 1,0,0,0,0,0,7,8,9,10,0,0,0,0, Diziler Birbirine eşit değil. 9'un yeri 8 foreach döngüsü foreach döngüsü diziler için özel olarak kullanılan bir döngü tipidir. Genel kullanım şekli aşağıdaki gibidir. foreach (değişken in dizi) //Döngü içerisinde çalıştırılacak kodlar. foreach döngüsü ile döngünün her adımında değişken kısmına yazılan değişkene dizi nin elemanları sırasıyla aktarılır. Önemli olan nokta ise dizi nin tipi ile değişkenin tipi aynı olmak zorundadır. using System; namespace ConsoleApplication1 class Program static void Main(string[] args) int[] Data = 3,5,6,2,1,9,8,10,4,7 ; foreach(int veri in Data) Console.Write("0 ", veri); Console.ReadLine(); //Ekran Çıktısı String C# ile sadece matematiksel işlemler değil metinsel işlemlerde gerçekleştirilebilir. Metinler üzerinde işlem yapmayı kolaylaştıran String ler (Karakter katarı) ise içerisinde karakter bulunduran dizi olarak düşünülebilir. Dolayısıyla, diziler için yukarıda tanımlanan bütün özellik ve fonksiyonlar stringler için de geçerlidir. Bunlara ek olarak, sadece stringler için tanımlanmış fonksiyonlar da vardır. Bunlardan bazıları;

24 24 + operatörü: Bu operatör önünde ve arkasında bulunan stringleri birleştirip tek bir string ortaya çıkarır. Split: Belirtilen ayraca göre yazıyı böler, çıkan sonuç String dizisinde tutulur. Ayraç karakterleri sonuç dizisinde yer almaz. string[] Split(char[] separator) Insert: String tipinde bir değişkenin değerine, ilk parametrede belirtilen yerden başlayarak ikinci parametredeki değeri ekler. Ancak bu değişkenin değeriyle oynamaz. Yeni oluşturulan String ifadesini döndürür string Insert(int startindex,string value) Remove: Bir String ifadeden karakter silme işlemi gerçekleştirir. string Remove(int startindex): Verilen parametreden itibaren string değişkenin sonuna kadar bütün karakterler silinir. string Remove(int startindex,int count): İlk parametrede verilen değerden başlayarak, ikinci parametredeki değer kadar karakter, değişkenden çıkarılır SubString: Bir String ifadeden parça alma işlemini gerçekleştirir. string Substring(int startindex): Verilen parametreden itibaren string değişkenin sonuna kadar bütün karakterleri döndürür. string Substring(int startindex,int length): İlk parametrede verilen değerden başlayarak, ikinci parametredeki değer kadar olan karakter katarını döndürür. ToUpper (ToLower): Bir String ifadenin tüm karakterleri büyüğe (küçüğe) dönüştürür. string ToUpper() string ToLower() Uygulama Gezgin Satıcı problemi (GSP), Endüstri mühendisliğinde ele alınan birçok problemin temelini oluşturmaktadır. GSP kısaca şu şekilde tanımlanabilir. N adet düğümden oluşan bir şebekede tüm düğüm çiftleri arasındaki uzaklıklar (c ij ) bilinmektedir. GSP de amaç en küçük

25 25 maliyetle tüm düğümleri kapsayan kapalı bir döngü oluşturmaktır. Aşağıdaki şekilde 11 düğümlük bir GSP için örnek çözüm bulunmaktadır GSP nin çözümü için önerilen basit bir sezgisel yöntemde, GSP çözümü düğümlerin bir sırası ile tutulmaktadır (yukarıdaki örnek için 1,2,3,9,10,8,11,6,7,4,5 gibi). Başlangıçta düğümlerin numaralarına göre sıralanmasıyla elde edilen bir çözümden yerdeğiştirme komşuluk mekanizması ile yeni çözümler üretilmekte ve yeni üretilen çözüm o ana kadar bulunan en iyi çözümden daha iyi ise en iyi çözüm güncellenmektedir. Yerdeğiştirme komşuluk mekanizmasında rassal seçilen iki düğümün yerleri değiştirilmektedir. Yukarıdaki örnekte, mevcut çözümde 3 ve 7 numaralı düğümlerin yer değiştirmesi ile elde edilen yeni çözüm 1,2,11,9,10,8,3,6,7,4,5 şeklinde olacaktır. Sezgisel algoritmanın adımları aşağıda tanımlanmaktadır. Adım1: Başlangıç çözümünü (S baş ) üret, mevcut çözümü (S mev ) ve en iyi çözümü (S eniyi ) başlangıç çözümüne eşitle (S mev = S baş, S eniyi =S baş ). Adım2: Mevcut çözüm üzerinde rassal seçilen iki noktayı yer değiştirerek yeni çözüm (S yeni ) elde et. Adım3: Eğer yeni çözüm en iyi çözümden daha iyi ise (S yeni < S eniyi ) en iyi çözümü güncelle (S eniyi = S yeni ). Adım4: Yeni çözümü mevcut çözüm olarak kabul et (S mev = S yeni ) ve iterasyon sayısını bir arttır. Adım5: Eğer iterasyon sayısı belirlenen sınırdan küçükse Adım2 ye git. Değilse en iyi çözümü raporla ve dur. Yukarıdaki algoritmayı, düğüm ve deneme sayısı ekrandan kullanıcı tarafından girilen ve düğüm çiftleri arası uzaklıkların (c ij ) [5-10] arasında rassal üretildiği bir GSP örneğini çözün.

26 26 Metotlar (Fonksiyonlar ve Yordamlar): Uygulama geliştirirken, bir işlemin birçok yerde kullanıldığı zamanlar olur. Bu gibi durumlarda bir kere yazılan kodlar, farklı yerlerde tekrar yazılır. Uygulama üzerinde bir değişiklik yapılmak istenirse, tekrar yazılan kodların tek tek bulunup değiştirilmesi gerekir. Böylece hem uygulamanın yazımı zorlaşır hem de değişik yapmak giderek imkânsız hale gelir. Bu problemler, birçok yerde yapılması istenen işlemlerin metotlar (fonksiyonlar ve yordamlar) içinde yazılması ile çözülür. Sadece metot isimleri kullanılarak, istenen yerlerde kodlar çalıştırılır. Aşağıda bir önceki bölümde verilen örneğin metot kullanılarak hazırlanmış hali bulunmaktadır. using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace ConsoleApplication1 class Program static void Yaz(string Baslik, int[] Data) int i; Console.WriteLine(Baslik); for (i = 0; i < Data.Length; i++) Console.Write("0,", Data[i]); Console.WriteLine(); static void Main(string[] args) int[] Data2 = 3, 5, 6, 2, 1, 9, 8, 10, 4, 7 ; int[] Data = new int[data2.length]; Array.Copy(Data2, Data, Data2.Length); Yaz("Dizinin orjinal hali:\t", Data); Array.Sort(Data); Yaz("Dizinin sıralanmış hali:\t", Data); Array.Reverse(Data, 2, 3); Yaz("Bir parçanın ters çevrilmiş hali:\t", Data); Array.Clear(Data, 1, 5); Yaz("Bir parçanın temizlenmiş hali:\t", Data); Array.Resize(ref Data, (Data.Length + 4)); Yaz("Dizinin boyutunun arttırılmış hali:\t", Data); Console.WriteLine((Array.Equals(Data, Data2))? "Diziler Birbirine eşit." : "Diziler Birbirine eşit değil."); Console.WriteLine("9'un yeri 0", Array.IndexOf(Data, 9)); Console.ReadLine(); //Ekran Çıktısı Dizinin orjinal hali: 3,5,6,2,1,9,8,10,4,7, Dizinin sıralanmış hali: 1,2,3,4,5,6,7,8,9,10, Bir parçanın ters çevrilmiş hali:

27 27 1,2,5,4,3,6,7,8,9,10, Bir parçanın temizlenmiş hali: 1,0,0,0,0,0,7,8,9,10, Dizinin boyutunun arttırılmış hali: 1,0,0,0,0,0,7,8,9,10,0,0,0,0, Diziler Birbirine eşit değil. 9'un yeri 8 Yukarıdaki örnekte görüleceği gibi yeni programımız daha az sayıda komut ile hazırlanmıştır. Programı fonksiyonlar halinde hazırlanan birçok faydası vardır. Bunlardan bazıları; 1. Kod karmaşası ortadan kalkar ve programın kontrolü kolaylaşır. 2. Daha küçük boyutlu sonuç dosyası (derleme sonucu elde edilen uygulama dosyası) elde edilir. 3. Programdaki değişiklikler çok daha kolay yapılabilir. 4. Daha güvenlidir. Genel bir fonksiyonun prototipi aşağıdaki gibidir. <erişim şekli> [static] <geri dönüş tipi> MetotAdı(prametreler) //Metot içerisindeki kodlar <geri dönüş tipi>: kullanıcı tarafından hazırlanan bir fonksiyonda bazı işlemler gerçekleştirildikten sonra bir değer döndürebilir. Matematiksel fonksiyonlar bunun için güzel bir örnektir. Ancak bazı durumlarda hazırlanan fonksiyon hiçbir değer döndürmeden sadece birtakım işlemleri gerçekleştirebilir. Yukarıdaki örnekte hazırlanan Yaz fonksiyonu buna bir örnektir. Böyle bir durumda geri dönüş tipini belirtmeye gerek yoktur. Ancak, kodun rahat okunabilmesi amacıyla void anahtar sözcüğünün kullanılması tavsiye edilir. Eğer hazırlanan fonksiyon bir değer döndürüyorsa geri dönüş tipi olarak döndürdüğü değişkenin tipi verilmelidir ve fonksiyon içerisinde return anahtar kelimesi kullanılmalıdır. int Topla(int a,int b) return a+b; return anahtar kelimesi fonksiyonu sonlandırmak amacıyla da kullanılmaktadır. Yukarıdaki örnekte Yaz fonksiyonuna gönderilen dizi içeriği boş ise hiçbirşey yazmadan fonksiyonun sonlanması aşağıdaki gibi gerçekleştirilebilir. static void Yaz(string Baslik, int[] Data) int i; if (Data.Length == 0) return; Console.WriteLine(Baslik); for (i = 0; i < Data.Length; i++) Console.Write("0,", Data[i]); Console.WriteLine(); [static]: static anahtar kelimesi fonksiyonun çağrılış biçimini etkilemektedir. static olarak tanımlanan metotlara erişmek için metodun içinde bulunduğu sınıf türünden bir nesne yaratmaya gerek yoktur. static olarak tanımlanan metotlara sadece metodun adını yazarak erişilebilir. Aksi

28 28 takdirde metodun içinde bulunduğu sınıf türünden bir nesne yaratmak gerekmektedir. Aşağıdaki örneği inceleyelim: using System; class Metot int Topla(int a,int b) return a+b; static void Main() Metot nesne=new Metot(); int a=nesne.topla(2,5); Console.Write(a); Bu örnekte Topla fonksiyonu aynı sınıf (class) içerisinde tanımlanmasına rağmen static anahtar kelimesi kullanılmadığı için Topla fonksiyonunu kullanabilmek için Metot nesne=new Metot(); komutu ile bir Metot sınıfından bir nesne üretilip o nesnenin fonksiyonu kullanılmaktadır. Aynı örneği aşağıdaki gibi yazabiliriz. using System; class Metot static int Topla(int a,int b) return a+b; static void Main() int a=topla(2,5); Console.Write(a); Bu örnekte Topla fonksiyonu doğrudan kullanılabilir. <erişim şekli>: Bu anahtar kelime hazırlanan fonksiyonun kimler tarafından kullanılacağını belirlemektedir. Sık kullanılan iki çeşit erişim şekli vardır. Bunlar; public: Hazırlanan fonksiyon programın herhangibir yerinden çağrılabilir. private: Hazırlanan fonksiyon sadece hazırlandığı sınıf içerisinden çağırılabilir. private anahtar kelimesi kod güvenliği açısından önemlidir. (Sınıf ve yapılar dersinde detaylarıyla değinilecek).

29 29 Aşağıdaki örneği inceleyelim. using System; class Metot2 public static int Topla(int a,int b) return a+b; class Metot static int Main() Console.WriteLine(Metot2.Topla(5, 10)); return 0; Burada, Main fonksiyonu içerisinde Metot2 sınıfı içerisinde tanımlanan public bir fonksiyon çağırıldığı için bir hata mesajı ile karşılaşılmayacaktır. Ancak, Topla fonksiyonu private olarak tanımlansaydı program hata verecek ve çalışmayacaktır. parametreler: Bir fonksiyonun çalışması için gerekli olan bileşenlerdir. Yukarıdaki örnekte Topla fonksiyonun çalışması için iki tane int tipinde değişkenin bu fonksiyona gönderilmesi gerekmektedir. Bir fonksiyonun mutlaka parametreye ihtiyacı olmayabilir. Örneğin, çok sık kullanılan Console.WriteLine() fonksiyonuna hiçbir parametre gönderilmediği zaman sadece ekranda imleci bir alt satıra indirir. Programlama literatüründe kullanıcı tanımlı metotlar parametre alıp almamasına göre fonksiyon (parametresi bulunan metotlar) yada yordam (parametresi bulunmayan metotlar) olarak da adlandırılmaktadır. C# da hazırlanan bir fonksiyonda kullanılan parametrelerin sayısı ve tipi mutlaka çağırıldığı yerdeki ile aynı olmak zorundadır. Fonksiyonlara standart olarak tanınan tipler (int, double vb.) gönderilebileceği gibi kullanıcı tanımlı diziler gönderilebilir. Aşağıdaki örneği inceleyelim. using System; class Metot2 public static int Topla(int[] sayilar) if (sayilar.length == 0) return 0; int toplam = 0; foreach (int i in sayilar) toplam += i; return toplam; class Metot static int Main() int[] Data = 3, 5, 6, 2, 1, 9, 8, 10, 4, 7 ; Console.WriteLine(Metot2.Topla(Data)); return 0;

30 30 Bu örnekte, Topla fonksiyonuna bir dizi gönderilmekte ve bu dizi içerisindeki bütün değerler toplanarak sonuç ekrana yazılmaktadır. Bir metoda parametre olarak gönderilen dizi üzerinde yapılacak bir değişiklik esas diziyide etkilemektedir. Ancak, parametre olarak gönderilen bir değişkende yapılacak değişiklik esas değişkeni etkilememektedir. Çünkü bir metoda parametre olarak bir dizi verildiğinde derleyici metoda dizinin bellekteki adresini verir; metot o adresteki verilerle çalışır. Dolayısıyla da dizinin herhangi bir elemanındaki değişiklik esas diziyi etkileyecektir. Çünkü gerek esas program, gerekse de metot aynı adresteki verilere erişir. Hâlbuki bir metoda parametre olarak bir değişken verdiğimizde metot için değişkenin bellekteki adresi önemli değildir, metot için önemli olan değişkenin değeridir. Metot, değişkeni kullanabilmek için geçici bir bellek bölgesi yaratır ve parametre olarak aldığı değişkenin değerini bu geçici bellek bölgesine kopyalar ve o geçici bellek bölgesiyle çalışır. Metottan çıkıldığında da o geçici bellek bölgesi silinir. Ancak, bazı durumlarda hazırlanan metoda parametre olarak gönderilen bir değişkenin değişmesi istenebilir. Bu durum genellikle metaottan birden fazla değişken değeri okunmak istendiğinde işe yaramaktadır. Bu isteği yerine getirebilmek için ref ve out anahtar kelimeleri kullanılmaktadır. Yukarıdaki örneği tekrar düzenleyelim; using System; class Metot2 public static int Topla(ref int a, ref int b) return a + b; class Metot static int Main() int a, b; a = 5; b = 10; Console.WriteLine(Metot2.Topla(ref a, ref b)); return 0; Bu örnekte, Topla fonksiyonuna a ve b nin değerleri yerine hafızadaki adresleri gönderilmektedir. Dolayısıyla Topla fonksiyonu içerisinde a ve b değişkenlerinde yapılacak herhangibir değişiklik çağıran fonksiyondaki değişken değerlerini de değiştirecektir. Benzer işlemler out anahtar kelimesi kullanılarak da gerçekleştirilebilir. Aralarındaki tek fark ise ana fonksiyondan gönderilen parametrelere ilk değer verme işlemlerinde ortaya çıkmaktadır. out ile ilk değer verme zorunluluğu yoktur ancak ilk değer verilmemişse kullanıldığı fonksiyonda ilk değer ataması gerçekleştirilmelidir. ref ile ilk değer verme zorunluluğu vardır. Bu nedenle kullanıldığı fonksiyonda bir değer atamasına ihtiyaç olmayabilir. Metot Aşırı Yüklenmesi ve Çağrılış Sırası: C#'ta parametre sayısı ve/veya parametrelerin türleri farklı olmak şartıyla aynı isimli birden fazla metot yaratılabilir. Buna metotların aşırı yüklenmesi denir. C#, bir metot çağrıldığında ve çağrılanla aynı isimli birden fazla metot

31 31 bulunduğunda metodun çağrılış biçimine bakar. Yani ana programdaki metoda girilen parametrelerle metotları kıyaslar. Önce parametre sayısına bakar. Eğer aynı isimli ve aynı sayıda parametreli birden fazla metot varsa bu sefer parametre türlerinde tam uyumluluk arar, parametre türlerinin tam uyumlu olduğu bir metot bulamazsa bilinçsiz tür dönüşümünün mümkün olduğu bir metot arar, onu da bulamazsa programımız hata verir. Aşağıdaki örneği inceleyelim. Bilinçsiz tür dönüşümlerinde dikkat edilecek nokta ise tür dönüşümü mümkün olan birden fazla fonksiyon varsa en az kaynağa ihtiyaç olan fonksiyon çalıştırılacaktır. Aşağıdaki örneği inceleyelim. using System; class Metot2 public static int Topla(int a, int b) Console.Write("1. Metot Çağırıldı\t"); return a + b; public static double Topla(double a, double b) Console.Write("2. Metot Çağırıldı\t"); return a + b; public static decimal Topla(decimal a, decimal b) Console.Write("3. Metot Çağırıldı\t"); return a + b; class Metot static int Main() int inta=5, intb=10; double dbla = 1.1, dblb = 2.2; Console.WriteLine(Metot2.Topla(inta, intb)); Console.WriteLine(Metot2.Topla(dbla, dblb)); Console.WriteLine(Metot2.Topla(inta, dblb)); return 0; //Ekran çıktısı 1. Metot Çağırıldı Metot Çağırıldı Metot Çağırıldı 7.2 Yukarıdaki programda, ilk toplama işleminde her iki parametre de int tipinden olduğu için birinci metot, ikinci toplama işlemi ise her iki parametre de double tipinden olduğu için ikinci metot çağırılmıştır. Ancak üçüncü toplama işleminde parametrelerden birisi int diğeri double tipinde olduğu için ihtiyacı karşılayan ve en az kaynağa ihtiyaç duyan ikinci metot çağırılmıştır (decimal tipi hafızada 16 byte, double tipi ise 8 byte yer kaplamaktadır).

32 32 Kendini Çağıran (Recursive) Metotlar: C#'ta bir metodun içinde aynı metot çağrılabilir. Aşağıdaki örneği inceleyelim. using System; class Metotlar static int Faktoriyel(int a) if (a == 0) return 1; return a * Faktoriyel(a - 1); static void Main() Console.WriteLine(Faktoriyel(0)); Console.WriteLine(Faktoriyel(1)); Console.WriteLine(Faktoriyel(4)); Console.WriteLine(Faktoriyel(6)); Bu örnekte Faktoriyel isimli metot kendi içerisinde bir daha çağırılmaktadır. Bu tür fonksiyonları kullanmanın avantajı daha az koda ihtiyaç duyulmasıdır. Ancak, bu fonksiyon her çağırıldığında yeniden çağırılmış gibi işlem göreceği için hafızada daha fazla yer işgal edecektir.

C#(Sharp) Programlama Dili

C#(Sharp) Programlama Dili Değişkenler C#(Sharp) Programlama Dili Program yazarken her zaman sabit verilerle çalışmayız, çoğu zaman programımızda bir verinin kullanıcının davranışına göre değişmesi gerekir. Kullanıcıdan bir metin

Detaylı

NESNEYE YÖNELİK PROGRAMLAMA

NESNEYE YÖNELİK PROGRAMLAMA NESNEYE YÖNELİK PROGRAMLAMA Metotlar Şu ana kadar yaptığımız örneklerde hep önceden hazırlanmış ReadLine(), WriteLine() vb. gibi metotları kullandık. Artık kendi metotlarımızı yapmanın zamanı geldi. Bilmem

Detaylı

HSancak Nesne Tabanlı Programlama I Ders Notları

HSancak Nesne Tabanlı Programlama I Ders Notları DİZİLER Bellekte ard arda yer alan aynı türden nesneler kümesine dizi (array) denilir. Bir dizi içerisindeki bütün elemanlara aynı isimle ulaşılır. Yani dizideki bütün elemanların isimleri ortaktır. Elemanlar

Detaylı

C# Yazım Kuralları ERCİYES. Ü. BİLGİSAYAR M. COMPUTER PROGRAMMING II 1 FEHİM KÖYLÜ

C# Yazım Kuralları ERCİYES. Ü. BİLGİSAYAR M. COMPUTER PROGRAMMING II 1 FEHİM KÖYLÜ C# Yazım Kuralları 1 İçindekiler C# Yazım Kuralları Veritipleri Değişkenler Operatörler Sınıflar Nesneler, Özellik, Metot ve Olay Bileşenler 2 C# yazım kuralları Deyimlerde büyük küçük harf yazıma uyulmalı

Detaylı

HSancak Nesne Tabanlı Programlama I Ders Notları

HSancak Nesne Tabanlı Programlama I Ders Notları Konsol Uygulaması Oluşturma Konsol uygulaması oluşturmak için program açıldıktan sonra Create: Project ya da New Project seçeneği tıklanabilir. New Project penceresini açmak için farklı yollar da vardır.

Detaylı

Akış Kontrol Mekanizmaları

Akış Kontrol Mekanizmaları Akış Kontrol Mekanizmaları 1 Akış Kontrol Mekanizmaları if else switch for döngüsü for döngüsünün çalışma prensibi for döngüsüyle ilgili örnekler for döngüsüyle ilgili kurallar while döngüsü while döngüsünün

Detaylı

YZM 2105 Nesneye Yönelik Programlama

YZM 2105 Nesneye Yönelik Programlama YZM 2105 Nesneye Yönelik Programlama Yrd. Doç. Dr. Deniz KILINÇ Celal Bayar Üniversitesi Hasan Ferdi Turgutlu Teknoloji Fakültesi Yazılım Mühendisliği 1 BÖLÜM - 2 C# Programlama Dili Elemanları Bu bölümde;

Detaylı

Veri Tipleri Aşağıdaki programdaki 5 hatayı bulunuz.

Veri Tipleri Aşağıdaki programdaki 5 hatayı bulunuz. Aşağıdaki programdaki 5 hatayı bulunuz. class hata public static void main() int x; int y; Console.WriteLine("X in degeri = "x); y = x / 2 Console.Write("y nin değeri = x / 2 = "); Console.WriteLine(y);

Detaylı

Uzaktan Eğitim Uygulama ve Araştırma Merkezi

Uzaktan Eğitim Uygulama ve Araştırma Merkezi JAVA PROGRAMLAMA Öğr. Gör. Utku SOBUTAY İÇERİK 2 Java da Fonksiyon Tanımlamak Java da Döngüler Java da Şart İfadeleri Uygulamalar Java da Fonksiyon Tanımlamak JAVA DA FONKSİYON TANIMLAMAK 4 Fonksiyonlar;

Detaylı

3/7/2011. ENF-102 Jeoloji 1. Tekrar -- Değişken Tanımlamaları (Definition) ve Veri Türleri (Data Type) Veri Tanımları ve Mantıksal Đşlemler

3/7/2011. ENF-102 Jeoloji 1. Tekrar -- Değişken Tanımlamaları (Definition) ve Veri Türleri (Data Type) Veri Tanımları ve Mantıksal Đşlemler Veri Tanımları ve Mantıksal Đşlemler Tekrar -- Değişken Tanımlamaları (Definition) ve Veri Türleri (Data Type) Kullanılacak bütün değişkenlerin kullanılmadan önce C derleyicisine bildirilmeleri gerekir.

Detaylı

Özyineleme (Recursion)

Özyineleme (Recursion) C PROGRAMLAMA Özyineleme (Recursion) Bir fonksiyonun kendisini çağırarak çözüme gitmesine özyineleme (recursion), böyle çalışan fonksiyonlara da özyinelemeli (recursive) fonksiyonlar denilir. Özyineleme,

Detaylı

C# Programlama Dili. İlk programımız Tür dönüşümü Yorum ekleme Operatörler

C# Programlama Dili. İlk programımız Tür dönüşümü Yorum ekleme Operatörler C# Programlama Dili İlk programımız Tür dönüşümü Yorum ekleme Operatörler 1 İlk Programımız Bu program konsol ekranına Merhaba dünya! yazıp kapanır. Programı geçen derste anlatıldığı gibi derleyin, sonra

Detaylı

Bil101 Bilgisayar Yazılımı I. M. Erdem ÇORAPÇIOĞLU Bilgisayar Yüksek Mühendisi

Bil101 Bilgisayar Yazılımı I. M. Erdem ÇORAPÇIOĞLU Bilgisayar Yüksek Mühendisi Bil101 Bilgisayar Yazılımı I Bilgisayar Yüksek Mühendisi Editör Disk 1)Kaynak kodlar editör aracılığı ile oluşturulur. (.c) Kaynak dosya Önişleyici Disk 2)Önişleyici kodlar içerisindeki ilk işleme işini

Detaylı

Çoktan Seçmeli Değerlendirme Soruları Akış Şemaları İle Algoritma Geliştirme Örnekleri Giriş 39 1.Gündelik Hayattan Algoritma Örnekleri 39 2.Say

Çoktan Seçmeli Değerlendirme Soruları Akış Şemaları İle Algoritma Geliştirme Örnekleri Giriş 39 1.Gündelik Hayattan Algoritma Örnekleri 39 2.Say İÇİNDEKİLER 1. Bilgisayarın Yapısı Ve Programlama Dilleri Giriş 1 Bilgisayar ve Programlamanın Kısa Bir Tarihçesi 2 Donanım ve Yazılım Kavramları 3 Bilgisayarın Donanımsal yapısı 4 Giriş Birimi (Input

Detaylı

2 ALGORİTMA VE AKIŞ DİYAGRAMLARI

2 ALGORİTMA VE AKIŞ DİYAGRAMLARI İÇİNDEKİLER IX İÇİNDEKİLER 1 GİRİŞ 1 Kitabın Amacı 1 Algoritmanın Önemi 2 Bilgisayarın Doğuşu ve Kullanım Amaçları 3 Programlama Dili Nedir? 3 Entegre Geliştirme Ortamı (IDE) Nedir? 4 2 ALGORİTMA VE AKIŞ

Detaylı

HSancak Nesne Tabanlı Programlama I Ders Notları

HSancak Nesne Tabanlı Programlama I Ders Notları SABİTLER VE DEĞİŞKENLER Değişken, verilerin bellekte geçici olarak kaydedilmesini ve gerektiğinde kullanılmasını sağlayan değerdir. Nesne tabanlı programlama dilinde değişken kullanımı diğer programlama

Detaylı

Uzaktan Eğitim Uygulama ve Araştırma Merkezi

Uzaktan Eğitim Uygulama ve Araştırma Merkezi JAVA PROGRAMLAMA Öğr. Gör. Utku SOBUTAY İÇERİK 2 Java da Kapsülleme (Erişim Denetleyiciler) Java da Sınıf Oluşturmak Java da Nesne Oluşturmak Java da Constructor Kavramı Java da This Kavramı Java da Constructor

Detaylı

BM102 BİLGİSAYAR PROGRAMLAMA II LABORATUVAR UYGULAMALARI. 3Hafta

BM102 BİLGİSAYAR PROGRAMLAMA II LABORATUVAR UYGULAMALARI. 3Hafta Ön bilgi: Özyineli fonksiyon tanımlanabilmeli. Dizilerin fonksiyon parametresi veya geri dönüş değeri olarak kullanımı bilinmeli. 1. Klavyeden girilen sayı n olmak üzere [1..n] aralığındaki sayıların toplamı

Detaylı

/*int sayi1, sayi2,toplam=0;

/*int sayi1, sayi2,toplam=0; static void Main(string[] args) { //--------------------1. ders-------------------- -------- / ekrana yazma ekrandan okuma sayısal değerleri okuma yer tutucular basit tip dönüşümü / /int sayi1, sayi2,toplam=0;

Detaylı

Ders 8: Metotlar. barisgokce.com

Ders 8: Metotlar. barisgokce.com Ders 8: Metotlar Hazırlayan : Öğr. Grv.. Barış GÖKÇE Đletişim im : www.barisgokce barisgokce.com Metotlar C# içerisinde bir veya birden fazla kod bulunduran kod bloklarıdır. Bir nesnenin veya sınıfın programı

Detaylı

Görsel Programlama DERS 03. Görsel Programlama - Ders03/ 1

Görsel Programlama DERS 03. Görsel Programlama - Ders03/ 1 Görsel Programlama DERS 03 Görsel Programlama - Ders03/ 1 Java Dili, Veri Tipleri ve Operatörleri İlkel(primitive) Veri Tipleri İLKEL TİP boolean byte short int long float double char void BOYUTU 1 bit

Detaylı

Programlama Dilleri 3

Programlama Dilleri 3 Diziler (Arrays) 1 Dizi Kavramı Bellekte ard arda yer alan aynı türden nesneler kümesine dizi (array) denilir. Bir dizi içerisindeki bütün elemanlara aynı isimle ulaşılır. Yani dizideki bütün elemanların

Detaylı

Programlama Dilleri 3

Programlama Dilleri 3 Akış Konrol Mekanizmaları 1 Koşul İfadeleri Programlar içersinde bazı durumlarda programın akışının değişmesi ya da farklı işlemlerin yapılması gerekebilir. Bazen de seçimlerin yapılması ya da belirli

Detaylı

Değişkenler. Geçerli değişken isimleri : baslamazamani, ad_soyad, x5 Geçersiz değişken isimleri : 3x, while

Değişkenler. Geçerli değişken isimleri : baslamazamani, ad_soyad, x5 Geçersiz değişken isimleri : 3x, while Değişkenler Değişkenler bir bilginin bellekteki konumunu temsil eden sembolik isimlerdir. Bilgisayarda hemen hemen tüm işlemler bellekte yapılır. Program çalıştırıldığında değişken ve bu değişkenin türüne

Detaylı

Sunum İçeriği. Programlamaya Giriş 22.03.2011

Sunum İçeriği. Programlamaya Giriş 22.03.2011 Programlamaya Giriş Nesne Tabanlı Programlamaya Giriş ve FONKSİYONLAR Sunum İçeriği Nesne Tabanlı Programlama Kavramı Fonksiyon tanımlama ve kullanma Formal Parametre nedir? Gerçel Parametre nedir? Fonksiyon

Detaylı

C Dersleri Bölüm 3 : Program akışı

C Dersleri Bölüm 3 : Program akışı İzmir Ekonomi Üniversitesi Bilgisayar Topluluğu www.ieubt.org C Dersleri Bölüm 3 : Program akışı Sorularınız için : programlama@ieubt.org Hazırlayan : Görkem PAÇACI (gorkem.pacaci@std.ieu.edu.tr) C Program

Detaylı

DÖNGÜLER (LOOPS) while(), do-while(), for(), foreach()

DÖNGÜLER (LOOPS) while(), do-while(), for(), foreach() (LOOPS) while(), do-while(), for(), foreach() Döngüler (loops) while do-while for foreach while ( koşul ) işlemler; do işlemler; while (koşul ); for (başlangıç ; koşul ; arttırma) işlemler; foreach ( tip

Detaylı

Görsel Programlama 1

Görsel Programlama 1 Görsel Programlama 1 1. Ekrana Hello world! yazan c# console application kodları: Console.Write("Hello world!"); 2. Ekranda ilk satıra Hello, ikinci satıra world! yazan kod: Console.WriteLine("Hello");

Detaylı

NESNEYE YÖNELİK PROGRAMLAMA

NESNEYE YÖNELİK PROGRAMLAMA NESNEYE YÖNELİK PROGRAMLAMA Rastgele sayı üretme C#'ta program yazarken (özellikle oyun programlarında) rastgele değerlere ihtiyaç duyabiliriz. Rastgele sayı üretebilmemiz için öncelikle Random sınıfı

Detaylı

NESNE YÖNELİMLİ PROGRAMLAMA HAFTA # 2

NESNE YÖNELİMLİ PROGRAMLAMA HAFTA # 2 NESNE YÖNELİMLİ PROGRAMLAMA HAFTA # 2 JAVA DA PROGRAM DENETİMİ VE OPERATÖRLER Java programlama dilinde temel tipleri ve nesneleri yönlendirmek ve değiştirmek için operatörler kullanılır. Atamalar sağ taraftaki

Detaylı

Ders 4: Diziler (Arrays( Arrays) barisgokce.com

Ders 4: Diziler (Arrays( Arrays) barisgokce.com Ders 4: Diziler (Arrays( Arrays) Hazırlayan : Öğr. Grv.. Barış GÖKÇE Đletişim im : www.barisgokce barisgokce.com Diziler Aynı tipteki bir veri gurubunun bir değişken içinde saklanmasıdır. Veriler Hafızada

Detaylı

C++ Giriş Ders 1 MSGSU Fizik Bölümü Ferhat ÖZOK Kullanılacak kaynak: Published by Juan Soulié

C++ Giriş Ders 1 MSGSU Fizik Bölümü Ferhat ÖZOK Kullanılacak kaynak:  Published by Juan Soulié Kullanılacak kaynak: http://www.cplusplus.com/doc/tutorial/ Published by Juan Soulié C++ Nedir? Arttırılmış C demektir ve C dilinin geliştirilmiş halini yansıtır. C++ öğrenmeden önce herhangi bir programlama

Detaylı

PROGRAMLAMA TEMELLERİ DERSİ ÖZETİ

PROGRAMLAMA TEMELLERİ DERSİ ÖZETİ Değişkenler PROGRAMLAMA TEMELLERİ DERSİ ÖZETİ C# Programlama Dili Giriş Değişkenler bir programlama dilinde verilerin depolanma alanlarını temsil eder. Tanımlanan her değişkene bellek bölgesinden bir alan

Detaylı

Aynı tipten çok sayıda değişken topluluğudur. X Y Score1 Score2 (0) (1) (2)...

Aynı tipten çok sayıda değişken topluluğudur. X Y Score1 Score2 (0) (1) (2)... Array (Diziler) Array Aynı tipten çok sayıda değişken topluluğudur. Birden fazla aynı tipteki değerle işlem yapmayı kolaylaştırır. X Y Score1 Score2 40 56 Grade 40 56 80 (0) (1) (2)... (13) Array tanımlama:

Detaylı

Karabük Üniversitesi, Mühendislik Fakültesi...www.ibrahimcayiroglu.com WEB TEKNOLOJİLERİ

Karabük Üniversitesi, Mühendislik Fakültesi...www.ibrahimcayiroglu.com WEB TEKNOLOJİLERİ WEB TEKNOLOJİLERİ VISUAL STUDIO DA YENİ BİR PROJE OLUŞTURMA Visual Studio (VS) programını çalıştırdığımızda karşımıza boş bir ekran gelir. Yeni bir proje oluştururken File>New>Project yolu kullanılarak

Detaylı

11- FONKSİYONLAR (FUNCTIONS)

11- FONKSİYONLAR (FUNCTIONS) 1 Fonksiyon : Belirli bir işi yapan programın bir isim altına tanımlanarak, o isimle çağrılarak kullanılması. Fonksiyonun faydaları : Programın modülerliğini arttırır. Aynı işi yapan program parçası tekrar

Detaylı

Mühendislik Fakültesi Elektrik-Elektronik Mühendisliği C Programlama 3. Bölüm Veri Tipleri ve Değişkenler

Mühendislik Fakültesi Elektrik-Elektronik Mühendisliği C Programlama 3. Bölüm Veri Tipleri ve Değişkenler Mühendislik Fakültesi Elektrik-Elektronik Mühendisliği C Programlama 3. Bölüm Veri Tipleri ve Değişkenler C Programlama Dr. Serkan DİŞLİTAŞ 3.1. Sabitler Sabitler, tanımlanmasıyla birlikte program içerisinde

Detaylı

BMÜ-111 Algoritma ve Programlama. Bölüm 5. Tek Boyutlu Diziler

BMÜ-111 Algoritma ve Programlama. Bölüm 5. Tek Boyutlu Diziler BMÜ-111 Algoritma ve Programlama Bölüm 5 Tek Boyutlu Diziler Yrd. Doç. Dr. İlhan AYDIN 1 Problem 100 adet sayı okumak istediğimizi düşünelim. Bu sayıların ortalaması hesaplanacak ve sayıların kaç tanesinin

Detaylı

Bilgisayar Teknolojileri Bölümü Bilgisayar Programcılığı Programı. Öğr. Gör. Cansu AYVAZ GÜVEN

Bilgisayar Teknolojileri Bölümü Bilgisayar Programcılığı Programı. Öğr. Gör. Cansu AYVAZ GÜVEN Bilgisayar Teknolojileri Bölümü Bilgisayar Programcılığı Programı Öğr. Gör. Cansu AYVAZ GÜVEN NESNE TABANLI PROGRAMLAMA Java Değişkenler ve Veri Tipleri Operatörler JAVA Java Java SUN bilgisayar şirketince

Detaylı

PROGRAMLAMAYA GİRİŞ DERS 2

PROGRAMLAMAYA GİRİŞ DERS 2 PROGRAMLAMAYA GİRİŞ DERS 2 Program editörde oluşturulur ve diske kaydedilir Tipik Bir C Programı Geliştirme Ortamının Temelleri 1. Edit 2. Preprocess 3. Compile 4. Link 5. Load 6. Execute Önişlemci programı

Detaylı

Uzaktan Eğitim Uygulama ve Araştırma Merkezi

Uzaktan Eğitim Uygulama ve Araştırma Merkezi JAVA PROGRAMLAMA Öğr. Gör. Utku SOBUTAY İÇERİK 2 Java Veri Tipleri ve Özelilkleri Değişken Tanımlama Kuralları Değişken Veri Tipi Değiştirme (Type Casting) Örnek Kodlar Java Veri Tipleri ve Özelilkleri

Detaylı

ELN1001 BİLGİSAYAR PROGRAMLAMA I

ELN1001 BİLGİSAYAR PROGRAMLAMA I ELN1001 BİLGİSAYAR PROGRAMLAMA I DEPOLAMA SINIFLARI DEĞİŞKEN MENZİLLERİ YİNELEMELİ FONKSİYONLAR Depolama Sınıfları Tanıtıcılar için şu ana kadar görülmüş olan özellikler: Ad Tip Boyut Değer Bunlara ilave

Detaylı

Göstericiler (Pointers)

Göstericiler (Pointers) C PROGRAMLAMA Göstericiler (Pointers) C programlama dilinin en güçlü özelliklerinden biridir. Göstericiler, işaretçiler yada pointer adı da verilmektedir. Gösterici (pointer); içerisinde bellek adresi

Detaylı

Nesne Tabanlı Programlama

Nesne Tabanlı Programlama Nesne Tabanlı Programlama Ders Notu - 1 (Değerler, Değişkenler, İşleçler, Tip Dönüşümleri, Mantıksal Operatörler) Dicle Üniversitesi Mühendislik Fakültesi Elektrik Elektronik Mühendisliği Bölümü 1 Değerler

Detaylı

C# Çalışma Örnekleri

C# Çalışma Örnekleri C# Çalışma Örnekleri namespace sabittanimlama class program static void main (String [] agrs ) const String s="merhaba "; Console.WriteLine(s); Console.readLine ; merhaba namespace calisma class program

Detaylı

Akış Konrol Mekanizmaları

Akış Konrol Mekanizmaları Akış Konrol Mekanizmaları Koşul İfadeleri C# dilinde koşula bağlı olarak işlemler gerçekleştirmek için iki farklı deyim kullanılabilir: if deyimi switch deyimi If Deyimi if (Koşul) else Koşul_doğru_ise_yapılacaklar

Detaylı

HSancak Nesne Tabanlı Programlama I Ders Notları

HSancak Nesne Tabanlı Programlama I Ders Notları METOTLAR Nesneye yönelik programlama dillerinde genellikle fonksiyonlar metot olarak isimlendirilirler. Metot ve fonksiyon olarak ifade edilecek kavramlar aynı anlamda kullanılacaktır. Her çalışan C# programı

Detaylı

ÜNİT E ÜNİTE GİRİŞ. Algoritma Mantığı. Algoritma Özellikleri PROGRAMLAMA TEMELLERİ ÜNİTE 3 ALGORİTMA

ÜNİT E ÜNİTE GİRİŞ. Algoritma Mantığı. Algoritma Özellikleri PROGRAMLAMA TEMELLERİ ÜNİTE 3 ALGORİTMA PROGRAMLAMA TEMELLERİ ÜNİTE 3 ALGORİTMA GİRİŞ Bilgisayarların önemli bir kullanım amacı, veri ve bilgilerin kullanılarak var olan belirli bir problemin çözülmeye çalışılmasıdır. Bunun için, bilgisayarlar

Detaylı

Operator Aşırı Yükleme (Operator OverLoading)

Operator Aşırı Yükleme (Operator OverLoading) Operator Aşırı Yükleme (Operator OverLoading) Operator Aşırı Yükleme Operatör metotları bir nesnenin ifadeler içinde operatörlerle kullanıldığı zaman davranışını belirler. Temel veri türleri için operatörler

Detaylı

2.2- DEĞİŞKENLER VE SABİTLER ÇALIŞMA YAPRAĞI

2.2- DEĞİŞKENLER VE SABİTLER ÇALIŞMA YAPRAĞI 2.2 Değişkenler Ve Sabitler 2.2.1 Değişkenler Değişkenler bir programlama dilinde verilerin depolanma alanlarını temsil eder. Tanımlanan her değişkene bellek bölgesinden bir alan ayrılır. Bu bellek bölgesine

Detaylı

Lambda İfadeleri (Lambda Expressions)

Lambda İfadeleri (Lambda Expressions) Lambda İfadeleri (Lambda Expressions) Lambda İfadeleri, değişkenlere değer atamak için kullanılan sadeleştirilmiş anonim (isimsiz) fonksiyonlardır. Bu fonksiyonlar matematikteki ve bilgisayar bilimlerindeki

Detaylı

Nesne Tabanlı Programlama

Nesne Tabanlı Programlama Nesne Tabanlı Programlama Ders Notu - 2 (Denetim Yapıları, Diziler) Dicle Üniversitesi Mühendislik Fakültesi Elektrik Elektronik Mühendisliği Bölümü 1 Denetim Yapıları 1 if else Seçme yapısı, mantıksal

Detaylı

BİLGİSAYAR MÜHENDİSLİĞİ ALGORİTMA VE PROGRAMLAMA II 2.HAFTA SWİTCH (CASE), SAYAÇLAR, DÖNGÜLER,

BİLGİSAYAR MÜHENDİSLİĞİ ALGORİTMA VE PROGRAMLAMA II 2.HAFTA SWİTCH (CASE), SAYAÇLAR, DÖNGÜLER, BİLGİSAYAR MÜHENDİSLİĞİ ALGORİTMA VE PROGRAMLAMA II 2.HAFTA SWİTCH (CASE), SAYAÇLAR, DÖNGÜLER, C++ İÇİN UFAK HATIRLATMALAR Değişken adları bir harf ile başlamalıdır. (a-z, A-Z). Değişken adı numara içerebilir.

Detaylı

Algoritmalar ve Programlama. Algoritma

Algoritmalar ve Programlama. Algoritma Algoritmalar ve Programlama Algoritma Algoritma Bir sorunu / problemi çözmek veya belirli bir amaca ulaşmak için gerekli olan sıralı mantıksal adımların tümüne algoritma denir. Algoritma bir sorunun çözümü

Detaylı

Döngü (Loop) Deyimleri / Veri Belirleyicileri / Matematiksel Fonksiyonlar

Döngü (Loop) Deyimleri / Veri Belirleyicileri / Matematiksel Fonksiyonlar Bölüm 5 Döngü (Loop) Deyimleri / Veri Belirleyicileri / Matematiksel Fonksiyonlar İçindekiler 5.1 Formatlı Yazdırma............................ 34 5.2 Döngü Deyimleri............................. 34 5.2.1

Detaylı

C Programlama Dilininin Basit Yapıları

C Programlama Dilininin Basit Yapıları Bölüm 2 C Programlama Dilininin Basit Yapıları İçindekiler 2.1 Sabitler ve Değişkenler......................... 13 2.2 Açıklamalar (Expresions)........................ 14 2.3 İfadeler (Statements) ve İfade

Detaylı

Değişkenler, içerisinde tek bir değer tutabilen yapılardır. Örneğin haftanın günlerini değişkenlerde tutmak istersek, her bir gün adı için bir

Değişkenler, içerisinde tek bir değer tutabilen yapılardır. Örneğin haftanın günlerini değişkenlerde tutmak istersek, her bir gün adı için bir DİZİLER (ARRAYS) Değişkenler, içerisinde tek bir değer tutabilen yapılardır. Örneğin haftanın günlerini değişkenlerde tutmak istersek, her bir gün adı için bir değişken tanımlamak gereklidir. string gun1,

Detaylı

Programlama Dilleri 3

Programlama Dilleri 3 Tür Dönüşümü 1 Farklı türden değişkenlerin aynı ifade içinde işlem görmeleri için tür dönüşümü kullanılır. Tür dönüşümlerini aşağıdaki şekilde gruplara ayırmak mümkündür: Tür Dönüşümleri Bilinçli(explicit)

Detaylı

1 PROGRAMLAMAYA GİRİŞ

1 PROGRAMLAMAYA GİRİŞ İÇİNDEKİLER IX İÇİNDEKİLER 1 PROGRAMLAMAYA GİRİŞ 1 Problem Çözme 1 Algoritma 1 Algoritmada Olması Gereken Özellikler 2 Programlama Dilleri 6 Programlama Dillerinin Tarihçesi 6 Fortran (Formula Translator)

Detaylı

NESNE TABANLI PROGRAMLAMA-1 DERS UYGULAMALARI (22 EYLÜL - 14 KASIM

NESNE TABANLI PROGRAMLAMA-1 DERS UYGULAMALARI (22 EYLÜL - 14 KASIM NESNE TABANLI PROGRAMLAMA-1 DERS UYGULAMALARI (22 EYLÜL - 14 KASIM 2014) //Class (Sınıf) // Sınıf (class) soyut veri tipidir. // Nesne (object) sınıfın somutlaşan bir cismidir. // static : nesnesi oluşturulmaz.

Detaylı

ALGORİTMA VE PROGRAMLAMA I

ALGORİTMA VE PROGRAMLAMA I ALGORİTMA VE PROGRAMLAMA I Yrd. Doç. Dr. Deniz KILINÇ deniz.kilinc@cbu.edu.tr YZM 1101 Celal Bayar Üniversitesi Hasan Ferdi Turgutlu Teknoloji Fakültesi Genel Bakış 2 Diziler Dizi Nedir? Dizilerin Bildirimi

Detaylı

Nesne Tabanlı Programlama

Nesne Tabanlı Programlama Nesne Tabanlı Programlama Ders Notu - 1 Dicle Üniversitesi Mühendislik Fakültesi Elektrik Elektronik Mühendisliği Bölümü 1 Değerler ve Değişkenler Values & Variables 2 1 Değişkenlerin Özellikleri Tipi

Detaylı

BİLGİSAYAR TEMELLERİ VE PROGRAMLAMAYA GİRİŞ

BİLGİSAYAR TEMELLERİ VE PROGRAMLAMAYA GİRİŞ BİLGİSAYAR TEMELLERİ VE PROGRAMLAMAYA GİRİŞ Yrd.Doç.Dr. Emel ARSLAN earslan@istanbul.edu.tr C Program Akış Kontrol Yapıları Kontrol Komutları Normal şartlarda C dilinde bir programın çalışması, komutların

Detaylı

PASCAL PROGRAMLAMA DİLİ YAPISI

PASCAL PROGRAMLAMA DİLİ YAPISI BÖLÜM 3 PASCAL PROGRAMLAMA DİLİ YAPISI 3.1. Giriş Bir Pascal programı en genel anlamda üç ayrı kısımdan oluşmuştur. Bu kısımlar bulunmaları gereken sıraya göre aşağıda verilmiştir. Program Başlığı; Tanımlama

Detaylı

Örnek 4: Örnek Özyinelemeli fonksiyon örneği Bölüm 9. C++ programlama dilinde Nesne ve sınıf

Örnek 4: Örnek Özyinelemeli fonksiyon örneği Bölüm 9. C++ programlama dilinde Nesne ve sınıf İçindekiler 1. Giriş... 1 1.2. c++ Programı Yapısı... 2 1.3.Using Direktifi... 5 Bölüm 2. Veri türleri, değişken kavramı, sabit ve değişken bildirimleri ve c++ da kullanımı 7 2.1. Temel veri türleri...

Detaylı

4- ALGORİTMA (ALGORITHM)

4- ALGORİTMA (ALGORITHM) (ALGORITHM) Algoritma: Bir Problemin çözümünün, günlük konuşma diliyle adım adım yazılmasıdır. Algoritma sözcüğü Ebu Abdullah Muhammed İbn Musa el Harezmi adındaki Türkistan'lı alimden kaynaklanır. Bu

Detaylı

Pointer Kavramı. Veri Yapıları

Pointer Kavramı. Veri Yapıları Pointer Kavramı Veri Yapıları Pointer Kavramı- Pointer Nedir? Göstericiler, işaretçiler ya da pointer adı da verilmektedir. Gösterici (pointer); içerisinde bellek adresi tutan değişkenlerdir. Şu ana kadar

Detaylı

YZM 2105 Nesneye Yönelik Programlama

YZM 2105 Nesneye Yönelik Programlama YZM 2105 Nesneye Yönelik Programlama Yrd. Doç. Dr. Deniz KILINÇ Celal Bayar Üniversitesi Hasan Ferdi Turgutlu Teknoloji Fakültesi Yazılım Mühendisliği 1 BÖLÜM - 5 Nesneye Yönelik Programlamaya Giriş Bu

Detaylı

Diziler (Arrays) Çok Boyutlu Diziler

Diziler (Arrays) Çok Boyutlu Diziler Diziler (Arrays) Çok Boyutlu Diziler ÇOK BOYUTLU DİZİLER Birden fazla indis numarası ile elemanlarına ulaşılan dizilere çok boyutlu diziler denir. Bunlardan en sık kullanılanı çift boyutlu dizilerdir.

Detaylı

Nesne Yönelimli Programlama

Nesne Yönelimli Programlama 1 Nesne Yönelimli Programlama Hazırlayan: M.Ali Akcayol Gazi Üniversitesi Bilgisayar Mühendisliği Bölümü Genel Bilgiler Ders konuları 1. Programlamaya Giriş 2. Program Denetimi ve Operatörler 3. Nesnelerin

Detaylı

Programlama Dilleri III 1

Programlama Dilleri III 1 Temel Veri Türleri Programlama Dilleri III 1 İlk C# Programı class ilk_program1 static void Main() System.Console.WriteLine("Merhaba C#"); C# dilinde yazılmış kaynak kod dosyalarının uzantıları.cs dır.

Detaylı

JAVADA DİZİ İŞLEMLERİ

JAVADA DİZİ İŞLEMLERİ JAVADA DİZİ İŞLEMLERİ Javada diziler nesnedirler, cdeki gibi hafızada yer kaplayan pointer değillerdir. Javada diziler, cye göre daha güvenilirdir. Dizilerin elemanlarına gelişigüzel değerler atayamazsınız.

Detaylı

Diziler İndisli Değişkenler

Diziler İndisli Değişkenler Diziler İndisli Değişkenler Aynı tür bilgileri (öğrenci isimleri, şehir isimleri, kapı numaraları, fakülteler vbg.) bellekte tutmak için kullanabileceğimiz listelere dizi adı verilir. Dizi kullanmanın

Detaylı

PROGRAMLAMAYA GİRİŞ FONKSİYONLAR

PROGRAMLAMAYA GİRİŞ FONKSİYONLAR PROGRAMLAMAYA GİRİŞ FONKSİYONLAR Fonksiyonlar C programlama dili fonksiyon olarak adlandırılan alt programların birleştirilmesi kavramına dayanır. Bir C programı bir ya da daha çok fonksiyonun bir araya

Detaylı

Temel Bilgisayar Programlama Final Sınavı Çalışma Notları

Temel Bilgisayar Programlama Final Sınavı Çalışma Notları Diziler Temel Bilgisayar Programlama Final Sınavı Çalışma Notları (Dr. Övünç ÖZTÜRK, Dr. Tahir Emre KALAYCI) (İnşaat Mühendisliği ve Gıda Mühendisliği Grupları İçin) Diziler aynı türden bilgileri saklamak

Detaylı

if (ad == "Sabri") Console.WriteLine("Merhaba Sabri. Ne zamandır gözükmüyodun...");

if (ad == Sabri) Console.WriteLine(Merhaba Sabri. Ne zamandır gözükmüyodun...); Koşul İfadeleri ve Akış Kontrolü Koşul ifadeleri ve akış kontrolleri programlama dillerinde her zaman en önemli yeri tutmaktadır. Yazdığımız uygulamanın hangi koşulda nasıl davranacağını belirterek bir

Detaylı

BİL-142 Bilgisayar Programlama II

BİL-142 Bilgisayar Programlama II BİL-142 Bilgisayar Programlama II (C/C++) Hazırlayan: M.Ali Akcayol Gazi Üniversitesi Bilgisayar Mühendisliği Bölümü Konular Giriş Sınıflar, Nesneler, Fonksiyon ve Veri Üyeleri Sınıf ve Fonksiyon Üyeleri

Detaylı

public static int Toplam int x, int y

public static int Toplam int x, int y static Kavramı 1 İçinde bulunduğu sınıftan nesne oluşturulmadan veya hiç bir nesneye referans olmadan kullanılabilen üyeler static olarak nitelendirilir. Metotlar ve alanlar static olarak tanımlanabilir.

Detaylı

for döngüsü for (başlangıç değeri; şart; artım) ifade; for (başlangıç değeri; şart; artım) { ifadeler; }

for döngüsü for (başlangıç değeri; şart; artım) ifade; for (başlangıç değeri; şart; artım) { ifadeler; } for döngüsü for (başlangıç değeri; şart; artım) ifade; for (başlangıç değeri; şart; artım) ifadeler; Başlangıç değeri; koşul içinde tanımladığımız değişkene ilk değerin atanmasını sağlar. Koşul: Döngünün

Detaylı

JAVA PROGRAMLAMA DİLİ ÖZELLİKLERİ

JAVA PROGRAMLAMA DİLİ ÖZELLİKLERİ JAVA PROGRAMLAMA DİLİ ÖZELLİKLERİ Java programlama dili, Java SUN bilgisayar şirketi tarafından 1991 yılında geliştiril Program bloklar halinde yazılır ve bloklar { } ile oluşturulur. Komutlar aynı satıra

Detaylı

Programlama Dilleri. C Dili. Programlama Dilleri-ders02/ 1

Programlama Dilleri. C Dili. Programlama Dilleri-ders02/ 1 Programlama Dilleri C Dili Programlama Dilleri-ders02/ 1 Değişkenler, Sabitler ve Operatörler Değişkenler (variables) bellekte bilginin saklandığı gözlere verilen simgesel isimlerdir. Sabitler (constants)

Detaylı

Diziler. Yrd.Doç.Dr.Bülent ÇOBANOĞLU

Diziler. Yrd.Doç.Dr.Bülent ÇOBANOĞLU Diziler Yrd.Doç.Dr.Bülent ÇOBANOĞLU Dizi (Array) Nedir? Bellekte sürekli yer kaplayan artarda sıralanmış aynı türden verilerin oluşturduğu kümeye dizi (array) denir. Dizi, çok fazla miktardaki tek tip

Detaylı

BMT 101 Algoritma ve Programlama I 6. Hafta. Yük. Müh. Köksal Gündoğdu 1

BMT 101 Algoritma ve Programlama I 6. Hafta. Yük. Müh. Köksal Gündoğdu 1 BMT 101 Algoritma ve Programlama I 6. Hafta Yük. Müh. Köksal Gündoğdu 1 C++ Veri Tipleri Yük. Müh. Köksal Gündoğdu 2 Veri Tipleri Tam sayı ve Ondalık sayı veri tipleri Veri Tipi Alt Sınıf Üst Sınıf Duyarlı

Detaylı

C# Console Uygulamaları ifelse Yapıları 2

C# Console Uygulamaları ifelse Yapıları 2 C# Console Uygulamaları ifelse Yapıları 2 C# Console Uygulamaları if-else Yapıları 2 yazımızda if-else, else if kontrol yapılarının devamını programlar içerisinde göreceğiz. visual-studio-c-sharp Almak

Detaylı

Toplama işlemi için bir ikili operatör olan artı işareti aynı zamanda tekli operatör olarak da kullanılabilir.

Toplama işlemi için bir ikili operatör olan artı işareti aynı zamanda tekli operatör olarak da kullanılabilir. www.csharpturk.net Türkiye nin C# Okulu Yazar Yunus Özen Eposta yunus@yunus.gen.tr Tarih 08.04.2006 Web http://www.yunusgen.tr ARİTMETİK OPERATÖRLER VE KULLANIM ŞEKİLLERİ Bilgisayarlar yapıları gereği,

Detaylı

Programın Akışının Denetimi. Bir arada yürütülmesi istenen deyimleri içeren bir yapıdır. Söz dizimi şöyledir:

Programın Akışının Denetimi. Bir arada yürütülmesi istenen deyimleri içeren bir yapıdır. Söz dizimi şöyledir: Programın Akışının Denetimi Bir program komutların yazıldığı sırada akar. Ama çoğunlukla, bu akışı yönlendirmek gerekir. Bu iş için denetim yapılarını kullanırız. Bunlar iki gruba ayrılabilir: Yönlendiriciler

Detaylı

BTP 207 İNTERNET PROGRAMCILIĞI I. Ders 9

BTP 207 İNTERNET PROGRAMCILIĞI I. Ders 9 BTP 207 İNTERNET PROGRAMCILIĞI I Ders 9 Dizi Değişkenler (Array) 2 Tek değişkende birden fazla bilgi tutulmak istendiğinde kullanılır. Kullanım şekli: var dizi_adı= new Array(eleman1, eleman2,, elemann)

Detaylı

BĠLGĠSAYAR PROGRAMLAMA II C++ Programlamaya GiriĢ http://www.cplusplus.com/doc/tutorial/ Published by Juan Soulié

BĠLGĠSAYAR PROGRAMLAMA II C++ Programlamaya GiriĢ http://www.cplusplus.com/doc/tutorial/ Published by Juan Soulié BĠLGĠSAYAR PROGRAMLAMA II C++ Programlamaya GiriĢ http://www.cplusplus.com/doc/tutorial/ Published by Juan Soulié DERSİN WEB SİTESİ: http://nucleus.istanbul.edu.tr/~bilprog2/ DeğiĢkenler ve Data Türleri

Detaylı

Program AkıĢ Kontrol Yapıları

Program AkıĢ Kontrol Yapıları C PROGRAMLAMA Program AkıĢ Kontrol Yapıları Normal Ģartlarda C dilinde bir programın çalıģması, komutların yukarıdan aģağıya doğru ve sırasıyla iģletilmesiyle gerçekleģtirilir. Ancak bazen problemin çözümü,

Detaylı

Fonksiyonlar. C++ ve NESNEYE DAYALI PROGRAMLAMA 51. /* Fonksiyon: kup Bir tamsayının küpünü hesaplar */ long int kup(int x) {

Fonksiyonlar. C++ ve NESNEYE DAYALI PROGRAMLAMA 51. /* Fonksiyon: kup Bir tamsayının küpünü hesaplar */ long int kup(int x) { Fonksiyonlar Kendi içinde bağımsız olarak çalışabilen ve belli bir işlevi yerine getiren program modülleridir. C programları bu modüllerden (fonksiyonlar) oluşurlar. Fonksiyonların yazılmasındaki temel

Detaylı

Karşılaştırma İşlemleri ve Koşullu İfadeler

Karşılaştırma İşlemleri ve Koşullu İfadeler Karşılaştırma İşlemleri ve Koşullu İfadeler BİL131 - Bilişim Teknolojileri ve Programlama Hakan Ezgi Kızılöz Karşılaştırma İşlemleri Java'da sayısal veri tiplerinin karşılaştırılması için aşağıdaki karşılaştırma

Detaylı

JAVA DÖNGÜ DEYİMLERİ. For Döngüsü

JAVA DÖNGÜ DEYİMLERİ. For Döngüsü JAVA DÖNGÜ DEYİMLERİ Belirli bir iş bir çok kez tekrarlanacaksa, programda bu iş bir kez yazılır ve döngü deyimleriyle istenildiği kadar tekrarlanabilir. Java da bu işi yapan üç ayrı deyim vardır: while

Detaylı

Adı soyadı :... Öğrenci no :... İmza :... Tarih, Süre : dak.

Adı soyadı :... Öğrenci no :... İmza :... Tarih, Süre : dak. Selçuk Üniversitesi Mühendislik Fakültesi Harita Mühendisliği Bölümü ra Sınavı Test Soruları dı soyadı :... Öğrenci no :... İmza :... Tarih, Süre :13.04.2017 60 dak. Dikkat!!! Soru kitapçığında ve cevap

Detaylı

Örnek: İki fonksiyondan oluşan bir program. Fonksiyon Tanımı

Örnek: İki fonksiyondan oluşan bir program. Fonksiyon Tanımı Fonksiyonlar Fonksiyon Tanımı Değer Döndürmeyen Fonksiyonlar Değer Döndüren Fonksiyonlar Çok Parametreli Fonksiyonlar Değişken Kapsamları Çok Fonksiyonlu Programlar Fonksiyon Tanımı Karmaşıkveuzunprogramları,

Detaylı

/ C Bilgisayar Programlama Final Sınavı Test Soruları. Adı soyadı :... Öğrenci no :... İmza :... Tarih, Süre : , 60 dak.

/ C Bilgisayar Programlama Final Sınavı Test Soruları. Adı soyadı :... Öğrenci no :... İmza :... Tarih, Süre : , 60 dak. Selçuk Üniversitesi Mühendislik Fakültesi Harita Mühendisliği Bölümü Final Sınavı Test Soruları dı soyadı :... Öğrenci no :... İmza :... Tarih, Süre :09.01.2013, 60 dak. Dikkat!!! Soru kitapçığında ve

Detaylı

Yazılım Kodlama ve İ simlendirme Standartları v1.0

Yazılım Kodlama ve İ simlendirme Standartları v1.0 Yazılım Kodlama ve İ simlendirme Standartları v1.0 İçerik Yazılım Kodlama ve İsimlendirme Standartları... 2 1. Amaç... Hata! Yer işareti tanımlanmamış. 2. Kapsam... Hata! Yer işareti tanımlanmamış. 3.

Detaylı

Bilgisayarda Programlama. Temel Kavramlar

Bilgisayarda Programlama. Temel Kavramlar Bilgisayarda Programlama Temel Kavramlar KAVRAMLAR Programlama, yaşadığımız gerçek dünyadaki problemlere ilişkin çözümlerin bilgisayarın anlayabileceği bir biçime dönüştürülmesi / ifade edilmesidir. Bunu

Detaylı

Nesne Tabanlı Programlama

Nesne Tabanlı Programlama Nesne Tabanlı Programlama Ders Notu - 2 Dicle Üniversitesi Mühendislik Fakültesi Elektrik Elektronik Mühendisliği Bölümü 1 Mantıksal Operatörler ve Denetim Yapıları 1 Boolean Boolean, doğru ya da yanlış

Detaylı

YAPILAR BİRLİKLER SAYMA SABİTLERİ/KÜMELERİ. 3. Hafta

YAPILAR BİRLİKLER SAYMA SABİTLERİ/KÜMELERİ. 3. Hafta YAPILAR BİRLİKLER SAYMA SABİTLERİ/KÜMELERİ 3. Hafta YAPILAR Farklı veri tipindeki bilgilerin bir araya gelerek oluşturdukları topluluklara yapı (structure) denir. Yani yapılar, birbiriyle ilişkili değişkenlerin

Detaylı