PT 04 Metotlar 482BK0121

Embed Size (px)

Citation preview

  • 8/3/2019 PT 04 Metotlar 482BK0121

    1/79

    T.C.

    MLL ETM BAKANLII

    BLM TEKNOLOJLER

    METOTLAR482BK0121

    Ankara, 2011

  • 8/3/2019 PT 04 Metotlar 482BK0121

    2/79

    Bu modl, mesleki ve teknik eitim okul/kurumlarnda uygulanan ereveretim Programlarnda yer alan yeterlikleri kazandrmaya ynelik olarakrencilere rehberlik etmek amacyla hazrlanm bireysel renmemateryalidir.

    Mill Eitim Bakanlnca cretsiz olarak verilmitir.

    PARA LE SATILMAZ.

  • 8/3/2019 PT 04 Metotlar 482BK0121

    3/79

    i

    AIKLAMALAR ...................................................................................................................iiiGR .......................................................................................................................................1RENME FAALYET1 ....................................................................................................21. METOTLAR ........................................................................................................................ 2

    1.1. Metot Kavram ..............................................................................................................21.2. Metot Tanmlama.......................................................................................................... 31.3. Metotlarda Parametre Kullanm...................................................................................51.4. Metotlarla ilgili nemli zellikler ............................................................................... 91.5. zyineli (Rekrsif-Recursive) Metotlar .....................................................................141.6. Main( ) Metodu ........................................................................................................... 15UYGULAMA FAALYET .............................................................................................. 20LME VE DEERLENDRME ....................................................................................21

    RENME FAALYET2 ..................................................................................................222. HAZIR METOTLAR .........................................................................................................22

    2.1. Metinsel (String) Metotlar .........................................................................................222.1.1. Compare( ) ........................................................................................................... 232.1.2. Concat( ) ..............................................................................................................252.1.3. Copy( ) .................................................................................................................261.2.4. Format( ) ..............................................................................................................262.1.5. IsNullOrEmpty( ).................................................................................................322.1.6. CompareTo ( ) .....................................................................................................33

    2.1.7. Contains( ) ........................................................................................................... 342.1.8. CopyTo( ) ............................................................................................................352.1.9. EndsWith( )..........................................................................................................372.1.10. IndexOf( ) .......................................................................................................... 382.1.11. Insert(int baslangic,string value ) ......................................................................402.1.12. LastIndexOf( ) ...................................................................................................412.1.13. PadLeft ( ) .......................................................................................................... 432.1.14. PadRight ( )........................................................................................................442.1.15. Remove ( ) .........................................................................................................462.1.16. Replace ( )..........................................................................................................472.1.17. Split ( ) ...............................................................................................................49

    2.1.18. StartsWith ( ) .....................................................................................................492.1.19. Substring ( ) .......................................................................................................502.1.20. ToLower ( )........................................................................................................512.1.21. ToUpper ( ) ........................................................................................................52

    2.2. Matematiksel (Math) Metotlar ...................................................................................522.2.1. Abs( ) ...................................................................................................................522.2.2. BigMul( ) .............................................................................................................532.2.3. Ceiling( )..............................................................................................................532.2.4. DivRem( ) ............................................................................................................542.2.5. Max( ) ..................................................................................................................542.2.6. Min( ) ...................................................................................................................55

    2.2.7. Pow( ) ..................................................................................................................562.2.8. Round( ) ...............................................................................................................56

    NDEKLER

  • 8/3/2019 PT 04 Metotlar 482BK0121

    4/79

    ii

    2.2.9. Sign( ) ..................................................................................................................57

    2.2.10. Sqrt( ) .................................................................................................................572.2.11. Cos( ) .................................................................................................................592.2.12. Sin( ) ..................................................................................................................592.2.13. Tan( ) .................................................................................................................602.2.14. Acos( ) ...............................................................................................................612.2.15. Asin( ) ................................................................................................................612.2.16. Atan( )................................................................................................................61

    2.3. Tarih/Saat (DateTime) Metotlar ................................................................................ 612.3.1. MinValue .............................................................................................................612.3.2. MaxValue ............................................................................................................622.3.3. Today ...................................................................................................................62

    2.3.4. Now .....................................................................................................................632.3.5. DateTime.Compare( ) ..........................................................................................652.3.6. DateTime.DaysInMonth( ) ..................................................................................652.3.7. DateTime.IsLeapYear( ) ......................................................................................662.3.8. DateTime.Parse( ) ................................................................................................662.3.9. Subtract( ) ............................................................................................................672.3.10. AddDays( ) ........................................................................................................682.3.11. AddMonths( ) ....................................................................................................682.3.12. AddYears( ) .......................................................................................................682.3.13. AddHours( ) .......................................................................................................682.3.14. AddMinutes( )....................................................................................................69

    2.3.15. AddSeconds( ) ...................................................................................................692.3.16. AddMilliseconds( ) ............................................................................................69UYGULAMA FAALYET .............................................................................................. 70LME VE DEERLENDRME ....................................................................................71

    MODL DEERLENDRME .............................................................................................. 72CEVAP ANAHTARLARI.....................................................................................................73KAYNAKA ......................................................................................................................... 74

  • 8/3/2019 PT 04 Metotlar 482BK0121

    5/79

    iii

    AIKLAMALARKOD 482BK0121ALAN Biliim TeknolojileriDAL/MESLEK Alan OrtakMODLN ADI Metotlar

    MODLN TANIMIBu modl temel programlama ilemlerinde metotlaryazabilmenin renildii bir renme materyalidir.

    SRE 40/32N KOUL Bu modln n koulu yoktur.YETERLK Metotlarla almak

    MODLN AMACI

    Genel AmaBu modl ile gerekli ortam salandnda; temelprogramlama ilemlerinde metotlar yazabileceksiniz.Amalar

    1. Metotlar kullanabileceksiniz.2. Hazr metotlar kullanabileceksiniz.

    ETM RETMORTAMLARI VEDONANIMLARI

    Ortam: Bilgisayar laboratuarDonanm: Bilgisayar, Programlama Yazlm

    LME VEDEERLENDRME

    Modl iinde yer alan her renme faaliyetinden sonraverilen lme aralar ile kendinizi deerlendireceksiniz.

    retmen modl sonunda lme arac (oktan semelitest, doru-yanl testi, boluk doldurma vb.) kullanarakmodl uygulamalar ile kazandnz bilgi ve becerilerilerek sizi deerlendirecektir.

    AIKLAMALAR

  • 8/3/2019 PT 04 Metotlar 482BK0121

    6/79

    1

    GRSevgili renci,

    Programlama Temelleri dersinin bu modlnde sizler, programlamann bir dier temelyap ta olan Metotlar reneceksiniz.

    Bilgisayar programclna giden bu yolda, nemli bir adm da bu modl renerekatacaksnz.

    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 veihtiya duyduumuz yerde metodu ismi ile ararak altrabiliriz. Bu bize daha az kodyazma imkn salayp zaman kazandrd gibi, olas deiikliklerde de daha az hatayapmamz salar.

    Bu modlde birok programlama dilinin temel kavramlarndan olan metotlar detaylarile inceleyeceiz. Metotlarn tanmlar ve kullanm, parametrelerin zellikleri rneklerleilenecektir.

    GR

  • 8/3/2019 PT 04 Metotlar 482BK0121

    7/79

    2

    RENME FAALYET1

    Bu modl ile gerekli ortam salandnda; temel programlama ilemlerinde metotlaryazabilecek ve bunlar programlarnzda kullanabileceksiniz.

    Bu faaliyet ncesinde hazrlk amal aada belirtilen aratrma faaliyetleriniyapmalsnz.

    eitli programlama dillerindeki alt programlar kavramlarn aratrnz. Fonksiyonlarn alma mant hakknda n bilgi edininiz. Parametre, geri dn deeri nedir? Aratrnz.

    1. METOTLARProgramlarn hazrlanmas esnasnda, ayn ilemi gerekletiren program paralarna

    programn birok yerinde ihtiya duyulabilir. Bu ihtiyalar, metotlar yazlarak giderilir. Eermetotlar kullanlmazsa; programda ayn kodu defalarca yazmamz gerekebilir ve programkodlarnn okunmas zorlar. Ayn zamanda kaynak kodun gereksiz uzamasna sebep olur.Bunun iin programn birok yerinde ihtiya duyulan ve ayn ilemleri yapan programparalar metotlar olarak hazrlanrlar.

    1.1. Metot Kavram

    Programlarn herhangi bir yerinde kullanlmak iin belirli bir ii yerine getirmekamacyla tasarlanm alt programlara metot denilir. Metotlar belirli bir ii yapmas iingelitirilirler.

    Bir sefere mahsus yazlan bu kod paralar programn ak ierisinde defalarcaarlarak kullanlabilirler.

    Metotlarn amac; programn yapsal olmasn salamak ve birbiriyle ilgili komutlarveya programn bir blmn istenen isim altnda toplamaktr. Bu ekilde programnokunmas kolaylamakta ve yapsal bir grnm kazanmaktadr.

    Bir metot, bir veya daha fazla ifade ierebilir. yi yazlm bir programda, her metotyalnzca tek bir grev yrtr.

    Metotlar tek bana alabilen yaplar deillerdir. Ancak ana program ierisindenarlarak altrlrlar.

    RENME FAALYET1

    ARATIRMA

    AMA

  • 8/3/2019 PT 04 Metotlar 482BK0121

    8/79

    3

    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 bireriim niteleyicisidir. Bunun kullanm istee baldr. Eer herhangi bir eriim belirtecikullanlmazsa varsaylan olarak snfa zel (private) olarak belirlenir. Private olarakkullanldnda yalnzca metodun yazld snf ierisinden arlabilmesini ngrr. Eerprogramn 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 gerekkalmadan arlr.

    Dn-tipi: Bu metodun altrldktan sonra programda arld noktayadndrd verinin tipini belirlediimiz ksmdr. Eer metot bir deer dndrmeyeceksedn-tipi void olarak belirtilmelidir.

    sim: Metodunun isminin belirtildii ksmdr. Metodumuza isim verirken yapaca iile alakal bir isim vermek hem metodun ne ie yaradyla ilgili bize bilgi verecektir, hem debizden 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 sahipbirden fazla metot olabilir.

    Parametre-Listesi: Virgl ( , ) ile ayrlm tip ve tanmlayc iftlerden oluan birlistedir. 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 Dnyayazdran metodu tanmlayp program ierisinde kullanmna bir rnek veriniz.

  • 8/3/2019 PT 04 Metotlar 482BK0121

    9/79

    4

    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 programierisinde 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 grntsylekarlarz.

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

  • 8/3/2019 PT 04 Metotlar 482BK0121

    10/79

    5

    rnek 0-3: Klavyeden girilen bir mesaj ekrana 10 defa yazdran metodun kodunu yaznz.

    static void MesajYaz(string msj){

    for (int i = 1; i

  • 8/3/2019 PT 04 Metotlar 482BK0121

    11/79

    6

    eitli veri trlerini parametre olarak metotlarmza nasl gnderdiimizi rneklerle

    inceleyelim;rnek 0-4: Klavyeden girilerek parametre olarak gnderilen bir saynn, asal say olupolmadn kontrol eden, eer say asal ise true, deilse false deeri dndren metoduyaznz.

    static bool AsalMi(int s){

    bool durum=false;f o r ( i n t i = 2 ; i < s / 2 + 1 ; i + + ){

    i f ( 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 ekranktlarn yanlarndaki bo ksma yaznz.

    Girilecek Deerler Ekran kts16

    43

    66

    89

    rnek 0-5: Parametre olarak gnderilen kullanc ad ve ifreyi kontrol eden, ncedenbelirlenmi olan bir kullanc ad ve ifreyle karlatran metodun kodlarn yaznz.

    static void KullaniciKontrol(string kAdi, string psw){

    if ((kAdi == "Admin") || (kAdi == "ADMN") || (kAdi =="admin"))

  • 8/3/2019 PT 04 Metotlar 482BK0121

    12/79

    7

    {if (psw == "123rty")

    Console.WriteLine("Tebrikler Kullanc ve ifrenizDoru");

    elseConsole.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 ekranktlarn yanlarndaki bo ksma yaznz.

    Girilecek DeerlerEkran ktsKullanc Ad ifre

    Admin 123RTY

    Ynetici 123rty

    Admin 123rty

    admin 123rty

    ADMN 123rty

    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 elemanlarnekrana yazdran DiziYazdir( ) isimli bir metot daha yazarak elemanlar ekrana yazdrnz.Daha sonra bu dizi ierisindeki en byk say deerini bulan EnBuyuk( ) isimli, en kkdeeri bulan EnKucuk( ) isimli iki metot daha yaznz. EnBuyuk ve EnKucuk metotlarndandnen saylar ekrana yazdran programn kodlarn yaznz.

    Bu ksmda rastgele saylar retilip parametre olarak gnderilen dizi isimli diziyedeerler aktarlyor ve dizi ana programa geri dndrlyor;

    static int[] SayiUret(int bas, int bit,int[] dizi){

    int tutulan = 0;Random rnd = new Random();

  • 8/3/2019 PT 04 Metotlar 482BK0121

    13/79

    8

    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 anaprograma geri dndrlyor;

    static int EnBuyuk(int[] dizi2)

    {int ebs=0;//en kk deerforeach (int s in dizi2){

    if (s > ebs) //eer say ebs'den bykseebs = s; //yeni ebs, saynn deeri olur

    }return ebs;

    }

    Bu ksmda parametre olarak gnderilen dizi ierisindeki en kk deer bulunup anaprograma geri dndrlyor;

    static int EnKucuk(int[] dizi3){

    int eks = 100;//en byk deerforeach (int x in dizi3){

    if (x < eks) //eer say ebs'den kkseeks = x; //yeni eks, saynn deeri olur

    }return eks;

    }

  • 8/3/2019 PT 04 Metotlar 482BK0121

    14/79

    9

    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

  • 8/3/2019 PT 04 Metotlar 482BK0121

    15/79

    10

    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 farklmetotlar olutururken ok dikkatli olmalyz.

    Metotlar arlrken, balangta belirlenen parametre saysndan ne az ne deok sayda parametre girmeliyiz. Eer metodumuz 2 parametre ile ilemyapyorsa, biz bu metoda 1 veya 3 adet parametre gnderemeyiz. Aksi takdirdehata 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);}

  • 8/3/2019 PT 04 Metotlar 482BK0121

    16/79

    11

    Yukardaki kodlar incelediimizde; Topla isimli metoda ait parametre listesinde iki

    adet parametre alabilecei tanmlanm. Ancak ilk koyu renkli satrdan da greceimiz zeremetot arlrken 3 parametre gnderildiinde veya bir sonraki satrdaki gibi tek parametregnderildiinde hata mesaj alrz.

    Metotlarn geri dn deerleri vardr. Geri dn deeri olmayacak olanmetotlarda geri dn tipi void olarak belirtilir ve return anahtar kelimesininbu 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 olaraktanmlanan) metottan return anahtar kelimesi kullanlarak geriye bir deer dndrlmeyealldnda 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 yaplmayaallrsa hata mesaj alrz.

    Metotlarn geri dn deerleri herhangi bir veri trnde olabilir. Metotierisindeki bir deer return anahtar szcyle metodun arld yere geridndrlr. Burada metodun geri dn tipine uyumlu bir deiken ierisineatanmaldr. Aksi takdirde tr uyumsuzluundan dolay hata mesaj alrz.

  • 8/3/2019 PT 04 Metotlar 482BK0121

    17/79

    12

    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 deikeniierisine float trnde tanmlanm bir metodun geri dn atanmaya allrsa hata mesajalrz.

    Bir metot parametre almadan da tanmlanabilir. Bu ekilde tanmlanan birmetoda 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 deikenisimlerini 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 birparametreyi virglle ayrarak tek tek tanmlamamz gerekir.

    static float Topla(int sayi1, int sayi2){

    float toplam;toplam = sayi1 + sayi2;return toplam;

    }

  • 8/3/2019 PT 04 Metotlar 482BK0121

    18/79

    13

    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 deikenisimlerini, metot ierisinde tekrardan her ne veri trnde olursa olsun yeniden kullanamay z.

    Bir metot ierisinde baka bir metot tanmlanamaz. Ancak baka bir metotarlabilir.

    static void yazdir(){

    static void MerhabaDunyaYazdir(){

    Console.Write("Merhaba Dnya");}

    }

    Yukardaki kullanm hatal bir kullanmdr. Metot ierisinde metot tanmlamasyaplamaz. 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 gibiarabiliriz.

    Metotlarn ierisinde tanmlanan tm deikenler metot dnda kullanlamazlar,geersiz olurlar.

    static float Topla(int sayi1, int sayi2){

    int toplam;toplam = sayi1 + sayi2;

    return toplam;}

  • 8/3/2019 PT 04 Metotlar 482BK0121

    19/79

    14

    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 floattrndeki toplam isimli deikene metot dnda tekrar eriilmek istenirse hata mesaj alrz.

    1.5. zyineli (Rekrsif-Recursive) MetotlarBir 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 ihtiyaduyulan bir olaydr. Yinelenen metotlar tasarlanrken ok dikkatli olunmaldr. Aksi takdirdesonsuz bir dng ierisine girilebilir. Bu dngnn bir ekilde sonlandrlmasgerekmektedir.

    Yinelenen metotlara basit bir rnekle giri yapalm;

    rnek 0-7: 1den klavyeden girilen sayya (n) kadar olan saylarn toplamn hesaplayanprogramn 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 ilgiliklasik olarak bir saynn faktriyelini hesaplayan programlara yer verilir. Bizlerde bugelenei bozmayalm ve bir nceki rnekteki mantkla klavyeden girilen bir saynnfaktriyelini hesaplayan zyineli bir metot hazrlayalm.

    rnek 0-8: Klavyeden girilen saynn faktriyelini hesaplayan programn kodunu yaznz.

  • 8/3/2019 PT 04 Metotlar 482BK0121

    20/79

    15

    static double Faktoriyel(int n){

    if (n == 0)return 1;

    return n * Faktoriyel(n - 1);}

    Faktoriyel( ) isimli metot incelendiinde; return anahtar kelimesiyle birlikteFaktoriyel( ) metodu parametre (n) deeri 1 azaltlarak tekrar tekrar arlyor. Ne zaman kiparametre (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 FaktriyeliHesaplanmaz...");

    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 kimizaman uzayp, kimi zaman ksalabildiini dnebiliriz.

    1.6. Main( ) Metodu

    Metotlar modlmzn bandan bu yana rneklerimizde hep Main( ) isminde birmetot ierisinde ana programlarmzn yazmn gerekletirdik. Peki nedir bu Main( )metodu?

    Aslnda Main( ) metodu imdiye kadar yazdmz veya kullandmz metotlardanpek de fark olmayan bir metot trdr. Tek ve en nemli fark Main( ) metodunun anaprogramn balamasn salayan nokta olmasdr. te bu yzden Main( ) metodu diermetotlara gre daha zeldir.

    imdiye kadar Main( ) metodunu kullanrken herhangi bir geri dn deerikullanmadk, 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.

  • 8/3/2019 PT 04 Metotlar 482BK0121

    21/79

    16

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

    static int Main(){

    ...}

    Burada dikkat ederseniz Main( ) metodunun geri dn deeri void yerine int trnesahiptir. Bu int trndeki deer genellikle programn nasl sonlandrld bilgisini iletimsistemine 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 daparametre almas mmkndr.

    Programlarn komut satrndan aldklar parametrelere argman ad verilir.Programlar komut satrndan altrldnda, program isminden sonra gelen bilgiler oprogramn argmanlardr.

    rnein aadaki resimde metotlar.exe isimli program, komut satrndan arlrken,program isminden sonra bir takm argmanlar eklenmi ve bunlar Main( ) metodu ierisindesrayla 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 ListelenmesiYukardaki 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++;

    }}

  • 8/3/2019 PT 04 Metotlar 482BK0121

    22/79

    17

    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 )

    veif (argumanAdedi > 2)

    Programmzla 2 adet saynn toplamn bulacamz iin argman saysnn 2den azm yoksa ok mu olduunu kontrol etmemiz gerekiyor. Eer yukardaki kontrollerdeargman says 2den az veya ok ise return 1; ile iletim sistemine yeterli argmangirilmediini bildiren hata mesajlar gnderiliyor.

    Eer girilen argman says 2 ise aadaki satrlar altrlr ve gerekli ilemler

    gerekletirilir.

  • 8/3/2019 PT 04 Metotlar 482BK0121

    23/79

    18

    int sayi1 =Convert.ToInt32(args[0]);//1. argmanint 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 ParametreGirildi mesajyla karlarz.

    3 veya daha fazla sayda parametre girilirse Fazla Sayda Parametre Girildimesajyla karlarz.

    2 parametre girii gerekletirirsek, programmz girilen bu iki saynn toplamnekranmza yazdrr.

    rnek 0-10: Klavyeden komut satrna girilen metni ifreleyen ve ifreyi zen programyaznz.

    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")

  • 8/3/2019 PT 04 Metotlar 482BK0121

    24/79

    19

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

    Console.ReadLine();return 0;

    }

    ifreleme ilemi olarak yaptmz ey; klavyeden girilen metin ierisindeki harfleritek tek ele alp, o harfi, kendinden bir sonra gelen harfe dntrmektir. ifre zme ilemiile de ifrelenmi kelimenin harflerini geri eski hallerine getirmek, yani ilgili harften birnceki harfe dntrmektir.

    Yukardaki kodlar altrdmzda aadaki gibi bir ekran grnts alrz.

    Resim 0-6. Metin ifreleme

    Programda ilk olarak, sifrele parametresiyle birlikte tevfik kelimesi gnderdiksonu olarak ufwgjl kelimesini bize geri dndrd. Daha sonra sifreCoz parametresi ileufwgjl kelimesini gnderdiimizde, geri tevfik kelimesini dndrd.

    Sizler de program vastasyla ifreleme algoritmasnn zerinde deiiklik yaparak,kendi kelimelerinizi ifreleyebilir, daha sonra da zebilirsiniz.

  • 8/3/2019 PT 04 Metotlar 482BK0121

    25/79

    20

    UYGULAMA FAALYET

    lem Basamaklar neriler Klavyeden girilen saylarn tek mi ift

    mi olduunu bulan ve say tek ise geriSay Tektir., iftse Say ifttir.Mesajn dndren metodu yaznz.

    Bir saynn 2ye blmnden kalansfr(0) ise say ifttir.

    Mod alma (%) ilemi kullannz.

    Parametre olarak gnderilen metniifreleyen ve geri ifrelenmi halinidndren,

    Parametre olarak gnderilen ifrelenmi

    metnin ifresini zen ve geri zlmhalini dndren,

    Metotlar yaznz.

    ifreleme ilemi, kelimedeki harflerinalfabeye gre 1 telenmesi ile

    ifre zme ilemi de kelimedekiharflerin alfabeye gre 1 geri

    alnmasylaGerekletirilecektir.rnein: A harfi ifrelendiinde B harfiolacaktr.

    AlanHesapla isimli metot, klavyedenkenar uzunluklar girilen birdikdrtgenin alann hesaplayp ekranayazdran bir metottur. Bu metoduyaznz.

    Metoda uzun kenar ve ksa kenar olmakzere 2 parametre gnderilecektir.

    Metottan geriye dikdrtgenin alan deeridndrlecektir.

    Klavyeden 3 kenar uzunluu girilen birgenin, dik gen olup olmadnkontrol eden metodu yaznz.

    Uzun kenarnn karesi, ksa kenarlarnnkarelerinin toplamna eit olan genlerdik genlerdir.

    Matematikteki Fibonacci say dizisininilk 10 elemann bulan zyineli(rekrsif) metodu yaznz.

    Fibonacci say dizisi: kendisi vekendisinden nce gelen saynntoplamnn kendisinden sonra gelensayya 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 gnolduunu hesaplayan metodu yaznz.

    1 yl = 360 gn 1 ay = 30 gn

    Baz alnacaktr.rnek: 1943 gn = 5 yl 4 ay 23 gn

    Erkeklerin 25 yl, kadnlarn da 20 ylaltktan sonra emekli olacavarsayldnda, klavyeden girilencinsiyet ve sigorta prim gn saysnagre kiinin emekliliine ne kadar sresikaldn bulan metodunu yaznz.

    Bir nceki rnekteki metoda cinsiyetparametresini de ekleyerek, buna gresonucu ekrana yazdrnz.

    rnein: Erkek ve 6643 gn parametrelerigirildiinde Emekliliinize 6 yl 6 ay 17gn kald eklinde sonu dndrecek.

    UYGULAMA FAALYET

  • 8/3/2019 PT 04 Metotlar 482BK0121

    26/79

    21

    LME VE DEERLENDRME

    Aadaki cmlelerin banda bo braklan parantezlere, cmlelerde verilenbilgiler doru ise D, yanl ise Y yaznz.

    1. ( ) Parametre-listesi bir metottan geri deer dndrmek iin kullanlr.2. ( ) Bir metodun arld zaman ald ve metot ierisinde kullanaca deikenler

    listesine parametre-listesi denir.3. ( ) Parametre listesi int trnde deikenler ieren bir tr dizidir.4. ( ) Parametre listesindeki deikenler ayn trde olmak zorundadrlar.5. ( ) Eer herhangi bir eriim belirteci kullanlmazsa varsaylan olarak snfa zel

    (private) olarak belirlenir.

    6. ( ) Eer metot bir deer dndrmeyecekse dn-tipi void olarak belirtilmelidir.7. ( ) Bir metot hi parametre kullanmayacaksa, parametre-listesi bo braklr.8. ( ) Parametre listesindeki deikenler birbirinden noktal virgl (;) ile ayrlrlar.9. ( ) Main( ) isimli metot, programmzn almasn balatan metottur.10. ( ) Bir metot kendi kendini hibir artta aramaz.11. ( ) Ayn isme sahip metotlar oluturamayz.12. ( ) Parametre-listesinde belirtilen bir deiken ismi, metot ierisinde baka bir veri

    trnde tekrar kullanlabilir.13. ( ) Metotlarda geri dn deeri out anahtar kelimesiyle gnderilir.14. ( ) Geri dn tr void olan metotlar, herhangi bir deiken ierisine aktarlamazlar.15. ( ) Metot ierisinde baka bir metot tanmlamas yaplabilir.

    16. ( ) Metot ierisinde baka bir metot arlabilir.17. ( ) zyineli metotlarn dn deeri olamaz.18. ( ) Main( ) metodunun geri dn deeri void veya int trnde olabilir.19. ( ) Main( ) metodu hi parametre almaz.20. ( ) Bir program ierisinde birden fazla Main( ) metodu kullanabiliriz.

    DEERLENDRME

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

    LME VE DEERLENDRME

  • 8/3/2019 PT 04 Metotlar 482BK0121

    27/79

    22

    RENME FAALYET2

    Bu modl ile hazr metotlar kullanabilecek ve programlarnzda uygulayabileceksiniz.

    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 METOTLARProgramlama dili ktphaneleri ierisinde nceden tanmlanm ve programclarn

    ilerini kolaylatran bir takm hazr metotlar vardr.

    Bu modlmz ierisinde metinsel (String), matematiksel, tarih ve zaman ilemlerindeska 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 metotlarvardr. 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

    RENME FAALYET2

    ARATIRMA

    AMA

  • 8/3/2019 PT 04 Metotlar 482BK0121

    28/79

    23

    2.1.1. Compare( )

    Parametre olarak verilen iki string ifadeyi karlatrr ve geriye int trnde bir veridndrr. Eer dn deeri sfr (0) ise iki metin birbirine eittir. Aksi takdirde parametreolarak verilen metinleri ilk harflerinden itibaren tek tek karlatrr ve farklln olduu ilkharflerin 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 Dn Deerimetin1>metin2 1metin1=metin2 0metin1

  • 8/3/2019 PT 04 Metotlar 482BK0121

    29/79

    24

    Yukardaki program altrdktan sonra aadaki tabloda verilen deerleri tek tek

    deneyerek String.Compare( ) metoduyla geri dnen deerleri, tabloda bo braklan alanlarayaznz.

    Girilecek DeerlerGeri Dn Deeri

    metin1 metin2Tavanl tavanl

    Tavanl Tavsanl

    Tavanl Tavanl

    Tavanl Davanl

    Tavanl Tavanl

    Eer metin karlatrmalarnda byk/kk harfe dikkat edilsin istemiyorsakCompare( ) metodunun bir baka kullanm olan Compare(metin1,metin2,boolean) formunukullanmamz gerekir.

    Kullanm:

    bool buyukKucuk=true;int donusDegeri=String.Compare(metin1,metin2,buyukKucuk);

    Buradabool

    trndeki deikenin deeritrue

    iseCompare( )

    metodu byk/kkharfe bakmaszn iki kelimeyi karlatrr. Eer false deeri gnderilirse, bu durumdakarlatrma ilemini byk/kk harfe biimde gerekletirir.

    rnek 0-2: Tavanl ve tavanl metinlerini byk/kk harf duyarl olarak vebyk/kk harf duyarsz olarak iki ekilde karlatrlmasn yapan programn kodlarnyaznz.

    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 duyarlduyarlilik=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.

  • 8/3/2019 PT 04 Metotlar 482BK0121

    30/79

    25

    Resim 0.1: Compare Metodu Byk/Kk Harf Duyarll

    Bu programdaki metin deerlerini deitirerek farkl byk kk harf duyarllklarninceleyiniz.

    2.1.2. Concat( )

    Parametre olarak verilen nesneleri string trnde birbirine peisra ekler ve geriyestring 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 sporkelimeleri girildiinde birletirilen kelime Linyitspor olarak karmza kacaktr.

    String.Concat( ) ile farkl trlerdeki verileri de birletirme ansmz vardr. Aadakirnekte hem metin, hem say, hem de boolean trndeki verileri birletirip, geriye stringtrnde bir veri elde etme ilemini inceleyeceiz.

    rnek 0-4: Metin, say ve boolean trnde verilerin birletirilmesini salayan programnkodlarn 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);

  • 8/3/2019 PT 04 Metotlar 482BK0121

    31/79

    26

    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 Stringmetodudur.

    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 yazlmasnistiyorsak;

  • 8/3/2019 PT 04 Metotlar 482BK0121

    32/79

    27

    Resim 0.4: String.Format( ) Metodu Kullanm

    Yukardaki resmi incelediimizde String.Format( ) metodunun kullanmnda, kmeparantezleri ( { } ) ierisindeki ilk deer, degisken isimli deiken ierisindeki deerireferans 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 hizalolacan, negatif olmas ise soluna hizal olacan belirler.

    rnek 0-6: Sra No, Adnz, Soyadnz eklinde balklar olan ve ierii dolu olan bir tablohazrlayp, 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 ekrandayazlmasn istiyorsak;

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

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

  • 8/3/2019 PT 04 Metotlar 482BK0121

    33/79

    28

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

    ifadesiyle -15 says ekrana bana 3 adet 0 eklenerek toplamda 5 karakterolarak yazlr.

    String.Format("{0,5}", 15); // " 15"

    ifadesiyle 15 says ekrana bana 3 adet boluk eklenerek toplamda 5karakterlik bir alana saa hizal olarak yazlr.

    String.Format("{0,-5}", 15); // "15 "

    ifadesiyle 15 says ekrana bana 3 adet boluk eklenerek toplamda 5karakterlik 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 eklenerektoplamda 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 belirlememizeyardmc 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 numarasnalan kodu ve telefon numaras ayr ayr yazlsn istiyorsak), biimlendirmeileminde diyez (#) iareti ile formatmz belirleriz;

    String.Format("{0:### ## ##}", 1234567); // 123 45 67String.Format("{0:(#) ###-##-##}", 12345678); //(1) 234-56-78

    rnein double trndeki saysal ifadelerin belirli bir biim ierisindeekranda yazlmasn istiyorsak;

  • 8/3/2019 PT 04 Metotlar 482BK0121

    34/79

    29

    Ondalkl saylarda virglden (programlamada nokta) sonra ka basamak grnsn

    istiyorsak keli parantezler ({ }) ierisindeki biimleme ksmnda noktadan sonra o kadarsfr (0) koymamz gerekir;

    String.Format("{0:0.00}", 123.4567); // "123.46"String.Format("{0:0.00}", 123.4); // "123.40"String.Format("{0:0.00}", 123); // "123.00"

    Eer ondalkl saynn en fazla ka basamann ekranda kmasn istiyorsak, bu sefersfr yerine o kadar sayda diyez (#) iareti kullanmamz gerekir;

    String.Format("{0:0.##}", 123.4567); // "123.46"String.Format("{0:0.##}", 123.4); // "123.4"

    String.Format("{0:0.##}", 123); // "123"

    Ondalkl saylarda virglden nce ka basamak grntlemek istiyorsakbiimlendirme yaparken, noktadan nce ka basamak istiyorsak o kadar sfr (0)kullanmamz gerekir;

    String.Format("{0:000.0}", 123.4567); // "123.5"String.Format("{0:000.0}", 23.4567); // "023.5"String.Format("{0:00.00}", 3.4567); // "03.46"String.Format("{0:00.00}", -3.4567); // "-03.46"

    Eer saylarn grntlenmesinde bin ayrac kullanlmak isteniyorsa;

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

    0 ile 1 arasndaki ondalkl saylarn gsterimi iki ekilde olur. Birincisinde saynntam ksm 0 ve noktadan sonra ondalkl ksm gelir (rn: 0.123 eklinde), bir dier gsterimeklinde 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}", 0.0); // "0.0"String.Format("{0:0.#}", 0.0); // "0"String.Format("{0:#.0}", 0.0); // ".0"String.Format("{0:#.#}", 0.0); // ""

    Btn bu formlarn dnda saylarmz aadaki gibi istediimiz metinler ile birlikteyazmamz da mmkndr;

    String.Format("{0:sonu 0.0}", 12.3); // "sonu 12.3"String.Format("{0:x0x.yy0yy}", 12.3); // "x12x.yy3yy"

  • 8/3/2019 PT 04 Metotlar 482BK0121

    35/79

    30

    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: Dakikas: Saniye f: Salise z: Zaman dilimi

    rnek 0-7: 14.02.2006 18:05:07.123 zamanna ait deerlerin gsterimleri u ekildesalanr;

    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; dahanceden tanmlanm belirteler ile deerlerin ekrana yazdrlmasdr. Bu deerler aadaki

    tabloda verilmitir.

  • 8/3/2019 PT 04 Metotlar 482BK0121

    36/79

    31

    Belirte Tarih/Zaman zellii Gsterim rneit

    Ksa zaman gsterimih:mm

    d Ksa tarih gsterimi M/d/yyyT Uzun zaman gsterimi h:mm:ssD Uzun tarih gsterimi dddd,MMMM dd, yyyyf D ve t nin birleimi dddd, MMMM dd, yyyy h:mmF D ve Tnin birleimi dddd, MMMM dd, yyyy h:mm:ssg d ve tnin birleimi M/d/yyyy h:mmG d ve Tnin birleimi M/d/yyyy h:mm:ss

    m,M Ay ve gn gsterimi MMMM ddy,Y Yl ve ay gsterimi MMMM, yyyy

    rnek 0-8: 14.02.2006 18:05:07.123 zamann yukarda verilen biimlere gre gsteriminitek 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 ilekarlarz;

  • 8/3/2019 PT 04 Metotlar 482BK0121

    37/79

    32

    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 deeridndrr. Eer deikene herhangi bir deer atamas yaplmsa geriye false deerinidndrr.

    Kullanm:

    string metin="";bool sonuc=String.IsNullOrEmpty(metin);

    rnek 0-9: Kullanc ad ve ifre girii yaplan bir giri ekrannda kullanc ad veya ifrebo girilirse uyar veren, bo girilmemise girilen deerleri ekrana yazdran programnkodlarn 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.");

    elseConsole.WriteLine("Girmi olduunuz ifre:" + sifre);

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

  • 8/3/2019 PT 04 Metotlar 482BK0121

    38/79

    33

    2.1.6. CompareTo ( )

    arld string ifade ile parametre olarak verilen string ifadeyi karlatrr ve ikiifade de birbirine eitse geriye int trnde sfr (0) deerini dndrr. Aksi takdirde metinleriilk harflerinden itibaren tek tek karlatrr ve farklln olduu ilk harflerin alfabedekisralarna gre -1 veya 1 say deerlerini dndrr.

    Kullanm ve alma prensibi daha nce grdmz String.Compare( ) metoduylahemen hemen ayndr.

    Kullanm:

    int donusDegeri=metin1.CompareTo(metin2);

    Aadaki tabloda metinlerin karlatrma durumlar ve geri dn deerleriverilmektedir;

    Durum Dn Deerimetin1>metin2 1metin1=metin2 0metin1

  • 8/3/2019 PT 04 Metotlar 482BK0121

    39/79

    34

    Yukardaki program altrdktan sonra aadaki tabloda verilen deerleri tek tek

    deneyerek CompareTo( ) metoduyla geri dnen deerleri, tabloda bo braklan alanlarayaznz.

    Girilecek DeerlerGeri Dn Deeri

    metin1 metin2Biliim Biliim

    biliim bilisim

    BLM BILISIM

    bLM Biliim

    Bilisim Bilisim

    Yukarda verilen deerleri istediiniz ekilde deitirerek metodun almasn iyicepekitiriniz.

    2.1.7. Contains( )

    Birlikte arld metinsel ifade ierisinde parametre olarak verilen char trndekikarakteri veya yine parametre olarak verilen string trndeki metinsel ifadeyi arar ve geriyebool 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 edenbir 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 rakamsalifadeler ieriyor");

    else

  • 8/3/2019 PT 04 Metotlar 482BK0121

    40/79

    35

    Console.WriteLine("Girmi olduunuz metin rakamsalifadeler 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 girileriyledeneyip pekitiriniz.

    rnek 0-12: Klavyeden girilen metin ierisinde, yine klavyeden girilen bir metni arayanprogramn 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}) kelimesimevcuttur.", ifade, aranan);

    elseConsole.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 al r.

  • 8/3/2019 PT 04 Metotlar 482BK0121

    41/79

    36

    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 5karakterini hedefDizi isimli char trndeki 10 elemanl bir dizinin 3.elemanndan balayarakkopyalaynz. hedefDizi isimli dizinin ieriini kopyalamadan nce ve sonra ekranayazdrarak deiimi gzlemleyiniz.

    Console.Write("Metin giriniz: ");string metin = Console.ReadLine();i n t 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 girilerekaltrldnda aadaki gibi bir ekran kts ile karlarz;

  • 8/3/2019 PT 04 Metotlar 482BK0121

    42/79

    37

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

    2.1.9. EndsWith( )

    Birlikte arld metinsel ifade parametre olarak verilen string trndeki ifade ilebitip bitmediini kontrol eden metottur. Geriye bool trnde bir deer dndrr. Eer metinparametre 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 geriyebool 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 harfile bitiyor");

    elseConsole.WriteLine("Klavyeden girilen metin sesli harf

    ile bitmiyor");}

    static bool bitisSesliMi(string metin){

    if (metin.EndsWith("a"))

    return true;else if (metin.EndsWith("e"))

  • 8/3/2019 PT 04 Metotlar 482BK0121

    43/79

    38

    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 vegeriye bu karakterin metin ierisinde ilk bulunduu karakter srasn dndrr. Metnin ilkkarakterinin 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 olmadurumlarna dikkat ediniz.

    Kullanm:

    int indeks=metin.IndexOf(char);

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

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

  • 8/3/2019 PT 04 Metotlar 482BK0121

    44/79

    39

    2.1.10.2. IndexOf(string)

    Birlikte arld metinsel ifade ierisinde parametre olarak verilen string ifadeyiarar 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 olmadurumlarna dikkat ediniz.

    Kullanm:

    int indeks=metin.IndexOf(string);

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

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

    2.1.10.3. IndexOf(char deger,int baslangic)

    Birlikte arld metinsel ifade ierisinde, parametre olarak verilen karakteri, yineparametre olarak verilen balang indeksinden balayarak arar ve geriye bu ifadenin, metinierisinde 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 olmadurumlarna 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)); // -1Console.WriteLine(metin.IndexOf('e',10)); // 18Console.WriteLine(metin.IndexOf('i',4)); // 5Console.WriteLine(metin.IndexOf('o',18)); // -1

  • 8/3/2019 PT 04 Metotlar 482BK0121

    45/79

    40

    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 olmadurumlarna 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)); // -1Console.WriteLine(metin.IndexOf("Biliim",1)); // -1Console.WriteLine(metin.IndexOf("loji",3)); // 13Console.WriteLine(metin.IndexOf("il",2)); // 16

    2.1.11. Insert(int baslangic,string value )

    Parametre olarak verilen int trndeki balang indeksinden balayarak, yineparametre olarak verilen metinsel ifadeyi, arld metnin ierisine eklemeye yarayanmetottur. 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

  • 8/3/2019 PT 04 Metotlar 482BK0121

    46/79

    41

    2.1.12. LastIndexOf( )

    Bu metodun da IndexOf metotdu gibi birden fazla kullan m ekli vardr.

    2.1.12.1. LastIndexOf (char)

    Birlikte arld metinsel ifade ierisinde parametre olarak verilen karakteri arar vegeriye bu karakterin metin ierisinde son bulunduu karakter srasn dndrr. Metnin ilkkarakterinin 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')); // -1Console.WriteLine(metin.LastIndexOf('e')); // 18Console.WriteLine(metin.LastIndexOf('i')); // 20

    Console.WriteLine(metin.LastIndexOf('z')); // -1

    2.1.12.2. LastIndexOf (string)

    Birlikte arld metinsel ifade ierisinde parametre olarak verilen string ifadeyiarar 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 olmadurumlarna dikkat ediniz.

    Kullanm:

    int indeks=metin.LastIndexOf(string);

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

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

  • 8/3/2019 PT 04 Metotlar 482BK0121

    47/79

    42

    2.1.12.3. LastIndexOf (char deger,int baslangic)

    Birlikte arld metinsel ifade ierisinde, parametre olarak verilen karakteri, yineparametre olarak verilen balang indeksinden balayarak arar ve geriye bu ifadenin, metinierisinde 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 olmadurumlarna 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)); // -1Console.WriteLine(metin.LastIndexOf('e',10)); // 9Console.WriteLine(metin.LastIndexOf('i',4)); // 13Console.WriteLine(metin.LastIndexOf('o',18)); // 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 olmadurumlarna 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)); // -1Console.WriteLine(metin.LastIndexOf("Biliim",1)); // -1Console.WriteLine(metin.LastIndexOf("im",15)); // 5Console.WriteLine(metin.LastIndexOf("il",2)); // 1

  • 8/3/2019 PT 04 Metotlar 482BK0121

    48/79

    43

    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 olarakverilen deer kadar karakterlik bir alan ayrr ve metni saa hizalanm yeni bir metinselifade geriye dndrr.

    Hizalamann grlebilmesi iin parametre olarak verilen deerin metnin karakteruzunluundan 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 grntsylekarlarz;

    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 birliktearld metne parametre olarak verilen deer kadar karakterlik bir alan ayrr ve metnisaa hizalanm yeni bir metinsel ifade geriye dndrr. Ancak bir nceki kullanmda metinhizalanrken metnin sol taraf boluk karakteriyle dolduruluyordu. Bu kullanmda ise

    parametre olarak verilen karakter bu doldurma ilemi iin kullanlr.

  • 8/3/2019 PT 04 Metotlar 482BK0121

    49/79

    44

    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 grntsylekarlarz;

    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 olarakverilen deer kadar karakterlik bir alan ayrr ve metni sola hizalanm yeni bir metinselifade geriye dndrr.

  • 8/3/2019 PT 04 Metotlar 482BK0121

    50/79

    45

    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 grntsylekarlarz;

    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 birliktearld metne parametre olarak verilen deer kadar karakterlik bir alan ayrr ve metni solahizalanm yeni bir metinsel ifade geriye dndrr.

    Ancak bir nceki kullanmda metin hizalanrken metnin sa taraf boluk karakteriyledolduruluyordu. Bu kullanmda ise parametre olarak verilen karakter bu doldurma ilemi iinkullanlr.

    Hizalamann grlebilmesi iin parametre olarak verilen deerin metnin karakteruzunluundan fazla olduundan emin olunuz.

    Kullanm:

    string yeniMetin=metin.PadRight(int deger,char karakter);

  • 8/3/2019 PT 04 Metotlar 482BK0121

    51/79

    46

    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 grntsylekarlarz;

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

    Yukardaki resimden de grlecei zere hizalama ileminde boluklarn doldurulmaseitlik 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 indeksdeerinden 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));

  • 8/3/2019 PT 04 Metotlar 482BK0121

    52/79

    47

    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 indeksdeerinden itibaren yine parametre olarak verilen adet kadar olan k smn siler. Silinmeileminden 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 grntsylekarlarz;

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

    2.1.16. Replace ( )

    Replace metodunun 2 farkl kullanm vardr.

  • 8/3/2019 PT 04 Metotlar 482BK0121

    53/79

    48

    2.1.16.1. Replace (char eski, char yeni)

    Birlikte arld metin ierisinde, ilk parametredeki karakterleri, ikinciparametredeki karakter deerleriyle deitiren metottur. Geriye deitirme ileminingerekletirildii 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 grntsylekarlarz;

    Resim 0-16. Replace(char eski, char yeni) Metodu ile Karakter Deitirme2.1.16.2. Replace (string eski, string yeni)

    Replace metodunun bir nceki kullanmndan fark parametre olarak bu kez chartrnde 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 grntsylekarlarz;

  • 8/3/2019 PT 04 Metotlar 482BK0121

    54/79

    49

    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 iinkullanlan bir metottur. Eer istenilen karakter mevcut metin ifadesi ierisinde yer alyorsa,Split( ) metodu metni karakterlerden ncesi ve sonras eklinde paralara ayrr ve buparalar string trnde bir dizi ierisinde saklar. Geriye de bu string[] trndeki diziyidndrr.

    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 grntsylekarlarz;

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

    2.1.18. StartsWith ( )

    Birlikte arld metinsel ifade parametre olarak verilen string trndeki ifade ilebalayp balamadn kontrol eden metottur. Geriye bool trnde bir deer dndrr. Eer

    metin parametre olarak verilen ifade ile balyorsa geriye true deerini dndrr. Eer metinparametre olarak verilen ifade ile balamyorsa geriye false deerini dndrr.

  • 8/3/2019 PT 04 Metotlar 482BK0121

    55/79

    50

    Kullanm:

    metin.StartsWith(ifade);

    rnek 0-33: Klavyeden girilen kullanc adnn rakamla balayp balamadn kontroleden, 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");

    elseConsole.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.

  • 8/3/2019 PT 04 Metotlar 482BK0121

    56/79

    51

    2.1.19.1. Substring (int indeks)

    Birlikte arld metni parametre olarak verilen indeks deerinden itibaren keser vearta 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)); //iim TeknolojileriConsole.WriteLine(metin.Substring(8)); //TeknolojileriConsole.WriteLine(metin.Substring(14)); //ojileri

    2.1.19.2. Substring (int indeks, int uzunluk)

    Substring metodunun bu kullanmnda ise ilk parametre indeks deerini, ikinciparametre 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)); //iimConsole.WriteLine(metin.Substring(8,3)); //TekConsole.WriteLine(metin.Substring(14,1)); //o

    2.1.20. ToLower ( )

    Birlikte arld metninin tm karakterlerini kk harfe dntrerek yeni bir metingeriye dndrr.

    Kullanm:

    string yeniMetin=metin.ToLower();

    rnek 0-36: ToLower() metodunun kullanm;

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

  • 8/3/2019 PT 04 Metotlar 482BK0121

    57/79

    52

    2.1.21. ToUpper ( )

    ToLower( ) metodunun tam tersi eklinde alr ve birlikte arld metninin tmkarakterlerini 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 TEKNOLOJLERstring 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 ilemve fonksiyonlar daha kolay yapabilmek iin bir takm hazr metotlar vardr.

    Matematiksel metotlardan sk kullanlanlar unlardr;

    - Abs - BigMul - Ceiling - DivRem- Max - Min - Pow - Round- Sign - Sqrt - Cos - Sin- Tan - Acos - Asin - 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 deergeri 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);

  • 8/3/2019 PT 04 Metotlar 482BK0121

    58/79

    53

    rnek 0-38: | x - 2| + 2 + |2 + x| ifadesinin sonucunu xin 0dan 10a kadar olandeerleri iin tek tek ekrana yazdran programn kodunu yaznz.

    int sonuc=0;for (int x = 0; x

  • 8/3/2019 PT 04 Metotlar 482BK0121

    59/79

    54

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

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

    2.2.4. DivRem( )

    Parametre olarak verilen ilk iki saynn blme ilemini yapar ve geriye blmeileminin sonucunu dndren ve 3. parametre olarak verilen deikene de blme ilemininkalann 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.

  • 8/3/2019 PT 04 Metotlar 482BK0121

    60/79

    55

    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 saytrleri 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);

  • 8/3/2019 PT 04 Metotlar 482BK0121

    61/79

    56

    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 kadarssn 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 usluSayi=Math.Pow(3,3); // 27

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

    2.2.8. Round( )

    Parametre olarak verilen sayy en yakn tam sayya yuvarlayan metottur.

    Kullanm:

    double yuvarlanmis=Math.Round(double sayi);

  • 8/3/2019 PT 04 Metotlar 482BK0121

    62/79

    57

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

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

    2.2.9. Sign( )

    Parametre olarak verilen saynn iaretini verir. Say pozitif ise 1, negatif ise -1, saysfra 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); // 1int isaret=Math.Sign(-26638); // -1int isaret=Math.Sign(0); // 0

    2.2.10. Sqrt( )

    Parametre olarak verilen double trndeki saynn karekk deerini double trndegeriye dndren metottur.

    Kullanm:

    double karekok=Math.Sqrt(double sayi);

    rnek 0-47: Klavyeden 2 kenar uzunluu girilen dik genin hipotensnn uzunluunuhesaplayan 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);

  • 8/3/2019 PT 04 Metotlar 482BK0121

    63/79

    58

    Uyar: Trigonometrik fonksiyonlarda a deerleri radyan cinsinden verilmelidir.

    Dilerseniz trigonometrik metotlara gemeden nce verilen derece cinsinden verilen adeerini radyana dntren ve radyan deeri verilen ann derece cinsinden deerini verenbasit metotlar yazalm ve bundan sonraki rneklerimizde bu metottan faydalanalm.

    rnek 0-48: Derece cinsinden a deerini radyan cinsinden a deerine dntrenmetodun yazm;

    static double radyanaDonustur(double derece)