Şimdi Ara

Çarpımsal terslerin toplamı programı?

Daha Fazla
Bu Konudaki Kullanıcılar: Daha Az
1 Misafir - 1 Masaüstü
5 sn
10
Cevap
0
Favori
556
Tıklama
Daha Fazla
İstatistik
  • Konu İstatistikleri Yükleniyor
0 oy
Öne Çıkar
Sayfa: 1
Giriş
Mesaj
  • Merhaba c ile çok aram iyi değildir arkadaşlar bir kaç fonksiyon biliyorum başlangıç seviyesindeyim. Ufak bir program yazmak istedim ama nedense hata alıyorum. Üçgensel sayıların çapımsal terslerinin toplamlarını bulmaya çaşlışıyorum. Mesela klavyeden bir sayı girildiğinde program bunun önce üçgensel bir sayı olup olmadığını bulacak, sonrada 1 den o sayıya kadar olan üçgensel sayıların toplamını bulmaya yarayan bir program yazmaya çalışıyorum.

    Üçgensel sayılar: 1 den başlayarak hep 1 fazlasını ekleyerek bulunan bir toplamsal sayıdır. Örneğin bir kaç üçgensel bir sayıyı inceleyelim:


    1+2=3 ...> demekki 10 üçgensel sayıdır.
    1+2+3+4=10 ...> demekki 10 üçgensel sayıdır.
    1+2+3+4+5=15 ...> demekki 15 üçgensel sayıdır.

    Bu şekilde elde edilebilen üçgensel sayıların ilk bir kaç tanesi şu şekildedir: 1,3,6,10,15,21,28,36,45,55,... vs

    Mesela klavyeden adam 10 sayısını girdi. Program önce bu sayının üçgensel sayı olup olmadığını inceyecek yani 10 sayısının; 1 den başlayarak birer artışla elde edilcek ardışık toplamlar şeklinde yazılıp yazılamadığını bulacağız: 1+2+3+4 işte burada 10 u yakaladık demekki 10 sayısı üçgenseldir. Artık bundan sonra program şunu yapacak: İlk üçgensel sayıdan başlayarak (ki bu sayı 1 dir), 10 a kadar (10 dahil) olan üçgensel sayıların çarpımsal terslerinin toplamını bulacağız: Bununda kısa yoldan hesabını aşağıdaki gibi son iki terimin paydalarının toplamının, son terimin paydasına oranı şeklinde hesaplarız:

    1/1 + 1/3+ 1/6+ 1/10 = (6+10)/10 = 8/5

    Algoritmasını ben aşağıdaki gibi yaptım ama dos ekranında uzun uzun rakamlar falan çıkıyor.. Birde program her girilen sayıyı üçgensel sayı olarak kabul ediyor ve defalarca kez alt alta sonuçlar veriyor..

     
    #include<stdio.h>
    int main (void)
    {
    int i,j,k;
    float bolum;
    printf("Lutfen bir ucgensel sayi giriniz: %d",i);
    scanf("%f",&i);
    for(j=0;j<=i;j++)
    {
    j+=j;
    if(i=i){
    for(k=0;k<i-1;k++)
    k+=k;
    bolum=float(i+k)/i;
    printf("\n [1,%d] araligindaki ucgensel sayilarin carpimsal terslerinin toplami: %f olur",i,bolum);
    }
    else printf("\nGirdiginiz sayi ucgensel sayi degildir!");
    }
    system("pause");
    return 0;
    }







  • Hocam kodlamanız da yanlışlar ve eksiklikler var aşağıda vereceğim kod işinizi görecektir.

    #include <stdio.h> 
    #include <stdlib.h>

    int uSayi(int n)
    {
    int i,toplam=0;
    for(i=0;i<=n;i++)
    {
    if(n==toplam)
    return 1;
    toplam+=i;
    }
    }
    int main ()
    {
    int gSayi,toplam=0;
    int i=0;
    float bolum=1;
    printf("Lutfen bir sayi giriniz\n");
    scanf("%d",&gSayi);
    if(uSayi(gSayi)==1)
    printf("Girilen sayi ucgensel sayidir.\n");
    else
    printf("Girilen sayi ucgensel sayi degildir\n");
    for(i=1;i<=gSayi;i++)
    {
    if(uSayi(i)==1)
    bolum+=(1/(float)i);
    }
    printf("[1,%d] araligindaki ucgensel sayilarin carpimsal terslerinin toplami: %f olur",gSayi,bolum);
    return 0;
    }




  • quote:

    Orijinalden alıntı: ManiacFear

    Hocam kodlamanız da yanlışlar ve eksiklikler var aşağıda vereceğim kod işinizi görecektir.

    #include <stdio.h> 
    #include <stdlib.h>

    int uSayi(int n)
    {
    int i,toplam=0;
    for(i=0;i<=n;i++)
    {
    if(n==toplam)
    return 1;
    toplam+=i;
    }
    }
    int main ()
    {
    int gSayi,toplam=0;
    int i=0;
    float bolum=1;
    printf("Lutfen bir sayi giriniz\n");
    scanf("%d",&gSayi);
    if(uSayi(gSayi)==1)
    printf("Girilen sayi ucgensel sayidir.\n");
    else
    printf("Girilen sayi ucgensel sayi degildir\n");
    for(i=1;i<=gSayi;i++)
    {
    if(uSayi(i)==1)
    bolum+=(1/(float)i);
    }
    printf("[1,%d] araligindaki ucgensel sayilarin carpimsal terslerinin toplami: %f olur",gSayi,bolum);
    return 0;
    }



    Hocam Allah razı olsun çok teşekkürler benim boyumu çok aşıyormuş bu kod yaa.. Konu başında ufak bir program dedim ama pek de ufak değilmiş hani.

    Ancak küçük bir pürüz olsa gerek. Çünkü girilen sayının üçgensel olup olmadığını doğru sonuç olarak veriyor buraya kadar sorun yok ama çarpımsal terslerin toplamını yanlış hesaplıyor.

    Mesela 6 değerini girdiğimde:

    Normalde 6 sayısı : 1+2+3 şeklinde yazıldığından üçgensel sayıdır. Sonraki basamakta şunu hesaplamalı program:

    1/1 + 1/3 + 1/6 = (3+6)/6 = 1.5

    Yani 6 sayısına (6 da dahil) kadarki üçgensel sayıların (ki onlar 1,3,6 dır sadece) çarpımsal terslerinin toplamını bulması gerekiyor. Sanırım sizin kod aradaki diğer sayılarıda hesaplıyor hocam.

    Ben sizin kodlardan oynayarak gerekli düzenlemeyi yapmaya çalıştım ama olmadı çünkü bilmediğim kodlar var burada bu sefer derleyici hata buluyor hep.



    < Bu mesaj bu kişi tarafından değiştirildi rotartsanimdA -- 29 Ocak 2013; 2:34:24 >




  • quote:

    Orijinalden alıntı: rotartsanimdA

    quote:

    Orijinalden alıntı: ManiacFear

    Hocam kodlamanız da yanlışlar ve eksiklikler var aşağıda vereceğim kod işinizi görecektir.

    #include <stdio.h> 
    #include <stdlib.h>

    int uSayi(int n)
    {
    int i,toplam=0;
    for(i=0;i<=n;i++)
    {
    if(n==toplam)
    return 1;
    toplam+=i;
    }
    }
    int main ()
    {
    int gSayi,toplam=0;
    int i=0;
    float bolum=1;
    printf("Lutfen bir sayi giriniz\n");
    scanf("%d",&gSayi);
    if(uSayi(gSayi)==1)
    printf("Girilen sayi ucgensel sayidir.\n");
    else
    printf("Girilen sayi ucgensel sayi degildir\n");
    for(i=1;i<=gSayi;i++)
    {
    if(uSayi(i)==1)
    bolum+=(1/(float)i);
    }
    printf("[1,%d] araligindaki ucgensel sayilarin carpimsal terslerinin toplami: %f olur",gSayi,bolum);
    return 0;
    }



    Hocam Allah razı olsun çok teşekkürler benim boyumu çok aşıyormuş bu kod yaa.. Konu başında ufak bir program dedim ama pek de ufak değilmiş hani.

    Ancak küçük bir pürüz olsa gerek. Çünkü girilen sayının üçgensel olup olmadığını doğru sonuç olarak veriyor buraya kadar sorun yok ama çarpımsal terslerin toplamını yanlış hesaplıyor.

    Mesela 6 değerini girdiğimde:

    Normalde 6 sayısı : 1+2+3 şeklinde yazıldığından üçgensel sayıdır. Sonraki basamakta şunu hesaplamalı program:

    1/1 + 1/3 + 1/6 = (3+6)/6 = 1.5

    Yani 6 sayısına (6 da dahil) kadarki üçgensel sayıların (ki onlar 1,3,6 dır sadece) çarpımsal terslerinin toplamını bulması gerekiyor. Sanırım sizin kod aradaki diğer sayılarıda hesaplıyor hocam.

    Ben sizin kodlardan oynayarak gerekli düzenlemeyi yapmaya çalıştım ama olmadı çünkü bilmediğim kodlar var burada bu sefer derleyici hata buluyor hep.

    Ben kodu CodeBlocks da derledim. Program bende düzgün bir şekilde çalıştı. Siz çalıştırdığınız zaman nasıl bir çıktı alıyorsunuz ?




  • Hocam şöyle diyim size çalıştırdığımda mesela kağıt üzerinde yukardaki mesajımda yaptığımdan farklı olarak 6 değeri için; 1.95 buluyor oysaki cevabı 1.5 olmalı. Girilen sayının üçgensel sayı mı değil mi bunu buluyor program düzgün olarak ama hesaplamada bir yanlışlık var.

    Yani sizde kağıt üzerinde denerseniz 1.5 bulunoyor kolayca zaten.

    Birde hocam girilen sayı eğer üçgensel sayı değilse herhanği bir hesaplama yapmasını istemiyoruz biz. Ama girilen sayı üçgensel sayı değilse örneğin 5 sayısı üçgensel sayı değil ama program yinede [1,5] aralığındaki hesabı yapıp bunu yazdırıyor ekrana. Sayı üçgensel değilse sadece Sayımız üçgensel sayı değildir yazabilirmiyiz hocam.

    Bu arada ben dev-c++ kullanıyorum ama sürümünü bilmiyorum.

    Buyrun 5 ve 6 için çıktılar:

    http://d1301.hizliresim.com/15/x/jhf8v.jpg

    http://d1301.hizliresim.com/15/x/jhf9c.jpg



    < Bu mesaj bu kişi tarafından değiştirildi rotartsanimdA -- 29 Ocak 2013; 3:04:22 >




  • quote:

    Orijinalden alıntı: rotartsanimdA

    Hocam şöyle diyim size çalıştırdığımda mesela kağıt üzerinde yukardaki mesajımda yaptığımdan farklı olarak 6 değeri için; 1.95 buluyor oysaki cevabı 1.5 olmalı. Girilen sayının üçgensel sayı mı değil mi bunu buluyor program düzgün olarak ama hesaplamada bir yanlışlık var.

    Yani sizde kağıt üzerinde denerseniz 1.5 bulunoyor kolayca zaten.

    Birde hocam girilen sayı eğer üçgensel sayı değilse herhanği bir hesaplama yapmasını istemiyoruz biz. Ama girilen sayı üçgensel sayı değilse örneğin 5 sayısı üçgensel sayı değil ama program yinede [1,5] aralığındaki hesabı yapıp bunu yazdırıyor ekrana. Sayı üçgensel değilse sadece Sayımız üçgensel sayı değildir yazabilirmiyiz hocam.

    Bu arada ben dev-c++ kullanıyorum ama sürümünü bilmiyorum.

    Hocam kodu aşağıdaki şekilde değiştirdim bir de öyle deneyin. Bende 6 girdiğim zaman 1.5 çıktısını veriyor.Bir de codepad de derledim orada da sorunsuz bir şekilde çalıştı.

    CodePad

    #include <stdio.h> 
    #include <stdlib.h>

    int uSayi(int n)
    {
    int i=0,toplam=0;
    for(i=0;i<=n;i++)
    {
    if(n==toplam)
    return 1;
    toplam+=i;
    }
    }
    int main ()
    {
    int gSayi=0,toplam=0;
    int i=0;
    float bolum=1.0;
    printf("Lutfen bir sayi giriniz\n");
    scanf("%d",&gSayi);
    if(uSayi(gSayi)==1){
    printf("Girilen sayi ucgensel sayidir.\n");
    for(i=1;i<=gSayi;i++)
    {
    if(uSayi(i)==1)
    bolum+=(1.0/(float)i);
    }
    printf("[1,%d] araligindaki ucgensel sayilarin carpimsal terslerinin toplami: %f olur",gSayi,bolum);}
    else
    printf("Girilen sayi ucgensel sayi degildir\n");
    return 0;
    }




  • quote:

    Orijinalden alıntı: ManiacFear

    quote:

    Orijinalden alıntı: rotartsanimdA

    Hocam şöyle diyim size çalıştırdığımda mesela kağıt üzerinde yukardaki mesajımda yaptığımdan farklı olarak 6 değeri için; 1.95 buluyor oysaki cevabı 1.5 olmalı. Girilen sayının üçgensel sayı mı değil mi bunu buluyor program düzgün olarak ama hesaplamada bir yanlışlık var.

    Yani sizde kağıt üzerinde denerseniz 1.5 bulunoyor kolayca zaten.

    Birde hocam girilen sayı eğer üçgensel sayı değilse herhanği bir hesaplama yapmasını istemiyoruz biz. Ama girilen sayı üçgensel sayı değilse örneğin 5 sayısı üçgensel sayı değil ama program yinede [1,5] aralığındaki hesabı yapıp bunu yazdırıyor ekrana. Sayı üçgensel değilse sadece Sayımız üçgensel sayı değildir yazabilirmiyiz hocam.

    Bu arada ben dev-c++ kullanıyorum ama sürümünü bilmiyorum.

    Hocam kodu aşağıdaki şekilde değiştirdim bir de öyle deneyin. Bende 6 girdiğim zaman 1.5 çıktısını veriyor.Bir de codepad de derledim orada da sorunsuz bir şekilde çalıştı.

    CodePad

    #include <stdio.h> 
    #include <stdlib.h>

    int uSayi(int n)
    {
    int i=0,toplam=0;
    for(i=0;i<=n;i++)
    {
    if(n==toplam)
    return 1;
    toplam+=i;
    }
    }
    int main ()
    {
    int gSayi=0,toplam=0;
    int i=0;
    float bolum=1.0;
    printf("Lutfen bir sayi giriniz\n");
    scanf("%d",&gSayi);
    if(uSayi(gSayi)==1){
    printf("Girilen sayi ucgensel sayidir.\n");
    for(i=1;i<=gSayi;i++)
    {
    if(uSayi(i)==1)
    bolum+=(1.0/(float)i);
    }
    printf("[1,%d] araligindaki ucgensel sayilarin carpimsal terslerinin toplami: %f olur",gSayi,bolum);}
    else
    printf("Girilen sayi ucgensel sayi degildir\n");
    return 0;
    }


    Çok ilğinç hocam ya dev-c derleyicimde yukardaki resim ekledim mesajımda 1.95 çıkıyor. Hocam sizin kullandığınız derleyicinin linki varmı acaba hemen kurup derleyim.




  • Yapay Zeka’dan İlgili Konular
    Daha Fazla Göster
  • quote:

    Orijinalden alıntı: rotartsanimdA

    quote:

    Orijinalden alıntı: ManiacFear

    quote:

    Orijinalden alıntı: rotartsanimdA

    Hocam şöyle diyim size çalıştırdığımda mesela kağıt üzerinde yukardaki mesajımda yaptığımdan farklı olarak 6 değeri için; 1.95 buluyor oysaki cevabı 1.5 olmalı. Girilen sayının üçgensel sayı mı değil mi bunu buluyor program düzgün olarak ama hesaplamada bir yanlışlık var.

    Yani sizde kağıt üzerinde denerseniz 1.5 bulunoyor kolayca zaten.

    Birde hocam girilen sayı eğer üçgensel sayı değilse herhanği bir hesaplama yapmasını istemiyoruz biz. Ama girilen sayı üçgensel sayı değilse örneğin 5 sayısı üçgensel sayı değil ama program yinede [1,5] aralığındaki hesabı yapıp bunu yazdırıyor ekrana. Sayı üçgensel değilse sadece Sayımız üçgensel sayı değildir yazabilirmiyiz hocam.

    Bu arada ben dev-c++ kullanıyorum ama sürümünü bilmiyorum.

    Hocam kodu aşağıdaki şekilde değiştirdim bir de öyle deneyin. Bende 6 girdiğim zaman 1.5 çıktısını veriyor.Bir de codepad de derledim orada da sorunsuz bir şekilde çalıştı.

    CodePad

    #include <stdio.h> 
    #include <stdlib.h>

    int uSayi(int n)
    {
    int i=0,toplam=0;
    for(i=0;i<=n;i++)
    {
    if(n==toplam)
    return 1;
    toplam+=i;
    }
    }
    int main ()
    {
    int gSayi=0,toplam=0;
    int i=0;
    float bolum=1.0;
    printf("Lutfen bir sayi giriniz\n");
    scanf("%d",&gSayi);
    if(uSayi(gSayi)==1){
    printf("Girilen sayi ucgensel sayidir.\n");
    for(i=1;i<=gSayi;i++)
    {
    if(uSayi(i)==1)
    bolum+=(1.0/(float)i);
    }
    printf("[1,%d] araligindaki ucgensel sayilarin carpimsal terslerinin toplami: %f olur",gSayi,bolum);}
    else
    printf("Girilen sayi ucgensel sayi degildir\n");
    return 0;
    }


    Çok ilğinç hocam ya dev-c derleyicimde yukardaki resim ekledim mesajımda 1.95 çıkıyor. Hocam sizin kullandığınız derleyicinin linki varmı acaba hemen kurup derleyim.

    Burdan indirebilirsiniz.




  • Hocam tamam codeblocks ve codepad de 1.5 çıkıyor ama benim derleyici 1.95 buluyor.. Tabiki sizinkine güveniyorum çok teşekkür ederim hakkınızı helal edin.
  • quote:

    Orijinalden alıntı: rotartsanimdA

    Hocam tamam codeblocks ve codepad de 1.5 çıkıyor ama benim derleyici 1.95 buluyor.. Tabiki sizinkine güveniyorum çok teşekkür ederim hakkınızı helal edin.


    Bende şimdi Dev-c de denedim bende de 1.95 buluyor. Derleyici ile ilgili bi hata galiba bende anlamadım.Helal olsun ne demek.
  • 
Sayfa: 1
- x
Bildirim
mesajınız kopyalandı (ctrl+v) yapıştırmak istediğiniz yere yapıştırabilirsiniz.