Ruby ile Terminal üzerinde bir sayının faktöriyeli nasıl bulunur ?

Ruby programlama dili hakkında bilgiler, kaynaklar, dökümanlar ve örneklerin bulunduğu bölümümüz.
Cevapla
Kullanıcı avatarı
admin
Sistem Geliştiricisi
Sistem Geliştiricisi
Mesajlar: 1066
Kayıt: 28 Ağu 2022 04:38
Konum: Database
Meslek: Teknisyen
Teşekkür etti: 677 kez
Teşekkür edildi: 503 kez
İletişim:

Ruby ile Terminal üzerinde bir sayının faktöriyeli nasıl bulunur ?

Mesaj gönderen admin »

Ruby programlama ile n sayısının faktöriyeli nasıl bulunur?

Matematikten biraz anlayan herkes bilir . Faktöriyel tanım olarak;
1’den n’ye kadar olan veya n’den geriye doğru 1’e kadar olan doğal sayıların çarpımı n! (n faktöriyel) olarak gösterilir.
n!=1.2.3.4……(n-1).n

n!=n.(n-1)…..3.2.1

0!=1

1!=1

2!=1.2=2

3!=1.2.3=6

4!=1.2.3.4=24

5!=1.2.3.4.5=120
Formül :

Kod: Tümünü seç

n! = 1                (ne zaman n==0 olursa)
   = n * (n-1)!
Buna göre kaynak kodumuz :

Kod: Tümünü seç

def fact(n)
  if n == 0
    1
  else
    n * fact(n-1)
  end
end

puts fact(ARGV[0].to_i)
Yukarıdaki şekilde tasarlarsak ve dosyaadı.rb uzantısıyla boş bir dosya içerisine kaydedersek ardından terminalde çalıştırmak için ;

Kod: Tümünü seç

ruby dosyaadı.rb 5
dosyaadı.rb yi ve faktöriyelini bulacağınız sayıyı değiştirebilirsiniz.

Ekran çıktısı :

Resim
Daha zeki olmanın tek yolu, daha zeki bir rakiple oynamaktır.

Etiketler:
trasmus
ARGE Ekip Üyesi
ARGE Ekip Üyesi
Mesajlar: 52
Kayıt: 28 Eyl 2023 14:47
Teşekkür etti: 17 kez
Teşekkür edildi: 60 kez

Re: Ruby ile Terminal üzerinde bir sayının faktöriyeli nasıl bulunur ?

Mesaj gönderen trasmus »

- Ruby'e şöyle bir baktım da Python gibi yüksek düzey dil sözdizimini kullanıyormuş. Python bilen birinin Ruby'de kod yazmaya alışması en fazla bir gününü alır. Ufak tefek değişiklikler var ama genelde mantığı aynı gibi.

- Yukarıdaki faktöryel hesaplayan kodun alternatifini (ve bence benim kodum daha okunaklı :) ) aşağıya yazıyorum:

Kod: Tümünü seç

puts "Faktöryel hesabı için sayı giriniz:"
sayi = gets.chomp.to_i
output, dongu = sayi, sayi


while dongu > 1 
  dongu -=1
  output *= dongu
end
puts "#{sayi} sayısının faktöryeli: #{output}"
puts "Çıkmak için herhangi bir tuşa basın."
gets
Resim
trasmus
ARGE Ekip Üyesi
ARGE Ekip Üyesi
Mesajlar: 52
Kayıt: 28 Eyl 2023 14:47
Teşekkür etti: 17 kez
Teşekkür edildi: 60 kez

Re: Ruby ile Terminal üzerinde bir sayının faktöriyeli nasıl bulunur ?

Mesaj gönderen trasmus »

Can sıkıntısından faktöryel hesaplayan Ruby kodunu güncelledim. Artık istediğiniz kadar hesaplamayı programı kapatmadan yapabilirsiniz.

Kod: Tümünü seç

puts "Program Çalıştırılsın mı? (1 veya 0)"
durum = gets.chomp.to_i

while durum == 1
	puts "\nFaktöryel hesabı için sayı giriniz:"
	sayi = gets.chomp.to_i
	output, dongu = sayi, sayi

	while dongu > 1 
	  dongu -=1
	  output *= dongu
	end

	puts "\n#{sayi} sayısının faktöryeli: #{output}"

puts "\nDevam etmek için 1 sayısını giriniz"
durum = gets.chomp.to_i

end
trasmus
ARGE Ekip Üyesi
ARGE Ekip Üyesi
Mesajlar: 52
Kayıt: 28 Eyl 2023 14:47
Teşekkür etti: 17 kez
Teşekkür edildi: 60 kez

Re: Ruby ile Terminal üzerinde bir sayının faktöriyeli nasıl bulunur ?

Mesaj gönderen trasmus »

Scripte programdan çıkış yaptığı iletisini ekledim ve aniden çıkmak yerine iletiyi gösterip 2 saniye bekleyip kapatma ekledim.

Kod: Tümünü seç

puts "Programı Çalıştırmak için 1'i veya Sonlandırmak için 0'ı giriniz: "
durum = gets.chomp.to_i

while durum == 1
	puts "\nFaktöryel hesabı için sayı giriniz:"
	sayi = gets.chomp.to_i
	output, dongu = sayi, sayi

	while dongu > 1 
	  dongu -=1
	  output *= dongu
	end

	puts "\n#{sayi} sayısının faktöryeli: #{output}"

puts "\nDevam etmek için 1 sayısını giriniz"
durum = gets.chomp.to_i

end
puts("\n Program Sonlanıyor.")
sleep 2
Cevapla

“Ruby Programlama” sayfasına dön