You are on page 1of 79

T.C.

MLL ETM BAKANLII

BLM TEKNOLOJLER

METOTLAR
482BK0121

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 ...................................................................................................................iii GR ....................................................................................................................................... 1 RENME FAALYET1 .................................................................................................... 2 1. METOTLAR ........................................................................................................................ 2 1.1. Metot Kavram .............................................................................................................. 2 1.2. Metot Tanmlama.......................................................................................................... 3 1.3. Metotlarda Parametre Kullanm................................................................................... 5 1.4. Metotlarla ilgili nemli zellikler ............................................................................... 9 1.5. zyineli (Rekrsif-Recursive) Metotlar ..................................................................... 14 1.6. Main( ) Metodu ........................................................................................................... 15 UYGULAMA FAALYET .............................................................................................. 20 LME VE DEERLENDRME .................................................................................... 21 RENME FAALYET2 .................................................................................................. 22 2. HAZIR METOTLAR ......................................................................................................... 22 2.1. Metinsel (String) Metotlar ......................................................................................... 22 2.1.1. Compare( )........................................................................................................... 23 2.1.2. Concat( ) .............................................................................................................. 25 2.1.3. Copy( )................................................................................................................. 26 1.2.4. Format( ) .............................................................................................................. 26 2.1.5. IsNullOrEmpty( )................................................................................................. 32 2.1.6. CompareTo ( ) ..................................................................................................... 33 2.1.7. Contains( ) ........................................................................................................... 34 2.1.8. CopyTo( ) ............................................................................................................ 35 2.1.9. EndsWith( ).......................................................................................................... 37 2.1.10. IndexOf( ) .......................................................................................................... 38 2.1.11. Insert(int baslangic,string value ) ...................................................................... 40 2.1.12. LastIndexOf( ) ................................................................................................... 41 2.1.13. PadLeft ( ).......................................................................................................... 43 2.1.14. PadRight ( )........................................................................................................ 44 2.1.15. Remove ( ) ......................................................................................................... 46 2.1.16. Replace ( ).......................................................................................................... 47 2.1.17. Split ( ) ............................................................................................................... 49 2.1.18. StartsWith ( ) ..................................................................................................... 49 2.1.19. Substring ( ) ....................................................................................................... 50 2.1.20. ToLower ( )........................................................................................................ 51 2.1.21. ToUpper ( ) ........................................................................................................ 52 2.2. Matematiksel (Math) Metotlar................................................................................... 52 2.2.1. Abs( ) ................................................................................................................... 52 2.2.2. BigMul( ) ............................................................................................................. 53 2.2.3. Ceiling( ).............................................................................................................. 53 2.2.4. DivRem( ) ............................................................................................................ 54 2.2.5. Max( ) .................................................................................................................. 54 2.2.6. Min( )................................................................................................................... 55 2.2.7. Pow( ) .................................................................................................................. 56 2.2.8. Round( )............................................................................................................... 56

2.2.9. Sign( ) .................................................................................................................. 57 2.2.10. Sqrt( )................................................................................................................. 57 2.2.11. Cos( ) ................................................................................................................. 59 2.2.12. Sin( ) .................................................................................................................. 59 2.2.13. Tan( ) ................................................................................................................. 60 2.2.14. Acos( ) ............................................................................................................... 61 2.2.15. Asin( ) ................................................................................................................ 61 2.2.16. Atan( )................................................................................................................ 61 2.3. Tarih/Saat (DateTime) Metotlar ................................................................................ 61 2.3.1. MinValue ............................................................................................................. 61 2.3.2. MaxValue ............................................................................................................ 62 2.3.3. Today ................................................................................................................... 62 2.3.4. Now ..................................................................................................................... 63 2.3.5. DateTime.Compare( ) .......................................................................................... 65 2.3.6. DateTime.DaysInMonth( ) .................................................................................. 65 2.3.7. DateTime.IsLeapYear( ) ...................................................................................... 66 2.3.8. DateTime.Parse( ) ................................................................................................ 66 2.3.9. Subtract( ) ............................................................................................................ 67 2.3.10. AddDays( ) ........................................................................................................ 68 2.3.11. AddMonths( ) .................................................................................................... 68 2.3.12. AddYears( ) ....................................................................................................... 68 2.3.13. AddHours( )....................................................................................................... 68 2.3.14. AddMinutes( ).................................................................................................... 69 2.3.15. AddSeconds( ) ................................................................................................... 69 2.3.16. AddMilliseconds( ) ............................................................................................ 69 UYGULAMA FAALYET .............................................................................................. 70 LME VE DEERLENDRME .................................................................................... 71 MODL DEERLENDRME .............................................................................................. 72 CEVAP ANAHTARLARI ..................................................................................................... 73 KAYNAKA ......................................................................................................................... 74

ii

AIKLAMALAR AIKLAMALAR
KOD ALAN DAL/MESLEK MODLN ADI MODLN TANIMI SRE N KOUL YETERLK 482BK0121 Biliim Teknolojileri Alan Ortak Metotlar Bu modl temel programlama ilemlerinde metotlar yazabilmenin renildii bir renme materyalidir. 40/32 Bu modln n koulu yoktur. Metotlarla almak Genel Ama Bu modl ile gerekli ortam salandnda; temel programlama ilemlerinde metotlar yazabileceksiniz. Amalar 1. Metotlar kullanabileceksiniz. 2. Hazr metotlar kullanabileceksiniz. Ortam: Bilgisayar laboratuar Donanm: Bilgisayar, 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 testi, boluk doldurma vb.) kullanarak modl uygulamalar ile kazandnz bilgi ve becerileri lerek sizi deerlendirecektir.

MODLN AMACI

ETM RETM ORTAMLARI VE DONANIMLARI

LME VE DEERLENDRME

iii

GR GR
Sevgili renci, Programlama Temelleri dersinin bu modlnde sizler, programlamann bir dier temel yap ta olan Metotlar reneceksiniz. Bilgisayar programclna giden bu yolda, nemli bir adm da bu modl renerek atacaksnz. Program yazarken belli bir ii yapan kod blounu bir ka kez kullanmak gerekebilir. Bunun iin ayn kod blounu tekrar yazmak yerine bunu bir metot olarak hazrlarz ve ihtiya duyduumuz yerde metodu ismi ile ararak altrabiliriz. Bu bize daha az kod yazma imkn salayp zaman kazandrd gibi, olas deiikliklerde de daha az hata yapmamz salar. Bu modlde birok programlama dilinin temel kavramlarndan olan metotlar detaylar ile inceleyeceiz. Metotlarn tanmlar ve kullanm, parametrelerin zellikleri rneklerle ilenecektir.

RENME FAALYET1 RENME FAALYET1


AMA
Bu modl ile gerekli ortam salandnda; temel programlama ilemlerinde metotlar yazabilecek ve bunlar programlarnzda kullanabileceksiniz.

ARATIRMA
Bu faaliyet ncesinde hazrlk amal aada belirtilen aratrma faaliyetlerini yapmalsnz. eitli programlama dillerindeki alt programlar kavramlarn aratrnz. Fonksiyonlarn alma mant hakknda n bilgi edininiz. Parametre, geri dn deeri nedir? Aratrnz.

1. METOTLAR
Programlarn hazrlanmas esnasnda, ayn ilemi gerekletiren program paralarna programn birok yerinde ihtiya duyulabilir. Bu ihtiyalar, metotlar yazlarak giderilir. Eer metotlar kullanlmazsa; programda ayn kodu defalarca yazmamz gerekebilir ve program kodlarnn okunmas zorlar. Ayn zamanda kaynak kodun gereksiz uzamasna sebep olur. Bunun iin programn birok yerinde ihtiya duyulan ve ayn ilemleri yapan program paralar metotlar olarak hazrlanrlar.

1.1. Metot Kavram


Programlarn herhangi bir yerinde kullanlmak iin belirli bir ii yerine getirmek amacyla tasarlanm alt programlara metot denilir. Metotlar belirli bir ii yapmas iin gelitirilirler. Bir sefere mahsus yazlan bu kod paralar programn ak ierisinde defalarca arlarak kullanlabilirler. Metotlarn amac; programn yapsal olmasn salamak ve birbiriyle ilgili komutlar veya programn bir blmn istenen isim altnda toplamaktr. Bu ekilde programn okunmas kolaylamakta ve yapsal bir grnm kazanmaktadr. Bir metot, bir veya daha fazla ifade ierebilir. yi yazlm bir programda, her metot yalnzca tek bir grev yrtr. Metotlar tek bana alabilen yaplar deillerdir. Ancak ana program ierisinden arlarak altrlrlar.

1.2. Metot Tanmlama


Her metodun bir ismi vardr ve program ierisinde metot arlrken bu isim kullanlr. Bir metodun i yapabilmesi iin kendi aran metottan ald bilgilere parametre, kendisini aran fonksiyona dndrd deere de metot geri dn deeri (return value) denir. Metotlar genellikle u ekilde tanmlanrlar;

Tanmlanmas:
eriim dn-tipi isim(parametre-listesi) { // metodun gvdesi; }

Eriim: Bu metoda, programn dier blmlerinin nasl eriebileceini belirleyen bir eriim niteleyicisidir. Bunun kullanm istee baldr. Eer herhangi bir eriim belirteci kullanlmazsa varsaylan olarak snfa zel (private) olarak belirlenir. Private olarak kullanldnda yalnzca metodun yazld snf ierisinden arlabilmesini ngrr. Eer programn ierisinde bulunan dier kodlar ierisinden de bu metot arlabilsin isteniyorsa, eriim belirteci public olarak belirtilmelidir. Nesne ynelimli programlama dillerinde metotlar, tanmlandklar snf ad ile birlikte arlrken eer metot, programn ana metodu ( Main() ) ierisinden arlacaksa static olarak tanmlanr ve snf adn yazmaya gerek kalmadan arlr. Dn-tipi: Bu metodun altrldktan sonra programda arld noktaya dndrd verinin tipini belirlediimiz ksmdr. Eer metot bir deer dndrmeyecekse dn-tipi void olarak belirtilmelidir. sim: Metodunun isminin belirtildii ksmdr. Metodumuza isim verirken yapaca i ile alakal bir isim vermek hem metodun ne ie yaradyla ilgili bize bilgi verecektir, hem de bizden baka ayn program kodlayacak kimselere yol gsterecektir. Metoda isim verirken ayn deiken isimleri tanmlarken kullandmz kurallar yine gz nnde bulundurmalyz. Geri dn tiplerinin veya parametre-listesinin farkl olmas durumunda ayn isme sahip birden fazla metot olabilir. Parametre-Listesi: Virgl ( , ) ile ayrlm tip ve tanmlayc iftlerden oluan bir listedir. Parametreler, metot arldnda, metodun kullanmas iin gnderilen bilgilerdir. Eer metot hi parametre kullanmayacaksa parametre listesi de bo olur. rneklerle metot tanmlamalarn inceleyelim; rnek 0-1: Geri dn deeri ve parametre-listesi bo olan, ekrana Merhaba Dnya yazdran metodu tanmlayp program ierisinde kullanmna bir rnek veriniz.

static void MerhabaDunyaYazdir() { Console.WriteLine("Merhaba Dnya"); } static void Main(string[] args) { MerhabaDunyaYazdir(); }

Yukardaki kod paralar altrldnda aadaki gibi bir ekran grntsyle karlarz.

Resim 0.1: Parametresiz ve Geri Dn Tr Void Olan Metot Tanmlama

rnek 0-2: Klavyeden girilen bir tam saynn karesini bulan metodu ve bu metodun program ierisinde kullanmn gsteren programn kodunu yaznz.
static int KareAl(int sayi) { int karesi = sayi * sayi; return karesi; } static void Main(string[] args) { Console.Write("Bir say giriniz: "); int s1,sonuc; s1=Convert.ToInt32(Console.ReadLine()); sonuc = KareAl(s1); Console.WriteLine("{0} saysnn karesi: {1}",s1,sonuc); }

Yukardaki kod paralar altrldnda aadaki gibi bir ekran grntsyle karlarz.

Resim 0.2: Geri Dn Deeri ve Parametre-Listesi Olan Metot Tanmlama

rnek 0-3: Klavyeden girilen bir mesaj ekrana 10 defa yazdran metodun kodunu yaznz.
static void MesajYaz(string msj) { for (int i = 1; i <= 10; i++) Console.WriteLine(msj); } static void Main(string[] args) { Console.Write("Mesajnz giriniz: "); string mesaj; mesaj=Console.ReadLine(); MesajYaz(mesaj); }

Yukardaki kodlar incelediimiz zaman; klavyeden girilen yaz mesaj isimli deiken ierisine aktarlmakta ve daha sonra MesajYaz() isimli metota gnderilmektedir. MesajYaz() metodu ise kendisine parametre olarak verilen string trdeki mesaj ekrana 10 defa yazmaktadr. altrldnda aadaki gibi bir ekran ktsyla karlarz.

Resim 0.3: Geri Dn Tr Void olan Parametreli Metot Uygulamas

1.3. Metotlarda Parametre Kullanm


Parametrenin tanmn ve kullanmn daha nce metotlarn tanmlanmas srasnda parametre listelerini olutururken grdk. Parametre-listeleri, tek bir trde verileri ieren bir liste olabilecei gibi, farkl trlerde de veriler ierebilen listelerdir. Parametreler veri trnde olabilecei gibi nesneler de parametre olarak bir metoda gnderilebilirler. Her bir parametre aralarna virgl kullanlarak birbirinden ayrlrlar. Ayn veri trne sahip parametrelerin her biri iin deiken isimlerinden nce ayr ayr veri trleri de yazlmak zorundadr.

eitli veri trlerini parametre olarak metotlarmza nasl gnderdiimizi rneklerle inceleyelim; rnek 0-4: Klavyeden girilerek parametre olarak gnderilen bir saynn, asal say olup olmadn kontrol eden, eer say asal ise true, deilse false deeri dndren metodu yaznz.
static bool AsalMi(int s) { bool durum=false; for (int i = 2; i < s / 2 + 1; i++) { if (s % 2 == 0) durum=false; else durum=true; } return durum; } static void Main(string[] args) { int sayi = 0; bool drm; Console.Write("Bir say giriniz: "); sayi=Convert.ToInt32(Console.ReadLine()); drm=AsalMi(sayi); if (drm == true) Console.WriteLine("{0} says asaldr.",sayi); else Console.WriteLine("{0} says Asal deildir.",sayi); }

Yukardaki uygulamay aada verilen deerler iin tek tek deneyiniz ve ekran ktlarn yanlarndaki bo ksma yaznz. Girilecek Deerler 16 43 66 89 Ekran kts

rnek 0-5: Parametre olarak gnderilen kullanc ad ve ifreyi kontrol eden, nceden belirlenmi olan bir kullanc ad ve ifreyle karlatran metodun kodlarn yaznz.
static void KullaniciKontrol(string kAdi, string psw) { if ((kAdi == "Admin") || (kAdi == "ADMN") || (kAdi == "admin"))

{ if (psw == "123rty") Console.WriteLine("Tebrikler Kullanc ve ifreniz Doru"); else Console.WriteLine("ifrenizi Hatal Girdiniz"); } else { Console.WriteLine("Kullanc adnz hatal."); } } static void Main(string[] args) { string kullaniciAdi, sifre; Console.Write("Ltfen kullanc adnz giriniz: "); kullaniciAdi = Console.ReadLine(); Console.Write("Ltfen ifrenizi giriniz: "); sifre = Console.ReadLine(); KullaniciKontrol(kullaniciAdi, sifre); }

Yukardaki uygulamay aada verilen deerler iin tek tek deneyiniz ve ekran ktlarn yanlarndaki bo ksma yaznz. Girilecek Deerler Kullanc Ad ifre Admin 123RTY Ynetici 123rty Admin 123rty admin 123rty ADMN 123rty Ekran kts

rnek 0-6: Klavyeden girilen deerler arasnda rastgele say reten ve bu deerleri 10 elemanl bir dizi ierisine atayan SayiUret( ) isimli bir metot yaznz. Dizinin elemanlarn ekrana yazdran DiziYazdir( ) isimli bir metot daha yazarak elemanlar ekrana yazdrnz. Daha sonra bu dizi ierisindeki en byk say deerini bulan EnBuyuk( ) isimli, en kk deeri bulan EnKucuk( ) isimli iki metot daha yaznz. EnBuyuk ve EnKucuk metotlarndan dnen saylar ekrana yazdran programn kodlarn yaznz. Bu ksmda rastgele saylar retilip parametre olarak gnderilen dizi isimli diziye deerler aktarlyor ve dizi ana programa geri dndrlyor;
static int[] SayiUret(int bas, int bit,int[] dizi) { int tutulan = 0; Random rnd = new Random();

for (int i = 0; i < 10; i++) { tutulan = rnd.Next(bas, bit); dizi[i] = tutulan; } return dizi; }

Bu ksmda parametre olarak gnderilen dizi ierisindeki deerler ekrana yazdrlyor;


static void DiziYazdir(int[] dizi1) { Console.WriteLine("----------------"); Console.WriteLine("Tutulan saylar:"); foreach (int i in dizi1) Console.WriteLine(i); Console.WriteLine("----------------"); }

Bu ksmda parametre olarak gnderilen dizi ierisindeki en byk deer bulunup ana programa geri dndrlyor;
static int EnBuyuk(int[] dizi2) { int ebs=0;//en kk deer foreach (int s in dizi2) { if (s > ebs) //eer say ebs'den bykse ebs = s; //yeni ebs, saynn deeri olur } return ebs; }

Bu ksmda parametre olarak gnderilen dizi ierisindeki en kk deer bulunup ana programa geri dndrlyor;
static int EnKucuk(int[] dizi3) { int eks = 100;//en byk deer foreach (int x in dizi3) { if (x < eks) //eer say ebs'den kkse eks = x; //yeni eks, saynn deeri olur } return eks; }

Ana programmz;
static void Main(string[] args) { int[] sayilar=new int[10]; int baslangic, bitis; Console.Write("Balang deerini giriniz: "); baslangic = Convert.ToInt32(Console.ReadLine()); Tekrar: Console.Write("Biti deerini giriniz: "); bitis = Convert.ToInt32(Console.ReadLine()); if (bitis <= baslangic) { Console.WriteLine("Biti deeri balangtan ({0}) kk ya da eit olamaz tekrar deneyiniz.",baslangic); goto Tekrar; } //Rastgele saylar retilip diziye aktarlyor sayilar = SayiUret(baslangic, bitis, sayilar); //Dizi ekrana yazdrlyor DiziYazdir(sayilar); //En byk deer bulunuyor int mak = EnBuyuk(sayilar); //En kk deer bulunuyor int min = EnKucuk(sayilar); //Sonular ekrana yazdrlyor Console.WriteLine("En byk say: " + mak); Console.WriteLine("En kk say: " + min); }

1.4. Metotlarla ilgili nemli zellikler


Metotlarla ilgili bilinmesi gereken baz nemli zellikler unlardr; Metotlara isim verilirken ayn deikenlere isim verirken uyduumuz kurallara uymamz gerekir. Main( ) ismi programmzn almasn balatan ana metodun ismi olduu iin bu ismi metot ismi olarak veremeyiz. Ayn isime sahip farkl geri dn tiplerine veya farkl parametre-listesine sahip metotlar oluturabiliriz.

static int Topla(int sayi1, int sayi2, int sayi3) { int toplam; toplam = sayi1 + sayi2 + sayi3; return toplam; } static int Topla(int sayi1, int sayi2) {

int toplam; toplam = sayi1 + sayi2; return toplam; } static void Topla(int sayi1) { Console.Write("Parametresiz metodun sonucu= {0}", sayi1); } static void Main(string[] args) { int sonuc, s1, s2, s3; s1 = 43; s2 = 16; s3 = 66; sonuc = Topla(s1, s2, s3); Console.WriteLine("3 parametreli metodun sonucu= {0}", sonuc); sonuc = Topla(s1, s2); Console.WriteLine("2 parametreli metodun sonucu= {0}", sonuc); Topla(s1); }

Bu yntem pek de tavsiye edilen bir yntem deildir. Bu ekilde ayn isme sahip farkl metotlar olutururken ok dikkatli olmalyz. Metotlar arlrken, balangta belirlenen parametre saysndan ne az ne de ok sayda parametre girmeliyiz. Eer metodumuz 2 parametre ile ilem yapyorsa, biz bu metoda 1 veya 3 adet parametre gnderemeyiz. Aksi takdirde hata mesaj alrz.

static int Topla(int sayi1, int sayi2) { int toplam; toplam = sayi1 + sayi2; return toplam; } static void Main(string[] args) { int sonuc,s1,s2,s3; s1=43; s2=16; s3=66; sonuc = Topla(s1, s2, s3); sonuc = Topla(s1); Console.WriteLine ("Sonu= {0}",sonuc); }

10

Yukardaki kodlar incelediimizde; Topla isimli metoda ait parametre listesinde iki adet parametre alabilecei tanmlanm. Ancak ilk koyu renkli satrdan da greceimiz zere metot arlrken 3 parametre gnderildiinde veya bir sonraki satrdaki gibi tek parametre gnderildiinde hata mesaj alrz. Metotlarn geri dn deerleri vardr. Geri dn deeri olmayacak olan metotlarda geri dn tipi void olarak belirtilir ve return anahtar kelimesinin bu trdeki metotlarda kullanmna izin verilmez.

static void Topla(int sayi1, int sayi2) { int toplam; toplam = sayi1 + sayi2; return toplam; }

Yukardaki kodlar incelediimizde; geri dn tipi belirtilmeyen (void olarak tanmlanan) metottan return anahtar kelimesi kullanlarak geriye bir deer dndrlmeye alldnda hata mesaj alrz. Geri dn tr void olan metotlar, herhangi bir deiken ierisine atanamazlar.

static void Topla(int sayi1, int sayi2) { int toplam; toplam = sayi1 + sayi2; Console.WriteLine(toplam); } static void Main(string[] args) { int sonuc,s1,s2,s3; s1=43; s2=16; s3=66; sonuc = Topla(s1, s2); Console.WriteLine ("Sonu= {0}",sonuc); }

Yukardaki kodlar incelediimizde; geri dn deeri bulunmayan Topla isimli metot, - koyu renkli satrdan da grlecei zere - sonuc isimli deikene atama ilemi yaplmaya allrsa hata mesaj alrz. Metotlarn geri dn deerleri herhangi bir veri trnde olabilir. Metot ierisindeki bir deer return anahtar szcyle metodun arld yere geri dndrlr. Burada metodun geri dn tipine uyumlu bir deiken ierisine atanmaldr. Aksi takdirde tr uyumsuzluundan dolay hata mesaj alrz.

11

static float Topla(int sayi1, int sayi2) { float toplam; toplam = sayi1 + sayi2; return toplam; } static void Main(string[] args) { int sonuc,s1,s2,s3; s1=43; s2=16; s3=66; sonuc = Topla(s1, s2); Console.WriteLine ("Sonu= {0}",sonuc); }

Yukardaki kodlar incelediimizde; int trnde tanmlanm olan sonuc deikeni ierisine float trnde tanmlanm bir metodun geri dn atanmaya allrsa hata mesaj alrz. Bir metot parametre almadan da tanmlanabilir. Bu ekilde tanmlanan bir metoda parametre gnderilmez. Parametre-listesi parantezleri bo braklr.

static void yazdir() { Console.Write("Merhaba Dnya"); } static void Main(string[] args) { yazdir(); }

Metotlar tanmlanrken oluturulan parametre-listesindeki tm parametreler virgl ( , ) ile birbirinden ayrlmaldr. Tek bir tr yazp virglle deiken isimlerini ayramayz.

static float Topla(int sayi1,sayi2) { float toplam; toplam = sayi1 + sayi2; return toplam; }

Yukardaki gibi bir parametre listesi tanmlamaya alrsak hata mesaj alrz. Her bir parametreyi virglle ayrarak tek tek tanmlamamz gerekir.
static float Topla(int sayi1, int sayi2) { float toplam; toplam = sayi1 + sayi2; return toplam; }

12

Parametre-listesinde tanmlanan deikenlerin isimleri, metot ierisinde tanmlanacak baka bir deikende tekrar kullanlamaz.

static float Topla(int sayi1, int sayi2) { float toplam; int sayi1,sayi2; toplam = sayi1 + sayi2; return toplam; }

Yukardaki gibi bir parametre listesinde tanmlanm sayi1 ve sayi2 deiken isimlerini, metot ierisinde tekrardan her ne veri trnde olursa olsun yeniden kullanamayz. Bir metot ierisinde baka bir metot tanmlanamaz. Ancak baka bir metot arlabilir.

static void yazdir() { static void MerhabaDunyaYazdir() { Console.Write("Merhaba Dnya"); } }

Yukardaki kullanm hatal bir kullanmdr. Metot ierisinde metot tanmlamas yaplamaz. Ancak aadaki rnek gibi metot ierisinden baka bir metot arlabilir.
static void MerhabaDunyaYazdir() { Console.Write("Merhaba Dnya"); } static void Yazdir() { MerhabaDunyaYazdir(); }

Yazdir isimli metot ierisinden MerhabaDunyaYazdir isimli metodu yukardaki gibi arabiliriz. Metotlarn ierisinde tanmlanan tm deikenler metot dnda kullanlamazlar, geersiz olurlar.

static float Topla(int sayi1, int sayi2) { int toplam; toplam = sayi1 + sayi2; return toplam; }

13

static void Main(string[] args) { int s1, s2; s1 = 43; s2 = 16; toplam = Topla(s1, s2); Console.WriteLine("Sonu: "+toplam); }

Yukardaki kodlar incelendiinde; Topla isimli metot ierisinde tanmlanan float trndeki toplam isimli deikene metot dnda tekrar eriilmek istenirse hata mesaj alrz.

1.5. zyineli (Rekrsif-Recursive) Metotlar


Bir metodun kendi kendini armasna yinelenme (recursion), kendi kendini aran metotlara da yinelenen veya zyineli (recursive) metotlar denir. Bir metodun kendi kendini armas, zaman zaman da olsa program yazarken ihtiya duyulan bir olaydr. Yinelenen metotlar tasarlanrken ok dikkatli olunmaldr. Aksi takdirde sonsuz bir dng ierisine girilebilir. Bu dngnn bir ekilde sonlandrlmas gerekmektedir. Yinelenen metotlara basit bir rnekle giri yapalm; rnek 0-7: 1den klavyeden girilen sayya (n) kadar olan saylarn toplamn hesaplayan programn kodunu yaznz.
static int Topla(int n) { if (n == 0) return 0; return n + Topla(n - 1); } static void Main(string[] args) { int sonuc = Topla(sayi); Console.WriteLine("1den {0} saysna kadar olan saylarn toplam = {1}", sayi, sonuc); }

Hemen hemen btn bilgisayar programlama kitaplarnda yinelenen metotlarla ilgili klasik olarak bir saynn faktriyelini hesaplayan programlara yer verilir. Bizlerde bu gelenei bozmayalm ve bir nceki rnekteki mantkla klavyeden girilen bir saynn faktriyelini hesaplayan zyineli bir metot hazrlayalm. rnek 0-8: Klavyeden girilen saynn faktriyelini hesaplayan programn kodunu yaznz.

14

static double Faktoriyel(int n) { if (n == 0) return 1; return n * Faktoriyel(n - 1); }

Faktoriyel( ) isimli metot incelendiinde; return anahtar kelimesiyle birlikte Faktoriyel( ) metodu parametre (n) deeri 1 azaltlarak tekrar tekrar arlyor. Ne zaman ki parametre (n) deeri 0a eriti, o zaman metot ierisinden klyor.
static void Main(string[] args) { tekrar: Console.Write("Bir say giriniz: "); int sayi= Convert.ToInt32(Console.ReadLine()); if (sayi < 0) { Console.WriteLine("Negatif Saylarn Faktriyeli Hesaplanmaz..."); goto tekrar; } else { double sonuc = Faktoriyel(sayi); Console.WriteLine("{0}! = {1}", sayi, sonuc); } }

Yinelenen metotlar bir bakma i ie geen bir radyo anteni veya teleskop gibi kimi zaman uzayp, kimi zaman ksalabildiini dnebiliriz.

1.6. Main( ) Metodu


Metotlar modlmzn bandan bu yana rneklerimizde hep Main( ) isminde bir metot ierisinde ana programlarmzn yazmn gerekletirdik. Peki nedir bu Main( ) metodu? Aslnda Main( ) metodu imdiye kadar yazdmz veya kullandmz metotlardan pek de fark olmayan bir metot trdr. Tek ve en nemli fark Main( ) metodunun ana programn balamasn salayan nokta olmasdr. te bu yzden Main( ) metodu dier metotlara gre daha zeldir. imdiye kadar Main( ) metodunu kullanrken herhangi bir geri dn deeri kullanmadk, hep geri dnn void olarak belirledik. Ancak baz durumlarda Main( ) metodunun void dnda int trnde bir geri dn deeri de kullanlr. Bu geri dn deeri, aslnda biz kullanclarn pek de iine yarayacak bir geri dn deeri deildir. Bu deer, genellikle (btn programlarn zerinde alt) iletim sisteminin, yazlan programn nasl sonlandrldyla ilgili bilgi almasn salayacak bir deerdir.

15

int trnde bir deer dndren Main( ) metodu u ekilde tanmlanr;


static int Main() { ... }

Burada dikkat ederseniz Main( ) metodunun geri dn deeri void yerine int trne sahiptir. Bu int trndeki deer genellikle programn nasl sonlandrld bilgisini iletim sistemine gndermeye yarar. Eer dn deeri; Sfr (0) ise program normal bir ekilde sonlandrlm, Sfrdan farkl ise programn bir hata sebebiyle sonlandrlm,

olduunu belirtir. Main( ) metodunun geri dn deerinin olmasnn yannda, baz durumlarda da parametre almas mmkndr. Programlarn komut satrndan aldklar parametrelere argman ad verilir. Programlar komut satrndan altrldnda, program isminden sonra gelen bilgiler o programn argmanlardr. rnein aadaki resimde metotlar.exe isimli program, komut satrndan arlrken, program isminden sonra bir takm argmanlar eklenmi ve bunlar Main( ) metodu ierisinde srayla ekrana yazdrlm. Komut satr:
D:\...........\bin\Debug\metotlar.exe bir iki drt be

Buradaki yol sizin bilgisayarnzda altnz klasrlere gre elbette ki deiecektir.

Resim 0-4. Main( ) Metodunun Argmanlarnn Listelenmesi

Yukardaki gibi Main( ) metodunun argmanlarnn listelenmesi iin aadaki gibi bir kod yazmak yeterli olacaktr;
static void Main(string[] args) { int i=0; foreach (string a in args) { Console.WriteLine(i + ". argman: " + a); i++; } }

16

rnek 0-9: Komut satrn kullanarak iki saynn toplamn bulan program yaznz.
static int Main(string[] args) { int argumanAdedi = args.Length; if (argumanAdedi == 0 || argumanAdedi == 1 ) { Console.WriteLine("Eksik Parametre Girildi"); return 1; } if (argumanAdedi > 2) { Console.WriteLine("Fazla Parametre Girildi"); return 1; } int sayi1 =Convert.ToInt32(args[0]); int sayi2 =Convert.ToInt32(args[1]); int sonuc = sayi1 + sayi2; Console.WriteLine("Girilen saylarn toplam: "+sonuc); return 0; }

Yukardaki kodlar inceleyelim;


static int Main(string[] args)

Satr ile Main( ) metodu tanmlanyor. Bu metoda string trnde bir dizi (args) parametre olarak gnderiliyor.
int argumanAdedi = args.Length;

Satr ile de gnderilen parametre says argumanAdedi deikenine aktarlyor.


if (argumanAdedi == 0 || argumanAdedi == 1 )

ve
if (argumanAdedi > 2)

Programmzla 2 adet saynn toplamn bulacamz iin argman saysnn 2den az m yoksa ok mu olduunu kontrol etmemiz gerekiyor. Eer yukardaki kontrollerde argman says 2den az veya ok ise return 1; ile iletim sistemine yeterli argman girilmediini bildiren hata mesajlar gnderiliyor. Eer girilen argman says 2 ise aadaki satrlar altrlr ve gerekli ilemler gerekletirilir.

17

int sayi1 =Convert.ToInt32(args[0]);//1. argman int sayi2 =Convert.ToInt32(args[1]);//2. argman int sonuc = sayi1 + sayi2; Console.WriteLine("Girilen saylarn toplam: "+sonuc); return 0; //Hatasz bir ekilde sonlandrldn belirtir

Bu programmz altrldnda aadaki gibi bir ekran grntsyle karlarz.

Resim 0-5. Main( ) Metoduyla Komut Satrndan lem Yapma

Metotlar.exe isimli programmz komut satrndan altrldnda; Hi parametre girilmezse veya sadece 1 parametre girilirse Eksik Parametre Girildi mesajyla karlarz. 3 veya daha fazla sayda parametre girilirse Fazla Sayda Parametre Girildi mesajyla karlarz. 2 parametre girii gerekletirirsek, programmz girilen bu iki saynn toplamn ekranmza yazdrr.

rnek 0-10: Klavyeden komut satrna girilen metni ifreleyen ve ifreyi zen program yaznz.
static int Main(string[] args) { int argumanAdedi = args.Length; if (argumanAdedi == 0 || argumanAdedi == 1) { Console.WriteLine("Eksik Parametre Girildi"); return 1; } if (argumanAdedi > 2) { Console.WriteLine("Fazla Parametre Girildi"); return 1; } string anahtarKelime = args[0]; string kelime= args[1]; for (int i = 0; i < kelime.Length; i++) { if (anahtarKelime == "sifrele") Console.Write((char)(kelime[i] + 1)); else if (anahtarKelime == "sifreCoz")

18

Console.Write((char)(kelime[i] - 1)); } Console.ReadLine(); return 0; }

ifreleme ilemi olarak yaptmz ey; klavyeden girilen metin ierisindeki harfleri tek tek ele alp, o harfi, kendinden bir sonra gelen harfe dntrmektir. ifre zme ilemi ile de ifrelenmi kelimenin harflerini geri eski hallerine getirmek, yani ilgili harften bir nceki harfe dntrmektir. Yukardaki kodlar altrdmzda aadaki gibi bir ekran grnts alrz.

Resim 0-6. Metin ifreleme

Programda ilk olarak, sifrele parametresiyle birlikte tevfik kelimesi gnderdik sonu olarak ufwgjl kelimesini bize geri dndrd. Daha sonra sifreCoz parametresi ile ufwgjl kelimesini gnderdiimizde, geri tevfik kelimesini dndrd. Sizler de program vastasyla ifreleme algoritmasnn zerinde deiiklik yaparak, kendi kelimelerinizi ifreleyebilir, daha sonra da zebilirsiniz.

19

UYGULAMA FAALYET UYGULAMA FAALYET


lem Basamaklar
Klavyeden girilen saylarn tek mi ift mi olduunu bulan ve say tek ise geri Say Tektir., iftse Say ifttir. Mesajn dndren metodu yaznz. Parametre olarak gnderilen metni ifreleyen ve geri ifrelenmi halini dndren, Parametre olarak gnderilen ifrelenmi metnin ifresini zen ve geri zlm halini dndren, Metotlar yaznz. AlanHesapla isimli metot, klavyeden kenar uzunluklar girilen bir dikdrtgenin alann hesaplayp ekrana yazdran bir metottur. Bu metodu yaznz. Klavyeden 3 kenar uzunluu girilen bir genin, dik gen olup olmadn kontrol eden metodu yaznz. Matematikteki Fibonacci say dizisinin ilk 10 elemann bulan zyineli (rekrsif) metodu yaznz.

neriler
Bir saynn 2ye blmnden kalan sfr(0) ise say ifttir. Mod alma (%) ilemi kullannz. ifreleme ilemi, kelimedeki harflerin alfabeye gre 1 telenmesi ile ifre zme ilemi de kelimedeki harflerin alfabeye gre 1 geri alnmasyla Gerekletirilecektir. rnein: A harfi ifrelendiinde B harfi olacaktr. Metoda uzun kenar ve ksa kenar olmak zere 2 parametre gnderilecektir. Metottan geriye dikdrtgenin alan deeri dndrlecektir. Uzun kenarnn karesi, ksa kenarlarnn karelerinin toplamna eit olan genler dik genlerdir. Fibonacci say dizisi: kendisi ve kendisinden nce gelen saynn toplamnn kendisinden sonra gelen sayya eit olduu saylar dizisidir. 0-1-1-2-3-5-8-13
Fibonacci(n)= Fibonacci(n-1)+ Fibonacci(n-2)

Parametre olarak gnderilen gn saysnn ka yl, ka ay, ka gn olduunu hesaplayan metodu yaznz. Erkeklerin 25 yl, kadnlarn da 20 yl altktan sonra emekli olaca varsayldnda, klavyeden girilen cinsiyet ve sigorta prim gn saysna gre kiinin emekliliine ne kadar sresi kaldn bulan metodunu yaznz.

1 yl = 360 gn 1 ay = 30 gn Baz alnacaktr. rnek: 1943 gn = 5 yl 4 ay 23 gn Bir nceki rnekteki metoda cinsiyet parametresini de ekleyerek, buna gre sonucu ekrana yazdrnz. rnein: Erkek ve 6643 gn parametreleri girildiinde Emekliliinize 6 yl 6 ay 17 gn kald eklinde sonu dndrecek.

20

LME VE DEERLENDRME LME VE DEERLENDRME


Aadaki cmlelerin banda bo braklan parantezlere, cmlelerde verilen bilgiler doru ise D, yanl ise Y yaznz. 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. ( ) Parametre-listesi bir metottan geri deer dndrmek iin kullanlr. ( ) Bir metodun arld zaman ald ve metot ierisinde kullanaca deikenler listesine parametre-listesi denir. ( ) Parametre listesi int trnde deikenler ieren bir tr dizidir. ( ) Parametre listesindeki deikenler ayn trde olmak zorundadrlar. ( ) Eer herhangi bir eriim belirteci kullanlmazsa varsaylan olarak snfa zel (private) olarak belirlenir. ( ) Eer metot bir deer dndrmeyecekse dn-tipi void olarak belirtilmelidir. ( ) Bir metot hi parametre kullanmayacaksa, parametre-listesi bo braklr. ( ) Parametre listesindeki deikenler birbirinden noktal virgl (;) ile ayrlrlar. ( ) Main( ) isimli metot, programmzn almasn balatan metottur. ( ) Bir metot kendi kendini hibir artta aramaz. ( ) Ayn isme sahip metotlar oluturamayz. ( ) Parametre-listesinde belirtilen bir deiken ismi, metot ierisinde baka bir veri trnde tekrar kullanlabilir. ( ) Metotlarda geri dn deeri out anahtar kelimesiyle gnderilir. ( ) Geri dn tr void olan metotlar, herhangi bir deiken ierisine aktarlamazlar. ( ) Metot ierisinde baka bir metot tanmlamas yaplabilir. ( ) Metot ierisinde baka bir metot arlabilir. ( ) zyineli metotlarn dn deeri olamaz. ( ) Main( ) metodunun geri dn deeri void veya int trnde olabilir. ( ) Main( ) metodu hi parametre almaz. ( ) Bir program ierisinde birden fazla Main( ) metodu kullanabiliriz.

20.

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.

21

RENME FAALYET2 RENME FAALYET2


AMA
Bu modl ile hazr metotlar kullanabilecek ve programlarnzda uygulayabileceksiniz.

ARATIRMA
Bu faaliyet ncesinde hazrlk amal aada belirtilen aratrma faaliyetlerini yapmalsnz String deiken trleri nasl tanmlanr? Aratrnz. Saylarla kullanabildiimiz deiken trleri aratrnz. Tarih/Zaman ifadeleri ile birlikte kullandmz deiken trlerini aratrnz.

2. HAZIR METOTLAR
Programlama dili ktphaneleri ierisinde nceden tanmlanm ve programclarn ilerini kolaylatran bir takm hazr metotlar vardr. Bu modlmz ierisinde metinsel (String), matematiksel, tarih ve zaman ilemlerinde ska kullanacamz metotlarn inceleyeceiz.

2.1. Metinsel (String) Metotlar


Programlama dili ierisindeki String snf altnda bulunan ve metinsel (String) ifadelerle ilgili bir takm ilemleri daha kolay yapabilmek iin bir takm hazr metotlar vardr. Metinsel metotlardan sk kullanlanlar unlardr; String snf ile arlan metotlar; Compare, Concat, Copy, Format, IsNullOrEmpty String ifade ile birlikte arlan metotlar; CompareTo, Contains, CopyTo, EndsWith, IndexOf, Insert, LastIndexOf, PadLeft, PadRight, Remove, Replace, Split, StartsWith, Substring, ToLower, ToUpper

22

2.1.1. Compare( )
Parametre olarak verilen iki string ifadeyi karlatrr ve geriye int trnde bir veri dndrr. Eer dn deeri sfr (0) ise iki metin birbirine eittir. Aksi takdirde parametre olarak verilen metinleri ilk harflerinden itibaren tek tek karlatrr ve farklln olduu ilk harflerin alfabedeki sralarna gre -1 veya 1 say deerlerini dndrr. Kullanm:
int donusDegeri=String.Compare(metin1,metin2);

Aadaki tabloda metinlerin karlatrma durumlar ve geri dn deerleri verilmektedir; Durum metin1>metin2 metin1=metin2 metin1<metin2 Dn Deeri 1 0 -1

Burada metinlerin byktr/kktr karlatrmalar, harflerin alfabetik srasyla ilgilidir. rnek 0-1: Klavyeden girilen iki metnin karlatrlmasn yapan programn kodlarn yaznz.
Console.Write("1. metni giriniz: "); string metin1 = Console.ReadLine(); Console.Write("2. metni giriniz: "); string metin2 = Console.ReadLine(); int donusDegeri = String.Compare(metin1, metin2); switch (donusDegeri) { case -1: Console.WriteLine("{0} ve {1} kelimeleri birbirinden farkldr. \nGeri Dn deeri: {2}",metin1,metin2,donusDegeri); break; case 0: Console.WriteLine("{0} ve {1} kelimeleri birbirinin aynsdr. \nGeri Dn deeri: {2}", metin1, metin2, donusDegeri); break; case 1: Console.WriteLine("{0} ve {1} kelimeleri birbirinden farkldr. \nGeri Dn deeri: {2}", metin1, metin2, donusDegeri); break; }

23

Yukardaki program altrdktan sonra aadaki tabloda verilen deerleri tek tek deneyerek String.Compare( ) metoduyla geri dnen deerleri, tabloda bo braklan alanlara yaznz. Girilecek Deerler metin1 metin2 Tavanl tavanl Tavanl Tavsanl Tavanl Tavanl Tavanl Davanl Tavanl Tavanl Geri Dn Deeri

Eer metin karlatrmalarnda byk/kk harfe dikkat edilsin istemiyorsak Compare( ) metodunun bir baka kullanm olan Compare(metin1,metin2,boolean) formunu kullanmamz gerekir. Kullanm:
bool buyukKucuk=true; int donusDegeri=String.Compare(metin1,metin2,buyukKucuk);

Burada bool trndeki deikenin deeri true ise Compare( ) metodu byk/kk harfe bakmaszn iki kelimeyi karlatrr. Eer false deeri gnderilirse, bu durumda karlatrma ilemini byk/kk harfe biimde gerekletirir. rnek 0-2: Tavanl ve tavanl metinlerini byk/kk harf duyarl olarak ve byk/kk harf duyarsz olarak iki ekilde karlatrlmasn yapan programn kodlarn yaznz.
string metin1="MOYMUL"; string metin2="moymul"; // Byk/Kk harf duyarsz bool duyarlilik=true; int donusDegeri = String.Compare(metin1, metin2,duyarlilik); Console.WriteLine("duyarlilik=true olduunda dn deeri: " + donusDegeri); // Byk/Kk harf duyarl duyarlilik=false; donusDegeri = String.Compare(metin1, metin2,duyarlilik); Console.WriteLine("duyarlilik=false olduunda dn deeri: " + donusDegeri);

Yukardaki program altrldnda aadaki gibi bir ekran kts elde ederiz.

24

Resim 0.1: Compare Metodu Byk/Kk Harf Duyarll

Bu programdaki metin deerlerini deitirerek farkl byk kk harf duyarllklarn inceleyiniz.

2.1.2. Concat( )
Parametre olarak verilen nesneleri string trnde birbirine peisra ekler ve geriye string trnde bir deer dndren String metodudur. Kullanm:
string donenMetin=String.Concat(parametre-listesi);

rnek 0-3: Klavyeden girilen iki metni birletiren programn kodlarn yaznz.
Console.Write("1. metni giriniz: "); string metin1 = Console.ReadLine(); Console.Write("2. metni giriniz: "); string metin2 = Console.ReadLine(); string birlestirilen = String.Concat(metin1, metin2); Console.WriteLine("{0} ve {1} kelimelerinin birletirilmi hali: {2}",metin1,metin2,birlestirilen);

Yukardaki kodlar altrldnda ve metin1 olarak Linyit, metin2 olarak da spor kelimeleri girildiinde birletirilen kelime Linyitspor olarak karmza kacaktr. String.Concat( ) ile farkl trlerdeki verileri de birletirme ansmz vardr. Aadaki rnekte hem metin, hem say, hem de boolean trndeki verileri birletirip, geriye string trnde bir veri elde etme ilemini inceleyeceiz. rnek 0-4: Metin, say ve boolean trnde verilerin birletirilmesini salayan programn kodlarn yaznz.
string metin = "Ktahya"; int sayi = 43; bool durum = false; string birlestirilen = String.Concat(metin, sayi, durum); Console.WriteLine("{0} ve {1} {2}nin birletirilmi hali: {3}", metin, sayi,durum,birlestirilen);

25

Yukardaki kodlar altrdmz zaman aadaki gibi bir ekran kts karmza kar;

Resim 0.2: String.Concat( ) Metodu ile Farkl Trlerdeki Verilerin Birletirilmesi

2.1.3. Copy( )
Parametre olarak verilen string trndeki metnin bir kopyasn almaya yarayan String metodudur. Kullanm:
string kopyaMetin=String.Copy(metin);

rnek 0-5: Bir metinin kopyasn alan program yaznz.


string metin = "Tavanl"; string kopyaMetin=String.Copy(metin); Console.WriteLine("{0} metninin kopyas :{1}", metin, kopyaMetin );

Yukarda kod paras altrldnda aadaki gibi bir ekran kts ile karlarz.

Resim 0-3. String.Copy( ) Metodu ile String Kopyalama

1.2.4. Format( )
Programlama esnasnda baz ifadeleri belirli bir biim ierisinde yazmamz istenirse String.Format( ) metodu kullanlr. Bu metot geriye string trnde bir veri dndrr. rnein metinsel ifadelerin belirli bir biim ierisinde ekranda yazlmasn istiyorsak;

26

Resim 0.4: String.Format( ) Metodu Kullanm

Yukardaki resmi incelediimizde String.Format( ) metodunun kullanmnda, kme parantezleri ( { } ) ierisindeki ilk deer, degisken isimli deiken ierisindeki deeri referans gstermektedir. kinci deer ise deikenin ieriinin, ekranda ka karakterlik alan kaplayacan (rn: Bu deer 5 ise ekranda 6 karakterlik, -7 ise 8 karakterlik yer kaplar) belirtir. Bu deerin pozitif olmas, deiken deerinin ayrlan alannn sana hizal olacan, negatif olmas ise soluna hizal olacan belirler. rnek 0-6: Sra No, Adnz, Soyadnz eklinde balklar olan ve ierii dolu olan bir tablo hazrlayp, ekrana yazdrnz.
Console.WriteLine("-------------------------------"); Console.WriteLine("Sra No | Adnz | Soyad"); Console.WriteLine("-------------------------------"); Console.WriteLine(String.Format("{0,7} | {1,-8} | {2,10}", 1, "Remzi", "ERTRK")); Console.WriteLine(String.Format("{0,7} | {1,-8} | {2,10}", 2, "Tevfik", "ULU")); Console.WriteLine(String.Format("{0,7} | {1,-8} | {2,10}", 3, "Ycel", "CAN")); Console.WriteLine("-------------------------------");

Yukardaki kodlar altrdmzda aadaki gibi bir ekran kts ile karlarz.

Resim 0.5: String.Format( ) Metodu ile Metin Biimleme

rnein int trndeki saysal ifadelerin belirli bir biim ierisinde ekranda yazlmasn istiyorsak;
// "00015"

String.Format("{0:00000}", 15);

ifadesiyle 15 says ekrana bana 3 adet 0 eklenerek toplamda 5 karakter olarak yazlr.

27

String.Format("{0:00000}", -15);

// "-00015"

ifadesiyle -15 says ekrana bana 3 adet 0 eklenerek toplamda 5 karakter olarak yazlr.
String.Format("{0,5}", 15); // " 15"

ifadesiyle 15 says ekrana bana 3 adet boluk eklenerek toplamda 5 karakterlik bir alana saa hizal olarak yazlr.
String.Format("{0,-5}", 15); // "15 "

ifadesiyle 15 says ekrana bana 3 adet boluk eklenerek toplamda 5 karakterlik bir alana sola hizal olarak yazlr.
String.Format("{0,5:000}", 15); // " 015"

ifadesiyle 15 says ekrana bana bir adet 0 ve iki adet boluk eklenerek toplamda 5 karakterlik bir alana saa hizal olarak yazlr.
String.Format("{0,-5:000}", 15); // "015 "

ifadesiyle 15 says ekrana bana bir adet 0 ve iki adet boluk eklenerek toplamda 5 karakterlik bir alana sola hizal olarak yazlr. String.Format( ) metodunun sfr ve negatif saylar iin zel formlar vardr. Saylar biimlenirken kullanlan noktal virgl (;) ile format 3 blme ayrrz. Buradaki ilk blm saynn deerini, ikinci blm negatif saylarn biimini, nc blm ise sfrn ekrana nasl yazlacann biimini belirlememize yardmc olur.
String.Format("{0:#;eksi #}", 15); // "15" String.Format("{0:#;eksi #}", -15); // "eksi 15" String.Format("{0:#;eksi #;Sfr}", 0); // "Sfr"

Saylar istee bal biimlendirmek istersek (rnein bir telefon numarasn alan kodu ve telefon numaras ayr ayr yazlsn istiyorsak), biimlendirme ileminde diyez (#) iareti ile formatmz belirleriz;
String.Format("{0:### ## ##}", 1234567); // 123 45 67 String.Format("{0:(#) ###-##-##}", 12345678); //(1) 234-56-78

rnein double trndeki saysal ifadelerin belirli bir biim ierisinde ekranda yazlmasn istiyorsak;

28

Ondalkl saylarda virglden (programlamada nokta) sonra ka basamak grnsn istiyorsak keli parantezler ({ }) ierisindeki biimleme ksmnda noktadan sonra o kadar sfr (0) koymamz gerekir;
String.Format("{0:0.00}", 123.4567); String.Format("{0:0.00}", 123.4); String.Format("{0:0.00}", 123); // "123.46" // "123.40" // "123.00"

Eer ondalkl saynn en fazla ka basamann ekranda kmasn istiyorsak, bu sefer sfr yerine o kadar sayda diyez (#) iareti kullanmamz gerekir;
String.Format("{0:0.##}", 123.4567); String.Format("{0:0.##}", 123.4); String.Format("{0:0.##}", 123); // "123.46" // "123.4" // "123"

Ondalkl saylarda virglden nce ka basamak grntlemek istiyorsak biimlendirme yaparken, noktadan nce ka basamak istiyorsak o kadar sfr (0) kullanmamz gerekir;
String.Format("{0:000.0}", String.Format("{0:000.0}", String.Format("{0:00.00}", String.Format("{0:00.00}", 123.4567); 23.4567); 3.4567); -3.4567); // // // // "123.5" "023.5" "03.46" "-03.46"

Eer saylarn grntlenmesinde bin ayrac kullanlmak isteniyorsa;


String.Format("{0:0,0.0}", 12345.678); String.Format("{0:0,0.00}", 12345.678); String.Format("{0:0,0}", 12345.678); // "12,345.7" // "12,345.68" // "12,346"

0 ile 1 arasndaki ondalkl saylarn gsterimi iki ekilde olur. Birincisinde saynn tam ksm 0 ve noktadan sonra ondalkl ksm gelir (rn: 0.123 eklinde), bir dier gsterim eklinde ise saynn tam ksm yazlmaz sadece nokta ve sonrasndaki ondalkl ksm yazlr (rn: .123 eklinde). te bu durumlardaki saylarn gsterimi ise u ekilde gerekletirilir;
String.Format("{0:0.0}", String.Format("{0:0.#}", String.Format("{0:#.0}", String.Format("{0:#.#}", 0.0); 0.0); 0.0); 0.0); // // // // "0.0" "0" ".0" ""

Btn bu formlarn dnda saylarmz aadaki gibi istediimiz metinler ile birlikte yazmamz da mmkndr;
String.Format("{0:sonu 0.0}", 12.3); String.Format("{0:x0x.yy0yy}", 12.3); // "sonu 12.3" // "x12x.yy3yy"

29

rnein tarih/saat trndeki ifadelerin belirli bir biim ierisinde ekranda yazlmasn istiyorsak;

Tarih/Zaman ifadelerini belirtmek iin nceden belirlenmi baz anahtar harfler vardr. Bunlar; y: Yl,M: Ay, d: Gn, h: 12lik sistemde saat, H: 24lk sistemde saat m: Dakika s: Saniye f: Salise z: Zaman dilimi rnek 0-7: salanr; 14.02.2006 18:05:07.123 zamanna ait deerlerin gsterimleri u ekilde

DateTime dt = new DateTime(2006, 2, 3, 18, 5, 7, 123); Console.WriteLine("Tarih:"+dt); Console.WriteLine("-------------------------"); Console.WriteLine("Yl gsterimleri: "+String.Format("{0:y yy yyy yyyy}", dt)); Console.WriteLine("Ay gsterimleri: " + String.Format("{0:M MM MMM MMMM}", dt)); Console.WriteLine("Gn gsterimleri: " + String.Format("{0:d dd ddd dddd}", dt)); Console.WriteLine("Saat gsterimleri: " + String.Format("{0:h hh H HH}", dt)); Console.WriteLine("Dakika gsterimleri: " + String.Format("{0:m mm}", dt)); Console.WriteLine("Saniye gsterimleri: " + String.Format("{0:s ss}", dt)); Console.WriteLine("Salise gsterimleri: " + String.Format("{0:f ff fff ffff}", dt)); Console.WriteLine("Zaman dilimi gsterimleri: " + String.Format("{0:z zz zzz}", dt));

Yukardaki kodlar altrldnda aadaki gibi bir ekran kts ile karlarz;

Resim 0-6. Tarih/Zaman Gsterim Biimleri -1

Tarih/zaman gsterimlerinin biimlendirilmesinde kullanlan bir dier yol da; daha nceden tanmlanm belirteler ile deerlerin ekrana yazdrlmasdr. Bu deerler aadaki tabloda verilmitir.

30

Belirte Tarih/Zaman zellii


t d T D f F g G m,M y,Y

Gsterim rnei
h:mm M/d/yyy h:mm:ss dddd,MMMM dd, yyyy dddd, MMMM dd, yyyy h:mm dddd, MMMM dd, yyyy h:mm:ss M/d/yyyy h:mm M/d/yyyy h:mm:ss MMMM dd MMMM, yyyy

Ksa zaman gsterimi Ksa tarih gsterimi Uzun zaman gsterimi Uzun tarih gsterimi D ve t nin birleimi D ve Tnin birleimi d ve tnin birleimi d ve Tnin birleimi Ay ve gn gsterimi Yl ve ay gsterimi

rnek 0-8: 14.02.2006 18:05:07.123 zamann yukarda verilen biimlere gre gsterimini tek tek ekrana yazdran programn kodunu yaznz.
DateTime dt = new DateTime(2006, 2, 3, 18, 5, 7, 123); Console.WriteLine("Tarih:" + dt); Console.WriteLine("-------------------------"); Console.WriteLine("Ksa Zaman Gsterimi: " + String.Format("{0:t}", dt)); Console.WriteLine("Ksa Tarih Gsterimi: " + String.Format("{0:d}", dt)); Console.WriteLine("Uzun Zaman Gsterimi: " + String.Format("{0:T}", dt)); Console.WriteLine("Uzun Tarih Gsterimi: " + String.Format("{0:D}", dt)); Console.WriteLine("Uzun Tarih ve Ksa Zaman Birleimi: " + String.Format("{0:f}", dt)); Console.WriteLine("Full Tarih ve Zaman Gsterimi: " + String.Format("{0:F}", dt)); Console.WriteLine("Ksa Tarih ve Ksa Zaman Birleimi: " + String.Format("{0:g}", dt)); Console.WriteLine("Ksa Tarih ve Uzun Zaman Birleimi: " + String.Format("{0:G}", dt)); Console.WriteLine("Ay ve Gn Gsterimi: " + String.Format("{0:m}", dt)); Console.WriteLine("Ay ve Gn Gsterimi: " + String.Format("{0:M}", dt)); Console.WriteLine("Yl ve Ay Gsterimi: " + String.Format("{0:y}", dt)); Console.WriteLine("Yl ve Ay Gsterimi: " + String.Format("{0:Y}", dt));

Yukardaki kodlar altrdmz zaman aadaki gibi bir ekran kts ile karlarz;

31

Resim 0-7. Tarih/Zaman Gsterim Biimleri -2

2.1.5. IsNullOrEmpty( )
Parametre olarak verilen string trndeki deikenin ieriinin bo mu olduunu kontrol eden metottur. Eer deikenin ierii bosa geriye bool trnde true deeri dndrr. Eer deikene herhangi bir deer atamas yaplmsa geriye false deerini dndrr. Kullanm:
string metin=""; bool sonuc=String.IsNullOrEmpty(metin);

rnek 0-9: Kullanc ad ve ifre girii yaplan bir giri ekrannda kullanc ad veya ifre bo girilirse uyar veren, bo girilmemise girilen deerleri ekrana yazdran programn kodlarn yaznz.
Console.Write("Kullanc adnz giriniz: "); string kullaniciAdi = Console.ReadLine(); Console.Write("ifrenizi giriniz: "); string sifre = Console.ReadLine(); bool kaBosmu=String.IsNullOrEmpty(kullaniciAdi); bool sfrBosmu=String.IsNullOrEmpty(sifre); if(kaBosmu==true) Console.WriteLine("Kullanc adn bo geemezsiniz."); else Console.WriteLine("Girmi olduunuz kullanc ad:" + kullaniciAdi); if (sfrBosmu == true) Console.WriteLine("ifreyi bo geemezsiniz."); else Console.WriteLine("Girmi olduunuz ifre:" + sifre);

Bu ksmdan sonra anlatlacak olan metinsel metotlar direkt olarak String snf zerinden deil, string deiken zerinden arlacak olan metotlardr.

32

2.1.6. CompareTo ( )
arld string ifade ile parametre olarak verilen string ifadeyi karlatrr ve iki ifade de birbirine eitse geriye int trnde sfr (0) deerini dndrr. Aksi takdirde metinleri ilk harflerinden itibaren tek tek karlatrr ve farklln olduu ilk harflerin alfabedeki sralarna gre -1 veya 1 say deerlerini dndrr. Kullanm ve alma prensibi daha nce grdmz String.Compare( ) metoduyla hemen hemen ayndr. Kullanm:
int donusDegeri=metin1.CompareTo(metin2);

Aadaki tabloda metinlerin karlatrma durumlar ve geri dn deerleri verilmektedir; Durum metin1>metin2 metin1=metin2 metin1<metin2 Dn Deeri 1 0 -1

Daha nceden de belirttiimiz gibi metinlerin byktr/kktr karlatrmalar, harflerin alfabetik srasyla ilgilidir. rnek 0-10: Klavyeden girilen iki metnin karlatrlmasn yapan programn kodlarn yaznz.
Console.Write("1. metni giriniz: "); string metin1 = Console.ReadLine(); Console.Write("2. metni giriniz: "); string metin2 = Console.ReadLine(); int donusDegeri = metin1.CompareTo(metin2); switch (donusDegeri) { case -1: Console.WriteLine("{0} ve {1} kelimeleri birbirinden farkldr. \nGeri Dn deeri: {2}",metin1,metin2,donusDegeri); break; case 0: Console.WriteLine("{0} ve {1} kelimeleri birbirinin aynsdr. \nGeri Dn deeri: {2}", metin1, metin2, donusDegeri); break; case 1: Console.WriteLine("{0} ve {1} kelimeleri birbirinden farkldr. \nGeri Dn deeri: {2}", metin1, metin2, donusDegeri); break; }

33

Yukardaki program altrdktan sonra aadaki tabloda verilen deerleri tek tek deneyerek CompareTo( ) metoduyla geri dnen deerleri, tabloda bo braklan alanlara yaznz. Girilecek Deerler metin1 metin2 Biliim Biliim biliim bilisim BLM BILISIM bLM Biliim Bilisim Bilisim Geri Dn Deeri

Yukarda verilen deerleri istediiniz ekilde deitirerek metodun almasn iyice pekitiriniz.

2.1.7. Contains( )
Birlikte arld metinsel ifade ierisinde parametre olarak verilen char trndeki karakteri veya yine parametre olarak verilen string trndeki metinsel ifadeyi arar ve geriye bool trnde bir deer dndrr. Kullanm: Metinsel ifade ierisinde karakter arama;
char karakter= ''; bool donusDegeri=metin1.CompareTo(karakter);

Metinsel ifade ierisinde string arama;


string aranan= ""; bool donusDegeri=metin1.CompareTo(aranan);

rnek 0-11: Klavyeden girilen metin ierisinde rakamsal ifade olup olmadn kontrol eden bir metot yazp, kullancy uyaran programn kodlarn yaznz.
static void Main(string[] args) { Console.Write("Kelime giriniz: "); string ifade = Console.ReadLine(); bool sonuc = rakamVarMi(ifade); if (sonuc) Console.WriteLine("Girmi olduunuz metin rakamsal ifadeler ieriyor"); else

34

Console.WriteLine("Girmi olduunuz metin rakamsal ifadeler iermiyor"); } static bool rakamVarMi(string metin) { if (metin.Contains('0')) return true; else if (metin.Contains('1')) return true; else if (metin.Contains('2')) return true; else if (metin.Contains('3')) return true; else if (metin.Contains('4')) return true; else if (metin.Contains('5')) return true; else if (metin.Contains('6')) return true; else if (metin.Contains('7')) return true; else if (metin.Contains('8')) return true; else if (metin.Contains('9')) return true; else return false; }

Yukardaki uygulamay rakamsal ifade ieren ve iermeyen eitli kelime girileriyle deneyip pekitiriniz. rnek 0-12: Klavyeden girilen metin ierisinde, yine klavyeden girilen bir metni arayan programn kodlarn yaznz.
Console.Write("Metin giriniz: "); string ifade = Console.ReadLine(); Console.Write("Aranan metni giriniz: "); string aranan = Console.ReadLine(); if (ifade.Contains(aranan)) Console.WriteLine("({0}) ifadesi ierisinde ({1}) kelimesi mevcuttur.", ifade, aranan); else Console.WriteLine("({0}) ifadesi ierisinde ({1}) kelimesi yoktur.", ifade, aranan);

2.1.8. CopyTo( )
Bu metot kaynakBaslangicIndexi (int trnde), hedefDizisi (char dizisi trnde), hedefBaslangicIndexi (int trnde) ve miktar (int trnde) olmak zere 4 parametre alr.

35

Birlikte arld metinsel ifadenin; - Parametre olarak verilen int trndeki kaynak balang indeksinden itibaren, - Parametre olarak verilen char[] dizisinin ierisine, - Parametre olarak verilen hedef balang indeksinden itibaren, - Parametre olarak verilen sayda karakteri kopyalamaya yarayan metottur. Kullanm:
string metin1= ""; char[] hedefDizisi={,,,,,} ; int kayBasInd, hedBasInd, adet; metin1.CopyTo(kayBasInd,hedefDizisi,hedBasInd,adet);

rnek 0-13: Klavyeden girilen 10 harfli bir metnin ieriini 2.karakterinden balayarak 5 karakterini hedefDizi isimli char trndeki 10 elemanl bir dizinin 3.elemanndan balayarak kopyalaynz. hedefDizi isimli dizinin ieriini kopyalamadan nce ve sonra ekrana yazdrarak deiimi gzlemleyiniz.
Console.Write("Metin giriniz: "); string metin = Console.ReadLine(); int i = 0; char[] hedefDizi={'a','b','c','d','e','f','g','h','i','j'}; Console.WriteLine("Dizinin kopyalamadan nceki ierii"); foreach (char harf in hedefDizi) { Console.WriteLine("hedefDizi[{0}]: {1}", i, harf); i++; } metin.CopyTo(1, hedefDizi, 2, 5); Console.WriteLine("Dizinin kopyalamadan sonraki ierii"); i = 0; foreach (char harf in hedefDizi) { Console.WriteLine("hedefDizi[{0}]: {1}", i, harf); i++; }

Yukardaki kod paras altrldnda ve klavyeden 1234567890 verisi girilerek altrldnda aadaki gibi bir ekran kts ile karlarz;

36

Resim 0-8. CopyTo Metodu ile Bir Dizinin eriini Deitirme

2.1.9. EndsWith( )
Birlikte arld metinsel ifade parametre olarak verilen string trndeki ifade ile bitip bitmediini kontrol eden metottur. Geriye bool trnde bir deer dndrr. Eer metin parametre olarak verilen ifade ile bitiyorsa geriye true deerini dndrr. Eer metin parametre olarak verilen ifade ile bitmiyorsa geriye false deerini dndrr. Kullanm:
metin.EndsWith(ifade);

rnek 0-14: Klavyeden girilen metin sesli harf ile bitip bitmediini kontrol eden ve geriye bool trnde bir deer dndren metot tanmlaynz.
static void Main(string[] args) { Console.Write("Metin giriniz: "); string ifade= Console.ReadLine(); if (bitisSesliMi(ifade)) Console.WriteLine("Klavyeden girilen metin sesli harf ile bitiyor"); else Console.WriteLine("Klavyeden girilen metin sesli harf ile bitmiyor"); } static bool bitisSesliMi(string metin) { if (metin.EndsWith("a")) return true; else if (metin.EndsWith("e"))

37

return true; else if (metin.EndsWith("")) return true; else if (metin.EndsWith("i")) return true; else if (metin.EndsWith("o")) return true; else if (metin.EndsWith("")) return true; else if (metin.EndsWith("u")) return true; else if (metin.EndsWith("")) return true; else return false; }

Yukardaki uygulamay eitli kelime girileri ile deneyerek pekitiriniz.

2.1.10. IndexOf( )
Bu metodun birden fazla kullanm ekli vardr. 2.1.10.1. IndexOf(char) Birlikte arld metinsel ifade ierisinde parametre olarak verilen karakteri arar ve geriye bu karakterin metin ierisinde ilk bulunduu karakter srasn dndrr. Metnin ilk karakterinin indeks numarasnn sfr (0) olduunu unutmaynz. Eer aranan karakter kelime ierisinde bulunamazsa geriye -1 deeri dndrr. Bu metot byk/kk harf duyarl olduu iin aranan karakterin byk/kk olma durumlarna dikkat ediniz. Kullanm:
int indeks=metin.IndexOf(char);

rnek 0-15: IndexOf(char) metodunun kullanm;


string metin = "Biliim teknolojileri"; Console.WriteLine(metin.IndexOf('T')); Console.WriteLine(metin.IndexOf('e')); Console.WriteLine(metin.IndexOf('i')); Console.WriteLine(metin.IndexOf('z'));

// // // //

-1 9 1 -1

38

2.1.10.2. IndexOf(string) Birlikte arld metinsel ifade ierisinde parametre olarak verilen string ifadeyi arar ve geriye bu ifadenin, metin ierisinde ilk bulunduu karakter srasn dndrr. Eer aranan ifade metin ierisinde bulunamazsa geriye -1 deeri dndrr. Bu metot byk/kk harf duyarl olduu iin aranan ifadenin byk/kk olma durumlarna dikkat ediniz. Kullanm:
int indeks=metin.IndexOf(string);

rnek 0-16: IndexOf(string) metodunun kullanm;


string metin = "Biliim teknolojileri"; Console.WriteLine(metin.IndexOf("biliim")); Console.WriteLine(metin.IndexOf("Biliim")); Console.WriteLine(metin.IndexOf("loji")); Console.WriteLine(metin.IndexOf("Bilisim")); // // // // -1 0 13 -1

2.1.10.3. IndexOf(char deger,int baslangic) Birlikte arld metinsel ifade ierisinde, parametre olarak verilen karakteri, yine parametre olarak verilen balang indeksinden balayarak arar ve geriye bu ifadenin, metin ierisinde balang indeksinden sonra ilk bulunduu karakter srasn dndrr. Eer aranan ifade metin ierisinde bulunamazsa geriye -1 deeri dndrr. Bu metot byk/kk harf duyarl olduu iin aranan ifadenin byk/kk olma durumlarna dikkat ediniz. Kullanm:
int indeks=metin.IndexOf(char deger,int baslangic);

rnek 0-17: IndexOf(char deger,int baslangic) metodunun kullanm;


string metin = "Biliim teknolojileri"; Console.WriteLine(metin.IndexOf('T',3)); Console.WriteLine(metin.IndexOf('e',10)); Console.WriteLine(metin.IndexOf('i',4)); Console.WriteLine(metin.IndexOf('o',18)); // // // // -1 18 5 -1

39

2.10.1.4. IndexOf(string deger,int baslangic) Birlikte arld metinsel ifade ierisinde, parametre olarak verilen metinsel ifadeyi, yine parametre olarak verilen balang indeksinden balayarak arar ve geriye bu ifadenin, metin ierisinde balang indeksinden sonra ilk bulunduu karakter srasn dndrr. Eer aranan ifade metin ierisinde bulunamazsa geriye -1 deeri dndrr. Bu metot byk/kk harf duyarl olduu iin aranan ifadenin byk/kk olma durumlarna dikkat ediniz. Kullanm:
int indeks=metin.IndexOf(string deger,int baslangic);

rnek 0-18: IndexOf(string deger,int baslangic) metodunun kullanm;


string metin = "Biliim teknolojileri"; Console.WriteLine(metin.IndexOf("biliim",0)); Console.WriteLine(metin.IndexOf("Biliim",1)); Console.WriteLine(metin.IndexOf("loji",3)); Console.WriteLine(metin.IndexOf("il",2)); // // // // -1 -1 13 16

2.1.11. Insert(int baslangic,string value )


Parametre olarak verilen int trndeki balang indeksinden balayarak, yine parametre olarak verilen metinsel ifadeyi, arld metnin ierisine eklemeye yarayan metottur. Geriye string trnde metinsel bir ifade dndrr. Kullanm:
string yeniMetin=metin.Insert(int baslangic, string eklenecek);

rnek 0-19: Insert(int baslangic, string deger) metodunun kullanm;


string metin = "Elektrik teknolojileri"; string yeniMetin=metin.Insert(9, "ve Elektronik "); Console.Write(yeniMetin);

Yukardaki kod paras altrldnda aadaki gibi ekran kts ile karlarz;

Resim 0-9. Insert( ) Metodu ile Metin erisine Metin Ekleme

40

2.1.12. LastIndexOf( )
Bu metodun da IndexOf metotdu gibi birden fazla kullanm ekli vardr. 2.1.12.1. LastIndexOf (char) Birlikte arld metinsel ifade ierisinde parametre olarak verilen karakteri arar ve geriye bu karakterin metin ierisinde son bulunduu karakter srasn dndrr. Metnin ilk karakterinin indeks numarasnn sfr (0) olduunu unutmaynz. Eer aranan karakter kelime ierisinde bulunamazsa geriye -1 deeri dndrr. Bu metot byk/kk harf duyarl olduu iin aranan karakterin byk/kk olma durumlarna dikkat ediniz. Kullanm:
int indeks=metin.LastIndexOf(char);

rnek 0-20: LastIndexOf(char) metodunun kullanm;


string metin = "Biliim teknolojileri"; Console.WriteLine(metin.LastIndexOf('T')); Console.WriteLine(metin.LastIndexOf('e')); Console.WriteLine(metin.LastIndexOf('i')); Console.WriteLine(metin.LastIndexOf('z')); // // // // -1 18 20 -1

2.1.12.2. LastIndexOf (string) Birlikte arld metinsel ifade ierisinde parametre olarak verilen string ifadeyi arar ve geriye bu ifadenin, metin ierisinde son bulunduu karakter srasn dndrr. Eer aranan ifade metin ierisinde bulunamazsa geriye -1 deeri dndrr. Bu metot byk/kk harf duyarl olduu iin aranan ifadenin byk/kk olma durumlarna dikkat ediniz. Kullanm:
int indeks=metin.LastIndexOf(string);

rnek 0-21: LastIndexOf(string) metodunun kullanm;


string metin = "Biliim teknolojileri"; Console.WriteLine(metin.LastIndexOf("biliim")); Console.WriteLine(metin.LastIndexOf("Biliim")); Console.WriteLine(metin.LastIndexOf("il")); Console.WriteLine(metin.LastIndexOf("Bilisim")); // // // // -1 0 16 -1

41

2.1.12.3. LastIndexOf (char deger,int baslangic) Birlikte arld metinsel ifade ierisinde, parametre olarak verilen karakteri, yine parametre olarak verilen balang indeksinden balayarak arar ve geriye bu ifadenin, metin ierisinde balang indeksinden sonra son bulunduu karakter srasn dndrr. Eer aranan ifade metin ierisinde bulunamazsa geriye -1 deeri dndrr. Bu metot byk/kk harf duyarl olduu iin aranan ifadenin byk/kk olma durumlarna dikkat ediniz. Kullanm:
int indeks=metin.LastIndexOf(char deger,int baslangic);

rnek 0-22: LastIndexOf(char deger,int baslangic) metodunun kullanm;


string metin = "Biliim teknolojileri"; Console.WriteLine(metin.LastIndexOf('T',3)); Console.WriteLine(metin.LastIndexOf('e',10)); Console.WriteLine(metin.LastIndexOf('i',4)); Console.WriteLine(metin.LastIndexOf('o',18)); // // // // -1 9 13 14

2.1.12.4. LastIndexOf(string deger,int baslangic) Birlikte arld metinsel ifade ierisinde, parametre olarak verilen metinsel ifadeyi, yine parametre olarak verilen balang indeksinden balayarak arar ve geriye bu ifadenin, metin ierisinde balang indeksinden sonra son bulunduu karakter srasn dndrr. Eer aranan ifade metin ierisinde bulunamazsa geriye -1 deeri dndrr. Bu metot byk/kk harf duyarl olduu iin aranan ifadenin byk/kk olma durumlarna dikkat ediniz. Kullanm:
int indeks=metin.LastIndexOf(string deger,int baslangic);

rnek 0-23: LastIndexOf(string deger,int baslangic) metodunun kullanm;


string metin = "Biliim teknolojileri"; Console.WriteLine(metin.LastIndexOf("biliim",0)); Console.WriteLine(metin.LastIndexOf("Biliim",1)); Console.WriteLine(metin.LastIndexOf("im",15)); Console.WriteLine(metin.LastIndexOf("il",2)); // // // // -1 -1 5 1

42

2.1.13. PadLeft ( )
PadLeft metodunun 2 farkl kullanm vardr. 2.1.13.1. PadLeft(int deger) PadLeft( ) metodunun bu kullanmnda, birlikte arld metne parametre olarak verilen deer kadar karakterlik bir alan ayrr ve metni saa hizalanm yeni bir metinsel ifade geriye dndrr. Hizalamann grlebilmesi iin parametre olarak verilen deerin metnin karakter uzunluundan fazla olduundan emin olunuz. Kullanm:
string yeniMetin=metin.PadLeft(int deger);

rnek 0-24: PadLeft(int deger) metodunun kullanm;


string metin = "Yerky"; string metin2 = "Teknik"; string metin3 = "ve"; string metin4 = "Endstri"; string metin5 = "Meslek"; string metin6 = "Lisesi"; Console.WriteLine(metin.PadLeft(20)); Console.WriteLine(metin2.PadLeft(20)); Console.WriteLine(metin3.PadLeft(20)); Console.WriteLine(metin4.PadLeft(20)); Console.WriteLine(metin5.PadLeft(20)); Console.WriteLine(metin6.PadLeft(20));

Yukardaki kod paras altrldnda aadaki gibi bir ekran grntsyle karlarz;

Resim 0-10. PadLeft(int deger) Metodunun Kullanm

2.1.13.2. PadLeft(int deger,char karakter) PadLeft( ) metodunun bu kullanmnda da bir nceki kullanmda olduu gibi birlikte arld metne parametre olarak verilen deer kadar karakterlik bir alan ayrr ve metni saa hizalanm yeni bir metinsel ifade geriye dndrr. Ancak bir nceki kullanmda metin hizalanrken metnin sol taraf boluk karakteriyle dolduruluyordu. Bu kullanmda ise parametre olarak verilen karakter bu doldurma ilemi iin kullanlr.

43

Hizalamann grlebilmesi iin parametre olarak verilen deerin metnin karakter uzunluundan fazla olduundan emin olunuz. Kullanm:
string yeniMetin=metin.PadLeft(int deger,char karakter);

rnek 0-25: PadLeft(int deger,char karakter) metodunun kullanm;


string metin = "Yerky"; string metin2 = "Teknik"; string metin3 = "ve"; string metin4 = "Endstri"; string metin5 = "Meslek"; string metin6 = "Lisesi"; Console.WriteLine(metin.PadLeft(20, Console.WriteLine(metin2.PadLeft(20, Console.WriteLine(metin3.PadLeft(20, Console.WriteLine(metin4.PadLeft(20, Console.WriteLine(metin5.PadLeft(20, Console.WriteLine(metin6.PadLeft(20,

'_')); '*')); '$')); '-')); '+')); '/'));

Yukardaki kod paras altrldnda aadaki gibi bir ekran grntsyle karlarz;

Resim 0-11. PadLeft(int deger,char karakter) Metodunun Kullanm

Yukardaki resimden de grlecei zere hizalama ileminde boluklarn doldurulmas eitlik karakterler ile gerekletirilmitir.

2.1.14. PadRight ( )
PadRight metodunun 2 farkl kullanm vardr. 2.1.14.1. PadRight (int deger) PadRight( ) metodunun bu kullanmnda, birlikte arld metne parametre olarak verilen deer kadar karakterlik bir alan ayrr ve metni sola hizalanm yeni bir metinsel ifade geriye dndrr.

44

PadLeft( ) metodunun kullanmyla tamamen ayn olan bu metot ile metinsel ifade bu kez sola hizal olarak yeni bir metinsel ifade geriye dndrr. Hizalamann grlebilmesi iin parametre olarak verilen deerin metnin karakter uzunluundan fazla olduundan emin olunuz. Kullanm:
string yeniMetin=metin.PadRight(int deger);

rnek 0-26: PadRight(int deger) metodunun kullanm;


string metin = "Yerky"; string metin2 = "Teknik"; string metin3 = "ve"; string metin4 = "Endstri"; string metin5 = "Meslek"; string metin6 = "Lisesi"; Console.WriteLine(metin.PadRight(20) + metin2.PadRight(20)); Console.WriteLine(metin3.PadRight(20) + metin4.PadRight(20)); Console.WriteLine(metin5.PadRight(20) + metin6.PadRight(20));

Yukardaki kod paras altrldnda aadaki gibi bir ekran grntsyle karlarz;

Resim 0-12. PadRight(int deger) Metodunun Kullanm

2.1.14.2. PadRight(int deger,char karakter) PadRight( ) metodunun bu kullanmnda da bir nceki kullanmda olduu gibi birlikte arld metne parametre olarak verilen deer kadar karakterlik bir alan ayrr ve metni sola hizalanm yeni bir metinsel ifade geriye dndrr. Ancak bir nceki kullanmda metin hizalanrken metnin sa taraf boluk karakteriyle dolduruluyordu. Bu kullanmda ise parametre olarak verilen karakter bu doldurma ilemi iin kullanlr. Hizalamann grlebilmesi iin parametre olarak verilen deerin metnin karakter uzunluundan fazla olduundan emin olunuz. Kullanm:
string yeniMetin=metin.PadRight(int deger,char karakter);

45

rnek 0-27: PadRight(int deger,char karakter) metodunun kullanm;


string metin = "Yerky"; string metin2 = "Teknik"; string metin3 = "ve"; string metin4 = "Endstri"; string metin5 = "Meslek"; string metin6 = "Lisesi"; Console.WriteLine(metin.PadRight(20, Console.WriteLine(metin2.PadRight(20, Console.WriteLine(metin3.PadRight(20, Console.WriteLine(metin4.PadRight(20, Console.WriteLine(metin5.PadRight(20, Console.WriteLine(metin6.PadRight(20,

'_')); '*')); '$')); '-')); '+')); '/'));

Yukardaki kod paras altrldnda aadaki gibi bir ekran grntsyle karlarz;

Resim 0-13. PadRight(int deger,char karakter) Metodunun Kullanm

Yukardaki resimden de grlecei zere hizalama ileminde boluklarn doldurulmas eitlik karakterler ile gerekletirilmitir.

2.1.15. Remove ( )
Remove metodunun 2 farkl kullanm vardr. 2.1.15.1. Remove (int deger) Birlikte arld metnin, parametre olarak verilen deerinin bulunduu indeks deerinden itibaren sonuna kadar olan ksmn siler. Silinme ileminden arta kalan metni geriye dndrr. Kullanm:
string yeniMetin=metin.Remove(int deger);

rnek 0-28: Remove(int deger) metodunun kullanm;


string metin = "Yerky"; Console.WriteLine(metin.Remove(3)); Console.WriteLine(metin.Remove(2)); Console.WriteLine(metin.Remove(5));

46

Yukardaki kod paras altrldnda aadaki gibi bir ekran grntsyle karlarz;

Resim 0-14. Remove(int deger) Metodu ile Metin Krpma lemi

2.1.15.2. Remove (int deger,int adet) Birlikte arld metnin, parametre olarak verilen deerinin bulunduu indeks deerinden itibaren yine parametre olarak verilen adet kadar olan ksmn siler. Silinme ileminden arta kalan metni geriye dndrr. Kullanm:
string yeniMetin=metin.PadRight(int deger,int adet);

rnek 0-29: Remove(int deger,int adet) metodunun kullanm;


string metin = "Biliim Teknolojileri"; Console.WriteLine(metin.Remove(3, 2)); Console.WriteLine(metin.Remove(2, 4)); Console.WriteLine(metin.Remove(5, 6));

Yukardaki kod paras altrldnda aadaki gibi bir ekran grntsyle karlarz;

Resim 0-15. Remove(int deger,int adet) Metodu ile Metin Krpma lemi

2.1.16. Replace ( )
Replace metodunun 2 farkl kullanm vardr.

47

2.1.16.1. Replace (char eski, char yeni) Birlikte arld metin ierisinde, ilk parametredeki karakterleri, ikinci parametredeki karakter deerleriyle deitiren metottur. Geriye deitirme ileminin gerekletirildii string trnde bir ifade dndrr. Kullanm:
string yeniMetin=metin.Replace(char eski,char yeni);

rnek 0-30: Replace(int deger,int adet) metodunun kullanm;


string metin = "Biliim Teknolojileri"; Console.WriteLine("Deitirilen: "+metin.Replace('i', '#')); Console.WriteLine("Deiimden sonra: "+metin);

Yukardaki kod paras altrldnda aadaki gibi bir ekran grntsyle karlarz;

Resim 0-16. Replace(char eski, char yeni) Metodu ile Karakter Deitirme

2.1.16.2. Replace (string eski, string yeni) Replace metodunun bir nceki kullanmndan fark parametre olarak bu kez char trnde karakterler yeni string trnde metinsel ifade almasdr. Kullanm:
string yeniMetin=metin.Replace(string eski, string yeni);

rnek 0-31: Replace(int deger,int adet) metodunun kullanm;


string metin = "Biliim Teknolojileri"; Console.WriteLine("Deitirilen: "+metin.Replace("Biliim", "Metal")); Console.WriteLine("Deiimden sonra: "+metin);

Yukardaki kod paras altrldnda aadaki gibi bir ekran grntsyle karlarz;

48

Resim 0-17. Replace(string eski, string yeni) Metodu ile Metin Deitirme

2.1.17. Split ( )
Split( ) metodu, arld metni istenilen karakterden itibaren paralara blmek iin kullanlan bir metottur. Eer istenilen karakter mevcut metin ifadesi ierisinde yer alyorsa, Split( ) metodu metni karakterlerden ncesi ve sonras eklinde paralara ayrr ve bu paralar string trnde bir dizi ierisinde saklar. Geriye de bu string[] trndeki diziyi dndrr. Kullanm:
string[] dizi=metin.Split(char karakter);

rnek 0-32: Split(char karakter) metodunun kullanm;


string metin = "Biliim Teknolojileri"; Console.WriteLine("Boluktan blnrse"); Console.WriteLine("-------------------"); foreach(string harf in metin.Split(' ')) Console.WriteLine(harf); Console.WriteLine(" "); Console.WriteLine("i harflerinden blnrse"); Console.WriteLine("-------------------"); foreach (string harf in metin.Split('i')) Console.WriteLine(harf);

Yukardaki kod paras altrldnda aadaki gibi bir ekran grntsyle karlarz;

Resim 0-18. Split(char karakter) Metodu ile Metin Paralama

2.1.18. StartsWith ( )
Birlikte arld metinsel ifade parametre olarak verilen string trndeki ifade ile balayp balamadn kontrol eden metottur. Geriye bool trnde bir deer dndrr. Eer metin parametre olarak verilen ifade ile balyorsa geriye true deerini dndrr. Eer metin parametre olarak verilen ifade ile balamyorsa geriye false deerini dndrr.

49

Kullanm:
metin.StartsWith(ifade);

rnek 0-33: Klavyeden girilen kullanc adnn rakamla balayp balamadn kontrol eden, eer kullanc ad rakam ile balyorsa uyar mesaj veren bir metot tanmlaynz.
static void Main(string[] args) { Console.Write("Kullanc ad belirleyiniz: "); string kAdi= Console.ReadLine(); if (KullaniciAdiKontrol(kAdi)) Console.WriteLine("Kullanc ad tanmnz baarl"); else Console.WriteLine("Kullanc ad say ile balayamaz"); } static bool KullaniciAdiKontrol(string kAdi) { if (kAdi.StartsWith("1")) return false; else if (kAdi.StartsWith("2")) return false; else if (kAdi.StartsWith("3")) return false; else if (kAdi.StartsWith("4")) return false; else if (kAdi.StartsWith("5")) return false; else if (kAdi.StartsWith("6")) return false; else if (kAdi.StartsWith("7")) return false; else if (kAdi.StartsWith("8")) return false; else if (kAdi.StartsWith("9")) return false; else if (kAdi.StartsWith("0")) return false; else return true; }

Yukardaki uygulamay eitli kelime girileri ile deneyerek pekitiriniz.

2.1.19. Substring ( )
Substring( ) metodunun iki kullanm vardr.

50

2.1.19.1. Substring (int indeks) Birlikte arld metni parametre olarak verilen indeks deerinden itibaren keser ve arta kalan metni geriye string trnde dndren metottur. Kullanm:
string yeniMetin=metin.Substring(int indeks);

rnek 0-34: Substring(int indeks) metodunun kullanm;


string metin = "Biliim Teknolojileri"; Console.WriteLine(metin.Substring(3)); Console.WriteLine(metin.Substring(8)); Console.WriteLine(metin.Substring(14)); //iim Teknolojileri //Teknolojileri //ojileri

2.1.19.2. Substring (int indeks, int uzunluk) Substring metodunun bu kullanmnda ise ilk parametre indeks deerini, ikinci parametre ise ka karakter uzunluunda bir metnin kesileceini belirtir. Kullanm:
string yeniMetin=metin.Substring(int indeks,int uzunluk);

rnek 0-35: Substring (int indeks, int uzunluk) metodunun kullanm;


string metin = "Biliim Teknolojileri"; Console.WriteLine(metin.Substring(3,4)); //iim Console.WriteLine(metin.Substring(8,3)); //Tek Console.WriteLine(metin.Substring(14,1)); //o

2.1.20. ToLower ( )
Birlikte arld metninin tm karakterlerini kk harfe dntrerek yeni bir metin geriye dndrr. Kullanm:
string yeniMetin=metin.ToLower();

rnek 0-36: ToLower() metodunun kullanm;


string metin = "Biliim Teknolojileri"; Console.WriteLine(metin.ToLower()); //biliim teknolojileri string metin2= "yERKy tEKNK Ve ENdsTR"; Console.WriteLine(metin2.ToLower()); //yerky teknik ve endstri

51

2.1.21. ToUpper ( )
ToLower( ) metodunun tam tersi eklinde alr ve birlikte arld metninin tm karakterlerini byk harfe dntrerek yeni bir metin geriye dndrr. Kullanm:
string yeniMetin=metin.ToUpper();

rnek 0-37: ToUpper() metodunun kullanm;


string metin = "Biliim Teknolojileri"; Console.WriteLine(metin.ToUpper()); //BLM TEKNOLOJLER string metin2= "yERKy tEKNK Ve ENdsTR"; Console.WriteLine(metin2.ToUpper()); //YERKY TEKNK VE ENDSTR

2.2. Matematiksel (Math) Metotlar


Programlama dili ierisindeki Math snf altnda bulunan ve matematiksel baz ilem ve fonksiyonlar daha kolay yapabilmek iin bir takm hazr metotlar vardr. Matematiksel metotlardan sk kullanlanlar unlardr; - Abs - Max - Sign - Tan - BigMul - Min - Sqrt - Acos - Ceiling - Pow - Cos - Asin - DivRem - Round - Sin - Atan

2.2.1. Abs( )
Abs( ) metodu parametre olarak verilen saynn mutlak deerini veren metottur. Parametre olarak farkl say trlerinde deerler alabilir ve ald deerin trnde bir deer geri dndrr. Kullanm:
int mutlakDeger=Math.Abs(int sayi); decimal mutlakDeger=Math.Abs(decimal sayi); double mutlakDeger=Math.Abs(double sayi); float mutlakDeger=Math.Abs(float sayi); long mutlakDeger=Math.Abs(long sayi); short mutlakDeger=Math.Abs(short sayi); sbyte mutlakDeger=Math.Abs(sbyte sayi);

52

rnek 0-38: | x - 2| + 2 + |2 + x| ifadesinin sonucunu xin 0dan 10a kadar olan deerleri iin tek tek ekrana yazdran programn kodunu yaznz.
int sonuc=0; for (int x = 0; x <= 10; x++) { sonuc = Math.Abs(x - 2) + 2 + Math.Abs(2 + x); Console.WriteLine("x: {0} iin sonu: {1}",x,sonuc); }

Yukardaki kod paras altrldnda aadaki gibi bir ekran kts ile karlarz;

Resim 0-19. Math.Abs( ) Metodunun Kullanm

2.2.2. BigMul( )
Parametre olarak verilen iki int trndeki saynn arpmn long trnde veren metottur. Kullanm:
long sonuc=Math.BigMul(int a, int b);

rnek 0-39: Math.BigMul( ) metodunun kullanm


long sonuc=Math.BigMul(2,4); sonuc=Math.BigMul(43,2); sonuc=Math.BigMul(9,80); sonuc=Math.BigMul(100,10); // // // // 8 86 720 1000

2.2.3. Ceiling( )
Parametre olarak verilen double trndeki ondalkl saydan byk, en kk tam saynn deerini veren metottur. Kullanm:
decimal sonuc=Math.Ceiling(decimal sayi1); double sonuc2=Math.Ceiling(double sayi2);

53

rnek 0-40: Math.Ceiling( ) metodunun kullanm


double sayi= 2.00; double sonuc=Math.Ceiling(sayi); sayi= 2.01; sonuc=Math.Ceiling(sayi); sayi= 2.50; sonuc=Math.Ceiling(sayi); sayi= 2.99; sonuc=Math.Ceiling(sayi); // 2 // 3 // 3 // 3

2.2.4. DivRem( )
Parametre olarak verilen ilk iki saynn blme ilemini yapar ve geriye blme ileminin sonucunu dndren ve 3. parametre olarak verilen deikene de blme ileminin kalann aktaran metottur. Kullanm:
int bolum=Math.DivRem(int bolunen, int bolen,out int kalan); long bolum=Math.DivRem(long bolunen,long bolen,out long kalan);

rnek 0-41: Math.DivRem( ) metodu ile blme ilemi


int bolunen = 1981; int bolen = 9; int kalan = 0; int bolum = Math.DivRem(bolunen, bolen, out kalan); Console.WriteLine("{0} saysnn {1} saysna blmnde", bolunen, bolen); Console.WriteLine("Blm:{0}", bolum); Console.WriteLine("Kalan:{0}", kalan);

Yukardaki kod paras altrldnda aadaki gibi bir ekran kts ile karlarz;

Resim 0-20. Math.DivRem( ) ile Blme lemi

2.2.5. Max( )
Parametre olarak verilen iki saydan byk olan geriye dndren metottur. Btn say trleri tarafndan desteklenen bir metot eididir.

54

Kullanm:
byte maksimum=Math.Max(byte sayi1,byte sayi2); decimal maksimum=Math.Max(decimal sayi1,decimal sayi2); double maksimum=Math.Max(double sayi1,double sayi2); float maksimum=Math.Max(float sayi1,float sayi2); int maksimum=Math.Max(int sayi1,int sayi2); long maksimum=Math.Max(long sayi1,long sayi2); sbyte maksimum=Math.Max(sbyte sayi1,sbyte sayi2); short maksimum=Math.Max(short sayi1,short sayi2); unit maksimum=Math.Max(unit sayi1,unit sayi2); ulong maksimum=Math.Max(ulong sayi1,ulong sayi2); ushort maksimum=Math.Max(ushort sayi1,ushort sayi2);

rnek 0-42: Math.Max( ) metodu ile klavyeden girilen saylardan byn bulma
Console.Write("1. sayy giriniz:"); int sayi1 = Convert.ToInt32(Console.ReadLine()); Console.Write("2. sayy giriniz:"); int sayi2 = Convert.ToInt32(Console.ReadLine()); int maksimum = Math.Max(sayi1, sayi2); Console.WriteLine("{0} ve {1} saylarndan en by {2} saysdr.", sayi1, sayi2, maksimum);

Yukardaki kod paras altrldnda aadaki gibi bir ekran kts ile karlarz;

Resim 0-21. Math.Max( ) ile En Byk Sayy Blme

2.2.6. Min( )
Parametre olarak verilen iki saydan kk olan geriye dndren metottur. Btn say trleri tarafndan desteklenen bir metot eididir. Kullanm:
byte minimum=Math.Min(byte sayi1,byte sayi2); decimal minimum=Math.Min(decimal sayi1,decimal sayi2); double minimum=Math.Min(double sayi1,double sayi2); float minimum=Math.Min(float sayi1,float sayi2); int minimum=Math.Min(int sayi1,int sayi2); long minimum=Math.Min(long sayi1,long sayi2); sbyte minimum=Math.Min(sbyte sayi1,sbyte sayi2); short minimum=Math.Min(short sayi1,short sayi2); unit minimum=Math.Min(unit sayi1,unit sayi2); ulong minimum=Math.Min(ulong sayi1,ulong sayi2); ushort minimum=Math.Min(ushort sayi1,ushort sayi2);

55

rnek 0-43: Math.Min( ) metodu ile klavyeden girilen saylardan kn bulma


Console.Write("1. sayy giriniz:"); int sayi1 = Convert.ToInt32(Console.ReadLine()); Console.Write("2. sayy giriniz:"); int sayi2 = Convert.ToInt32(Console.ReadLine()); int minimum = Math.Min(sayi1, sayi2); Console.WriteLine("{0} ve {1} saylarndan k {2} saysdr.", sayi1, sayi2, minimum);

Yukardaki kod paras altrldnda aadaki gibi bir ekran kts ile karlarz;

Resim 0-22. Math.Min( ) ile En Byk Sayy Blme

2.2.7. Pow( )
Parametre olarak verilen ilk saynn, yine parametre olarak verilen ikinci say kadar ssn hesaplayan metottur. Kullanm:
double usluSayi=Math.Pow(double x, double y);

Resim 0-23. Math.Pow( ) Kullanm

rnek 0-44: Math.Pow( ) metodunun kullanm


double double double double double usluSayi=Math.Pow(3,3); usluSayi=Math.Pow(2,16); usluSayi=Math.Pow(12,0); usluSayi=Math.Pow(5,-2); usluSayi=Math.Pow(-10,-2); // // // // // 27 65536 1 0.04 0.01

2.2.8. Round( )
Parametre olarak verilen sayy en yakn tam sayya yuvarlayan metottur. Kullanm:
double yuvarlanmis=Math.Round(double sayi);

56

rnek 0-45: Math.Round( ) metodunun kullanm


double double double double yuvarlanmis=Math.Round(3.14); yuvarlanmis=Math.Round(3.499); yuvarlanmis=Math.Round(3.5); yuvarlanmis=Math.Round(3.9999); // // // // 3 3 4 4

2.2.9. Sign( )
Parametre olarak verilen saynn iaretini verir. Say pozitif ise 1, negatif ise -1, say sfra eitse de geriye 0 deerini dndren metottur. Kullanm:
int isaret=Math.Sign(int sayi);

rnek 0-46: Math.Sign( ) metodunun kullanm


int isaret=Math.Sign(26638); int isaret=Math.Sign(-26638); int isaret=Math.Sign(0); // // // 1 -1 0

2.2.10. Sqrt( )
Parametre olarak verilen double trndeki saynn karekk deerini double trnde geriye dndren metottur. Kullanm:
double karekok=Math.Sqrt(double sayi);

rnek 0-47: Klavyeden 2 kenar uzunluu girilen dik genin hipotensnn uzunluunu hesaplayan programn kodunu yaznz.
Console.Write("1. kenar uzunluunu giriniz: "); double kenar1= Convert.ToDouble(Console.ReadLine()); Console.Write("2. kenar uzunluunu giriniz: "); double kenar2 = Convert.ToDouble(Console.ReadLine()); double kenarlarinKareToplami = Math.Pow(kenar1, 2) + Math.Pow(kenar2, 2); double kenar3= Math.Sqrt(kenarlarinKareToplami); Console.WriteLine("Hipotensn uzunluu: "+kenar3);

57

Uyar: Trigonometrik fonksiyonlarda a deerleri radyan cinsinden verilmelidir.

Dilerseniz trigonometrik metotlara gemeden nce verilen derece cinsinden verilen a deerini radyana dntren ve radyan deeri verilen ann derece cinsinden deerini veren basit metotlar yazalm ve bundan sonraki rneklerimizde bu metottan faydalanalm. rnek 0-48: Derece cinsinden a deerini radyan cinsinden a deerine dntren metodun yazm;
static double radyanaDonustur(double derece) { double radyan = 0; double piSayisi = Math.PI; radyan = piSayisi * (derece / 180); return radyan; }

Yukardaki ekilde yazdmz metodu aadaki gibi ararak programlarmz ierisinde kullanabiliriz.
double radyanDegeri=radyanaDonustur(double aci)

rnek 0-49: Radyan cinsinden verilen a deerini derece cinsinden a deerine dntren metodun yazm;
static double aciyaDonustur(double radyan) { double derece = 0; double piSayisi = Math.PI; derece = (radyan / piSayisi) * 180; return derece; }

Yukardaki ekilde yazdmz metodu aadaki gibi ararak programlarmz ierisinde kullanabiliriz.
double dereceDegeri=aciyaDonustur(double radyan)

Matematiksel metotlarn ierisinde yer alan ve trigonometrik ilemlerde ska kullandmz dier metotlar ise unlardr;

58

2.2.11. Cos( )
Parametre olarak verilen radyan a deerinin kosins deerini veren metottur. Kullanm:
double kosinus=Math.Cos(double aci);

rnek 0-50: 0-180 aras 15 ve katlarnn kosins deerini ekrana yazdran programn kodlarn yaznz.
for (double aci = 0; aci <= 180; aci = aci + 15) { double radyanDegeri = radyanaDonustur(aci); double kosinus = Math.Cos(radyanDegeri); Console.WriteLine("{0} asnn kosins deeri: {1:0.00}", aci, kosinus); }

Yukardaki kodlar altrdmz zaman aadaki gibi bir ekran grntsyle karlarz;

Resim 0-24. Math.Cos ile A Deerlerinin Kosinsn Hesaplama

2.2.12. Sin( )
Parametre olarak verilen radyan a deerinin sins deerini veren metottur. Kullanm:
double sinus=Math.Sin(double aci);

rnek 0-51: 0-180 aras 15 ve katlarnn sins deerini ekrana yazdran programn kodlarn yaznz.
for (double aci = 0; aci <= 180; aci = aci + 15) { double radyanDegeri = radyanaDonustur(aci); double sinus = Math.Sin(radyanDegeri); Console.WriteLine("{0} asnn sins deeri: {1:0.00}", aci, sinus); }

59

Yukardaki kodlar altrdmz zaman aadaki gibi bir ekran grntsyle karlarz;

Resim 0-25. Math.Sin ile A Deerlerinin Sinsn Hesaplama

2.2.13. Tan( )
Parametre olarak verilen radyan a deerinin tanjant deerini veren metottur. Kullanm:
double tanjant=Math.Sin(double aci);

rnek 0-52: 0-180 aras 15 ve katlarnn tanjant deerini ekrana yazdran programn kodlarn yaznz.
for (double aci = 0; aci <= 180; aci = aci + 15) { double radyanDegeri = radyanaDonustur(aci); double tanjant = Math.Tan(radyanDegeri); Console.WriteLine("{0} asnn tanjant deeri: {1:0.00}", aci, tanjant); }

Yukardaki kodlar altrdmz zaman aadaki gibi bir ekran grntsyle karlarz;

Resim 0-26. Math.Tan ile A Deerlerinin Tanjantn Hesaplama

60

2.2.14. Acos( )
Parametre olarak verilen kosins deerinin radyan a deerini veren metottur. Kullanm:
double kosinusAcisi=Math.Acos(double kosinus);

2.2.15. Asin( )
Parametre olarak verilen sins deerinin radyan a deerini veren metottur. Kullanm:
double sinusAcisi=Math.Asin(double sinus);

2.2.16. Atan( )
Parametre olarak verilen tanjant deerinin radyan a deerini veren metottur. Kullanm:
double tanjantAcisi=Math.Atan(double tanjant);

2.3. Tarih/Saat (DateTime) Metotlar


Programlama dili ierisinde, tarih ve zamanlar ile ilgili ilemler yaparken bir takm ileri daha kolay yapabilmemiz iin nceden tanmlanm Tarih/Zaman metotlarn kullanrz. Tarih/Zaman (DateTime) metotlarndan sk kullanlanlar unlardr; DateTime snf ile arlan metotlar; Compare, DaysInMonth, IsLeapYear, Parse, DateTime trnde bir ifade ile birlikte arlan metotlar; Subtract, AddDays, AddMonths, AddSeconds, AddMilliseconds AddYears, AddHours, AddMinutes,

Tarih / Zaman metotlarnn ayrntlarn incelemeden nce DateTime snf altnda yeralan ve ska kullanacamz yeleri tanyalm.

2.3.1. MinValue
Bu zellik ile DateTime yaps ile kullanabileceimiz en kk tarih-saat bilgisine eriebiliriz.

61

Kullanm:
DateTime enKucuk=DateTime.MinValue;

Bu sabit zellik arldnda geriye veri tr DateTime olan 01.01.0001 00:00:00 deerini dndrr. Bu deer deitirilemeyen Salt Okunur bir veridir.

2.3.2. MaxValue
Bu zellik ile DateTime yaps ile kullanabileceimiz en byk tarih-saat bilgisine eriebiliriz. Kullanm:
DateTime enBuyuk=DateTime.MaxValue;

Bu sabit zellik arldnda geriye veri tr DateTime olan 31.12.9999 23:59:59 deerini dndrr. Bu deer de ayn MinValue gibi deitirilemeyen Salt Okunur bir veridir. rnek 0-53: DateTime snf ile kullanlabilen en byk ve en kk tarihlerin ekrana yazdrnz;
DateTime enKucuk=DateTime.MinValue; DateTime enBuyuk=DateTime.MaxValue; Console.WriteLine("En byk tarih deeri:{0} ", enBuyuk); Console.WriteLine("En kk tarih deeri:{0} ", enKucuk);

Yukardaki kodlar altrdmz zaman aadaki gibi bir ekran grntsyle karlarz;

Resim 0-27. Sistemdeki En Byk ve En Kk Tarihler

2.3.3. Today
Bu zellik ile DateTime yaps ile birlikte kullanlr ve bugnn tarihini bize DateTime trnde geri dndrr. Kullanm:
DateTime bugun=DateTime.Today;

Programn altrld sistemin tarih deerini gsterir.

62

2.3.4. Now
Bu zellik de DateTime yaps ile birlikte kullanlr ve arld andaki hem tarih hem de saat bilgisini bize DateTime trnde geri dndrr. Kullanm:
DateTime simdi=DateTime.Now;

rnek 0-54: DateTime snf ile kullanlabilen Now ve Today zelliklerinin kullanm
DateTime bugun=DateTime.Today; DateTime simdi=DateTime.Now; Console.WriteLine("Bugn :{0} ", bugun); Console.WriteLine("uan :{0} ", simdi);

Yukardaki kodlar altrdmz zaman aadaki gibi bir ekran grntsyle karlarz;

Resim 0-28. Today ve Now Kullanm

DateTime snfndan tretilmi bir nesne ile alrken ska kullanacamz zellikler aadaki tabloda aklamalaryla birlikte verilmitir; zellik Ad Date Month Day Year DayOfWeek DayOfYear TimeOfDay Hour Minute Second Millisecond Aklama Nesneye ilikin saat dndaki bilgiyi verir. Nesnenin ay bilgisini verir. Nesnenin gn bilgisini verir. Nesnenin yl bilgisini verir. Haftann gn, Nesnenin haftann kanc gn olduu bilgisini verir. Nesnenin yln kanc gn olduu bilgisini verir. Nesneye ait saat bilgisini verir. Nesnenin saat bilgisini verir. Nesnenin dakika bilgisini verir. Nesnenin saniye bilgisini verir. Nesnenin milisaniye bilgisini verir. Geri Dn Tr DateTime int int int DayOfWeek int TimeSpan int int int int

63

rnek 0-55: DateTime snf ile kullanlabilen zelliklerin kullanm ve ekrana yazdrlmas
DateTime zaman = DateTime.Now; DateTime tarih = zaman.Date; int ay=zaman.Month; int gun=zaman.Day; int yil=zaman.Year; DayOfWeek haftaninGunu=zaman.DayOfWeek; int yilinKacinciGunu=zaman.DayOfYear; TimeSpan sure=zaman.TimeOfDay; int saat=zaman.Hour; int dakika=zaman.Minute; int saniye=zaman.Second; int salise = zaman.Millisecond; Console.WriteLine("uandaki Zaman Console.WriteLine("Tarih Bilgisi Console.WriteLine("Ay Bilgisi Console.WriteLine("Gn Bilgisi Console.WriteLine("Yl Bilgisi Console.WriteLine("Haftann Gn Console.WriteLine("Yln Kanc Gn yilinKacinciGunu); Console.WriteLine("Sre Console.WriteLine("Saat Console.WriteLine("Dakika Console.WriteLine("Saniye Console.WriteLine("Salise : : : : : : : : : : : : {0}", {0}", {0}", {0}", {0}", {0}", {0}", {0}", {0}", {0}", {0}", {0}", zaman); tarih); ay); gun); yil); haftaninGunu);

sure); saat); dakika); saniye); salise);

Yukardaki kodlar altrdmz zaman aadaki gibi bir ekran grntsyle karlarz;

Resim 0-29. DateTime Nesnesinin zelliklerinin Kullanm

DateTime Snfndan tretilen nesnelerle birlikte kullanlan zelliklerden sonra imdi de DateTime snf altnda yer alan metotlarmza gz atalm.

64

2.3.5. DateTime.Compare( )
Bu metot ile DateTime trnde parametre olarak verilen iki deer karlatrlr ve geriye int trnde bir deer dndrr. Eer karlatrmada; 1. parametredeki tarih deeri, 2. parametredeki tarih deerinden daha eski bir tarih deeri ise sonu -1, 2. parametredeki tarih deeri, 1. parametredeki tarih deerinden daha eski bir tarih deeri ise sonu 1, 1. parametredeki tarih deeri ile 2. parametredeki tarih deeri birbirine eitse sonu 0,

olarak geriye dner. Kullanm:


int sonuc=DateTime.Compare(DateTime tarih1, DateTime tarih2);

rnek 0-56: 31/12/1990 tarihinden nce domu kiilerin bavuru yapabildikleri bir snava, klavyeden doum tarihi bilgileri girilen kiinin, snava girip giremeyeceini kontrol eden programn kodlarn yaznz.
DateTime tarih1 = new DateTime(1990, 12, 31); Console.Write("Doum tarihinizi GG/AA/YYYY eklinde giriniz: "); //Klavyeden girilen string trndeki doum tarihi DateTime trne dntrlyor. DateTime dogumTarihi = Convert.ToDateTime(Console.ReadLine()); int sonuc = DateTime.Compare(tarih1,dogumTarihi); if(sonuc==-1) Console.Write("zgnz, snava giremezsiniz..."); else Console.Write("Tebrikler, snava girebilirsiniz...");

2.3.6. DateTime.DaysInMonth( )
Bu metot ile int trnde parametre olarak verilen yl ve ay bilgilerine denk gelen ayn ka gnden olutuunu, geriye int trnde bir deer dndrr. Kullanm:
int gunSayisi=DateTime.Compare(int yil, int ay); int int int int gunSayisi gunSayisi gunSayisi gunSayisi = = = = DateTime.DaysInMonth(2008,2); DateTime.DaysInMonth(2009,8); DateTime.DaysInMonth(2010,4); DateTime.DaysInMonth(2011,2); // // // // 29 31 30 28

65

2.3.7. DateTime.IsLeapYear( )
Bu metot ile int trnde parametre olarak verilen yln, artk yl (ubat aynn 29 gnden, yln toplam 366 gnden olutuu) olup olmadn kontrol eder, geriye bool trnde bir deer dndrr. Eer yl artk ylsa geriye true, deilse false deeri dndrr. Kullanm:
bool artikYilMi=DateTime.IsLeapYear(int yil);

bool bool bool bool

artikYilMi=DateTime.IsLeapYear(2008); artikYilMi=DateTime.IsLeapYear(2010); artikYilMi=DateTime.IsLeapYear(2012); artikYilMi=DateTime.IsLeapYear(1996);

// // // //

true false true true

2.3.8. DateTime.Parse( )
Bu metot ile string trnde parametre olarak verilen metni DateTime trndeki tarih ve saat bilgisine dntrr. Kullanm:
DateTime tarih=DateTime.Parse(string metin);

rnek 0-57: DateTime.Parse( ) ile metinlerin tarihe dntrlmesi


string string string string string string string metin1 metin2 metin3 metin4 metin5 metin6 metin7 = = = = = = = "14.08.1990"; "14/08/1990"; "14/Austos/1990"; "14.ubat.1990 14:53"; "14/08/1990 14:53:05"; "08/1990"; "Austos/1990"; = = = = = = = DateTime.Parse(metin1); DateTime.Parse(metin2); DateTime.Parse(metin3); DateTime.Parse(metin4); DateTime.Parse(metin5); DateTime.Parse(metin6); DateTime.Parse(metin7); ==> ==> ==> ==> ==> ==> ==> : : : : : : : {1}" {1}" {1}" {1}" {1}" {1}" {1}" , , , , , , , metin1, metin2, metin3, metin4, metin5, metin6, metin7, tarih1); tarih2); tarih3); tarih4); tarih5); tarih6); tarih7);

DateTime DateTime DateTime DateTime DateTime DateTime DateTime

tarih1 tarih2 tarih3 tarih4 tarih5 tarih6 tarih7

Console.WriteLine("{0} Console.WriteLine("{0} Console.WriteLine("{0} Console.WriteLine("{0} Console.WriteLine("{0} Console.WriteLine("{0} Console.WriteLine("{0}

66

Yukardaki kod paras altrldnda aadaki gibi bir ekran kts ile karlarz;

Resim 0-30. DateTime.Parse( ) ile Metni Tarihe Dntrme

Yukardaki rnekte eitli biimlerde metin olarak verilen tarih/saat bilgilerinin nasl sonular verdiini inceleyiniz. Bu ksmdan sonra anlatlacak olan tarih/zaman metotlar direkt olarak DateTime snf zerinden deil, DateTime snfndan tretilmi nesneler zerinden arlacak olan metotlardr. DateTime Snfndan tretilen nesnelerle birlikte kullanlan metotlarda unlardr;

2.3.9. Subtract( )
Bu metot ile DateTime trnde tretilmi bir nesnenin deerinden, parametre olarak verilen DateTime veya TimeSpan trndeki deer kartlr ve geriye TimeSpan trnde bir deer dndrr. Kullanm:
TimeSpan yeniTarih=eskiTarih.Subtract(DateTime cikarilanTarih);

TimeSpan trnde dn yaplan deer zerinden; TotalDays zellii ile toplam gn saysn, TotalHours zellii ile toplam saati, TotalMinutes zellii ile toplam dakikay, TotalSeconds zellii ile toplam saniyeyi TotalMilliseconds zellii ile toplam saliseyi grebiliriz. rnek 0-58: uandaki zamandan doum tarihinizi kartarak ne kadar sredir hayatta olduunuzu hesaplaynz.
DateTime bugun= DateTime.Now; Console.Write("Doum tarihinizi giriniz: "); DateTime dogumTarihiniz = DateTime.Parse(Console.ReadLine()); TimeSpan sure = bugun.Subtract(dogumTarihiniz); Console.WriteLine("Dnya zerinde geleli {0} gn olmu.", sure.TotalDays);

67

Console.WriteLine("Dnya sure.TotalHours); Console.WriteLine("Dnya sure.TotalMinutes); Console.WriteLine("Dnya sure.TotalSeconds); Console.WriteLine("Dnya sure.TotalMilliseconds);

zerinde geleli {0} saat olmu.", zerinde geleli {0} dakika olmu.", zerinde geleli {0} saniye olmu.", zerinde geleli {0} salise olmu.",

2.3.10. AddDays( )
Bu metot ile DateTime trnde tretilmi bir nesneye, parametre olarak verilen double trndeki deer kadar gn eklenir ve geriye DateTime trnde bir deer dndrr. Kullanm:
DateTime yeniTarih=eskiTarih.AddDays(double gunSayisi);

2.3.11. AddMonths( )
Bu metot ile DateTime trnde tretilmi bir nesneye, parametre olarak verilen double trndeki deer kadar ay eklenir ve geriye DateTime trnde yeni bir tarih dndrr. Kullanm:
DateTime yeniTarih=eskiTarih.AddDays(double ay);

2.3.12. AddYears( )
Bu metot ile DateTime trnde tretilmi bir nesneye, parametre olarak verilen double trndeki deer kadar yl eklenir ve geriye DateTime trnde yeni bir tarih dndrr. Kullanm:
DateTime yeniTarih=eskiTarih.AddDays(double yil);

2.3.13. AddHours( )
Bu metot ile DateTime trnde tretilmi bir nesneye, parametre olarak verilen double trndeki deer kadar saat eklenir ve geriye DateTime trnde yeni bir tarih dndrr. Kullanm:
DateTime yeniTarih=eskiTarih.AddDays(double saat);

68

2.3.14. AddMinutes( )
Bu metot ile DateTime trnde tretilmi bir nesneye, parametre olarak verilen double trndeki deer kadar dakika eklenir ve geriye DateTime trnde yeni bir tarih dndrr. Kullanm:
DateTime yeniTarih=eskiTarih.AddDays(double dakika);

2.3.15. AddSeconds( )
Bu metot ile DateTime trnde tretilmi bir nesneye, parametre olarak verilen double trndeki deer kadar saniye eklenir ve geriye DateTime trnde yeni bir tarih dndrr. Kullanm:
DateTime yeniTarih=eskiTarih.AddDays(double saniye);

2.3.16. AddMilliseconds( )
Bu metot ile DateTime trnde tretilmi bir nesneye, parametre olarak verilen double trndeki deer kadar saniye eklenir ve geriye DateTime trnde yeni bir tarih dndrr. Kullanm:
DateTime yeniTarih=eskiTarih.AddDays(double saniye);

rnek 0-59: 12/07/2008 20:12:23:33 tarihinden 5 yl, 6 ay, 28 gn, 23 saat, 29 dakika, 33 saniye ve 43 salise sonrasnn tarihi nedir?
DateTime ilkTarih = new DateTime(2008,07,12,20,12,23,33); DateTime bitisTarihi = ilkTarih.AddYears(5); bitisTarihi = bitisTarihi.AddMonths(6); bitisTarihi = bitisTarihi.AddDays(28); bitisTarihi = bitisTarihi.AddHours(23); bitisTarihi = bitisTarihi.AddMinutes(29); bitisTarihi = bitisTarihi.AddSeconds(33); bitisTarihi = bitisTarihi.AddMilliseconds(43); Console.WriteLine("lk tarih: "+ ilkTarih); Console.WriteLine("Son tarih: "+ bitisTarihi);

Yukardaki kodlar altrdmz zaman aadaki gibi bir ekran grntsyle karlarz;

Resim 0-31. Ekleme Metotlarnn Toplu Kullanm

69

UYGULAMA FAALYET UYGULAMA FAALYET


lem Basamaklar
Sra No, Ad, Soyad ve Telefon numaras stun balklarna sahip bir tablo hazrlaynz.

neriler
rnek 2.6daki gibi String.Format( ) metodundan faydalanabilirsiniz. PadLeft( ) ve PadRight( ) metotlarnn kullanmlarn ve almalarn inceleyiniz. 1den 5e dngnz kurunuz. PadLeft( ) veya PadRight( ) metotlarndan hangisini kullanacanza karar veriniz. fadenize ilgili biimi verdikten sonra ekrana yazdrnz. 4 ekilde de yukardaki admlardan faydalannz.

Yukardaki ekilleri PadLeft, PadRight metotlarn kullanarak ekrana tek tek yazdrnz. Klavyeden girilen metin ierisindeki Trke karakterleri (,,,,,, ,,,,,) srasyla (c,g,i,o,s,u, C,G,I,O,S,U) harfleriyle deitiren metodu yaznz.

eklindeki bir formln a,b ve c deerlerini klavyeden girerek, x deerini hesaplayan programn kodunu yaznz. Doum gn, doum ay, doum yl bilgileri girildikten sonra, bugne kadar geen sreyi ve haftann hangi gnnde doduunu hesaplayan program yaznz

Parametresi ve geri dn deeri string olan yeni bir metot tanmlaynz. Kelime ierisindeki harfleri tek tek kontrol ediniz. Switch-Case yapsn kullanarak Trke karakterleri tespit edip, daha sonra bunlar yeni deerleriyle deitiriniz. Yeni metni string trnde geri gnderiniz. arpma ilemi iin BigMul( ) metodunu, Karekk almak iin Sqrt( ) metodunu, s almak iin Pow( ) metodunu, Mutlak deeri hesaplamak iin Abs( ) metodunu kullannz. Bugnn tarihinden doum tarihini kartnz ve gecen gn saysn hesaplaynz. DayOfWeek metoduyla doduu gn bulunuz.

70

LME VE DEERLENDRME LME VE DEERLENDRME


Bu faaliyet kapsamnda kazandnz bilgileri, aadaki sorular cevaplayarak belirleyiniz. Aadaki sorular dikkatlice okuyarak doru seenei iaretleyiniz. 1. 2. ki metinsel ifadeyi karlatrmaya yaran metot aadakilerden hangisidir? A) Compare( ) B) Concat( ) C) Copy( ) D) Format( ) Metinsel ifadenin ierisinde baka bir ifadeyi aramak iin kullanlan metot aadakilerden hangisidir? A) Concat( ) B) Substring( ) C) Contains( ) D) CopyTo( ) Rakamlardan oluan metinsel bir ifadeyi belirli bir formda yazmak iin kullanlan metinsel metot aadakilerden hangisidir? A) Insert( ) B) Concat( ) C) IndexOf( ) D) Format( ) Aadakilerden hangisi trigonometrik ilemler iin kullanlan bir metottur? A) Sign( ) B) Pow( ) C) Sin( ) D) BigMul( ) Aadakilerden hangisi bir saynn karekkn almak iin kullanlan bir metottur? A) Sqrt( ) B) Cos( ) C) Atan( ) D) Sign( ) Aadakilerden hangisi ondalkl bir sayy yuvarlamak iin kullanlan bir metottur? A) Round( ) B) Abs( ) C) Tan( ) D) BigMul( ) Aadakilerden hangisi IsLeapYear( ) metoduna parametre olarak gnderildiinde, geriye true deeri dner? A) 1923 B) 1453 C) 2012 D) 1881 Aadakilerden bugnn tarihini ve saatini veren zelliktir? A) DateTime.Today B) DateTime.Now C) DateTime.MaxValue D) DateTime.MinValue Aadakilerden hangisi iki tarih arasndaki fark bulmaya yarayan metottur? A) Parse B) Subtract C) AddDays D) AddYears Aadakilerden hangisinin geri dn deerinin tr int trndedir? A) DateTime.Date B) DateTime.DayOfWeek C) DateTime.TimeOfDay D) DateTime.Day

3.

4. 5. 6. 7.

8.

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 Modl Deerlendirmeye geiniz.

71

MODL DEERLENDRME MODL DEERLENDRME


Aadaki cmlelerin banda bo braklan parantezlere, cmlelerde verilen bilgiler doru ise D, yanl ise Y yaznz. 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. ( ) Eer metot bir deer dndrmeyecekse dn-tipi string olarak belirtilmelidir. ( ) Bir metot hi parametre kullanmayacaksa, parametre-listesine void yazlr. ( ) Parametre listesindeki deikenler birbirinden virgl (,) ile ayrlrlar. ( ) Main( ) isimli metot, programmzn almasn balatan metottur. ( ) Ayn isme sahip metotlar oluturamayz. ( ) Bir metot kendi kendini arabilir. Bu tip metotlara da zyineli metotlar denir. ( ) Parametre-listesi farkl fakat isimleri ayn metotlar oluturabiliriz. ( ) Main( ) metodu bir program ierisinde yalnzca bir kez yazlr. ( ) zyineli metotlar, geri dn deeri olmayan metotlardr. ( ) Metotlarda geri dn deeri return anahtar kelimesiyle gnderilir. ( ) Bir string ifadenin bo olup olmadn kontrol etmek iin IsNullOrEmpty( ) metodu kullanlr. ( ) CompareTo( ) metoduyla karlatrlan iki metin eitse, geriye 1 deeri dner. ( ) IndexOf( ) metodu sadece verilen karaktere gre ilem yapar. ( ) Bir saynn mutlak deerini Abs( ) metoduyla buluruz. ( ) Bir saynn ssn almak iin BigMul( ) metodu kullanlr. ( ) Bir saynn negatif veya pozitif olduunu Sign( ) metodu ile buluruz. ( ) Trigonometrik metotlarda a deeri derece olarak verilir. ( ) Atan( ) metodu, parametre olarak verilen ann tanjant deerini hesaplar. ( ) DayOfWeek zellii haftann gn bilgisini verir. ( ) Subtract( ) metodu geriye TimeSpan trnde bir deer dndrr.

18. 19. 20.

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 modle gemek iin retmeninize bavurunuz.

72

CEVAP ANAHTARLARI CEVAP ANAHTARLARI


RENME FAALYET-1N CEVAP ANAHTARI 1 2 3 4 5 6 7 8 9 10 Y D Y Y D D D Y D Y 11 12 13 14 15 16 17 18 19 20 Y Y Y D Y D Y D Y Y

RENME FAALYET-2NN CEVAP ANAHTARI 1 2 3 4 5 6 7 8 9 10 A C D C A A C B B D

MODL DEERLENDRME SORULARI CEVAP ANAHTARI 1 2 3 4 5 6 7 8 9 10 Y Y D D Y D D D Y D 11 12 13 14 15 16 17 18 19 20 D Y Y D Y D Y Y D D

73

KAYNAKA KAYNAKA
ALGAN Sefer, Her Ynyle C#, Pusula Yaynclk, 1.Bask, stanbul, Trkiye, (2003) SCHILDT Herbert, Herkes in C#, Alfa Yaynevi, 1.Bask, stanbul, Trkiye, (2002) ASLAN KAAN, Adan Zye C Klavuzu, Pusula Yaynclk, 8.Bask, stanbul, Trkiye, (2002) Butow, E., Ryan, T.: Your Visual Blueprint For Building .NET Application MSDN : Introduction to C# Programming for the Microsoft .NET Platform (Prerelease)Workbook Hejlsberg, A., Wiltamuth, S.: C# Language Referance Turtschi, A., Werry J., Hack, G., Albahari, J., Nandu S.: C#.NET Web Developers Guide, Syngress Publishing, Inc., Rockaland, USA (2002) Microsoft: C# Language Specification MSDN Yardm Dokmanlar

74

You might also like