You are on page 1of 47

T.C.

MLL ETM BAKANLII

BLM TEKNOLOJLER

BAST KODLAR
482BK0122

Ankara, 2011

Bu modl, mesleki ve teknik eitim okul/kurumlarnda uygulanan ereve retim Programlarnda yer alan yeterlikleri kazandrmaya ynelik olarak rencilere rehberlik etmek amacyla hazrlanm bireysel renme materyalidir. Mill Eitim Bakanlnca cretsiz olarak verilmitir. PARA LE SATILMAZ.

NDEKLER
AIKLAMALAR ....................................................................................................................ii GR ....................................................................................................................................... 1 RENME FAALYET1 .................................................................................................... 2 1. DEKENLER VE SABTLER ........................................................................................ 2 1.1. Deikenler ................................................................................................................... 2 1.2. Deikenleri simlendirme Kurallar............................................................................. 4 1.3. Veri tipleri..................................................................................................................... 4 1.4. Sabitler .......................................................................................................................... 6 1.5. Atama lemi ................................................................................................................. 7 1.6. k lemleri............................................................................................................. 10 1.6.1. Bir metin ifadesini ekrana yazdrma.................................................................... 10 1.6.2. lk deer atanan deiken deerini ekrana yazdrma ........................................... 12 1.6.3. Formatl k ilemleri ........................................................................................ 16 1.7. Giri lemleri ............................................................................................................. 18 1.7.1. Klavyeden deikene deer atama....................................................................... 18 1.8. Giri-k ilemleri hata mesajlar ............................................................................. 21 1.9. Aklama Satrlar ....................................................................................................... 25 UYGULAMA FAALYET .............................................................................................. 26 LME VE DEERLENDRME .................................................................................... 27 RENME FAALYET2 .................................................................................................. 29 2. OPERATRLER ............................................................................................................... 29 2.1. Aritmetiksel Operatrler ............................................................................................. 29 2.1.1. Drt lem ............................................................................................................ 29 2.1.2. Mod Alma............................................................................................................ 32 2.2. likisel Operatrler..................................................................................................... 34 2.3. Mantksal Operatrler ................................................................................................. 36 2.4. lem ncelii ............................................................................................................. 37 UYGULAMA FAALYET .............................................................................................. 38 LME VE DEERLENDRME .................................................................................... 39 MODL DEERLENDRME .............................................................................................. 40 CEVAP ANAHTARLARI ..................................................................................................... 42 KAYNAKA ......................................................................................................................... 43

AIKLAMALAR AIKLAMALAR
KOD ALAN DAL/MESLEK MODLN ADI MODLN TANIMI SRE N KOUL YETERLK Basit kodlar yazmak Genel Ama Bu modl ile gerekli ortam salandnda temel programlamada basit kodlar yazabileceksiniz. MODLN AMACI Amalar 1. Deiken ve sabit kullanabileceksiniz. 2. Operatrleri kullanabileceksiniz. Ortam: Bilgisayar laboratuvar ETM RETM ORTAMLARI VE DONANIMLARI Donanm: Kt, kalem, ak diyagramlar ile ilgili panolar, bilgisayar, lisansl programlama yazlm Modl iinde yer alan her renme faaliyetinden sonra verilen lme aralar ile kendinizi deerlendireceksiniz. retmen modl sonunda lme arac (oktan semeli test, doru-yanl vb.) kullanarak modl uygulamalar ile kazandnz bilgi ve becerileri lerek sizi deerlendirecektir. 482BK0122 Biliim Teknolojileri Alan Ortak Basit Kodlar Bir programla dilinde kullanlan basit kodlara ait bilgilerin verildii renme materyalidir. 40/32

LME VE DEERLENDRME

ii

GR GR
Sevgili renci,

Okul yaantnzda reneceiniz her konu, yaptnz her uygulama ve tamamladnz her modl bilgi daarcnz gelitirecek ve ileride atlacanz i yaantnzda size baar olarak geri dnecektir. Eitim srecinde daha zverili alr ve alma disiplinini kazanrsanz; baarl olmamanz iin hibir neden yoktur. Gnmzde Windows tabanl grsel programlama dillerinin hzla gelimekte olduu ve kullanmnn olduka yaygnlat grlmektedir. Bu programlama dilleri ile sizler programlama mantn ve becerisini ok daha kolay kavrayacaksnz. Bu modlle, bir programlama dilinde kullanlabilecek basit kodlar ve uygulamalarn reneceksiniz. Bu modlde anlatlan konularn tmn rendiinizde, bir programlama dilinde kullanlan deiken ve sabit kavramlar, tanmlanma ve program iinde kullanm ekillerini reneceksiniz. Ayn zamanda program iinde tanmladmz deiken ve sabitler zerinde ilemler yapabilmek iin operatrlerin kullanmlarn kavram olacaksnz.

RENME FAALYET1 RENME FAALYET1


AMA
Bu renme faaliyetinde bir programlama diline uygun deiken ve sabitleri kullanabileceksiniz.

ARATIRMA
evrenizde deiken olarak nitelendirebileceiniz durumlar listeleyiniz. Bir gn iinde kullandnz nesneleri trlerine gre gruplandrnz.

1. DEKENLER VE SABTLER
1.1. Deikenler
Deikenler bir programlama dilinde verilerin depolanma alanlarn temsil eder. Tanmlanan her deikene bellek blgesinden bir alan ayrlr. Bu bellek blgesine okuma ve yazma ilemleri ise deiken ismi zerinden salanr. Genel olarak deikenler aadaki elikde tanmlanr. <veri tipi><deiken ad>; rnein; int i; Yukardaki rnekte bir int(say) veri tipinde bir deiken tanmlanmtr. Bylelikle bellek blgesinde bir veri saklamak ve ileride kullanmak zere 4 bytelk bir alan am bulunuyoruz. Program iinde bu bellek blgesine erimek iin deiken ismi olan i ifadesini kullanyoruz. rnein; int i; //i adnda bellekte 4 bytelk bir blge a.; i = 5; //i adnn temsil ettii bellek blgesine 5 deerini yaz.; Bir deikene deer atama ilemi tanmlarken yaplabilir. Bir deikene deer atama ilemi yukardaki rnekte olduu gibi program iinde herhangi bir satrda yaplabilir. Bir veri tipi altnda birden fazla isimle farkl deikenler tanmlanabilir.

rnek 1.1-1:
bool dogrumu = false; double yuzde = 98.32, ortalama = 35.32; char karakter = 'A';

Baz programlama dillerinde yerel bir deiken tanmlyorsak bu deikeni kullanmadan nce bir deer atamas yapmak zorundayz.
static void Main(string[] args) { int sayi; //sayi = 5; Console.WriteLine(sayi); Console.ReadKey(); }

Yukardaki kod blokunda sayi deikenine deer atamadnz iin hata verecektir (Use of unassigned local variable 'sayi'). nk sayi deikeni yerel bir deikendir. Eer //sayi = 5; aklama satrndaki // iaretlerini siler ve bu satr koda dhil ederseniz hatann ortadan kalktn grrsnz. Tanmlanan yerel deikenler sadece tanmlandklar bloktan eriebilir. Yaam dngleri sadece o blok olduu iin baka bir bloktan eriilemez. rnek 1.1-2:
namespace megepBilisim { class Program { static void Main(string[] args) { { //Birinci blok int a = 10; } {//kinci blok int a = 20; } Console.WriteLine(a); // a deikeni bu blokta tanmlanmad iin program hata verecektir. } } }

Yukardaki rnekte birinci ve ikinci blokta tanmlanan "a" isimli deikenler sadece kendi bloklarnda geerlidir. Main blounda kullanlmaya alld zaman program hata verecektir.

1.2. Deikenleri simlendirme Kurallar


Deikenlerin isimleri alfabede bulunan karakterlerle veya _(alt izgi) ile balamaldr. Ama ilk harf hari dier karakterler say olabilir. Baz programlama dilleri byk ve kk harf duyarldr. Yani Sayi, sayi ve SAYI hepsi ayr deiken olarak algnalr. Deiken isimleri birden fazla kelime olduu zaman; kelimelerin arasna boluk konmaz. Bu tr deikenleri ya kelimeleri birletirerek veya kelimeler arasna _(alt izgi) karakteri koyararak isimlendiririz. Deikenlerin isimleri !, ?, {, ] gibi karakterler ieremez. Programlama dili iin tanmlanm anahtar kelimelerini de deiken isimleri olarak kullanamayz.

Standart yazm ekilleri: Camel notasyonunda isim kk harfle balar, eer deiken isminde birden fazla kelime geiyor ise isimdeki dier kelimeler byk harfle balar.
Camel Notasyonu: maas; maasMiktari; massMiktariAciklama;

Pascal Notasyonunda kelime byk harfle balar. Camel Notasyonunda da olduu gibi dier kelimelerde byk harfle balar.
Pascal Notasyonu: Maas(); MaasHesapla();

Bu notasyonlarn kullanm mecburi deildir. Fakat srekli olarak bu tr bir notasyona uyarak kodlarnz yazarsanz, kodlarnz daha anlalr bir hle girer.

1.3. Veri Tipleri


.Net de iki eit veri tipi vardr:

Deer tipleri (value type) Referans tipleri(reference type)

Deikenler bellekte bulunan verilerdir. Bir deikeni kullandmz zaman o deikenin bellekte bulunduu yerdeki bilgiyi kullanrz. Deer tipleri bellein stack blgesinde saklanr ve veriyi direkt olarak bellek blgesinden alrken referans tipleri bellekte heap alannda saklanr. Yani referans tipleri iinde veri deil bellekteki heap alannn adres bilgisini tutarlar.

int, double, float gibi veri tipleri deer tiplerine rnek gsterilebilir. Herhangi bir snf tr ise referans tipine rnek gsterilebilir. Deer tipleri birbirine eitlenirken deikenin barndrd deer bir dier deikene kopyalanr. Bylece iki farkl bamsz deiken oluur. Referans tipleri ise eitleme srasnda deikenlerin tadklar veri deil heap blgesinde iaret ettikleri adres kopyalanr. Bylece eer iki referans deikeni birbirine eitledi isek ve daha sonra bunlardan birinde bulunan veriyi deitirdi ise otomatik olarak dier referans deikeninin deeri de deiir. nk adresde bulunan veri deiince bu adresi iaret eden iki deikende yeni veri bilgisine ular. Toplam 15 veri tipi vardr bunlardan 13 deer tipindedir, 2si ise referans tipindedir. Deer tipleri Ad sbyte short int long byte ushort uint ulong float double decimal bool char CTS Karl System.Byte System.Int16 System.Int32 System.Int64 System.Byte System.UInt16 System.UInt32 System.UInt64 System.Single Sytem.Double System.Decimal System.Boolean System.Char Karakterleri temsil eder Aklama 8 bit iaretli tam say 16 bit iaretli tam say 32 bit iaretli tam say 64 bit iaretli tam say 8 bit iaretsiz tam say 16 bit iaretsiz tam say 32 bit iaretsiz tam say 64 bit iaretsiz tam say 32 bit tek kayan say Max ve Min aralk yada deeri -128 : 127 -32.768 : 32.767 -2.147.483.648 : 2.147.483.647 -9.223.372.036.854.775.808 : 9.223.372.036.854.775.807 0,177083333 0 : 65.535 0 : 4.294.967.295 0 : 18.446.744.073.709.551.615 +yada - 1,5*10-45 : + ya da - 3,4*1038

64 bit ift kayan say +yada - 5*10-324 : + ya da - 1,7*10308 128 bit ondalkl say +yada - 1,5*10-28 : + ya da - 7,9*1028 true ya da false 16 Unicode karakterleri

Tablo 1.1: Deer tip listesi

Referans tipleri Ad object string CTS Karl System.Object System.String Aklama Btn veri trlerinin tredii kk eleman Unicode karakterlerinden oluan string
Tablo 1.2: Referans tip listesi

1.4. Sabitler
Program boyunca sabit kalacak veriler iin kullanlan tanmlamalardr. Bir sabit tanmlamak iin const anahtar kelimesini kullanrz. Sabitler tanmlanrken ilk deer atamas yaplmak zorundadr. Program boyunca sabit deeri deitirelemez.

Kullanm: const <veri tipi><deiken ad>=deer; rnek 1.4-1:


const double PI = 3.14; const double PI;

Yukardaki tanmlanan sabitlerden birincisi doru ikincisi ise yanl bir tanmlamadr. nk sabitler tanmlanrken ilk deer atamas yaplmak zorundadr. Sabit kullanm hata mesajlar : The left-hand side of an assignment must be a variable, property or indexer: Tanmlanan sabit deikenin deeri deitirilmeye ald zaman oluaacak hata mesajdr. Bu yzden sabit deiken tanmlanrken atanan deer program boyunca sabit kalmaldr.

rnek 1.4-2:
const double pi = 3.14159265; pi = 2 * pi; //Burada pi deerini deitirdiiniz iin hata mesaj alrsnz.

A const field requires a value to be provided: Tanmlanan sabit deikene ilk deer atamas yaplmadysa oluan hata mesajdr. Dolaysyla sabit deiken tanmlanrken ilk deer atamas yaplmaldr.

rnek 1.4-3:
const int pi; // Burada pi sabitine deer atanmad iin hata mesaj alrsnz.

1.5. Atama lemi


= operatr: Genel atama ilemlerinde kullanlr. Eitliin sandaki deer eitliin solundaki deikene atanr. rnek 1.5-1: int x, y=5; // 5 deerini y deikenine atamak iin = operatr kullanlmtr. x = y + 2; // y deiken deeri ile 2 says toplanarak x deikenine atamak iin = operatr kullanlmtr. += operatr: Eitliin sandaki deerle eitliin solundaki deiken deerini toplayp tekrar eitliin solundaki deikene atar. rnek 1.5-2: int x=0, y=0, z=0; x += 5;//x'e 5 ekle ve x'e eitle 2.yol x = x + 5 eklinde de yazlabilir. y += 7;//y'ye 7 ekle ve y'ye eitle 2.yol y = y + 7 eklinde de yazlabilir. z += x;//z'ye x'i ekle ve z'ye eitle 2.yol z = z + x eklinde de yazlabilir. lem sonucu: x=5, y=7, z=5 olur. Not: Bir bir artrma ilemi iin x+=1 (veya x=x+1) yerine x++ ilemi kullanlabilir. rnek 1.5-3: int x=0, y=0,toplam; x++;//x'i bir artr y++;//y'yi bir artr toplam = x + y;//x ve y'yi toplayarak toplam deikenine ata. lem sonucu: x=1, y=1, toplam=2 olur. ++ deikenden sonra kullanlrsa nce atama ilemi yaplr sonra artrma yaplr.

rnek 1.5-4: int x=0, y=0,toplam; x=y++; toplam = x + y; nce x yye eitlenir, daha sonra y artrlr. lem sonucu: x=0, y=1, toplam=1 olur. ++ deikenden nce kullanlrsa nce artrm yaplr daha sonra atama ilemi yaplr.

rnek 1.5-5: int x=0, y=0,toplam; x=++y; toplam = x + y; nce y artrlr daha sonra x yye eitlenir. lem sonucu: x=1, y=1, toplam=2 olur. -= operatr: Eitliin sandaki deeri eitliin solundaki deiken deerinden eksilterek tekrar eitliin solundaki deikene atar. rnek 1.5-6: int x=50, y=50, z=100; x -= 5;//x'den 5'i kar ve x'e eitle 2.yol x = x - 5 eklinde de yazlabilir. y -= 7;//y'den 7 yi kar ve y'ye eitle 2.yol y = y - 7 eklinde de yazlabilir. z -= x;//z'den x'i kar ve z'ye eitle 2.yol z = z - x eklinde de yazlabilir. lem sonucu: x=45 , y=43 , z=55 olur. Not: Bir bir azaltma ilemi iin x-=1 (veya x=x-1) yerine x-- ilemi kullanlabilir. rnek 1.5-7: int x=20, y=10,fark; x--;//x'i bir azalt y--;//y'yi bir azalt fark = x - y;//x ve y'yi kararak fark deikenine ata. lem sonucu: x=19 , y=9 , fark=10 olur.

-- deikenden sonra kullanlrsa nce atama ilemi yaplr, sonra azaltma yaplr.

rnek 1.5-8: int x=10, y=10,fark; x=y--; fark = x - y; nce x yye eitlenir, daha sonra y azalttrlr. lem sonucu: x=10, y=9 , fark=1 olur. -- deikenden nce kullanlrsa nce azaltma yaplr daha sonra atama ilemi yaplr.

rnek 1.5-9: int x = 10, y = 10, fark; x = --y; fark = x - y; nce y artrlr daha sonra x yye eitlenir. lem sonucu : x=9 , y=9 , fark=0 olur. *= operatr: Eitliin sandaki deerle eitliin solundaki deiken deeri arplp tekrar eitliin solundaki deikene atar. rnek 1.5-10: int x = 2, y = 3, z = 2; x *= 2;//x ile 2'i arp ve x'e eitle 2.yol x = x * 2 eklinde de yazlabilir. y *= 2;//y ile 2 yi arp ve y'ye eitle 2.yol y = y * 2 eklinde de yazlabilir. z *= x;//z ile x'i arp ve z'ye eitle 2.yol z = z * x eklinde de yazlabilir. lem sonucu: x=4 , y=6 , z=8 olur. /= operatr: Eitliin solundaki deiken deerini eitliin sandaki deere blerek tekrar eitliin solundaki deikene atar. rnek 1.5-11: int x = 4, y = 10, z = 64; x /= 2;//x'i 2'ye bl ve x'e eitle 2.yol x = x / 2 eklinde de yazlabilir. y /= 2;//y'yi 2'ye bl ve y'ye eitle 2.yol y = y / 2 eklinde de yazlabilir. z /= x;//z'yi x'e bl ve z'ye eitle 2.yol z = z / x eklinde de yazlabilir. lem sonucu: x=2, y=5, z=32 olur.

1.6. k lemleri
1.6.1. Bir Metin fadesini Ekrana Yazdrma
Bir metin ifadesini ekrana yazdrmak iin iki metot kullanlr: 1. Metot Console.Write(): Yazdrma ileminden sonra imle yazdrlan ifadenin yannda bekler. rnek 1.6-1:
static void Main(string[] args) { Console.Write("Merhaba Dnya"); Console.ReadKey();// Klavyeden bir tua baslana kadar bekle. }

kts:

Resim 1.1: rnek 1.6-1 ekran kts

Dikkat ederseniz imle yaznn sonunda beklemektedir. Bir baka metin yazdrmaya altmz zaman imlecin bulunduu yerden devam eder. rnek 1.6-2:
static void Main(string[] args) { Console.Write("Merhaba Dnya"); Console.Write("Gnaydn"); } Console.ReadKey();

kts:

Resim 1.2: rnek 1.6-2 ekran kts

10

2. Metot Console.WriteLine():Yazdrma ileminden sonra imle yazdrlan ifadenin alt satrnda bekler. rnek 1.6-3:
static void Main(string[] args) { Console.WriteLine("Merhaba Dnya"); Console.ReadKey(); }

kts:

Resim1.3: rnek 1.6-3 ekran kts

rnek 1.6-4:
static void Main(string[] args) { Console.WriteLine("Merhaba Dnya"); Console.WriteLine("Gnaydn"); Console.ReadKey(); }

kts:

Resim 1.4: rnek 1.6-4 ekran kts

Program altrdmzda ikinci metin bir alt satra yazlmtr. k parametreleri: \n: Bir alt satra gemek iin kullanlr. \r: Paragraf ba yapmak iin kullanlr. rnek 1.6-5:
static void Main(string[] args) { Console.WriteLine("\n\nMerhaba Dnya"); Console.ReadKey(); }

11

kts:

Resim 1.5: rnek 1.6-5 ekran kts

Ekran ktsna baktmzda 2 tane \n kullandmz iin yazmz 2 satr aadan balamtr.

1.6.2. lk Deer Atanan Deiken Deerini Ekrana Yazdrma


Deiken tanmlamay daha nce grmtk. imdi deer atadmz deikeni ekrana yazdrma ilemlerini greceiz. Deikene ilk deeri tanmlarken veya tanmladktan sonra atayabiliriz. int x = 5; // ilk deeri tanmlanrken atadk. int y; y = 3;

// ilk dereri tanmlandktan sonra atadk.

Bu deikenleri ekrana nasl yazdrabileceimize bakalm. rnek 1.6-6:


static void Main(string[] args) { int x = 5; // ilk deeri tanmlanrken atadk. int y; y = 3; // ilk dereri tanmlandktan sonra atadk.

Console.WriteLine(x); Console.WriteLine(y); Console.ReadKey(); }

kts:

Resim 1.6: rnek 1.6-6 ekran kts

12

rnek 1.6-7:
static void Main(string[] args) { int x = 5; // ilk deeri tanmlanrken atadk. int y; y = 3; // ilk dereri tanmlandktan sonra atadk.

Console.WriteLine("x deikeninin deeri = {0}", x); // x'in deerini ssl parantez iinde belirtilen sfr (o) yazan yere yaz. Console.ReadKey(); }

kts:

Resim 1.7: rnek 1.6-7 ekran kts

{0} anlam: Virglden sonra tanmlanan ilk deiken deerini sfrn yerine yaznz. Eer ayn anda birden fazla deiken deeri ekrana yazdrlmak isteniyorsa {0},{1},{2} eklinde devam eder. Deikenler virglle ayrlarak tanmlanr. rnek 1.6-8:
static void Main(string[] args) { int x = 5; // ilk deeri tanmlanrken atadk. int y; y = 3; // ilk dereri tanmlandktan sonra atadk. y

Console.WriteLine("x deikeninin deeri = {0} deikeninin deeri ={1}", x, y); } Console.ReadKey();

kts:

Resim 1.8: rnek 1.6-8 ekran kts

Deiken deerlerini ekrana birlikte yazdrmann bir dier yoluda + iaretini kullanmaktr. + iareti ifadeleri birletirme ilemini gerekletirir.

13

rnek 1.6-9:
static void Main(string[] args) { int x = 5; // ilk deeri tanmlanrken atadk. int y; y = 3; // ilk dereri tanmlandktan sonra atadk.

Console.WriteLine("x deikeninin deeri = " + x); Console.ReadKey(); }

kts:

Resim 1.9: rnek 1.6-9 ekran kts

Grld zere ssl parantez ile yaplan rnekle art iareti kullanlarak yaplan rnein ktlar ayndr. rnek 1.6-10:
static void Main(string[] args) { int x = 5; // ilk deeri tanmlanrken atadk. int y; y = 3; // ilk dereri tanmlandktan sonra atadk.

Console.WriteLine("x deikeninin deeri = " + x + " y deikeninin deeri =" + y); } Console.ReadKey();

kts:

Resim 1.10: rnek 1.6-10 ekran kts

14

rnek 1.6-11:
static void Main(string[] args) { string ad = "Sleyman";//lk deer tanmlanrken atand. string soyad; soyad = "GRHAN"; //lk deeri tanmladktan sonra atadk. Console.WriteLine(ad + " " + soyad); Console.ReadKey(); }

Resim 1.11: rnek 1.6-11 ekran kts

rnek 1.6-12:
static void Main(string[] args) { int x = 5; // ilk deeri tanmlanrken atadk. int y; y = 3; // ilk dereri tanmlandktan sonra atadk.

Console.WriteLine("x + y toplam = " + x + y); } Console.ReadKey();

kts:

Resim 1.12: rnek 1.6-12 ekran kts

Yapmak istediimiz ilem aslnda x ve y deiken deerlerini toplayp ekrana yazdrmakt. Fakat + iaretinin buradaki grevi ifadeleri birletirmek olduundan x ve y deiken deerlerini yan yana yazarak yanl sonu retmitir. rnek 1.6-13:
static void Main(string[] args) { int x = 5; // ilk deeri tanmlanrken atadk. int y; y = 3; // ilk dereri tanmlandktan sonra atadk.

15

Console.WriteLine("x + y toplam = " + (x + y)); // x + y ilemini parantez iine alrsak + iareti toplama ilemini gerekletirecektir. Console.ReadKey(); }

kts:

Resim 1.13: rnek 1.6-13 ekran kts


Console.WriteLine("x + y toplam = " + (x + y)); satrnda x + y ilemini

parantez iine alnca doru sonu elde edilmitir. Kod satrmz Console.WriteLine("x + y toplam = {0}", x + y); eklinde de yazsaydk ayn sonucu elde ederdik.

1.6.3. Formatl k lemleri


Tam say tipinde tanmlanm deikenler zerinde uygulanabilecek format biimleri aadaki tablola belirtilmitir. Karakter C veya c D veya d sim Currency Decimal rnek Console.Write("{0:C}", 2500); Console.Write("{0:D5}", 25); Console.Write("{0:D10}", 25); E veya e F veya f Scientific Fixed-point Console.Write("{0:E}", 250000); Console.Write("{0:F0}", 25); Console.Write("{0:F2}", 25); Console.Write("{0:F5}", 25); N veya n X veya x Number Hexadecimal Console.Write("{0:N}", 2500000); Console.Write("{0:X}", 250); kt 2.500,00 TL 00025 0000000025 2,500000E+005 25 25,00 25,00000 2.500.000,00 FA

Tablo 1.3: Tam say tipindeki deikenlere uygulanacak format listesi

16

Formatl yazmda kullanlan parametrelerin aklamas: C: Sayy para birimi eklinde gsterir. D: Tek kullanldnda bir anlam ifade etmez. Yanna say yazlarak kullanlr. Format alnacak saynn basamak deeri yannda yazlan saydan kkse arta kalan deer kadar yanna sfr eklenir. E: Sayy 10 zeri eklinde gsterir. F: Saylarn virglden sonraki basamak says ayarlamada kullanlr. N: Sayy binlik basamaklara ayrarak yazar. X: Sayy hexdecimal(16' lk say sistemi) olarak yazar. # iareti: Formatl yazmda her bir say iin # iaretini kullanabiliriz. rnek 1.6-14:
static void Main(string[] args) { Console.Write("{0:(###) ### ## ##}", 2123552154); Console.ReadKey(); }

kts:

Resim 1.14: rnek 1.6-14 ekran kts

Tarih formatlama Karakter d D t T f F g G M r s sim Ksa Tarih Uzun Tarih Ksa Saat Uzun Saat Tam Tarih ve Saat Tam Tarih ve Uzun Saat Varsaylan Tarih ve Saat Varsaylan Tarih ve Uzun Saat Gn ve Ay RFC1123 Tarih Metni Sortable Tarih Metni 17 rnek(DateTime.Now) iin) 01.04.2005 01 nisan 2005 Cuma 20:24 20:24:27 01 Nisan 2005 Cuma 20:24 01 Nisan 2005 Cuma 20:24:27 01.04.2005 20:24 01.04.2005 20:24:27 01 Nisan Fri, 01 Apr 2005 20:24:27 GMT 2005-04-01 20:24:27

u U

Universal sortable, Yerel Zaman Universal sortable, GMT Ay ve Yl

2005-04-01 T20:24:27Z 01 Nisan 2005 Cuma 17:24:27 Nisan 2005

Tablo 1.4: Tarih tipindeki deikenlere uygulanacak format listesi

zel tarih formatlama


Karakter
dd ddd dddd hh HH mm MM MMM MMMM yy yyyy : /

smi
Gn Gn smi Tam Gn smi Saat Saat(24 Saat) Dakika 00-59 Ay 01-12 Ay smi Tam Ay smi Yl, Son ki Karakter Yl Ayrc Ayrc

rnek
Console.Write("{0:dd}", DateTime.Now); Console.Write("{0:ddd}", DateTime.Now); Console.Write("{0:dddd}", DateTime.Now); Console.Write("{0:hh}", DateTime.Now); Console.Write("{0:HH}", DateTime.Now); Console.Write("{0:mm}", DateTime.Now); Console.Write("{0:MM}", DateTime.Now); Console.Write("{0:MMM}", DateTime.Now); Console.Write("{0:MMMM}", DateTime.Now); Console.Write("{0:yy}", DateTime.Now); Console.Write("{0:yyyy}", DateTime.Now); Console.Write("{0:hh:mm:ss}", DateTime.Now); Console.Write("{0:dd/MM/yyyy}", DateTime.Now);

rnek kts
01 Cum Cuma 08 20 53 04 Nis Nisan 05 2005 08:53:56 01/04/2005

Tablo 1.5: zel tarih format listesi

1.7. Giri lemleri


1.7.1. Klavyeden Deikene Deer Atama
Console.Read(): Console snfnn Read() metodu kullancnn klavyeden giri yapmasn salar tek karakter okur ve geriye tam say tipinde bir deer dndrr. Bu deer okunan karakterin ascii kod karldr. rnek 1.7-1:
static void Main(string[] args) { int x; Console.Write("Bir karakter giriniz: "); x = Console.Read(); Console.WriteLine("ASCII kod karl : {0}", x);

18

Console.ReadKey(); }

kts:

Resim 1.15: rnek 1.7-1 ekran kts

Read() metoduyla klavyeden istediiniz kadar deer okutabiliriz, ama geriye sadece ilk karakterin ascii kod karln dndrecektir. Burda dikkat etmemiz gereken bir baka nokta ise Read() metodu geriye tam say bir deer dndrd iin atamay tam say tipinde bir deikene yapmalyz. Aksi hlde hata mesaj alrz ( Cannot implicitly convert type 'int' to 'string') . Console.ReadLine(): Console snfnn ReadLine() metodu kullancnn klavyeden bir deer girmesini salar ve bu deeri metin(string) bir ifade olarak geri dndrr. rnek 1.7-2:
static void Main(string[] args) { string x; Console.Write("Adnz giriniz: "); x = Console.ReadLine(); Console.WriteLine("Merhaba {0} ", x); Console.ReadKey(); }

kts:

Resim 1.16: rnek 1.7-2 ekran kts

ReadLine() metodu ile geri dndrlen deer metin(string) tipindedir. Dolaysyla okunan deeri metin(string) tipinde bir deikene atamalyz. Eer ki matematiksel bir ilem yaplacaksa deeri saysal ifadeye evirmemiz gerekmetedir. Bu ilem iin Convert snf veya veri trlerinin Parse zelliinden faydalnr.

19

rnek 1.7-3:
static void Main(string[] args) { string x, y; Console.Write("1. Sayy Giriniz: "); x = Console.ReadLine(); Console.Write("2. Sayy Giriniz: "); y = Console.ReadLine(); Console.WriteLine("{0} + {1} = {2} ", x, y, (x+y)); Console.ReadKey(); }

kts:

Resim 1.17: rnek 1.7-3 ekran kts

Grld zere string ifadeler zerinde matematiksel ilemler yapamyoruz. Matematiksel ilem yapacaksak deikenimizin tipini saysal ifadeye evirmeliyiz. rnek 1.7-4:
static void Main(string[] args) { string x, y; Console.Write("1. Sayy Giriniz: "); x = Console.ReadLine(); Console.Write("2. Sayy Giriniz: "); y = Console.ReadLine(); Console.WriteLine("{0} + {1} = {2} ", x, y, (Convert.ToInt16(x)+ Convert.ToInt16(y))); Console.ReadKey(); }

kts:

Resim 1.18: rnek 1.7-4 ekran kts


(Convert.ToInt16(x) ve Convert.ToInt16(y) eklinde tip dnm yaplarak string tipindeki deiken deerlerimizi tam say tipine dntryoruz. Bylelikle zerinde matematiksel ilemler yapabiliyoruz.

20

1.8. Giri-k lemleri Hata Mesajlar


Hazrlayacamz programn en nemli zelliklerinden biri de stabil almas olmaldr. Stabil almas programmzn hatalara kar ne kadar hazrlkl ve kullancya verdii geri dntle e deerdir. Programmzn almas srasnda oluabilecek hatalar genellikle kullanc girilerinden kaynaklanr. Bu yzden kullanc girilerini kontol altna alarak alma zamannda oluabilecek hatalar en aza indirmek ise biz programclarn grevidir. nce hatalar olutuunda programn nasl sonlandn grelim daha sonra bunun iin bir zm arayalm. rnek 1.8-1:
static void Main(string[] args) { int x; Console.Write("Bir Sayy Giriniz: "); x = Convert.ToInt16(Console.ReadLine()); } Console.ReadKey();

Programmz altralm ve say yerine string bir ifade girelim.

Resim 1.19: rnek 1.8-1 ekran kts

Programda istenilen say yerine string bir ifade girdiimiz zaman ekran kts aadaki gibi olacaktr. String ifade int tipine evrilmede zorlanlacandan program duracaktr. Giri dizesinin doru olmadna dair bir hata verecektir (Input string was not in a corrent format.) .

Resim 1.20: Giri dizesi doru biimde deil hata mesaj

21

rnek 1.8-2:
static void Main(string[] args) { int x, y; Console.Write("1. Sayy Giriniz: "); x = Convert.ToInt16(Console.ReadLine()); Console.Write("2. Sayy Giriniz: "); y = Convert.ToInt16(Console.ReadLine()); Console.WriteLine("{0} / {1} = {2}", x, y, x / y); Console.ReadKey(); }

Programmz altralm ve aadaki gibi deerleri girelim.

Resim 1.21: rnek 1.8-2 ekran kts

Girilen saylardan biri sfr olduu zaman programmz sfra blme hatasyla karlaacandan dolay duracaktr (Attempted to divide by zero) .

Resim 1.22: Sfra blem hata mesaj

Yukardaki kodlarda da grld gibi program esnasnda kullanclar tarafndan yaplan hatal giriler programn hatayla karlamasna ve durmasna sebep olmaktadr. Biz bu hatalar program iinde nasl yakalarz ve kullancya hata hakknda nasl mesaj veririz buna bakalm. .Net programclkta biz bu tr hatalara istisnalar(Exception) diyoruz. stisnalar, programmzn alma zamannda yani program alrken ortaya kan olaan d durumlardr. .NET ortamnda her ey gibi istisnalar da snflar kullanlarak oluturulmakta ve tm istisnalar temel System.Exception nesnesinden tretilmektedir. 22

stisnalar program esnasnda yakalamak ve kullancya hata mesajn vermek iin try{} catch{} finally{} bloklarn kullanyoruz. try{} bloku: stisnann kmas muhtemel kodlarn yazld bloktur. catch{} bloku: Oluan istisnann yakaland ve kullancya sunulduu bloktur. finally{} bloku: Try bloku iinde hata olsa da olmasa da almasn istediimiz kadolarn yazld bloktur. Finally blou genellikle baz kaynaklar serbest brakmak iin kullanlr. Kullanlmas istee bal bir bloktur. En sk kullanld yerler ak olan veri taban balantlarnn program krlsa da krlmasa da kapatlmas durumlardr. rnek 1.8-3:
static void Main(string[] args) { int x, y; Console.Write("1. Sayy Giriniz: "); x = Convert.ToInt16(Console.ReadLine()); Console.Write("2. Sayy Giriniz: "); y = Convert.ToInt16(Console.ReadLine()); try { Console.WriteLine("{0} / {1} = {2}", x, y, x / y); } catch (Exception e) { Console.WriteLine("Hata Olutu : {0}", e); } finally { Console.WriteLine("yi Gnler"); } Console.ReadKey(); }

Programmz altrp aadaki gibi deerleri girdiimiz zaman herhangi bir hatayla karlalmadndan istediimiz sonucu retecektir.

Resim 1.23: rnek 1.8-3 ekran kts

Fakat prgorammza aadaki deerleri girdiimiz zaman hatayla karlalacak ve programmz olduu yerde durup catch{} blokuna atlayacak ve buradan almaya devam edecektir.

23

Resim 1.24: rnek 1.8-3 ekran kts

Dikkat ederseniz her iki durumda da finally bloku iine yazdmz kodlar altrlmaktadr. rnek 1.8-4:
static void Main(string[] args) { byte x ; try { Console.Write("0-255 Arasnda Bir Sayy Giriniz: "); x = Convert.ToByte(Console.ReadLine()); Console.WriteLine("Doru Deer Girdiniz"); } catch (Exception e) { Console.WriteLine("Yanl Deer Girdiniz"); Console.WriteLine("Hata Olutu : {0}", e); } finally { Console.WriteLine("yi Gnler"); } Console.ReadKey(); }

24

Resim 1.25: rnek 1.8-4 ekran kts

Eer bizden istenildii gibi 0-255 aras bir deer girersek programmz herhengi bir hatayla karlamayaca iin try bloku iindeki tm kodlar icra edilip finally blouna atlar ve almasna ordan devam eder. Yukardaki ekran ktsnda grld gibi

Resim 1.26: rnek 1.8-4 ekran kts

Fakat istenilen deer dnda bir deer girdiimiz zaman program hatayla karlaacandan hatann olutuu satrda program durdurulur ve catch blokuna atlanr ve almasna ordan devam eder. Yukardaki ekran ktsnda grld zere hata x = Convert.ToByte(Console.ReadLine()); satrnda olutuundan bir sonraki satr icra edilmeden catch blokuna atlanm ve program buradan devam etmitir.

1.9. Aklama Satrlar


Aklama satrlar programcya kod iinde tanmlama metinleri yazma imkn salar. Bu sayede kod paracklarnn ne i yaptklar anlatlm olur. Kodlarmz arasna aklama satrlar eklemek olduka nemlidir. Az satrl program kodlarnda birey ifade etmeyebilir fakat byk programlarda kod bloklarnn ne ie yaradklar yazlarak programcnn ileride karlaaca problemleri kolay zmesinde yardmc olacaktr. Ayrca aklama satrlar program derlenirken dosya ierisine alnmadndan oluan dosyann boyutunu ya da almasn etkilememektedir.
static void Main(string[] args) { //Bu Satr ekrana Merhaba Dnya Yazar. Console.Write("Merhaba Dnya"); }

// karakterlerinden sonra gelen ve satrn sonuna kadar olan szckler yorum satrlardr ve programlama dili derleyicisi tarafndan grnmez. Ayn zamanda birden fazla satra yorum eklemek istiyorsak /* */ karakterleri arasna yorum yazarz.
static void Main(string[] args) { /* Bu Satr ekrana Merhaba Dnya Yazar. Bu Ksm derleyici tarafndan yok saylr. */ Console.Write("Merhaba Dnya"); }

25

UYGULAMA FAALYET UYGULAMA FAALYET


Aadaki uygulamalar yapnz.
lem Basamaklar Bir okul programnda kullanlabilecek deikenleri maddeler hlinde yaznz. Tanmladnz her deikene bir tip belirleyiniz. Tanmladmz her deikene bir deer ataynz. Tanmladmz deikenlerden sabit olarak ayrabileceklerimizi seiniz. neriler Deiken isimlendirme kurallarna dikkat ediniz. He deikenin bir tipi olmas gerektiini unutmaynz. Tanmlanan her yerel deikenin bir deeri olmas gerektiini unutmaynz. Sabitlerin deeri tanmlandklarnda atanr ve program boyunca deitirilemez.

26

LME VE DEERLENDRME LME VE DEERLENDRME


Aadaki sorular dikkatlice okuyunuz ve doru seenei iaretleyiniz.

1.

Aadaki deiken isimlerinden hangisi hataldr? A) C) ogrenciNo ogrenci_soyad B) OgrenciAd D) ogrenci sinif

2.

Aadakilerden hangisi veri tiplerinden deildir? A) string B) slong C) int D) byte

3.

8 bit iaretsiz tam say tipi aadakilerden hangisidir? A) byte B) int C) long D) short

4.

Program boyunca sabit kalacak veriyi hangi kelime ile tanmlarz? A) float B) double C) bool D) const

5.

Aadaki kullanmlardan hangisi ile nce arttrma ilemi yaplp daha sonra atama ilemi yaplr? A) ++a B) a++ C) +a D) a+

6.

Aadaki yazmlardan hangisinin ekran kts eklindedir.


A) B) C) D)
Console.WriteLine("X deeri = Console.WriteLine("X deeri = Console.WriteLine("X deeri = Console.Write("X deeri = {0} x y deeri=y"); {0} y deeri={1}" + 2 + 4); {0} y deeri={1}", 2, 4); y deeri={1}", 2, 4);

7.

Hangi tarih formatn kullanrsak ekran kts Nisan eklinde olur?


A) B) C) D)
Console.Write("{0:MMM}", DateTime.Now); Console.Write("{0:MMMM}", DateTime.Now); Console.Write("{0:yy}", DateTime.Now); Console.Write("{0:dddd}", DateTime.Now);

27

Aada verilen cmlelerde bo braklan yerlere doru szckleri yaznz.

8.

Bir metin ifadesini ekrana yazdrmak iin ......................... veya ....................... metodunu kullanrz. Metni bir alt satrdan balayarak yazdrmak iin .. parametresini kullanrz. Muhtemel istisna olumasn dndmz kodlar ........................... bloklar arasna alrz.

9. 10.

DEERLENDRME Cevaplarnz cevap anahtaryla karlatrnz. Yanl cevap verdiiniz ya da cevap verirken tereddt ettiiniz sorularla ilgili konular faaliyete geri dnerek tekrarlaynz. Cevaplarnzn tm doru ise bir sonraki renme faaliyetine geiniz.

28

RENME FAALYET2 RENME FAALYET2


AMA
Bu renme faaliyetinde operatrleri kullanabileceksiniz.

ARATIRMA
Matematik dersinde kullanlan ilem ncelii kurallarn liste hlinde hazrlaynz. ncelikle kendinize bir hedef belirleyiniz. Bu hedefe ulamak iin gerekli olan tm artlar sralaynz. Hangi atlar gerekletirdiinizde hedefinize ulaabileceinizi iaretleyiniz.

2. OPERATRLER
Programlama dillerinde tanmlanm sabit ve deikenler zerinde ilemler yapmamz salayan karakter ya da karakter topluluklarna operatr denir. rnein; int sayi = 2 + 3; Yukardaki rnekte + ve = karakterleri birer operatrdr. + karakteri 2 ve 3 sabitlerini toplama yapyor ve = karakeri ise toplanan deeri tanmlanan deikene atama ilemini gerekletiriyor.

2.1. Aritmetiksel Operatrler


Aritmetik ilemler yaparken kullandmz operatrlerdir.

2.1.1. Drt lem Operatr + * / Aklama Toplama lemi karma lemi arpma lemi Blme lemi

Tablo 2.1: Drt ilem operatr listesi

29

rnek 2.1-1:
using System; namespace Operatorler { class DortIslem { static void Main(string[] args) { int x = 10; int y = 5; Console.WriteLine("x + y = {0}", x + y); Console.WriteLine("x - y = {0}", x - y); Console.WriteLine("x * y = {0}", x * y); Console.WriteLine("x / y = {0}", x / y); } } } Console.ReadKey();

kts:

Resim 2.1: rnek 2.1-1 ekran kts

rnek 2.1-2:
using System; namespace Operatorler { class DortIslem { static void Main(string[] args) { int x = 10; int y = 4; int intSonuc = x / y; float floatSonuc = x / y; double doubleSonuc = x / y; Console.WriteLine("x / y = {0}", intSonuc); Console.WriteLine("x / y = {0}", floatSonuc); Console.WriteLine("x / y = {0}", doubleSonuc); Console.ReadKey(); } } }

30

kts:

Resim 2.2: rnek 2.1-2 ekran kts

Aslnda sonu 2.5 olmas gerekirken 2 olarak kt. Bunun sebebi ise x ve y deikenleri int yani tam say tipinde tanmlandklarndan kan sonucun da kesirli ksm atlp tam say ksm alnmaktadr. rnek 2.1-3:
using System; namespace Operatorler { class DortIslem { static void Main(string[] args) { int x = 10; int y = 4; int sonuc; float floatSonuc; sonuc = x / y; Console.WriteLine("x / y = {0}", sonuc); floatSonuc = (float)x / y; Console.WriteLine("x / y = {0}", floatSonuc); floatSonuc = x / (float)y; Console.WriteLine("x / y = {0}", floatSonuc); floatSonuc = (float)x / (float)y; Console.WriteLine("x / y = {0}", floatSonuc); floatSonuc = (float)(x / y); Console.WriteLine("x / y = {0}", floatSonuc); } } } Console.ReadKey();

31

kts:

Resim 2.3: rnek 2.1-3 ekran kts

Birinci kt: sonuc = x / y = 10/4 bir tam say blme ilemi olduundan blmn tam say ksm alnmtr. kinci kt: floatSonuc = (float)x / y = (float)10 / 4 deyiminde, nce 10 says float tipine dntrlyor, sonra 4 saysna blnyor. Bir float tipin bir tam sayya blm yine float tipindendir. Dolaysyla, (float)10 / 4 = 2.5tir. nc kt: Bu kt ikinci ktnn simetriidir. floatSonuc = x / (float)y = 10 / (float)4 deyiminde, nce 4 says float tipine dntrlyor, sonra 10 tam says 4.0 saysna blnyor. Bir tam say tipin bir float tipine blm yine float tipindendir. Dolaysyla, 10 / (float)4 = 2.5tir. Drdnc kt: kinci ve nc ktnn birleimidir. floatSonuc = (float)x / (float)y = (float)10 / (float)4 deyiminde, nce 10 ve 4 saylarnn her ikisi de float tipine dontrlr. Sonra iki float tipin birbirine blm yaplr. Bu ilemin sonucu, doal olarak bir float tipidir. Dolaysyla, (float)10 / (float)4 = 2.5tir. Beinci kt: floatSonuc = (float)(x / y) = (float)(10/4) deyiminde, nce (10 / 4 ) blme ilemi yaplr. Bu bir tam say blme ilemi oldugu iin birinci ktda oldugu gibi kan sonu 2 dir. (float) 2 = 2.0000000 olduundan kt 2dir.

2.1.2. Mod Alma


Bir saynn baka bir sayya blmnden kalan sonucu alma ilemine mod alma denir. Bu ilemi yapmak iin % karakteri kullanlr. rnek 2.1-4:
using System; namespace Operatorler { class ModAlma { static void Main(string[] args) { double x = 10; double y = 4; double sonuc = x % y; Console.WriteLine("x % y = {0}", sonuc);

32

} } }

Console.ReadKey();

kts : x%y=2 rnek 2.1-5:


using System; namespace Operatorler { class ModAlma { static void Main(string[] args) { int x, y; Console.Write("1. Deeri Giriniz :"); x = Convert.ToInt16(Console.ReadLine()); Console.Write("2. Deeri Giriniz :"); y = Convert.ToInt16(Console.ReadLine()); Console.WriteLine("{0} % {1} = {2}", x, y, x % y); Console.ReadKey(); } } }

kts :

Resim 2.4: rnek 2.1-5 ekran kts

33

2.2. likisel Operatrler


likisel operatler iki deerin karlatrlmas ilemi iin kullanlr. Programmzda koul ifadelerinde kullanlarak programn akn deitirmemizi salar. Karlatrma sonucunda doru(true) ve yanl(false) olmak zere boolen bir deer dndrr. rnein, gnlk hayattan bir rnek verelim.

ema 2.1: ki deerin karlatrlmas Hava yamurlu mu sorusu bizim iin bir art ve bu art iinde havann durumunu yamurla karlatryoruz. Bu soruya darda yamur yayorsa evet(true) yamyorsa hayr(false) eklinde boolen bir cevap veriyoruz. Dolaysyla verdiimiz cevaba gre de programmzn ak yn deitirmektedir. Operatr == != > < >= <= Aklama Eittir Eit Deildir Byktr Kktr Byk Eittir Kk Eittir

Tablo 2.2: likisel operatr listesi

== Operatr: Ayn trdeki iki deerin birbirine eitliinin kontol iin kullanlan operatrdr.
int x = 10; int y = 4; string str1 = "megep"; string str2 = "megep"; x == y // false str1 == str2 // true 3 == 3 // true 3 == "3" // hatal kullanm. int tipi ile string tipi karlatrlamaz.

34

!= Operatr: Ayn trdeki iki deerin birbirine eit olmadnn(eit deil) kontol iin kullanlan operatrdr.
int x = 10; int y = 4; string str1 = "megep"; string str2 = "megep"; x != y // true str1 != str2 // false 3 != 3 // false 1 != 3 // true

> Operatr: Bir deerin ayn trdeki baka bir deerden byklnn kontrolnn yapld operatrdr. Bu operatr string ilemlere uygulanmaz.
int x = 10; int y = 4; x > y // true y > x // false 3 > 3 // false 5 > 3 // true

< Operatr: Bir deerin ayn trdeki baka bir deerden kklnn kontrolnn yapld operatrdr. Bu operatr string ilemlere uygulanmaz.
int x = 10; int y = 4; x < y // false y < x // true 3 < 3 // false 1 < 3 // true

>= Operatr: Bir deerin ayn trdeki baka bir deerden byk veya eitlii kontrolnn yapld operatrdr. Bu operatr string ilemlere uygulanmaz.
int x = 10; int y = 4; x >= y // true y >= x // false 3 >= 3 // true

<= Operatr: Bir deerin ayn trdeki baka bir deerden kk veya eitlii kontrolnn yapld operatrdr. Bu operatr string ilemlere uygulanmaz. 35

int x = 10; int y = 4; x <= y // false y <= x // true 3 <= 3 // true

2.3. Mantksal Operatrler


Mantksal operatrler birden fazla artn olduu durumlarda kullanlr. Birden ok boolen deeri tek bir boolen deere indirmek iin kullanlr. Operatr && || ! Aklama Ve Veya Deil

Tablo 2.3: Mantksal operatr listesi

&& Operatr: Ve anlamndadr. Sorgulanan tm artlar doru(true) olduu zaman doru(true), artlardan birinin yanl(false) olmas durumunda yanl(false) deerini dndrr.
int x = 10, y = 4; string str1 = "megep"; x == y && "megep" = str1 // 1. art = false, 2. art = true -> sonu = false x == 10 && y == 4 && true == true // 1. art = true, 2. art = true, 3. art = true -> sonu = true

|| Operatr: Veya anlamndadr. Sorgulanan artlardan birinin doru(true) olmas durumunda doru(true), artlarn hepsinin yanl(false) olmas durumunda yanl(false) deerini dndrr.
int x = 10, y = 4; string str1 = "megep"; x == y || "megep" = str1 // 1. art = false, 2. art = true -> sonu = true x == 4 || y == 10 || "megep" = str1 // 1. art = false, 2. art = false, 3. art = true -> sonu = true x == 4 || y == 10 || true == false // 1. art = false, 2. art = false, 3. art = false -> sonu = false

36

! Operatr: Deil anlamndadr. ! iareti deeri tersine evirir. (!true) // sonu = false (!false) // sonu = true

2.4. lem ncelii


lem ncelik sras aadaki tabloda en yksekten en de doru sralanmtr. En Yksek () ! *, /, % +, <, > = =, != && || En Dk
Tablo 2.4: lem ncelii listesi

Yaplan ilemde yukardaki sra tamamlandktan sonra eer ayn tr ilemler kaldysa ilem soldan saa doru yaplr. rnek 2.4-1: 3+5*2 ileminin sonucu nedir? Yukardaki ilemde nce 3 ile 5i toplar ve sonucu 2 ile arparsanz sonu yanl kar. lem nceliine gre nce 2 ile 5i arpp kan sonula 3 topladmz zaman sonu doru kar. 3+5*2 = 8*2 = 16 // yanl cevap 3+5*2 = 3 + 10 = 13 // doru cevap rnek 2.4-2: 10/5*2 ileminin sonucu nedir? Yukardaki ilemde nce 5 ile 2yi arpar ve 10u kan sonuca blerseniz yanl cevap kar. Blme ve arpmann ilem ncelii e deer olduu iin ilem soldan saa doru ileyecektir. 10/5*2 = 10 / 10 = 1 // yanl cevap 10/5*2 = 2 * 2 = 4 // doru cevap rnek 2.4-3: (5+2)*4-6/2 ileminin sonucu nedir? (5+2)*4-6/2 = 7*4-6/2 = 28-6/2 = 28-3 = 25 // doru cevap

37

UYGULAMA FAALYET UYGULAMA FAALYET


Aadaki ilemleri uygulaynz.
lem Basamaklar Tanmlanan deikenlere saysal hesaplamalar yaparak deer aktarnz. Elde edilen deeri ekranda gsteriniz. Karmak matematiksel formllerde gerekli yerlere parantez ekleyerek ilem nceliklerini belirleyiniz. Metin birletirme operatr ile birden fazla metin deeri birletiriniz. neriler nce basit matematiksel ilemleri deneyebilirsiniz, yanz hesaplamak gibi Sadece sonucu gstermek anlaml olmaz. Mesela: "Yam: 16" gibi yazdrnz. Deneyeceiniz formlleri hesap makinesi ve hesap tablosu programlar ile deneyip sonucu karlatrnz. Gvenilir sonular elde etmeye alnz.

38

LME VE DEERLENDRME LME VE DEERLENDRME


Aadaki sorular dikkatlice okuyunuz ve doru seenei iaretleyiniz.

1.

Mod alma ilemini aadaki karakterlerden hangisi gerekletirir. A) > B) ! C) % D) &

2.

Aadakilerden hangisi iliikisel operatrler arasnda yer almaz. A) || B) <= C) != D) >

3.

Ve mantksal operatr aadakilerden hangisidir. A) != B) == C) & D) &&

4.

(5+3)*4-6/2*3-(2*3) ileminin sonucu aadakilerden hangisidir. A) 33 B) 17 C) 25 D) 19

Aada verilen cmlelerde bo braklan yerlere doru szc yaznz.

5. 6. 7.

4 > 2 ilemi .......... sonucunu retir. Koul ifadelerinin karlatrlmasnda kullanlan operatrlere ................. denir. ... operatr deil anlamndadr. Deeri tersine evirir.

DEERLENDRME Cevaplarnz cevap anahtaryla karlatrnz. Yanl cevap verdiiniz ya da cevap verirken tereddt ettiiniz sorularla ilgili konular faaliyete geri dnerek tekrarlaynz. Cevaplarnzn tm doru ise Modl Deerlendirmeye geiniz.

39

MODL DEERLENDRME
MODL DEERLENDRME Aadaki soruyu dikkatlice okuyunuz ve doru seenei iaretleyiniz. 1. Aadaki yerel deiken tanmlamalarndan hangisi doru yaplmtr?

A) int16 sayi B) metin ad C) byte yas D) float 12 Aadaki cmlelerin banda bo braklan parantezlere, cmlelerde verilen bilgiler doru ise D, yanl ise Y yaznz. 2. 3. ( ( )Tanmlanan bir deikene, ancak tanmland blok iinde ulalabilir. )ogrNo ile OgrNO ayn hafza blgesini temsil eder.

4. ( )Birden fazla artn olduu durumlarda aritmetiksel operatrler kullanlr. Aadaki sorular dikkatlice okuyunuz ve doru seenei iaretleyiniz. 5. Aadakilerden hangisi referans tipler arasnda yer alr? A) string 6. B) float C) double D) bool

Aadaki atama operatrlerinden hangisi doru kullanlmtr? A) a= = 5 B) a+C) a++= 2 D) a+= 3

7.

Aadaki yazmlardan hangisi dorudur? A) B) C) D) Console.WriteLine("Boyunuz : {0} Kilonuz : {1}", boy, kilo); Console.WriteLine("Boyunuz : boy Kilonuz : kilo"); Console.WriteLine("Boyunuz : [0] Kilonuz : [1]", boy, kilo); Console.WriteLine("Boyunuz : {0} Kilonuz : {1} " + boy + kilo);

8.

Console.Write("{0:C}", 3000); komutunun ekran kts aadakilerden hangisidir? A) 3.000 TL B) 3000 TL C) 3.000,00 TL D) 0003 TL

9.

10 % 3 ileminin sonucu katr? A) 4 B) 1 C) 3 D) 2

10.

(8/2*4)+4-10*2 ileminin sonucu katr? A) 0 B) -15 C) -4 D) 15

DEERLENDRME

40

Cevaplarnz cevap anahtaryla karlatrnz. Yanl cevap verdiiniz ya da cevap verirken tereddt ettiiniz sorularla ilgili konular faaliyete geri dnerek tekrarlaynz. Cevaplarnzn tm doru ise bir sonraki modle gemek iin retmeninize bavurunuz.

41

CEVAP ANAHTARLARI CEVAP ANAHTARLARI


RENME FAALYET 1 CEVAP ANAHTARI 1 2 3 4 5 6 7 8 9 10

D B A D A C B Console.Write() Console.WriteLine() \n Try ..Catch

RENME FAALYET 2CEVAP ANAHTARI 1 2 3 4 5 6 7

C A D B true likisel !

MODL DEERLENDRME CEVAP ANAHTARI 1 2 3 4 5 6 7 8 9 10 C DORU YANLI YANLI A D A C B A

42

KAYNAKA KAYNAKA
http://www.ecma-international.org/ http://www.gorselprogramlama.com/ (15.03.2011- 12:00) http://www.yazilimmutfagi.com/ (15.03.2011- 12:00) http://www.csharpnedir.com/ (15.03.2011- 12:00) http://www.programmersheaven.com/ (15.03.2011- 12:00) http://tr.wikipedia.org/wiki/Ana_Sayfa

43