1. sayfa
Hocam kodlamanız da yanlışlar ve eksiklikler var aşağıda vereceğim kod işinizi görecektir. #include <stdio.h> |
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 |
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> |
Ç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. |
Bende şimdi Dev-c de denedim bende de 1.95 buluyor. Derleyici ile ilgili bi hata galiba bende anlamadım.Helal olsun ne demek. |
1. sayfa
Üç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..