1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 |
#encoding:UTF-8 #metotlarımızı def ifadesi ile tanımlar ve blok sonuna end koyarız. #parametre almayan Merhjaba isimli bir metot yazalım. def Merhaba puts "Merhaba Metotlar Çalışmamıza Hoş Geldiniz !" end #metotumuzu çalıştırmak için metot adını ve varsa parametrelerini yazıyoruz. Merhaba() #kullanıcıdan ismini isteyen ve ismini Hosgeldin metotuna gönderek mesaj veren programı yazalım def Hosgeldin(isim) print "Hoşgeldiniz Sayın #{isim}\n" end print "Adınızı Giriniz: " ad=gets.chomp Hosgeldin(ad) #metotumuza ad değişkenini parametre olarak tanımladık ve kulalnıcıdan aldığımız isme hoşgeldin dedik. #toplama işlemi ypatıran metot yazalım def Topla(a,b) a+b end print "Toplam: ",Topla(2,3),"\n" #3 tane parametre alan çarpma metotu yazalım. c=1 ifadesi eğer 3.parametre metotta girilmezse varsayılan olarak 1 atanacağı anlamına gelmektedir. def Carp(a,b,c=1) print "\nÇarpım: ", a*b*c end Carp(3,4,5) Carp(5,2) puts #eğer parametre sayısı belirsiz ve kullanıcının eklediği parametre kadar işlem görüleekse c#da params olarka bildğimiz burda ise * ifadesi ile sonsuz parametre alan metot yazalım def Topla(*sayilar) topla=0 sayilar.each{|sayi|topla=topla+sayi} return topla#return ile topla deişkenini döndürüyoruz end print "Toplam: ", Topla(53,4,56,98,256,15,989,41,67,38) #vize ve final notu istediğini diziler yardımı ile fonksiyona gönderen ve kullanıya soruyu soran ve cevabını isteyen fonksiyonu yazalım puts def notlar(sorular)#sorular parametresi dizi olarak göndereceğiz cevaplar=[]#her sorunun bir cevabı olacağı için cevapları buraya kaydedeceğiz. sorular.each do |soru|#sorular dizisinin her sorusunu print "#{soru}: "#ekrana yazdırarak sor cevaplar.push(gets.chomp.to_i)#kullanıcının girdiği her cevapta \n ifadesini chomp ile sil ve to_i ile tam sayıya cevairip push fonksiyonu ile cevaplar dizisinin s on elemanı olarka kaydedelim. end cevaplar# end vize, final,ortalama=notlar(["Vize Notunuz: ", "Final Notunuz: "]) print "Ortalamanız: ",(vize.to_f*0.3+final.to_f*0.7) puts #örnek metot ve sınıf metotları olmak üzere 2 çeşit metot türümüz vardır.. #ilk olarak örnek metotlara bakacğaız. örnek metotlarda sınıfımızın örneğini oluşturup, örnek üzerinden ulaşabiliriz. class Mesaj def selam(ad) puts "Merhaba #{ad}" end end mesaj=Mesaj.new#sınıfımızın mesaj adında örneğini oluşturduk. mesaj.selam("Onur Arslan")#nesnemiz üzerindne selam metotuna ulaştık. # Mesaj.selam("Onur Arslan") bu şekilde direkt sınıf üzerinden erişemeyiz. bu erişim şekli sınıf metotları için geçerli olur. #şimdi aynı örneği sınıf metotları üzerinden yapalım. class Mesaj def self.selam(ad) puts "Merhaba #{ad}" end end Mesaj.selam("Onur ARSLAN") #direkt sınıf üzerinden ulaşmak için metotlar isimlerine ön ek olarak self. ekliyoruz. |