MAT213 BİLGİSAYAR PROGRAMLAMA I DERSİ Ders 11: Metot Kavramı Yard. Doç. Dr. Alper Kürşat Uysal Bilgisayar Mühendisliği Bölümü akuysal@anadolu.edu.tr Ders Web Sayfası: http://ceng.anadolu.edu.tr/ders.aspx?dersid=101 1
Metot Metotlar sınıfların(class) içinde yer alan küçük program parçacıklarıdır. Metot yapısının ana sebebi programları modüler hale getirmektir. Aynı zamanda aynı program parçacığının tekrarlanmasını önlemeyi de sağlar. Her metot çağrıldığı proğram parçacığına belli bir değişkeni aktarabilir. Metotların tanımlarında aktardıkları değişken türü tanımlanır. Eğer metot hiçbir değişken aktarmıyorsa voidsözcüğüyle tanımlanır. Metotların genel tanımı aşağıdaki gibidir. Genel Metot tanımı (public) (static) sınıfdeğişkentürüsınıfismi( sınıfdeğişkengirdilistesi) { sınıf içinde geçerli degişken tanımları Metotun ana gövdesi return metot çıktı değişkeni 2
Örnek Bir Metot Tanımı: public static double metotornegi(intx,double y) { double z = 3.5; double f ; f = z*x*x+y; return f; Bu metotdaki x ve y gerçek (double) değişkenleri metotun girdi değişkenleridir. z ve f değişkenleri metotun yerel değişkenleridir ve bu metot dışında tanımları yoktur. Metot f değişkeninin değerini çıktı olarak metotun dışına aktarmaktadır. Eğer yukarıdaki metot main metotunda aşağıdaki gibi bir örnekte kullanılırsa doublez=2.5; doubler; inti=3; r=metotornegi(i,z); System.out.println( r = +r); r = 34 sonucuna ulaşılır. 3
Metot örneği-1 import javax.swing.*; public class metotornek1 { public static double kare(double x) { return x*x; public static void main(string[] args) { double sayi=double.parsedouble(joptionpane.showinputdialog("bir gerçek sayı giriniz : ")); JOptionPane.showMessageDialog(null,"girilen sayının karesi : "+kare(sayi)); 4
5
Metot örneği-2 import javax.swing.*; public class metotornek2 { public static long faktoriyel(int x) { long faktoriyel=1; for(int sayi=1;sayi<=x;sayi++) { faktoriyel=faktoriyel*sayi; return faktoriyel; ")); public static void main(string args[]) { int faktoriyelsayi; faktoriyelsayi=integer.parseint(joptionpane.showinputdialog("bir tam sayı giriniz : String s=faktoriyelsayi+" faktoriyel: "+faktoriyel(faktoriyelsayi); JOptionPane.showMessageDialog(null,s); 6
7
Metot örneği-3 import javax.swing.joptionpane; public class metotornek3 { public static double kuvvet(double sayi,int kuvvet) { double sonuc=1; for(int i=1;i<=kuvvet;i++){ sonuc=sonuc*sayi; return sonuc; public static void main(string[] args) { double cikti; double sayi=double.parsedouble(joptionpane.showinputdialog("bir gerçek sayı giriniz : ")); int derece=integer.parseint(joptionpane.showinputdialog("kuvvetini giriniz : ")); cikti=kuvvet(sayi,derece); JOptionPane.showMessageDialog(null,sayi+" üzeri "+derece+" = "+cikti); 8
9
Metot örneği-4 (Değer Döndürmeyen Metot Tanımı) public class metotornek4 { public static void PrintLine() { System.out.println("This is a line of text."); public static void main(string[] args) { System.out.println("Start Here"); PrintLine(); System.out.println("Back to the Main"); PrintLine(); System.out.println("End Here"); Çıktı: Start Here This is a line of text. Back to the Main This is a line of text. End Here 10
Math kütüphanesindeki hazır metotlara örnekler Metot Tanım Örnek abs(x) x değişekeninin mutlak değeri Math.abs(9.2) = 9.2 Math.abs(-9.2) = 9.2 ceil(x) floor(x) x degişkenini bir üst tamsayıya dönüştürür (türkçesi : tavan) x değişkenini bir alt tamsayıya dönüştürür. (türkçesi : taban) Math.ceil(9.2) = 10 Math.ceil(-9.8) = -9 Math.floor(9.2) = 9 Math.floor(-9.8) = -10 cos(x) x in trigonometrik cosünisü (x radyan ) Math.cos(1.0)=0.54030230568 sin(x) x in trigonometrik sinüsü (x radyan cinsinden tanımlanmıştır.) Math.sin(1.0)=0.8414709840709 tan(x) x in trigonometrik tanjantı (x radyan ) Math.tan(1.0)=1.557040724655 acos(x) x in trigonometrik cosünisünün tersi (sonuç radyan) Math.acos(0.54030230568)=1.0 asin(x) x in trigonometrik sinüsü (sonuç radyan ) Math.asin(0.8414709840709)=1.0 atan(x) atan2(x,y) exp(x) x in trigonometrik tanjantı (sonuç radyan ) x e e(2.7182818284590452354) nin x inci kuvveti 4.0*Math.atan(1.0)=3.14159265359 4.0*Math.atan2(1.0,1.0)=3.14159265 Math.exp(1.0) =2.718281828459 Math.exp(2.0) =7.389056098931 log(x) e tabanına göre logaritma Math.log(2.718281828459)=1.0 log10(x) 10 tabanına göre logaritma Math.log(10.0)=1.0 pow(x,y) x in y inci kuvveti Math.pow(3,2)=9.0 max(x,y) x ve y nin büyük olanı. x değeri double, float ve int ve long olarak Math.max(2.3,12.7)=12.7 tanımlanmıştır min(x,y) x ve y nin küçük olanı. x değeri double, float ve int ve long olarak Math.min(2.3,12.7)=2.3 tanımlanmıştır random() Raslantısal sayı (0 ile 1 arasinda) Math.random() = 0 ila bir arasında her sayı çıkabilir 11
Java kütüphanelerinden metot kullanım örneği (Sayı Tahmin Oyunu) import javax.swing.*; public class sayitahmin { public static void main(string[] args) { // TODO Auto-generated method stub double tutulansayi=math.round(math.random()*10); System.out.println("Tutulan sayi="+tutulansayi); double tahmin=-1; edin")); while(tahmin!=tutulansayi){ tahmin=double.parsedouble(joptionpane.showinputdialog("bir sayi tahmin if (tahmin<tutulansayi) JOptionPane.showMessageDialog(null, "Sayı daha büyük"); else if (tahmin>tutulansayi) JOptionPane.showMessageDialog(null, "Sayı daha küçük"); JOptionPane.showMessageDialog(null, "Tebrikler doğru tahmin"); 12
13
KAYNAKÇA 1. Turhan Çoban, Java Bilgisayar Diliyle Programlama. 14