Ben % 1,3 ü 1,5 olarak görmüşüm..
1,5 e göre 66 yıl dı.
formda alan ve komut düğmesi konulduğunda da mantıklı cevaplamalar ışığında; aşağıdaki gibi 55 yıl
Do While urfa < antep
Me.urfa = urfa + ((urfa * yuzdeurfa) / 100)
Me.antep = antep + ((antep * yuzdeantep) / 100)
yil = yil + 1
Loop
(11/01/2010, 23:33)Bilgisayarcı yazdı: [ -> ]Bu algoritmayla 54 çıkması doğrudur.
Bi de yıl=yıl+1'i işlemden öncesine alarak denerseniz değişebilir sonuç ama tabi ben anlamam istatistikten. Bilen birileri baksın da rezil olmayak
excelde de denedim;
kendi ilk yılını saymazsak 54
ama normalde ilk yılla birlikte 55
yine de istatistikçi hocamız bilir
Bu bizi doğduğunda 1 yaşında mıydın sıfır yaşında mıydın soruna kadar götürür. Ben 80 doğumluyum hala da 29 yaşındayım
(11/01/2010, 23:37)cuneyt yazdı: [ -> ] (11/01/2010, 23:33)Bilgisayarcı yazdı: [ -> ]Bu algoritmayla 54 çıkması doğrudur.
Bi de yıl=yıl+1'i işlemden öncesine alarak denerseniz değişebilir sonuç ama tabi ben anlamam istatistikten. Bilen birileri baksın da rezil olmayak
excelde de denedim;
kendi ilk yılını saymazsak 54
ama normalde ilk yılla birlikte 55
yine de istatistikçi hocamız bilir
Cüney bey, bence işlem gerçekleşmeden yıl sayılmamalı, yani döngünün her turunda nüfüs artışı gerçekleşiyor ve 1 yıl geçiyor.
Doğru sonucun 54 olduğunu düşünüyorum, ama tabi yine de son sözü istatistikçilere bırakmak lazım.
Anlaşıldı tartışıcaz . İstatistikçiye gerek yok arkadaşlar hesap ortada.
Sayın maytas while içinde şart sağlandıktan sonra işlemler çalışmaz. Yani sizin kodunuzdaki yıl=yıl+1 işlemi hesapa katılmıyor.
Dilerseniz şunu deneyin kodunuzda 450 ve 850 değerlerinin ikisini de 850 yapıp çalıştırın. Sonuç=0 gelir. Aslında sonuç =0 değil, 1. yılın sonunda geçecek diye çıkıyor.
Bilmem anlatabildim mi?
Hatta sırf bu tartışmayı baştan açmamak için benim örneğe yıllar sonundaki nufusları da eklemiştim
Tartışma saygı çerçevesinde olunca faydalıdır.
Böylece doğru sandığımız, ama yanlış bildiğimiz konuların farkına varabiliriz.
Bu cümle kimseye yönelik değil, genel olarak fikrimdir.
While şartını biliyorum, konu birinin nüfüsunu diğeri geçme ile ilgiliymiş, benim aklımda kaç yılda yetişir diye kalmış.
Bu durumda While şartına "=" operatörünü de ekleyebiliriz.
Ama sonuç yine 54. Ben 54 yılda ısrarlıyım, var mı arttıran
Kod:
Sub Hesapla()
Dim Urfa As Integer, Antep As Integer, Yil As Byte
Urfa = 450
Antep = 850
Do While Urfa <= Antep
Yil = Yil + 1
Urfa = Urfa * 1.025
Antep = Antep * 1.013
Loop
MsgBox "Urfa nüfüsu Antep nüfusunu " & Yil & " sonra geçecektir.", vbInformation, "İşlem Sonucu"
End Sub
Bu güzel tartışma ve örnek için teşekkürler. Saygılar....