Şimdi Ara

imdaaat c bilenler yardım edebilir mi?

Bu Konudaki Kullanıcılar:
2 Misafir - 2 Masaüstü
5 sn
12
Cevap
0
Favori
503
Tıklama
Daha Fazla
İstatistik
  • Konu İstatistikleri Yükleniyor
0 oy
Öne Çıkar
Sayfa: 1
Giriş
Mesaj
  • ya simdi hocamız odev verdi c de fibonacci dizisini oluşturcaz 0 1 1 2 3 5 8 .... diye gitcek malum ben de gayet çaylağım bu konuda söle bişi yaptım

    int N;

    int sonuc;

    int i;

    int k=0;

    int m=1;

    printf("N sayisini giriniz\n");

    scanf("%d",&N);


    if (N>0)
    {for(i=1;i<=N;i++){k=m;m=sonuc;sonuc=k+m;}printf("sonuc:%d\n",sonuc);}


    if (N=0)
    {printf("sonuc:1");}

    tabi çalışmadı doğal olarak sizce burdaki hata nedir yardımcı olursanız çooook memnun olurum...



  • fibonacci syı şöyle üretilir ortak
    f=f[i-1]+f[i-2]
    formülü ile şimdi bir dizi oluştur
    i=2,N=sayısı lavyeden girilir ve okutultulur.
    f[0]=1 VE f[1]=1 dir.for döngüsünde
    for(i=2;i<N;i++){
    f=f[i-1]+f[i-2]
    }
    şeklinde dizilere sayıları yerleştir ve sonra bir for döngüsüylede diziyi yazdır sonucu görürsün
  • bence sen syntax olarak biraz daha egzersiz yap... yazdıkların sana da çok komik gelecek ilerde.. yardım istersen pm at msn vereyim...
  • Akasya, programinda sonuc degiskenini initialize etmedigin icin, yani ilk deger vermedigin icin program N>0 degerler icin sapitiyor. Ayrica, N<0 icin kontrol olarak N=0 degil de N==0 kullanmalisin. Cunku, == operatoru mantiksaldir.Digerinde ise sadece N degiskenini sifir yapiyosun ve if sarti hic saglanmiyor. O yuzden de if dongusune hic girmiyor.yani if(false) yaptiriyosun.Son olarak fibonacci hesaplamasinda cok yaklsamissin ama mantiksal kucuk bir hata var detayini bir sonraki mesajda yazacam..
  • ilk degerleri atamalısın önce . syntax hatalarında var ahh o c ödevlerinden bende az cekmemistim ilk odevimiz roma rakamlarını çviren programdı hic unutmam
    biraz daha pratik!!!
  • Akasya ha nerde kalmistik...Fibonacci yapmanin mantigi ucuncu bir fibonacci sayisi icin ondan onceki iki fibonacci sayisini kullanmaktir. Yani bize, n. fibonacci sayisi icin sadece n-1 ve n-2 nci fibonlar lazimdir. Yani bize bu iki fibon sayisi ve bu iki fibon sayisinin toplamini yazacagimiz gecici bir degisken yani senin sonuc degiskeni gibi lazimdir. Daha sonra bu sonucun senin bundan sonraki iki fibonacci sayindan sonuncusu olacak ilki ise bir oncekindeki ikinci olacak yani n-1 nci fibon sayisi delete! bellekte tutmaya gerek yok. Zaten sen bu mantigi cikarmissin. Tek yanlisin sonuc degiskenini once hesaplamak sonra atamakarini yapmak. Buna gore senin kodu duzeltiresek:

    for(i=1;i<=N;i++)
    {
    sonuc=k+m;
    k=m;
    m=sonuc;
    }
    printf("sonuc:%d\n",sonuc);
    olmasi olayi cozer.Bu sekilde sonuc a da mantikli bir deger vermis olduk

    Ayrica, bir hatirlatma: Fibonacci serisi 1 ile baslar. Yani 1,1,2,3,5,8,13,... k ile m in ilk degerlerine bir ayar cekmen de fayda var.

    Bak bu benim fibonacci fonksiyonum. Bir kitapta gormustum. Cok elegant!.Uc bellek gozuyle isi bitiriyo.Embedded!

    int fibonacci()
    {
    static int f1=1, f2=1; // Fibonacci serisinin ilk iki terimi
    int g;

    g=f1+f2; // Ucuncu fibon sayisi olacak
    f1=f2; // ilk fibon sayisina gerek kalmadi artik. ikinci fibon bir sonrakinda birinci fibon. bellek gozu shift edildi
    f2=g; // bir sonraki hesaplamada ikinci fibon olacak

    return g; // Ucuncu fibon sayisi.

    }


    Bu fonksiyona N parametresini aktararak ya da ana fonksiyondan N defa cagirarak ( ben birincisini tercih ederim) isini halledebilirsin.Eeeeeee artik bunun m




  • hepinizden Allah razı olsun ezmeyin beni öğreniriz inş. tekrar tşkler..
  • Yapay Zeka’dan İlgili Konular
    Daha Fazla Göster
  • C++ forever
  • Akasya bence baskasına sormadan kendin yapmaya calısarak oğrenirsen eğer bir ödevse daha iyi.Ben ödevlerimi baskasına yaptıra yaptıra öğrendim daha doğrusu öğrendiğimi düşündüm sonra yaz okulunda tekrar almak zorunda kaldım

    Sen de üzerinde düşünerk yap C ödevlerini..
  • yaaa haklısın msenel ama hoca da bişi anlatmıyoki programın karşısına geçip bakışıyoruz karşılıklı inş anlıycam bigün hepiciğini kendim yapcam ödevlerimin hoşgör daha çok yeniyim
  • Fibonacci dizisi c öğreten her kaynakta örnek olarak verilir,hocanız pek araştırmadan vermiş sanırım ödevi .Araştırmak sana düşüyo ,Msenel in söylediklerine de katılıyorum eğer öğrenmek istiyorsan yazılmış bir programı anlamaya çalışmak yerine ne yapıp edip kendin yazmaya çalış.Bundan sonraki çalışmaların için tavsiye olarak al bu söylediklerimi,kolay gelsin.
  • sana tavsiyem temp gibi geçici değişkenler kullanman.. hatta bunları kulanmay alışsan iyi olur.. zamanında bana da fib. serisi ödevi vermişlerdi.. ama fark olarak programda kaç basamaklı seri oluşturulacağını kullanıcı giriyordu... eğer örnek için kodu istersen öm at..
  • 
Sayfa: 1
- x
Bildirim
mesajınız kopyalandı (ctrl+v) yapıştırmak istediğiniz yere yapıştırabilirsiniz.