Arama butonu
Bu konudaki kullanıcılar: 1 misafir, 1 mobil kullanıcı
6
Cevap
455
Tıklama
0
Öne Çıkarma
çok basit ama ...
M
20 yıl (84 mesaj)
Çavuş
Konu Sahibi

#include <iostream>
#include<conio.h>
using namespace std;
int main()
{
int i=0,sayi;
int faktor=1;
cout<<"faktoriyeli alinacak sayiyi giriniz:"<<"\t\n";
cin>>sayi;
while(i<=sayi)
{
i++;
faktor=faktor*i;
}
cout<<"sonuc="<<faktor<<endl;
getch();
return 0;


sayının faktörüyelini alan c++ programını yazdım sonunda galiba öğrenmeye başlıyorum.Bunu daha fazla nasıl geliştirebilirim bi bakarsanız sevinirim...

DH forumlarında vakit geçirmekten keyif alıyor gibisin ancak giriş yapmadığını görüyoruz.

Üye olduğunda özel mesaj gönderebilir, beğendiğin konuları favorilerine ekleyip takibe alabilir ve daha önce gezdiğin konulara hızlıca erişebilirsin.

Üye Ol Şimdi Değil



E
20 yıl (161 mesaj)
Teğmen

güzel şimdi bunu bir fonksiyon yap. fonksiyona sayıyı parametre gir, o da geri faktoriyelini dönsün.


Bu mesaja 1 cevap geldi.
M
20 yıl (84 mesaj)
Çavuş
Konu Sahibi

ne yapacam hiç bişey anlamadım biraz açarmısın...


Bu mesaja 1 cevap geldi.
S
20 yıl (3813 mesaj)
Yüzbaşı

quote:

Orjinalden alıntı: mavilider

ne yapacam hiç bişey anlamadım biraz açarmısın...


Arkadas sunu soylemek istiyo...bu program sadece main fonksiyonundan olusuyo...simdi buna baska bir fonksiyon yaz....o fonksiyona faktoriyelini bulmak istedigin sayiyi parametre olarak gonder...o fonksiyon da o sayinin faktoriyelini dondursun...ve bunu da main fonksiyonunda bastir...


Bu mesaja 1 cevap geldi.
M
20 yıl (84 mesaj)
Çavuş
Konu Sahibi

ben onu asla yapamam bi zahmet bi el atında bende öğreneyim...


Bu mesaja 2 cevap geldi.
S
20 yıl (3813 mesaj)
Yüzbaşı

buyur kardes...bu faktoriyel programinin 2 fonksiyonlu hali...yalniz diger fonksiyon recursive(tekrarlayan) bir fonksiyon...

#include<stdio.h>
int main()
{
unsigned int number;
unsigned int result;
printf("Enter a positive integer\n");
scanf("%d",&number);
result=factorial(number);
printf("The result is %d\n",result);

return 0;
}

int factorial(unsigned int n)
{
if(n==1 || n==0)
return 1;
else
return n * factorial(n-1);
}



E
20 yıl (161 mesaj)
Teğmen

quote:

Orjinalden alıntı: mavilider

ben onu asla yapamam bi zahmet bi el atında bende öğreneyim...


yapacağın işlem çok basit while döngüsünü alıp ayrı bir fonksiyona koyacaksın.

#include <iostream>
#include<conio.h>
using namespace std;
int main()
{
int sayi;
int faktor=1;
cout<<"faktoriyeli alinacak sayiyi giriniz:"<<"\t\n";
cin>>sayi;
faktor=faktoriyel(sayi);
cout<<"sonuc="<<faktor<<endl;
getch();
return 0;
}


int faktoriyel(int sayi)
{
int i=0;
int faktor=1;

while(i<=sayi)
{
i++;
faktor=faktor*i;
}
return faktor;
}


farkettiysen while döngüsünün yerine

faktor=faktoriyel(sayi);

satırı geldi. burada faktoriyel isimli fonksiyonu çağırıyoruz ve parametre olarak sayi değişkenini gönderiyoruz. Fonksiyonun içinde while döngüsü çalışıyor ve hesaplanan sonuç return deyimi ile geri döndürülüyor. peki bu bize ne kazandırıyor? bu sayede tekrar tekrar kod yazmaktan kurtulmuş oluyoruz. mesela iki ayrı sayının faktoriyelini hesaplayıp toplamak için

faktoriyel(x) + faktoriyel(y)

yazmak yeterli, ya da bir sayının faktoriyelinin faktoriyelini almak için

faktoriyel(faktoriyel(x))

yazabiliriz. Sum 41 arkadaş recursive fonksiyon yazmış ama şu aşamada biraz erken gibi geldi bana.
iyi çalışmalar, kolay gelsin..



DH Mobil uygulaması ile devam edin. Mobil tarayıcınız ile mümkün olanların yanı sıra, birçok yeni ve faydalı özelliğe erişin. Gizle ve güncelleme çıkana kadar tekrar gösterme.