folder Tahribat.com Forumları
linefolder C - C++
linefolder C De Mantık Hatası.



C De Mantık Hatası.

  1. KısayolKısayol reportŞikayet pmÖzel Mesaj
    ULKUHAN
    ULKUHAN's avatar
    Kayıt Tarihi: 13/Mayıs/2008
    Erkek

    #include <stdio.h>


    int main (){

        int n,i;
        float a=1;
        printf("Enter the n\n");
        scanf("%d",&n);

        for ( i=1  ; i<=n  ; i++) {

    a+=1\(a*i);
       
        }
        printf("%1f\n",a);

       
        return 0;
    }

     

     arkadaslar amac bu alttakı programı yazmaktı fakat ufak bı mantık hatası oldu bulamadım

    1 + 1/1! + 1/2! +1/3! + … + 1/n!

    büyük ihtimalle   a+=1\(a*i); sorun burada ama anlayamadım.

     

    tskler. 


    Takke Düstü Kel Göründü:)
  2. KısayolKısayol reportŞikayet pmÖzel Mesaj
    Tugberk
    Tugberk's avatar
    Kayıt Tarihi: 04/Ekim/2009
    Erkek

    Program doğru şekilde faktöriyel almıyor. zaten hiç faktöriyel almıyor.

    #include <stdio.h>

    double fak(int sayi);

    int main (){

        int n,i;
        double a=1;
        printf("Enter the n\n");
        scanf("%d",&n);

        for ( i=1  ; i<=n  ; i++)
            a+=1./fak(i);
      
       
        printf("%1.20f\n",a);

     getch(); 
        return 0;
    }

    //----------------------
    double fak(int sayi){
      int i;
      double sonuc=1;
      
        for(i=1;i<=sayi;i++)
            sonuc*=i;
    return sonuc;
    }

     

    Programın doğru hali bu.bu arada \ ile bölme yapılmaz / ile yapılır. kolay gelsin.

     

    edit : fonksiyonu doubleye çevirdim ve duyarlılıgı biraz arttırdım. daha iyi sonuc görürsün.

  3. KısayolKısayol reportŞikayet pmÖzel Mesaj
    ULKUHAN
    ULKUHAN's avatar
    Kayıt Tarihi: 13/Mayıs/2008
    Erkek

    Sagol tesekkur ederım.


    Takke Düstü Kel Göründü:)
  4. KısayolKısayol reportŞikayet pmÖzel Mesaj
    Tugberk
    Tugberk's avatar
    Kayıt Tarihi: 04/Ekim/2009
    Erkek

    Programı biraz daha düzenledim yenisini al. 2.718281 de takılıp kalınca farkettim e sayısını hesapladıgını :)

    Ben de programlamaya ilk basladıgım yıllarda pi sayısını 20 farklı yolla hesaplıyordum bu sayede hala pi sayısının 23 hanesini ezbere bilirim :)

  5. KısayolKısayol reportŞikayet pmÖzel Mesaj
    o6u2
    o6u2's avatar
    Kayıt Tarihi: 04/Ekim/2008
    Erkek
    tahribatta görmek istediğimiz güzel şeyler =)

    http://kocaer.me
  6. KısayolKısayol reportŞikayet pmÖzel Mesaj
    geniuss
    geniuss's avatar
    Kayıt Tarihi: 12/Nisan/2007
    Erkek

    benimde c++ hakkinda bi kac sorum olucakti, konu acilmisken soriyim  soyle bi sey yaptigimda calismiyor

     

    1.soru

    char tbt[20];

     cin>>tbt;

    if(tbt=="tbt")

    komut 1

    else

    komut 2

     

    tbt yazdigimda ilk komut gerceklesmiyor ikincisi gerceklesiyor galiba enter den cunku enteri bi sifir olarak algiliyor console aplication orneyin cout>>tbt yazinca eger basta tbt girdiysem tbt alt satirda bi sifir daha ekliyor  bunu nasil haledebilecegim hakkinda bi fikriniz varmi 

     

    2. soru bildiginiz gibi c++ de string diye bi veri tipi yok sadece char var ki bunda kac tane karakter tasiyacaginizi siz beli ediyorsunzu peki kulanici sinirsiz karakter girebilmek icin ne yapmam gerek ? yani degisken sinirsiz karakter tasiyabilsin yani bastan beli olmasin ?

     

    3. editor olarak devcpp yi kulaniyorum ama cogu library burda yok orneyni #include <iomanip> yaptigimda hata veriyor editor bunu devcpp ya nasil ekleyebilirim 

     

    simdiden tesekurler

  7. KısayolKısayol reportŞikayet pmÖzel Mesaj
    Tugberk
    Tugberk's avatar
    Kayıt Tarihi: 04/Ekim/2009
    Erkek

    geniuss bunu yazdı:
    -----------------------------

    benimde c++ hakkinda bi kac sorum olucakti, konu acilmisken soriyim  soyle bi sey yaptigimda calismiyor

     

    1.soru

    char tbt[20];

     cin>>tbt;

    if(tbt=="tbt")

    komut 1

    else

    komut 2

     

    tbt yazdigimda ilk komut gerceklesmiyor ikincisi gerceklesiyor galiba enter den cunku enteri bi sifir olarak algiliyor console aplication orneyin cout>>tbt yazinca eger basta tbt girdiysem tbt alt satirda bi sifir daha ekliyor  bunu nasil haledebilecegim hakkinda bi fikriniz varmi 

     

    2. soru bildiginiz gibi c++ de string diye bi veri tipi yok sadece char var ki bunda kac tane karakter tasiyacaginizi siz beli ediyorsunzu peki kulanici sinirsiz karakter girebilmek icin ne yapmam gerek ? yani degisken sinirsiz karakter tasiyabilsin yani bastan beli olmasin ?

     

    3. editor olarak devcpp yi kulaniyorum ama cogu library burda yok orneyni #include yaptigimda hata veriyor editor bunu devcpp ya nasil ekleyebilirim 

     

    simdiden tesekurler


    -----------------------------

    Öncelikle C ve C++ da if(tbt="dssdf") gibi bir karşılaştırma yapamazsın. Yaparsan "dsfsdf" stringin bellekte herhangi bir yere yerleştirilmiş "dsdsf" yazısının adresi demektir ve senin karakter dizini adresi buna eşit olmayacağı içni sonuç asla doğru olmaz.

    (edit: C++ da string türü standart olarak varmıs, alp den öğrendim :) Bukod C içindir

    Ama şöyle yaparsan sorun kalmaz.

     if(! strcmp(tbt,"tbt") )

    ....

    else

    ....

    Ayrıca enter karakteri windows da , 0xD ve 0xA karakterleri birleşimidir. ya da '\n' karakteridir. 0 ise stringlerin bitiş karakteridir(NULL).

    ikinci soruya gelirsek, kullanıcının sınırsız sayıda karakter girmesi durumu C de malloc gibi fonksiyonlarla sağlanır. bunlar heap alanından istenildiği kadar bayt ayırırlar. Ancak C++ da sanırım "new" operatörü de var. unutma herşeyin bir sınırı vardır, Kaç bayt ayırırsan okadar harf alırsın.

    3. soruna gelirsek, Dev C++ mükemmel bir editor ve Gcc gibi mükemmel bir derleyicisi var. Ben C de hiç bir sorun yaşamadım ancak sonuçta standart olmayan başlık dosyalarının dev c++ da olması zorunlu değildir. Ama birçoğu var yinede.

  8. KısayolKısayol reportŞikayet pmÖzel Mesaj
    alp
    alp's avatar
    Kayıt Tarihi: 28/Ekim/2003
    Erkek

    c++'da <string> şeklinde tanımlanan, ayrıca dev c++'da da standart olan bi string kütüphanesi var onu kullanarak diğer dillerden alışkın olduğun stringleri kullanabilirsin ama tugberk hocamın dediği gibi her şeyin bi sınırı var

  9. KısayolKısayol reportŞikayet pmÖzel Mesaj
    wert
    wert's avatar
    Kayıt Tarihi: 19/Eylül/2005
    Erkek
    Tugberk bunu yazdı:
    -----------------------------

    Programı biraz daha düzenledim yenisini al. 2.718281 de takılıp kalınca farkettim e sayısını hesapladıgını :)

    Ben de programlamaya ilk basladıgım yıllarda pi sayısını 20 farklı yolla hesaplıyordum bu sayede hala pi sayısının 23 hanesini ezbere bilirim :)


    -----------------------------

    oha bende bunu görünce anladım

    1 + 1/1! + 1/2! +1/3! + … + 1/n!

    çünkü e üzeri 1 in maclouren seri açılımı bu :D 


    |sadece aptalların başarısı ders notu ile ölçülür|
  10. KısayolKısayol reportŞikayet pmÖzel Mesaj
    geniuss
    geniuss's avatar
    Kayıt Tarihi: 12/Nisan/2007
    Erkek
    sadece devcpp nin ozeligi mi bilmiyorum ama simdi string tbt diye denedim calisti niye boyle oldugunu anlaamadim ama bide herseyin bi siniri oldugunu biliyorum ama sadece diger programlama dilerindeki gibi string olayini cpp de de kulanabilirmiyi mdiye sormustum bide us iomanip olayini devCpp de nasil kulanabilecgimi birisi soyleyebilirmi ?
  11. KısayolKısayol reportŞikayet pmÖzel Mesaj
    alp
    alp's avatar
    Kayıt Tarihi: 28/Ekim/2003
    Erkek

    abi string c++ standardlarından biri, dev c++'da, visual c++'da, c++ derleyicilerinde de standart haliyle

    iomanip konusunda da

    #include <iomanip>

    using namespace std; 

    kullandığın sürece sorun olmaması lazım, ben şu an denedim bi sorun göremedim

Toplam Hit: 4073 Toplam Mesaj: 16