BÖLÜM. İşleçler ve İfadeler. 3.2 İşleçler İşleç Nedir? Bölümün İçindekileri

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

Download "BÖLÜM. İşleçler ve İfadeler. 3.2 İşleçler İşleç Nedir? Bölümün İçindekileri"

Transkript

1 109 BÖLÜM 3 İşleçler ve İfadeler 3 Bölümün İçindekileri Bu bölümde C# işleçlerini ve farklı veri türleri ile kullanıldığında gerçekleştirebilecekleri eylemleri tanıyacağız. Başlangıçta, hangi işleçlerin yüksek önceliğe sahip olduğunu açıklayacağız ve farklı işleç türlerini alabildikleri argüman sayısına ve gerçekleştirdikleri eylemlere göre analiz edeceğiz. İkinci bölümde ise, veri türlerinin dönüşümünü inceleyeceğiz. Ne zaman ve neden gerekli olduklarını ve farklı veri türleri ile nasıl çalışılacağını açıklayacağız. Bölümün sonunda, ifadeler ve onlarla nasıl çalışmamız gerektiğine özel dikkat vereceğiz. Son olarak, bu bölümdeki bilgi materyalimizi güçlendirmek için alıştırmaları hazırladık. 3.2 İşleçler Her programlama dili işleçleri kullanır, bunlar aracılığıyla veriler üzerinde farklı eylemleri gerçekleştirebilirsiniz. C# işleçlerine bir göz atalım ve onların ne için ve nasıl kullanıldığını görelim İşleç Nedir? Önceki bölümde bir değişkenin nasıl bildirileceğini ve değer atanacağını öğrendikten sonra, onlar üzerinde çeşitli işlemleri gerçekleştirmeyi tartışacağız. Bu amaçla işleçler ile tanışacağız. İşleçler temel veri türlerini ve nesneleri işlemeye izin verir. Girdi olarak bir veya daha fazla işlenen alırlar ve sonuç olarak bazı değer döndürürler. C# işleçleri özel karakterlerdir (örneğin +,., ^, vb.) ve bir, iki veya üç işlenen üzerinde dönüşümler gerçekleştirirler. C# işleçlerine örnekler, matematikteki ekleme çıkarma, çarpma ve bölme işaretleridir (+, -, *, /) ve onların tamsayılar ve gerçek sayılar üzerinde gerçekleştirdikleri işlemlerdir.

2 C# İşleçleri C# işleçleri farklı birkaç kategoriye ayrılmıştır: Aritmetik işleçler basit matematiksel işlemleri gerçekleştirmek için kullanılır. Atama işleçleri değişkenlere değer atamaya izin verir. Karşılaştırma işleçleri iki karakter ve/veya değişkenin karşılaştırılmasına olanak verir. Mantıksal işleçler Boole veri türleri ve Boole ifadeler ile çalışan işleçler. İkili işleçler - sayısal verilerin ikili gösterimi üzerinde işlem gerçekleştirmek için kullanılır. Türü dönüştürme işleçleri - bir türden diğerine veri dönüşümünü sağlar İşleç Kategorileri Aşağıda kategorilere ayrılmış işleçlerin bir listesi yer almaktadır: Kategori İşleçler aritmetik -, +, *, /, %, ++, -- mantıksal &&,,!, ^ ikili &,, ^, ~, <<, >> karşılaştırma ==,!=, >, <, >=, <= atama =, +=, -=, *=, /=, %=, &=, =, ^=, <<=, >>= dize bitiştirme + türü dönüştürme (type), as, is, typeof, sizeof diğerleri., new, (), [],?:,??

3 Argüman Sayısına Göre İşleç Türleri İşleçler aldıkları argüman sayısına göre farklı türlere ayrılır: İşleç türü birli ikili üçlü Argüman sayısı (işlenenler) bir işlenen alır iki işlenen alır üç işlenen alır C# da ikili işleçlerin tümü sola-ilişkilendirilmiştir, yani atama işleçleri hariç ifadeler soldan sağa hesaplanır. Tüm atama işleçleri ve koşullu işleçler?: ve?? sağa-ilişkilendirilmiştir, yani ifadeler sağdan sola hesaplanır. Birli işleçler ilişkisel değildir. C# işleçlerinden bazıları farklı veri türleri üzerinde farklı işlemleri gerçekleştirir. + işleci sayısal veri türleri (int, long, float, vb) üzerinde kullanıldığında, işleç matematiksel toplama gerçekleştirir. Ancak, dizeler üzerinde kullanıldığında, işleç iki değişken/simgedeğerin içeriğini bitiştirir (peş peşe ekler) ve yeni dizeyi döndürür İşleçler Örnek İşleçleri kullanmaya bir örnek aşağıda verilmiştir: int // 16 John Doe // Do not forget the space between them // John Doe Örnek yukarıda açıklandığı gibi, nasıl + işlecinin sayılar üzerinde kullanıldığı zaman sayısal bir değer döndürdüğünü ve dizeler üzerinde kullanıldığında peş peşe bitiştirilen dizeyi döndürdüğünü göstermektedir.

4 C# İşleç Önceliği Bazı işleçler diğerleri üzerinde önceliğe sahiptir. Örneğin, matematikte çarpma toplamanın üzerinde önceliğe sahiptir. Daha yüksek bir önceliğe sahip işleçler daha düşük olanlardan önce hesaplanmaktadır. () operatörü önceliği değiştirmek için kullanılır ve matematikte olduğu gibi ilk önce hesaplanır. Aşağıdaki tablo, C# işleçlerinin önceliğini göstermektedir: Öncelik İşleçler (, ) En yüksek öncelik ++, -- (arttakı), new, (type), typeof, sizeof ++, -- (öntakı), +, -(birli),!, ~ *, /, % + (dize bitiştirme) +, - <<, >> <, >, <=, >=, is, as ==,!= &, ^, && En düşük öncelik?:,?? =, *=, /=, %=, +=, -=, <<=, >>=, &=, ^=, = Tablonun üst satırlarında bulunan işleçler, alt satırlarda bulunan işleçlerden daha yüksek önceliğe sahiptir ve dolayısıyla bir ifadenin hesaplanmasında bunların sırasıyla avantajı vardır.

5 113 Bir işlecin önceliğini değiştirmek üzere parantez kullanabilirsiniz. Daha karmaşık ifadeleri yazarken yada birçok işleç varsa kodun okunabilirliği ve anlaşılabilirliğindeki güçlükleri önlemek için parantez kullanılması tavsiye edilir. Örneğin: // Ambiguous // Unambiguous, recommended Aritmetik İşleçler C# aritmetik işleçleri +, -, * matematikte olanlar gibi aynıdır. Sayısal değerler üzerinde toplama, çıkarma ve çarpma işlemini yaparlar ve sonucu da sayısal bir değerdir. Bölme işleci / tamsayı ve gerçek sayılar üzerinde farklı bir etkiye sahiptir. Bir tamsayıyı bir tamsayı ile böldüğünüzde (int, long ve sbyte gibi), döndürülen değer bir tamsayıdır (yuvarlama yoktur, kesirli kısım atılır). Böyle bölünmeye tamsayı bölünmesi denir. Tamsayı bölünmesine örnek: 7 / 3 = 2. Tamsayı bölünmesinde 0 ile bölmeye izin verilmez ve bir çalışma zamanı istisnai durumuna DivideByZeroException neden olur. Tamsayı bölümünün kalanı % işleci ile elde edilebilir. Örneğin, 7 % 3 = 1, ve 10 % 2 = 0. İki gerçek sayıyı veya biri gerçek olan iki sayıyı böldüğünüzde (örneğin float, double, vb), bir gerçek sayı bölünmesi yapıyorsunuz (tamsayı değil) ve sonuç, bir tamsayı ve bir kesir kısmıdır. Örneğin: 5,0 / 2 = 2,5. Gerçek sayı bölünmesinde 0,0 ile bölmeye izin verilir ve sırasıyla sonuç + (Sonsuz), - (-Sonsuz) veya NaN (geçersiz değer) olur. Artım işleci ++ değişkenin değerine bir birim ekler, benzer şekilde azalım işleci -- değerden bir birim çıkarır. Öntakı olarak ++ ve -- işleçlerini kullandığınızda, (hemen değişkenden önce onları yerleştirdiğinizde), önce yeni değer hesaplanır ve daha sonra sonuç geri gönderilir. Aynı işleçleri arttakı olarak kullandığınızda, (değişkenden hemen sonra onları yerleştirdiğinizde), ilk olarak işlenen özgün değer döndürülür, daha sonra toplama veya çıkarma yapılır.

6 Aritmetik İşleçler Örnek Aritmetik işleçler ve etkilerine bazı örnekler şunlardır: int // 4.25 // int 5 int 4 // 9 // 9 // 10 // 11 // 11 // 2 // 4 int 1 int 0 //.WriteLine(one / zero); // DivideByZeroException // -Infinity // Infinity

7 Mantıksal İşleçler Mantıksal (Boole) işleçleri Boole değerleri alır ve (true veya false) bir Boole sonucu döndürür. Temel Boole işleçleri AND (&&), OR ( ), exclusive OR (^) ve mantıksal olumsuzlamadır (!). Aşağıdaki tablo C# mantıksal işleçler ve gerçekleştirdikleri işlemleri içerir: x y!x x && y x y x ^ y true true false true true false true false false false true true false true true false true true false false true false false false Tablo ve aşağıdaki örnek mantıksal AND (&&) işlecinin ancak her iki değişken de doğru olduğu zaman true döndürdüğünü göstermektedir. Mantıksal OR ( ) işleci en az bir değişken doğru olduğu zaman true döndürür. Mantıksal olumsuzlama operatörü (!) argümanın değerini değiştirir. Örneğin işlenenin true değeri varsa ve bir olumsuzlama operatörü uygulanırsa, yeni değer false olacaktır. Olumsuzlama birli işleçtir ve argümandan önce yerleştirilir. İki işlenenden sadece birinin true değeri varsa Exclusive OR (^) true döndürür. İki işlenenin farklı değerleri varsa, Exclusive OR true sonuç dönecek, aynı değerleri varsa false dönecektir Mantıksal İşleçler Örnek Aşağıdaki örnek mantıksal işleçlerin kullanımını ve bunların etkilerini gösteriyor: bool true bool false // False // True // True true // True 5 7 // False

8 De Morgan Kuralları Mantıksal işlemler matematiksel mantığın kapsamı içerisindeki De Morgan kurallarının altında toplanır. Birinci kural, iki önermenin birletiminin (mantıksal AND) olumsuzlanmasının, onların olumsuzlamalarının ayırtımına eşit olduğunu ifade eder. İkinci kural, her iki önermenin ayırtımının olumsuzlanmasının, onların olumsuzlamalarının birletimine eşit olduğunu ifade eder Dizeleri Bitiştirmek İçin İşleçler + işleci dizeleri (string) birleştirmek için kullanılır. İki veya daha fazla dizeyi birleştirir (peş peşe ekler) ve yeni bir dize olarak sonuç döndürür. İfadedeki argümanlardan en az biri string türünde ise ve işlenenlerden bazıları string türünde değilse, başarılı olarak dize birleştirmeye izin vermesi için otomatik olarak string türüne dönüştürülür..net çalışma zamanı anında bizim için böyle işlem uyumsuzluklarının nasıl işlendiğini düşünmek fantastiktir, bu bize kodlamada biraz zaman tasarrufu ve programlama görevinin ana hedeflerine odaklanmamızı sağlar! Ancak, bir işlemi uygulamak istediğinizde değişkenlerin türünü dönüştürmeye zorlamayı (cast) gözden kaçırmamak iyi bir uygulamadır, gözden kaçırmak yerine, her işlem için uygun türe dönüştürülmüş olmalıdır ki böylece sonuç tam olarak kontrolümüzde olsun ve varsayılan tür dönüşümlerini önlemiş olalım. İşlemlerin türünü dönüştürmek hakkında daha detaylı bilgi bu bölümün ilerisinde Tür Dönüşümleri başlıklı bölümde verilecektir.

9 Dizileri Bitiştirmek İçin İşleçler Örnek İki dizeyi ve bir dize ile bir sayıyı birleştirmeyi gösteren bir örnek aşağıda verilmiştir: C#.NET // C#.NET 5 // C#.NET 5 Örnekte string türünde iki değişkeni başlatıyoruz ve onlara değer atıyoruz. Üçüncü ve dördüncü satırda hem dizeleri bitiştirmek ve sonucu konsolda yazdırmak için.writeline() yöntemine geçiriyoruz. Sonraki satırda sonuç dizesini bir boşluk karakteri ve 5 sayısı ile bitiştiriyoruz. Döndürülen değeri csharpdotnet4 değişkenine atıyoruz, bu değişkenin türü otomatik olarak string türüne dönüştürülecektir. Son satırda sonucu yazdırıyoruz.! Dizeleri birleştirme (peş peşe ekleme, yapıştırma) yavaş bir işlemdir ve dikkatle kullanılmalıdır. Dizeler üzerinde yapılan döngülü (tekrarlayan) işlemler için StringBuilder sınıfını kullanmanız tavsiye edilir. Strings Bölümü nde bir döngü içinde dizeleri birleştirme işlemleri için neden StringBuilder sınıfının kullanılması gerektiğini ayrıntısıyla anlatacağız Bitsel İşleçler Bir bitsel işleç sayısal türlerin ikili gösterimi üzerinde işlem yapan işleçtir. Bilgisayarlardaki tüm veriler ve özellikle sayısal veriler birler ve sıfırların bir dizisi olarak temsil edilir. İkili rakam sistemi bu amaç için kullanılır. Örneğin, 55 sayısı ikili rakam sisteminde olarak temsil edilir. Verilerin ikili gösterimi uygundur, çünkü elektronikte sıfır ve bir Boole devreleri tarafından gerçekleştirilebilir, burada sıfır elektrik yok olarak yada örneğin 5V gerilim ile temsil edilir ve bir elektrik var ile yada örneğin + 5V gerilim ile temsil edilir. İkili rakam sistemini derinlemesine Sayısal Sistemler Bölümü nde inceleyeceğiz, ancak şimdilik bilgisayarlarda sayıların birler ve sıfırlar olarak temsil edildiğini ve bitsel işleçlerin onları analiz etmek ve sıfırları tersine çevirerek bir ve birleri tersine çevirererek sıfır olarak değiştirmek için kullanıldığını düşünebiliriz.

10 118 Bitsel işleçler mantıksal işleçlere çok benzerdir. Aslında, mantıksal ve bitsel işleçlerin aynı şeyi, ancak farklı veri türlerini kullanarak gerçekleştirdiklerini düşünebiliriz. Mantıksal işleçler, true ve false (Boole değerler) değerler ile çalışırlar, bitsel işleçler sayısal değerler ile çalışır ve bunların ikili temsili üzerinden bit düzeyinde uygulanır, yani bunlar sayıların bitleri (0 ve 1 basamaklarından oluşan) ile çalışır. C# mantıksal işleçleri gibi bitsel işleçler arasında AND (&), bitsel OR ( ), bitsel olumsuzlama (~), ve excluding OR (^) vardır Bitsel İşleçler ve Performansları 0 ve 1 ikili basamakları üzerinde bitsel işleçlerin performansı aşağıdaki tabloda gösterilmektedir: x y ~x x & y x y x ^ y Gördüğünüz gibi, bitsel ve mantıksal işleçler birbirine çok benziyor. AND ve OR yazımları açısından aralarındaki fark mantıksal işleçlerin çift işaret (&&) ve çift dikey çubuk ( ) ile yazılması, ve bitsel işleçlerin tek bir & simgesi veya dikey çubuk ( ) ile yazılmasıdır. Exclusive OR için bitsel ve mantıksal işleçler aynıdır ^. Mantıksal olumsuzlama için kullandığımız!, bitsel olumsuzlamada (evirme) ~ operatörünü kullanır. Programlama için mantıksal operatörlerde hiçbir benzeri olmayan iki bitsel işleç vardır. Bunlar sola bit kaydırma (<<) ve sağa bit kaydırma (>>) olarak tanımlıdır. Sayısal değerler üzerinde kullanılan bu işleçler sola veya sağa tüm bit değerlerini taşırlar. Sayının dışında kalan bitler kaybolur ve 0 ile yer değiştirir. Bit kaydırma işleçleri şu şekilde kullanılır: İşlecin sol tarafında işlecin kullanmak istediği değişkeni (işlenen) yerleştiririz, sağ tarafta kaç bit ofset istediğimizi belirten bir sayısal değeri koyarız. Örneğin, 3 << 2 üç sayısının bitlerini iki kez sola taşımak istediğiniz anlamına gelir. 3 sayısının bitleri şöyledir: İki kez sola hareket ettirildiğinde, ikili değer şöyle görünecektir: , ve bu bitlerin dizilimi 12 sayısı olacaktır. Örneğe baktığımızda aslında sayıyı 4 ile çarpmış olduğumuzu görebilirsiniz. Bit kaydırmanın kendisi 2 nin bir üssü tarafından çarpma (sola kaydırma) veya bölme (sağa kaydırma) olarak temsil edilebilir. Bu

11 119 olayın nedeni ikili rakam sisteminin doğasından kaynaklanmaktadır. Sağa hareket ettirmeye örnek 6 >> 2 ile verilirse, bu ikili sayısını iki pozisyon sağa kaydırmak anlamına gelir. Burada en sağdaki iki basamağı kaybederiz ve sol tarafı sıfır ile besleriz. Sonuç , yani 1 olacaktır Bitsel İşleçler Örnek Bitsel işleçlerin kullanımına bir örnek aşağıda verilmiştir. Sayıların ikili gösterimi ve bitsel işleçlerin sonuçları yorumlar (yeşil metin) halinde gösterilmiştir: byte 3 // = 3 byte 5 // = 5 // = 7 // = 1 // = 6 // = 4 1 // = 6 2 // = 12 1 // = 1 Örneğimizde a ve b değişkenlerini oluşturuyoruz ve ilk değerleri ile başlatıyoruz. Sonra iki değişken üzerinde bazı bitsel işlemlerin sonuçlarını konsola yazdırıyoruz. Uyguladığımız ilk işlem olan OR örneği a ve b değişkenlerinin ikili gösterimi içinde 1 olan tüm pozisyonlar için, sonuçta da aynı pozisyonda 1 olduğunu gösteriyor. İkinci işlem AND olmuştur. İşlemin sonucunda sadece en sağ bit 1 içeriyor, çünkü a ve b değerlerinin aynı anda 1 olduğu tek pozisyon en sağ bitleridir. Exclusive OR sadece a ve b ikili bitlerinin farklı değerlere sahip olduğu pozisyonlarda 1 döndürür. Son olarak, mantıksal olumsuzlama ve bit kaydırma: sola ve sağa gösterilmektedir.

12 Karşılaştırma İşleçleri C# karşılaştırma işleçleri iki yada daha fazla işleneni karşılaştırmak için kullanılır. C# dili tarafından desteklenen karşılaştırma işleçleri şunlardır: daha büyük (>) daha küçük (<) daha büyük yada eşit (>=) daha küçük yada eşit (<=) eşitlik (==) farklılık (!=) C# karşılaştırma işleçlerinin tümü ikilidir (iki işlenen alır) ve döndürdükleri sonuç bir Boole değeridir (true veya false). Karşılaştırma işleçleri aritmetik işleçlerden daha düşük önceliğe sahiptir, ancak atama işleçlerinden daha yüksek önceliğe sahiptir Karşılaştırma İşleçleri Örnek C# karşılaştırma operatörlerinin kullanımını gösteren bir örnek aşağıda verilmiştir: int 10 5 x > y : // True x < y : // False x >= y : // True x <= y : // False x == y : // False x!= y : // True

13 121 Örnekte, ilk olarak x ve y değişkenlerini oluşturuyoruz ve bunlara sırasıyla 10 ve 5 değerlerini atıyoruz. Sonraki satırda.writeline(...) metotunu kullanarak x ve y değişkenlerinin > işlecinin kullanılmasıyla karşılaştırılmasının sonucunu konsola yazdırıyoruz. x değişkeni, y değişkeninden daha büyük bir değere sahip olduğundan döndürülen değer true olur. Benzer şekilde, x ve y değişkenlerini karşılaştırmak için kullanılan diğer 5 karşılaştırma işlecinden gelen sonuçlar, sonraki satırlarda yazdırılmaktadır Atama İşleçleri Bir değişkene değer atamak için kullanılan işleç = olarak tanımlıdır (matematiksel denklem karakteri). Değer atamak için kullanılan sözdizimi aşağıdaki gibidir: Atama İşleçleri Örnek Atama işlecinin kullanımını gösteren bir örnek aşağıda verilmiştir: int 6 int Hello string. Örnekte x değişkenine 6 değerini atıyoruz. İkinci satırda hellostring değişkenine bir metin simgedeğeri atıyoruz ve üçüncü satırda bir y değişkenine x değişken değerini kopyalıyoruz Peşpeşe Atama Atama işlemi kademeli olarak kullanılabilir (aynı ifadede bir defadan fazla). Bu durumda, atamalar, sağdan sola doğru arka arkaya gerçekleştirilmektedir. İşte bir örnek: 25

14 122 Örnekte ilk satırda üç değişkeni başlatıyoruz ve ikinci satırda onlara 25 değerini atıyoruz.! C# dilinde tanımlı atama operatörü, = iken karşılaştırma operatörü == dir. İki işleci değiştirerek kullanmak kod yazma sırasında yapılabilen yaygın bir hatadır. Birbirine çok benzer olan karşılaştırma işlecini ve atama işlecini karıştırmamak için dikkatli olun Bileşik Atama İşleçleri Atama işleci dışında bileşik atama işleçleri de vardır. Bunlar hem işlem ve hem de atamayı birlikte gerçekleştirecek bir işleç ile kod miktarını azaltmaya yardımcı olurlar. Bileşik operatörler için aşağıdaki sözdizimi vardır: Üstteki ifade aşağıdaki gibidir: Atama yapan bir bileşik işleç örneği aşağıda verilmiştir: 2 4 // Same as x = x * y; // 8 En yaygın olarak kullanılan bileşik atama operatörleri += vardır (işlenen2 değerini işlenen1 değerine ekler), = (sol işlenenin değerinden sağ işlenen değerini çıkarır). Diğer bileşik atama operatörleri *=, /= ve %= olarak tanımlıdır.

15 123 Aşağıdaki örnek bileşik atama işleçlerinin nasıl çalıştığı hakkında iyi bir fikir verir: int 6 int 4 2 // 8 int 3 // y=3 and z=3 // 3 1 // 7 3 // 10 2 // 5 Örnekte, öncelikle x ve y değişkenlerini oluşturuyoruz ve bunlara sırasıyla 6 ve 4 değerlerini atıyoruz. Sonraki satırda konsola y değişkeni üzerinde *= işleci ve 2 simgedeğeri ile uygulanan işlem sonucunda elde edilen yeni değeri yazdırıyoruz. İşlemin sonucu 8 dir. Örneğin kalan kısımlarında diğer bileşik atama işleçlerini uyguluyoruz ve konsola sonuçlarını yazdırıyoruz Koşullu İşleç?: Koşullu işleç?: iki ifadeden hangisinin hesaplanması ve sonuç olarak döndürülmesi gerektiğini belirlemek için bir ifadenin Boole değerini kullanır. Operatör üç işlenen üzerinden çalışır, bu nedenle üçlü işleçtir. Birinci ve ikinci işlenen arasına? karakteri yerleştirilir, ve ikinci ve üçüncü işlenen arasına : yerleştirilir. İlk işlenen (veya ifade) Boole olmalıdır ve sonraki iki işlenenin aynı türde olması gerekir, sayılar veya dizeler gibi.?: işlecinin sözdizimi aşağıdaki gibidir: Şöyle çalışır: işlenen1 true olarak ayarlandıysa, işlecin sonucu işlenen2 değerini döndürür. Aksi halde (işlenen1 false olarak ayarlanmış ise), işlecin sonucu işlenen3 değerini döndürür. Çalışma sırasında, ilk argümanın değeri hesaplanır. true değeri varsa, o zaman ikinci (orta) argüman hesaplanır ve sonuç değeri olarak döndürülür. Ancak, ilk argümanın hesaplanan sonucu false ise, o zaman üçüncü (son) argüman hesaplanır ve sonuç değeri olarak döndürülür.

16 Koşullu İşleç?: Örnek?: işlecinin kullanımını gösteren bir örnek aşağıda verilmiştir: int 6 int 4 a>b b<=a // a>b int -1; // num will have value Diğer İşleçler Şimdiye kadar aritmetik, mantıksal, bitsel işleçleri, dizeleri bitiştirme işlecini ve ayrıca koşullu işleci?: inceledik. Bunların yanı sıra C# dilinde tanımlı kayda değer birkaç diğer işleç daha vardır İşleci Erişim işleci. (nokta) bir sınıf veya nesne yöntemlerine ve veri alanlarına erişmek için kullanılır. Nokta işlecinin kullanım örneği aşağıda verilmiştir: DateTime // Prints the date + time [] Kare Köşeli Parantez İşleci Köşeli parantez [] bir dizinin elemanlarına endeks yoluyla erişmek için kullanılır. Dizinleyici olarak adlandırılır. Dizinleyiciler dize karakterlerine erişmek için de kullanılır. Örnek: int // 1 string Hello 1 // e () Parantez İşleci Parantez () ifadelerin ve işleçlerin yürütme önceliğini geçersiz kılmak için kullanılır. Parantezlerin nasıl çalıştığını daha önce görmüştük.

17 Türü Dönüştürme İşleci Türü dönüştürme işleci (type) bir değişkeni bir türden başka bir türe dönüştürmek için kullanılır. Türü Dönüştürme Bölümü nde ayrıntılı olarak inceleyeceğiz as İşleci Türü dönüştürmek için as işleci de aynı zamanda kullanılır, ancak geçersiz dönüşümler istisnai durum değil, boş değer olan null döndürür new İşleci Yeni nesneleri oluşturmak ve başlatmak için new işleci kullanılır. Nesne Oluşturma ve Kullanma Bölümü nde ayrıntılı olarak inceleyeceğiz is İşleci Bir nesnenin verilen bir tür ile uyumlu olup olmadığını kontrol etmek için (nesnenin türünü onaylamak için) is işleci kullanılır ?? İşleci?? işleci koşullu işlece?: benzerdir. Farkı iki işlenen arasına yerleştirilmiş olmasıdır ve sadece değeri boş değilse sol işleneni döndürür, aksi takdirde sağ işleneni döndürür. Örnek: int 5 1 // 5 string null (no name) // (no name)

18 Diğer İşleçler Örnekler Açıkladığımız işleçleri gösteren bir örnek aşağıda verilmiştir: int 6 int 3 2 // 7 2 // 4 Beer is string // True null Unspecified // Unspecified Specified // Beer 3.3 Türü Dönüştürme ve Türe Zorlama Genellikle, işleçler aynı veri türüne sahip argümanlar üzerinde çalışır. Ancak C# dilinde tanımlı olan ve belirli bir amaç için en uygununu seçebileceğiniz çok çeşitli veri türleri vardır. Farklı veri türündeki iki değişken üzerinde işlem gerçekleştirmek için her iki değişkenin de aynı veri türüne dönüştürülmesi gerekir. Türü dönüştürme (türe zorlama) açık ve örtük olarak yapılabilir. Her C# ifadesinin bir türü vardır. Türü elde etmek için ifadenin yapısına ve türlerine, değişkenlere ve kullanılan simgedeğerlere bakmak gerekir. Geçerli bağlam için uygun olmayan bir türde ifade yazmak mümkündür. Bazı durumlarda bu bir derleme hatası verecektir, fakat diğer durumlarda ifadenin türüne benzer veya ilgili bir tür elde edilebilecektir. Bu durumda program türü dönüştürmeyi kapalı olarak gerçekleştirir. T türünün S türüne spesifik dönüştürülmesinin bir sonucu olarak S türü programın çalıştırılması sırasında T türünün bir ifadesi olarak davranış görür. Bazı durumlarda bu dönüşüm bir doğrulama gerektirecektir. İşte bazı örnekler: object türünden string türüne dönüşüm değerin gerçekten string türünün bir örneği olduğunu sağlaması için yürütülme zamanında doğrulama gerektirir. string türünden object türüne dönüşüm herhangi bir doğrulama gerektirmez. string türü object türünün bir kalıtımı olduğu için bir hata veya veri kaybı riski olmadan kendi temel sınıfına dönüştürülebilir. Nesne Tabanlı Programlama İlkeleri Bölümü mde kalıtımı ayrıntılarıyla inceleyeceğiz.

19 127 int türünden long türüne dönüşüm yürütülme sırasında doğrulama olmadan yapılabilir, çünkü int türündeki değerler kümesi long türündeki değerler kümesinin bir alt kümesi olduğu için veri kaybı riski yoktur. double türünden long türüne dönüşüm 64-bit kayan noktalı değerden 64-bit tamsayıya dönüşümü gerektirir. Değerine bağlı olarak, veri kaybı mümkündür ve bu nedenle, türleri açık bir şekilde dönüştürmek gereklidir. C# dilinde tüm türler diğer tüm türlere dönüştürülemeyebilir, ancak bunlardan sadece bazılarına dönüştürülebilir. Kolaylık sağlamak için, C# dilinin olası bazı dönüştürümlerini kendi türlerine göre üç kategoride gruplayacağız: örtük dönüştürme açık dönüştürme string türünden veya türüne dönüştürme Türü Örtük Dönüştürme Türü örtük (kapalı) dönüştürme sadece dönüşüm sırasında veri kaybı riski olmadığı zamanlarda mümkündür, daha düşük bir aralığa sahip türden daha geniş bir aralık türüne dönüştürme yaparken (örneğin int türünden long türüne). Örtük dönüştürme yapmak için herhangi bir işleci kullanmak gerekli değildir ve dolayısıyla bu dönüşüme örtülü denir. Örtük dönüştürme derleyici tarafından, küçük aralıkta bir değeri daha büyük aralıkta bir değişkene atadığınızda yada ifadenin farklı aralıklarda birkaç türü varsa, otomatik olarak yapılır. Böyle bir durumda, dönüşüm en yüksek aralıktaki tür içine uygulanır Türü Örtük Dönüştürme Örnekler Örtülü türü dönüştürmeye bir örnek aşağıda verilmiştir: int 5 // 5 long // 5 // 10 Örnekte int türünde bir değişken, myint, oluşturuyoruz ve 5 değerini atıyoruz. Bundan sonra long türünde bir değişken, mylong, oluşturuyoruz ve myint değişkeninde bulunan değeri buna atıyoruz. mylong değişkeninde depolanan değer otomatik int türünden long türüne dö-

20 128 nüştürülür. Son olarak, iki değişkenin toplamından çıkan sonucu yazdırıyoruz. Değişkenler farklı türde olduğu için otomatik olarak daha geniş bir aralıkta olan türe dönüştürülür, yani long türüne ve konsolda yazdırılan sonuç da yine long olur. Gerçekten de,.writeline() yöntemi için verilen parametre long türündedir, ancak yöntem içinde bu yeniden dönüştürülmüş olacak, bu kez string türüne, böylece konsolda basılabilir. Bu dönüşüm Long.ToString() yöntemi tarafından gerçekleştirilir Olması Mümkün Örtülü Dönüşümler Örnekler C# temel veri türleri üzerinde bazı olası örtülü dönüşümler şunlardır: sbyte -> short, int, long, float, double, decimal; byte -> short, ushort, int, uint, long, ulong, float, double, decimal; short -> int, long, float, double, decimal; ushort -> int, uint, long, ulong, float, double, decimal; char -> ushort, int, uint, long, ulong, float, double, decimal (char karakter türü olmasına rağmen bazı durumlarda bir sayı olarak kabul edilebilir ve sayısal türde davranış gösterebilir, hatta sayısal ifadelere katılabilir); uint -> long, ulong, float, double, decimal; int -> long, float, double, decimal; long -> float, double, decimal; ulong -> float, double, decimal; float -> double. Daha küçük bir aralıktaki türden daha büyük aralıktaki türe dönüştürme sırasında hiçbir veri kaybı olmaz. Sayısal değer dönüştürüldükten sonra aynı kalır. Birkaç istisna vardır. int türünden float (32-bit değerlere) türüne dönüştürdüğünüzde, aralarındaki fark int bir tamsayının tüm bitlerini kullanırken float için kesirli bölümü temsil etmede kullanılan bir bit parçasının olmasıdır. Dolayısıyla, int türünden float türüne dönüşüm yapıldığında yuvarlama nedeniyle keskinlik kaybı mümkündür. Aynı şey 64-bitlik long türünün 64-bit uzunluğunda bir double türüne dönüştürülmesi için de geçerlidir Türü Açıkça Dönüştürme Veri kaybı olasılığı olduğunda açıkça tür dönüştürme kullanılır. Kayan nokta türünü tamsayı türüne dönüştürürken kesirli bölümünün kaldırılmasıyla gelen veri kaybı her zaman vardır ve

21 129 türü açıkça dönüştürmek (örneğin, double türünden long türüne) zorunludur. Böyle bir dönüşüm yapmak için veri dönüştürme (type) işlecini kullanmak gereklidir. Aynı zamanda, daha geniş bir aralıktaki türden daha dar bir aralıktaki türe dönüştürürken de veri kaybı olabilir (double türünden float türüne veya long türünden int türüne) Türü Açıkça Dönüştürme Örnek Türü açıkça dönüştürmenin kullanımını ve bazı durumlarda oluşabilecek veri kaybını gösteren bir örnek aşağıda verilmiştir: 5.1d // 5.1 long // 5 5e9d // 5 * 10^9 // int // int // d // 5.1 long // 5 5e9d // 5 * 10^9 // int // int // Örneğin birinci satırında mydouble değişkenine 5.1 değerini atıyoruz. (long) işlecini kullanarak long türüne (açıkça) dönüştürdükten ve konsola mylong değişkenini yazdırdıktan sonra değişkenin kesir kısmını kaybettiğini görüyoruz, çünkü long bir tamsayıdır. Sonra çift duyarlıklı bir gerçek sayı değişkeni olan mydouble için 5 milyar değeri atıyoruz. Son olarak, (int)

22 130 işleci tarafından mydouble değerini int türüne dönüştürüyoruz ve myint değişkenini yazdırıyoruz. int.minvalue yazdırmışız gibi aynı sonuç görünmektedir, çünkü mydouble değişkeni int aralığından daha büyük bir değer içeriyor.! Kapsam dışına çıkıldıktan sonra bir değişkenin değerinin ne olacağını tahmin etmek her zaman mümkün değildir! Bu nedenle, yeterince büyük aralıktaki türleri kullanın ve bir küçük türlere geçiş yaparken dikkatli olun Türü Dönüştürme Sırasında Veri Kayıpları Tür dönüşümü sırasında veri kaybı için bir örnek vereceğiz: long int long int // // -1 Kasıtlı bir örtük dönüştürme durumunda türü dönüştürme operatörü de kullanılabilir. Bu kod okunabilirliğine katkıda bulunarak hata şansını azaltır ve birçok programcı tarafından iyi bir uygulama olarak kabul edilir. Türü float dönüştürmeye verilebilecek 1.74f biraz // daha Explicit fazla örnek conversion aşağıda verilmiştir: // Implicit double // Explicit float float // Explicit float // Compilation error! Yukarıdaki örnekte son satırda, derleme hatası üretecek bir deyim var, çünkü double türünü float türüne örtülü ve veri kaybına neden olabilecek şekilde dönüştürmek için çalışıyoruz. C# kesin türlendirmeli bir dil olduğu için bu gibi değerlerin tahsis edilmesine izin vermez Türe Zorlama Sırasında Taşma İstinasının Fırlatılması Bazen büyük türden küçük türe geçiş sırasında türün taşmasıyla yanlış sonuç almak yerine sorunun bildirimini almak uygundur. Tamsayı türlerinde taşmayı kontrol etmeyi içeren bu

23 131 anahtar sözcük checked ile tanımlıdır. double // 5 * 10^9 // int checked int // System.OverflowException Yukarıdaki kod parçasının yürütülmesi sırasında OverflowException türünde bir istisnai durum (yani, bir hata bildirimi) ortaya çıkar. İstisnalar ve bunları yakalayan ve işleyen yöntemler hakkında daha fazla bilgiyi İstisnai Durum İşleme Bölümü nde bulabilirsiniz Olması Mümkün Açık Dönüşümler C# sayısal türleri arasındaki açık dönüşümler aşağıda listelenen türler arasından herhangi ikisi arasında mümkündür: Bu dönüşümler sırasında sayı boyutu veya hassasiyeti ile ilgili bilgiler gibi birtakım veriler kaybolmuş olabilir. Dikkat ediniz ki, türe zorlama yoluyla string türüne veya türünden dönüştürme mümkün değildir String Türüne Dönüştürme Gerekirse null değeri de dahil olmak üzere her türlü veriyi string türüne dönüştürebilirsiniz. Bitiştirme işlecini (+) kullandığınızda argümanlardan en az biri string türünde değilse dizelerin dönüşümü otomatik olarak yapılır. Bu durumda argüman string türüne dönüştürülür ve işleç iki dizenin bitiştirilmiş halini temsil eden yeni bir dize döndürür. Farklı nesneleri string türüne dönüştürmek için başka bir yol da değişken veya değer üzerinde ToString() metotunu çağırmaktır. Bu.NET Framework ün tüm veri türleri için geçerlidir. Hatta 3.ToString() çağırmak da C# dilinde tamamen geçerlidir ve sonuç 3 dizesini dönecektir.

24 String Türüne Dönüştürme Örnek Farklı veri türlerini string türüne dönüştüren çeşitli örneklere göz atalım: 5 7 Perimeter =. Area =. Örnekten elde edilen sonuç aşağıdaki gibidir: Sonuçlardan açıktır ki, bir sayıyı bir karakter dizesine bitiştirmek dizeyi izleyen sayının metin gösterimini sonuçta döndürür. Dikkat ediniz ki, dizeleri bitiştirmek için kullanılan +, sayıların toplanması işleminde hoş olmayan etkilere neden olabilir, çünkü matematiksel toplama işleci + ile eşit önceliğe sahiptir. İşlemlerin öncelikleri parantez içine koyarak değiştirilmediği sürece, her zaman soldan sağa doğru yürütüleceklerdir. Dizeye ve dizeden dönüştürme hakkında daha fazla ayrıntıya Konsol Giriş ve Çıkış Bölümü nde bakacağız.

25 İfadeler Programın çalışmasının çoğu ifadelerin hesaplamasında geçer. İfadeler bazı türde (sayı, dize, nesne ya da başka türde) bir değere hesaplanan işleçler, simgedeğişmezler ve değişkenlerden oluşur. İşte ifadelerin bazı örnekleri: int // Expression for calculating the surface of the circle Math // Expression for calculating the perimeter of the circle 2 Math Bu örnekte, üç ifade tanımlanmaktadır. İlk ifade bir dairenin yarıçapını hesaplar. İkinci ifade bir dairenin alanını hesaplamaktadır, ve sonuncu ifade çevresini bulur. Yukarıdaki program parçasının sonucu şöyledir: İfadelerin Yan Etkileri İfade hesaplanması yan etkiye sebep olabilir, çünkü ifade gömülü atama işleçlerini içerebilir, çağıran yöntemlerin artan veya azalan değerlerine neden olabilir. Böyle bir yan etkinin bir örneği aşağıda verilmektedir: int 5 int // 6 // 6

26 İfadeler, Veri Türleri ve İşleç Öncelikleri İfadeleri yazarken, veri türü ve kullanılan işleçlerin davranışı dikkate alınmalıdır. Buna önem vermemek beklenmedik sonuçlara yol açabilir. İşte bazı basit örnekler: // First example double // 0, not 0.5 // Second example double double // 0.5 İlk örnekte, bir ifade iki tamsayıyı bölüyor (1 ve 2 tamsayılarını) ve sonucu double türünde bir değişkene atıyor. Sonuç, bazılarınız için beklenmedik olabilir, ancak onlar bu durumda / işlecinin tamsayılar üzerinden çalıştığını ve sonucun kesirli kısmın kesilmesi ile elde edilen bir tamsayı olduğu gerçeğini görmezden gelenlerdir. İkinci örnek gösteriyor ki, sonuçta kesrin de göründüğü bir bölme yapmak istiyorsanız, işlenenlerden en az birinin float veya double türüne dönüştürülmesi gereklidir. Bu senaryoda bölüm sonucu artık tamsayı değildir ve sonuç doğrudur Sıfıra Bölme Bir başka ilginç örnek de 0 ile bölünmedir. Programcıların çoğu 0 ile bölünmenin geçersiz işlem olduğunu ve çalışma zamanında bir hataya (istisnai durum) neden olacağını düşünür, ancak bu aslında sadece 0 ile tamsayı bölünmesi için doğrudur. 0 ile kesirsel bölme sonucunun Infinity veya NaN olduğunu gösteren bir örnek aşağıda verilmiştir: int // The value is 0.0 (real number) int int // The value is 0 (integer number) // Infinity // NaN // DivideByZeroException

27 Kodu Daha Anlaşılır Yapmak İçin Parantezlerin Kullanılması İfadeler ile çalışırken işlemlerin öncelikleri hakkında en ufak bir şüphe olduğunda parantez kullanmak önemlidir. Parantezlerin ne kadar yararlı olduğunu gösteren bir örnek aşağıda verilmiştir: double double // 0 double double // = // = = // = 5

28 136 Alıştırmalar 1. Bir tamsayının tek veya çift olup olmadığını kontrol eden bir ifade yazın. 2. Belirli bir tamsayının kalansız olarak hem 5 ve hem de 7 tarafından bölünebilir olup olmadığını denetleyen bir Boole ifadesini yazın. 3. Belirli bir tamsayının (sağdan sola) üçüncü basamağının 7 olup olmadığını kontrol eden bir ifade yazın. 4. Verilen bir tamsayının üçüncü bitinin 1 veya 0 olup olmadığını kontrol eden bir ifade yazın. 5. İki tarafı a, b ve yüksekliği h ile verilen bir yamuk alanını hesaplayan bir ifade yazın. 6. Kullanıcı tarafından girilen kenar ve yükseklik verisine göre bir dikdörtgenin çevresini ve alanını konsola yazdıran bir program yazın. 7. Ay ın yerçekimi alanı Dünya dakinin yaklaşık %17 sidir. Dünya üzerinde belirli bir ağırlığı verilen adamın aydaki ağırlığını hesaplayan bir program yazın. 8. Belirli bir {x, y} noktasının K({0, 0}, R=5) ile verilen dairenin içinde kalıp kalmadığını denetleyen bir ifade yazın. Açıklama: dairenin merkezi {0, 0} noktası ve yarıçapı 5 tir. 9. Belirli bir {x, y} noktasının K({0, 0}, R=5) ile verilen dairenin içinde ve [{-1, 1}, {5, 5}] ile verilen dikdörtgenin dışında kalıp kalmadığını denetleyen bir ifade yazın. Açıklama: dikdörtgen için sol alt ve sağ üst köşe verilmiştir. 10. abcd formatında girdi olarak dört haneli bir sayı alan ve aşağıdaki eylemleri gerçekleştiren bir program yazın (örneğin 2011) : basamakların toplamını hesaplayan (örneğimizde = 4). sayıyı ters sırada konsola yazdıran: dcba (örneğimizde 1102). son rakamı birinci konuma koyan: dabc (örneğimizde 1201). ikinci ve üçüncü basamakları yer değiştiren: acbd (örneğimizde 2101). 11. Bir n sayısı ve p pozisyonu veriliyor. Sayının p pozisyonundaki bit değerini (0 ya da 1) yazdıran işlem dizisini yazın. n = 35, p = 5 -> 1. Başka bir örnek: n = 35, p = 6 -> v tamsayısının p pozisyondaki bit değerinin 1 olup olmadığını denetleyen bir Boole ifadesini yazın. Örnek v = 5, p = 1 -> false. 13. Bir n sayısı, v değeri, (v = 0 veya 1) ve p pozisyonu verilmiştir. p pozisyonundaki bit değeri v değerine sahip olacak şekilde n değerini değiştirecek bir işlem dizisi yazın. Örnek: n = 35, p = 5, v = 0 -> n = 3. Başka bir örnek, n = 35, p = 2, v = 1 -> n = Belirli bir n sayısının (1 < n < 100) asal sayı olup olmadığını denetleyen bir program yazın (yani sadece 1 e ve kendisine kalansız bölünen). 15. Verilen bir 32-bit işaretsiz tamsayının 3, 4 ve 5 nci pozisyonlarındaki bit değerlerini 24, 25 ve 26 ncı pozisyonlarındaki bit değerleri ile değiştirecek bir program yazın. 16. Verilen bir 32-bit işaretsiz tamsayının {p, p+1,, p+k-1} pozisyonlarındaki bit değerlerini {q, q+1,, q+k-1} pozisyonlarındaki bitler ile değiştirecek bir program yazın.

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ı

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ı

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ü Not: Bu dersin sunumları, Java Programlama Dili ve Yazılım Tasarımı, Altuğ B. Altıntaş, Papatya

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ı

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 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ı

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ı

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ı

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ı

Bölüm 7. İfadeler ve atamalar ISBN

Bölüm 7. İfadeler ve atamalar ISBN Bölüm 7 İfadeler ve atamalar ISBN 0-321-49362-1 7. Bölüm konuları Giriş Aritmetik ifadeler Çok anlamlı (overloaded) operatörler Tip dönüşümleri (conversions) İlişkisel ve Boolean İfadeler Kısa-devre hesaplama

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ı

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ı

BTP 207 İNTERNET PROGRAMCILIĞI I. Ders 8

BTP 207 İNTERNET PROGRAMCILIĞI I. Ders 8 BTP 27 İNTERNET PROGRAMCILIĞI I Ders 8 Değişkenler 2 Tamsayı Değerler (Integer) Tamsayılar, tabanlı (decimal), 8 tabanlı (octal) veya 6 tabanlı (hexadecimal) olabilir. 8 tabanındaki sayıları belirtmek

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ı

/*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ı

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ı

EGE ÜNİVERSİTESİ EGE MYO MEKATRONİK PROGRAMI

EGE ÜNİVERSİTESİ EGE MYO MEKATRONİK PROGRAMI EGE ÜNİVERSİTESİ EGE MYO MEKATRONİK PROGRAMI 23.02.2015 Yrd.Doç.Dr. Dilşad Engin PLC Ders Notları 2 PROGRAMLANABİLİR DENETLEYİCİLER NÜMERİK İŞLEME 23.02.2015 Yrd.Doç.Dr. Dilşad Engin PLC Ders Notları 3

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ı

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ı

ESM-361 Mikroişlemciler. 3. Hafta Ders Öğretim Üyesi Dr.Öğr.Üyesi Ayşe DEMİRHAN

ESM-361 Mikroişlemciler. 3. Hafta Ders Öğretim Üyesi Dr.Öğr.Üyesi Ayşe DEMİRHAN ESM-361 Mikroişlemciler 3. Hafta Ders Öğretim Üyesi Dr.Öğr.Üyesi Ayşe DEMİRHAN Bit operatörleri Bit operatörleri bit düzeyinde işlem yapan operatörlerdir; yani sayıları bir bütün olarak değil, bit bit

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ı

1 GİRİŞ 1 C# Hakkında Genel Bilgiler 1.Net Framework 1 CLR 2 CLR Ve CTS 2 Temel Sınıf Kütüphanesi 3 CIL 3 Algoritma Nedir? 4 Sözde Kod (Pseudocode) 5

1 GİRİŞ 1 C# Hakkında Genel Bilgiler 1.Net Framework 1 CLR 2 CLR Ve CTS 2 Temel Sınıf Kütüphanesi 3 CIL 3 Algoritma Nedir? 4 Sözde Kod (Pseudocode) 5 İÇİNDEKİLER IX İÇİNDEKİLER 1 GİRİŞ 1 C# Hakkında Genel Bilgiler 1.Net Framework 1 CLR 2 CLR Ve CTS 2 Temel Sınıf Kütüphanesi 3 CIL 3 Algoritma Nedir? 4 Sözde Kod (Pseudocode) 5 2 VISUAL STUDIO GELİŞTİRME

Detaylı

Programlama Dilleri 3

Programlama Dilleri 3 Operatörler 1 Operatör Nedir? Operatörler önceden tanımlanmış birtakım matematiksel ya da mantıksal işlemleri yapmak için kullanılan özel karakterler ya da karakterler topluluğudur. Operatörlerin işlem

Detaylı

J A V A D A P R O G R A M D E N E T İ M İ V E O P E R A T Ö R L E R

J A V A D A P R O G R A M D E N E T İ M İ V E O P E R A T Ö R L E R J A V A D A P R O G R A M D E N E T İ M İ V E O P E R A T Ö R L E R Atamalar int a ; a=4 ; // doğru bir atama 4=a ; // yanlış bir atama! Temel Tiplerde Atama Atama işlemi, temel (primitive) tipler için

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ı

Java da Program Denetimi ve Operatörler

Java da Program Denetimi ve Operatörler Java da Program Denetimi ve Operatörler 1 Atamalar int a ; a=4 ; // doğru bir atama 4=a ; // yanlış bir atama! 2 Temel (Primitive) Tiplerde Atama int a, b ; a=4 ; b=5 ; a=b ; Sonuç : a=5, b=5 3 Nesneler

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ı

2 VISUAL STUDIO 2012 GELİŞTİRME ORTAMI

2 VISUAL STUDIO 2012 GELİŞTİRME ORTAMI İÇİNDEKİLER VII İÇİNDEKİLER 1 GİRİŞ 1 C# Hakkında Genel Bilgiler 1.NET Framework 1 CLR 2 CLR Ve CTS 2 Temel Sınıf Kütüphanesi 3 CIL 3 Algoritma Nedir? 4 Sözde Kod (Pseudocode) 5 2 VISUAL STUDIO 2012 GELİŞTİRME

Detaylı

BBS515 Nesneye Yönelik Programlama. Ders 3 Zümra Kavafoğlu

BBS515 Nesneye Yönelik Programlama. Ders 3 Zümra Kavafoğlu BBS515 Nesneye Yönelik Programlama Ders 3 Zümra Kavafoğlu https://zumrakavafoglu.github.io/ Bağıntısal Operatörler operatör tanımı < küçüktür > büyüktür = büyük eşittir eşittir!= eşit

Detaylı

Dr. Fatih AY Tel: 0 388 225 22 55 fatihay@fatihay.net www.fatihay.net

Dr. Fatih AY Tel: 0 388 225 22 55 fatihay@fatihay.net www.fatihay.net Bilgisayar Programlama Ders 6 Dr. Fatih AY Tel: 0 388 225 22 55 fatihay@fatihay.net www.fatihay.net Fonksiyon Prototipleri Fonksiyon Prototipleri Derleyici, fonksiyonların ilk hallerini (prototiplerini)

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ı

Bit, Byte ve Integer. BIL-304: Bilgisayar Mimarisi. Dersi veren öğretim üyesi: Dr. Öğr. Üyesi Fatih Gökçe

Bit, Byte ve Integer. BIL-304: Bilgisayar Mimarisi. Dersi veren öğretim üyesi: Dr. Öğr. Üyesi Fatih Gökçe Bit, Byte ve Integer BIL-304: Bilgisayar Mimarisi Dersi veren öğretim üyesi: Dr. Öğr. Üyesi Fatih Gökçe Ders kitabına ait sunum dosyalarından adapte edilmiştir: http://csapp.cs.cmu.edu/ Adapted from slides

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ı

2.3- OPERATÖRLER ÇALIŞMA YAPRAĞI

2.3- OPERATÖRLER ÇALIŞMA YAPRAĞI 2.3 OPERATÖRLER Operatörler, tek başlarına kullanıldıklarında bir anlam ifade etmeyen, ancak programın işleyişine katkıda bulunan karakterlere operatör denir. Matematiksel Operatörler +,-,/,*,% İlişkisel

Detaylı

Algoritma Geliştirme ve Veri Yapıları 3 Veri Yapıları. Mustafa Kemal Üniversitesi

Algoritma Geliştirme ve Veri Yapıları 3 Veri Yapıları. Mustafa Kemal Üniversitesi Algoritma Geliştirme ve Veri Yapıları 3 Veri Yapıları Veri yapısı, bilginin anlamlı sırada bellekte veya disk, çubuk bellek gibi saklama birimlerinde tutulması veya saklanması şeklini gösterir. Bilgisayar

Detaylı

C Konsol Giriş Çıkış Fonksiyonları

C Konsol Giriş Çıkış Fonksiyonları C Konsol Giriş Çıkış Fonksiyonları Öğr. Gör. M. Ozan AKI Rev 1.0 Stringlerde Özel Karakterler \n : Bir sonraki satırın ilk sütununa git \b : Backspace (önceki karakteri sil) \a : Bip sesi \\ : Ters bölü

Detaylı

PHP, nesne-yönelimli (object-oriented) bir dil olduğu için, nesne oluşturma imkânına ve bunların kullanılmasını sağlayan metodlara da sahiptir.

PHP, nesne-yönelimli (object-oriented) bir dil olduğu için, nesne oluşturma imkânına ve bunların kullanılmasını sağlayan metodlara da sahiptir. PHP'nin Temelleri PHP Nedir? PHP, bir programlama dili olarak, değişkenler, değişkenlerin değerleriyle bir işlem yapmayı sağlayan işlemciler (operatörler), işlemcilerle oluşturulan deyimler ve nihayet

Detaylı

BİLGİSAYAR BİLİMİ DERSİ (KUR 1) PYTHON PROGRAMLAMA DİLİ ÇALIŞMA KÂĞIDI - 1

BİLGİSAYAR BİLİMİ DERSİ (KUR 1) PYTHON PROGRAMLAMA DİLİ ÇALIŞMA KÂĞIDI - 1 BİLGİSAYAR BİLİMİ DERSİ (KUR 1) PYTHON PROGRAMLAMA DİLİ ÇALIŞMA KÂĞIDI - 1 Ekrana Metin Yazdırmak Ekranda metin yazdırmak istendiğinde print komutu kullanılır. Kullanımı aşağıda verilmiştir. Parantez içinde

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ı

MTK467 Nesneye Yönelik Programlama. Hafta 4 - Döngüler Zümra Kavafoğlu https://zumrakavafoglu.github.io/

MTK467 Nesneye Yönelik Programlama. Hafta 4 - Döngüler Zümra Kavafoğlu https://zumrakavafoglu.github.io/ MTK467 Nesneye Yönelik Programlama Hafta 4 - Döngüler Zümra Kavafoğlu https://zumrakavafoglu.github.io/ while döngüsü while(koşul){ } döngü ifadeleri Koşul boolean değerli olmalıdır. Koşulun değeri true

Detaylı

OPERATÖRLER Alıştırmalar

OPERATÖRLER Alıştırmalar Bölüm 6 : Operatörler 1 OPERATÖRLER Alıştırmalar Aritmetik Operatörleri Operatör Açıklama Grup + Toplama, artı işleci Đkili Đşlem (binary operator) - Çıkarma, eksi işleci Đkili Đşlem (binary operator)

Detaylı

Bit, Byte ve Integer. BIL-304: Bilgisayar Mimarisi. Dersi veren öğretim üyesi: Yrd. Doç. Dr. Fatih Gökçe

Bit, Byte ve Integer. BIL-304: Bilgisayar Mimarisi. Dersi veren öğretim üyesi: Yrd. Doç. Dr. Fatih Gökçe Bit, Byte ve Integer BIL-304: Bilgisayar Mimarisi Dersi veren öğretim üyesi: Yrd. Doç. Dr. Fatih Gökçe Ders kitabına ait sunum dosyalarından adapte edilmiştir: http://csapp.cs.cmu.edu/ Adapted from slides

Detaylı

C++ Operatörler (Operators)

C++ Operatörler (Operators) C++ Operatörler (Operators) Konular Operatörler o Aritmetiksel (Matematiksel) Operatörler o Karşılaştırma Operatörleri o Mantıksal Operatörler o Atama Operatörleri o Bit Düzeyinde Operatörler o Özel Amaçlı

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ı

Bit, Byte ve Integer. BIL-304: Bilgisayar Mimarisi. Dersi veren öğretim üyesi: Yrd. Doç. Dr. Fatih Gökçe

Bit, Byte ve Integer. BIL-304: Bilgisayar Mimarisi. Dersi veren öğretim üyesi: Yrd. Doç. Dr. Fatih Gökçe Bit, Byte ve Integer BIL-304: Bilgisayar Mimarisi Dersi veren öğretim üyesi: Yrd. Doç. Dr. Fatih Gökçe Ders kitabına ait sunum dosyalarından adapte edilmiştir: http://csapp.cs.cmu.edu/ Adapted from slides

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ı

BMÜ-111 ALGORİTMA VE PROGRAMLAMA AKIŞ KONTROLÜ YRD. DOÇ. DR. İLHAN AYDIN

BMÜ-111 ALGORİTMA VE PROGRAMLAMA AKIŞ KONTROLÜ YRD. DOÇ. DR. İLHAN AYDIN BMÜ-111 ALGORİTMA VE PROGRAMLAMA AKIŞ KONTROLÜ YRD. DOÇ. DR. İLHAN AYDIN TEMEL AMAÇLAR Bir dairenin yarıçapını kullanıcıdan alarak dairenin alanını hesaplamak istediğimizi düşünelim. Eğer girilen değer

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ı

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 Kodlarına Yorum Satırı Eklemek Java Paket Kavramı Java Kütüphane Kavramı Konsoldan Veri Çıkışı ve JOPtionPane Kütüphanesi JOptionPane Kütüphanesi Kullanarak

Detaylı

Bit, Byte ve Integer. BIL-304: Bilgisayar Mimarisi. Dersi veren öğretim üyesi: Dr. Öğr. Üyesi Fatih Gökçe

Bit, Byte ve Integer. BIL-304: Bilgisayar Mimarisi. Dersi veren öğretim üyesi: Dr. Öğr. Üyesi Fatih Gökçe Bit, Byte ve Integer BIL-304: Bilgisayar Mimarisi Dersi veren öğretim üyesi: Dr. Öğr. Üyesi Fatih Gökçe Ders kitabına ait sunum dosyalarından adapte edilmiştir: http://csapp.cs.cmu.edu/ Adapted from slides

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ı

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ı

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ı

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ı

Integer Sınıfı. 9.1 Integer Sınıfına Uygulanan Başlıca Metotlar. Ruby de tamsayılar için kullanılan Fixnum ve Bignum sınıflarını üreten sınıftır.

Integer Sınıfı. 9.1 Integer Sınıfına Uygulanan Başlıca Metotlar. Ruby de tamsayılar için kullanılan Fixnum ve Bignum sınıflarını üreten sınıftır. 9 Integer Sınıfı Ruby de tamsayılar için kullanılan Fixnum ve Bignum sınıflarını üreten sınıftır. Integer Literal Tamsayı gösteren metinler, 1 0, 1, 123, 123456789012345678901234567890 biçiminde yalnızca

Detaylı

NESNEYE YÖNELİK PROGRAMLAMA C++ a Giriş

NESNEYE YÖNELİK PROGRAMLAMA C++ a Giriş Özlem AYDIN NESNEYE YÖNELİK PROGRAMLAMA C++ a Giriş Trakya Üniversitesi Bilgisayar Mühendisliği Bölümü C DİLİNİN BİR ÜST-KÜMESİ OLARAK C++ Genel olarak, C de mevcut olan her şey C++ da da vardır. C dilinde

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ı

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ı

Length: metin uzunluğunu yada diğer bir deyişle dizi elaman sayısını döndürür.

Length: metin uzunluğunu yada diğer bir deyişle dizi elaman sayısını döndürür. Programlama Temelleri Trim: metnin başındaki ve sonundaki boşlukları kaldırır. Trim( Selam ) Selam şeklinde çıkar Split: metin içinde ayırma işlemi yapar. Split( ) Metni boşluklarını diziye atar. oşluk

Detaylı

BLM-111 PROGRAMLAMA DİLLERİ I. Ders-2 Değişken Kavramı ve Temel Operatörler

BLM-111 PROGRAMLAMA DİLLERİ I. Ders-2 Değişken Kavramı ve Temel Operatörler BLM-111 PROGRAMLAMA DİLLERİ I Ders-2 Değişken Kavramı ve Temel Operatörler Yrd. Doç. Dr. Ümit ATİLA umitatila@karabuk.edu.tr http://web.karabuk.edu.tr/umitatilla/ Nesne Bellekte yer kaplayan ve içeriklerine

Detaylı

SAYILAR DOĞAL VE TAM SAYILAR

SAYILAR DOĞAL VE TAM SAYILAR 1 SAYILAR DOĞAL VE TAM SAYILAR RAKAM: Sayıları ifade etmek için kullandığımız 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 sembollerinden her birine rakam denir. Soru: a ve b farklı rakamlar olmak üzere a + b nin alabileceği

Detaylı

ALGORİTMA VE PROGRAMLAMA I

ALGORİTMA VE PROGRAMLAMA I ALGORİTMA VE PROGRAMLAMA I YZM 1101 Celal Bayar Üniversitesi Hasan Ferdi Turgutlu Teknoloji Fakültesi Genel Bakış 2 Giriş Fonksiyonlara Genel Bakış C ve Fonksiyonlar Fonksiyon Tanımı 8. BÖLÜM 3 Fonksiyonlar

Detaylı

Algoritma ve Programlamaya Giriş

Algoritma ve Programlamaya Giriş Algoritma ve Programlamaya Giriş Algoritma Bir sorunu çözebilmek için gerekli olan sıralı ve mantıksal adımların tümüne Algoritma denir. Doğal dil ile yazılabilir. Fazlaca formal değildir. Bir algoritmada

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ı

BLM-111 PROGRAMLAMA DİLLERİ I. Ders-12 Fonksiyonlar. Yrd. Doç. Dr. Ümit ATİLA

BLM-111 PROGRAMLAMA DİLLERİ I. Ders-12 Fonksiyonlar. Yrd. Doç. Dr. Ümit ATİLA BLM-111 PROGRAMLAMA DİLLERİ I Ders-12 Fonksiyonlar Yrd. Doç. Dr. Ümit ATİLA umitatila@karabuk.edu.tr http://web.karabuk.edu.tr/umitatilla/ Fonksiyonlar Fonksiyonlar C de modüller Programlar kullanıcı tanımlı

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 Giriş Fonksiyonlara Genel Bakış C

Detaylı

Sayılar Teorisi SAYILAR TEORİSİ VE SAYILAR

Sayılar Teorisi SAYILAR TEORİSİ VE SAYILAR Sayılar Teorisi SAYILAR TEORİSİ VE SAYILAR Sayılar; insanların ilk çağlardan beri ihtiyaç duyduğu bir gereksinim olmuştur; sayılar teorisi de matematiğin en eski alanlarından birisidir. Sayılar teorisi,

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ı

mikroc Dili ile Mikrodenetleyici Programlama Ders Notları

mikroc Dili ile Mikrodenetleyici Programlama Ders Notları 4. Operatörler İfade içerisindeki değişken ve diğer ifadelere uygulandığında yeni değerlerin elde edilmesini sağlayan ve kendilerine özel sembolik gösterimleri olan sözdizimleridir. mikroc derleyicisi

Detaylı

İÇERİK PROGRAMLAMAYA GİRİŞ ALGORİTMA AKIŞ DİYAGRAMLARI PROGRAMLAMA DİLLERİ JAVA DİLİNİN YAPISI JAVA DA KULLANILAN VERİ TİPLERİ JAVA DA PROGRAM YAZMA

İÇERİK PROGRAMLAMAYA GİRİŞ ALGORİTMA AKIŞ DİYAGRAMLARI PROGRAMLAMA DİLLERİ JAVA DİLİNİN YAPISI JAVA DA KULLANILAN VERİ TİPLERİ JAVA DA PROGRAM YAZMA İÇERİK PROGRAMLAMAYA GİRİŞ ALGORİTMA AKIŞ DİYAGRAMLARI PROGRAMLAMA DİLLERİ JAVA DİLİNİN YAPISI JAVA DA KULLANILAN VERİ TİPLERİ JAVA DA PROGRAM YAZMA BÖLÜM-II ALGORİTMA I. GİRİŞ Bilgisayar dünyasında, insanın

Detaylı

BBS515 Nesneye Yönelik Programlama. Ders 2 Zümra Kavafoğlu https://zumrakavafoglu.github.io/

BBS515 Nesneye Yönelik Programlama. Ders 2 Zümra Kavafoğlu https://zumrakavafoglu.github.io/ BBS515 Nesneye Yönelik Programlama Ders 2 Zümra Kavafoğlu https://zumrakavafoglu.github.io/ print metodu System.out.print imleci aynı satırda tutar, System.out.println imleci bir alt satıra indirir Tamsayı

Detaylı

EBG101 PROGRAMLAMA TEMELLERİ VE ALGORİTMA

EBG101 PROGRAMLAMA TEMELLERİ VE ALGORİTMA 6. HAFTA EBG101 PROGRAMLAMA TEMELLERİ VE ALGORİTMA Öğr. Gör. S. M. Fatih APAYDIN apaydin@beun.edu.tr EMYO Bülent Ecevit Üniversitesi Kdz. Ereğli Meslek Yüksekokulu ALGORİTMA ÖRNEK1: İki sayının toplamı

Detaylı

Mantıksal İşlemler. 7.1 true, false, nil

Mantıksal İşlemler. 7.1 true, false, nil 7 Mantıksal İşlemler 7.1 true, false, nil Doğru ya da Yanlış değer alan önermelere (ifadelere) mantıksal (logic) deyimler ya da boolean deyimler denilir ([5]). Bir çok dilde mantıksal işlemler true ve

Detaylı

Yrd. Doç. Dr. Caner ÖZCAN

Yrd. Doç. Dr. Caner ÖZCAN Yrd. Doç. Dr. Caner ÖZCAN Diziler ile Pointer Arası İlişki Bir dizi adı sabit bir pointer gibi düşünülebilir. Diziler ile pointer lar yakından ilişkilidir. Pointer lar değişkenleri gösterdikleri gibi,

Detaylı

Internet Programming II. Elbistan Meslek Yüksek Okulu Bahar Yarıyılı

Internet Programming II. Elbistan Meslek Yüksek Okulu Bahar Yarıyılı Internet Programming II Elbistan Meslek Yüksek Okulu 2015 2016 Bahar Yarıyılı Öğr.Gör. Murat KEÇECĠOĞLU 8 Mar. 2016 PHP de Değişken Tipleri Dizi (Array) Aynı değişken içerisinde birden fazla değer tutmak

Detaylı

Şimdi sayı sistemlerinin bilgisayarla hesaplamadaki rollerinin ne olduklarına ayrıntılı bir göz atalım.

Şimdi sayı sistemlerinin bilgisayarla hesaplamadaki rollerinin ne olduklarına ayrıntılı bir göz atalım. 237 BÖLÜM 8 Sayı Sistemleri Bölümün İçindekileri Bu bölümde sayıların farklı sayı sistemleri tarafından nasıl temsil edildikleri üzerinde çalışacağız. Sayıların ondalık, ikili ve onaltılık sayı sistemleri

Detaylı

BİLİŞİM TEKNOLOJİLERİ 6. SINIF DERS NOTLARI 2

BİLİŞİM TEKNOLOJİLERİ 6. SINIF DERS NOTLARI 2 PROGRAMLAMA Bir problemin çözümü için belirli kurallar ve adımlar çerçevesinde bilgisayar ortamında hazırlanan komutlar dizisine programlama denir. Programlama Dili: Bir programın yazılabilmesi için kendine

Detaylı

Kodlanacak programlama dilinin kaynaklarından faydalanılarak kod yazımı yapılır.

Kodlanacak programlama dilinin kaynaklarından faydalanılarak kod yazımı yapılır. GİRİŞ Algoritması tasarlanmış (metin olarak yazılmış, sözde kodlarla kodlanmış veya akış diyagramı çizilmiş) bir problemi/işlemi, bilgisayar programlama dillerinden birisiyle kodlamak son derece kolaydır.

Detaylı

Sayı sistemleri-hesaplamalar. Sakarya Üniversitesi

Sayı sistemleri-hesaplamalar. Sakarya Üniversitesi Sayı sistemleri-hesaplamalar Sakarya Üniversitesi Sayı Sistemleri - Hesaplamalar Tüm sayı sistemlerinde sayılarda işaret kullanılabilir. Yani pozitif ve negatif sayılarla hesaplama yapılabilir. Bu gerçek

Detaylı

Günümüz bilgi toplumunda bilgisayar, her alanda kendine yer edinmiş ve insana, bir çok işlemde yardımcı olarak büyük kolaylık sağlamaktadır.

Günümüz bilgi toplumunda bilgisayar, her alanda kendine yer edinmiş ve insana, bir çok işlemde yardımcı olarak büyük kolaylık sağlamaktadır. I. GİRİŞ Günümüz bilgi toplumunda bilgisayar, her alanda kendine yer edinmiş ve insana, bir çok işlemde yardımcı olarak büyük kolaylık sağlamaktadır. İnsanların elle yaptığı ve yapmakta olduğu bir çok

Detaylı

PROGRAMLAMAYA GİRİŞ. Öğr. Gör. Ayhan KOÇ. Kaynak: Algoritma Geliştirme ve Programlamaya Giriş, Dr. Fahri VATANSEVER, Seçkin Yay.

PROGRAMLAMAYA GİRİŞ. Öğr. Gör. Ayhan KOÇ. Kaynak: Algoritma Geliştirme ve Programlamaya Giriş, Dr. Fahri VATANSEVER, Seçkin Yay. PROGRAMLAMAYA GİRİŞ Öğr. Gör. Ayhan KOÇ Kaynak: Algoritma Geliştirme ve Programlamaya Giriş, Dr. Fahri VATANSEVER, Seçkin Yay., 2007 Algoritma ve Programlamaya Giriş, Ebubekir YAŞAR, Murathan Yay., 2011

Detaylı

Bir işaretli büyüklük sayısında en soldaki basamak bir işaret içerir. Diğer basamaklarda ise sayısal değerin büyüklüğü (mutlak değeri) gösterilir.

Bir işaretli büyüklük sayısında en soldaki basamak bir işaret içerir. Diğer basamaklarda ise sayısal değerin büyüklüğü (mutlak değeri) gösterilir. İşaretli Tamsayı Gösterimi 1. İşaretli Büyüklük Bir işaretli büyüklük sayısında en soldaki basamak bir işaret içerir. Diğer basamaklarda ise sayısal değerin büyüklüğü (mutlak değeri) gösterilir. Örnek

Detaylı

Genel Programlama II

Genel Programlama II Genel Programlama II 15.02.2011 1 Genel Programlama Tekrar Program : Belirli bir problemi çözmek için bir bilgisayar dili kullanılarak yazılmış deyimler dizisi. Önceki bölümde bir problemin çözümü ile

Detaylı

Kodlanacak programlama dilinin kaynaklarından faydalanılarak kod yazımı yapılır.

Kodlanacak programlama dilinin kaynaklarından faydalanılarak kod yazımı yapılır. GİRİŞ Algoritması tasarlanmış (metin olarak yazılmış, sözde kodlarla kodlanmış veya akış diyagramı çizilmiş) bir problemi/işlemi, bilgisayar programlama dillerinden birisiyle kodlamak son derece kolaydır.

Detaylı

İçerik. Java da İşleçler, İşleçler. Aritmetik İşleçler - 1. Aritmetik İşleçler - 2. Geçen ders: Bu ders: BS-515 Nesneye Yönelik Programlama

İçerik. Java da İşleçler, İşleçler. Aritmetik İşleçler - 1. Aritmetik İşleçler - 2. Geçen ders: Bu ders: BS-515 Nesneye Yönelik Programlama İçerik Java da İşleçler, Kontrol Akış ve Döngü Deyimleri Geçen ders: Nesne ve Sınıf Kavramları Nesne ve Sınıf ın Java da gerçekleştirilmesi Bu ders: Java da işleçler ( operators ) Java da kontrol-akış

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ı

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ı

Donatılar-Hesap Makinesi

Donatılar-Hesap Makinesi Donatılar-Hesap Makinesi Hesap Makinesi Hesap Makinesi ni toplama, çıkarma, çarpma ve bölme işlemleri gibi basit hesaplamalar için kullanabilirsiniz. Hesap Makinesi ayrıca programlama, bilimsel ve istatistiksel

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ı

Sınav tarihi : Süre : 60 dak. a) ABCDE b) BCDE c) ABCD d) kod hatalı e) BCD

Sınav tarihi : Süre : 60 dak. a) ABCDE b) BCDE c) ABCD d) kod hatalı e) BCD Selçuk Üniversitesi, Mühendislik Fakültesi, Harita Mühendisliği Bölümü Yıliçi Sınavı Test Soruları Adı soyadı : Öğrenci no : Sınav tarihi : 13.04.2015 Süre : 60 dak. 1. Hangisi gerçek sayı değişmezi değildir?

Detaylı

Öğr. Gör. Musa AYDIN Fatih Sultan Mehmet Vakıf Üniversitesi

Öğr. Gör. Musa AYDIN Fatih Sultan Mehmet Vakıf Üniversitesi Öğr. Gör. Musa AYDIN Fatih Sultan Mehmet Vakıf Üniversitesi İÇİNDEKİLER Değişken Nedir? Değişken kullanımı faydaları. Değişken türleri Değişken görünürlüğü (scope) Değişken türleri arası dönüşümler Örnek

Detaylı

DİZİLER-KATARLAR ALGORİTMA VE PROGRAMLAMA II

DİZİLER-KATARLAR ALGORİTMA VE PROGRAMLAMA II DİZİLER-KATARLAR ALGORİTMA VE PROGRAMLAMA II DİZİLER Dizi, aynı tipteki verilere tek bir isimle erişmek için kullanılan bir kümedir. Bir dizi bildirildikten sonra, dizinin bütün elemanları bellekte peşpeşe

Detaylı

EXCEL FORMÜLLER, FONKSİYONLAR

EXCEL FORMÜLLER, FONKSİYONLAR EXCEL FORMÜLLER, FONKSİYONLAR Hesaplama Operatörleri Excel de kullanılan hesaplama operatörleri, (+), (-), (*) ve (/) dir. Bu operatörler kullanılarak Excel uygulamanızda dört işlem yapabilirsiniz. Excel

Detaylı

Java da İşleçler, Ders #3 (4 Kasım 2009)

Java da İşleçler, Ders #3 (4 Kasım 2009) Java da İşleçler, Kontrol Akış ve Döngü Deyimleri BS-515 Nesneye Yönelik Programlama Ders #3 (4 Kasım 2009) İçerikç Geçen ders: Nesne ve Sınıf Kavramları Nesne ve Sınıf ın Java da gerçekleştirilmesi Bu

Detaylı

mustafacosar@hitit.edu.tr http://web.hitit.edu.tr/mustafacosar

mustafacosar@hitit.edu.tr http://web.hitit.edu.tr/mustafacosar Algoritma ve Programlamaya Giriş mustafacosar@hitit.edu.tr http://web.hitit.edu.tr/mustafacosar İçerik Algoritma Akış Diyagramları Programlamada İşlemler o o o Matematiksel Karşılaştırma Mantıksal Programlama

Detaylı

PROGRAMLAMAYA GİRİŞ VE ALGORİTMA «YTÜROK» EĞİTMEN:REHA ÖZGÜR ŞİMŞEK

PROGRAMLAMAYA GİRİŞ VE ALGORİTMA «YTÜROK» EĞİTMEN:REHA ÖZGÜR ŞİMŞEK PROGRAMLAMAYA GİRİŞ VE ALGORİTMA «YTÜROK» EĞİTMEN:REHA ÖZGÜR ŞİMŞEK Giriş-Tanımlamalar Program Nedir? Tanımlanmış bir problemi bilgisayar ortamında çözen ürüne program denir. Programlama Nedir? Tanımlanmış

Detaylı

C Programlama. C Programlama. Alper Bayrak Abant İzzet Baysal Üniversitesi Bolu

C Programlama. C Programlama. Alper Bayrak Abant İzzet Baysal Üniversitesi Bolu C Programlama Alper Bayrak Abant İzzet Baysal Üniversitesi Bolu 2014 Sunuma Genel Bakış Sunuma Genel Bakış I 1 Gösterge Değişkenleri ve İşlemleri & ve * İşleçleri Gösterge Değişkenleri Bildirimleri Gösterge

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ı

Pointers (İşaretçiler)

Pointers (İşaretçiler) Pointers (İşaretçiler) Pointers (İşaretçiler) Verilerin bilgisayar hafızasında tutulduğu fiziki alan adres olarak tanımlanabilir. Adres, hem donanımla hem de yazılımla ile ilişkilidir. Donanımsal açıdan

Detaylı