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:
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..
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 şö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ı.
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ı.
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.
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ı.
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.
Üç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..