Makro; Tek ve Çift sayılar toplamı (Nasıl Yaparım)

erayyynn

Doçent
Katılım
25 Haziran 2009
Mesajlar
605
Reaksiyon puanı
3
Puanları
0
Aşağıda verdiğim şekilde bir makro yazacağım.
Bir kısmını yaptım.Fakat "Çift sayıların toplamı" ve "Tek sayıların toplamı" ne şekilde yapılıyor bulamadım :huh:

Kullanıcının girdiği sayıya kadar olan sayılar arasında
B1 hücresine faktöriyel
B2'ye çift sayıların toplamı
B3'e tek sayıların toplamı

B4'e tüm toplamı veren bir makro yazacağım.

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

Sub degergir()
Range("A1").Value = InputBox("Lütfen A1 Değerini Giriniz.")
Range("a2").Value = InputBox("Lütfen A2 Değerini Giriniz.")
Range("a3").Value = InputBox("Lütfen A3 Değerini Giriniz.")
End Sub

Sub faktor()
Range("B1").Select
ActiveCell.FormulaR1C1 = "=FACT(RC[-1])"
End Sub

Sub topla()
sonuc = [a1] + [a2] + [a3]
[b2] = sonuc
End Sub

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

Bu kısımları yaptım.

Yardımcı olursanız sevinirim :flowers:

Konuyu office kısmına açacaktım fakat programlama ile daha ilgili...

---------- saat 09:53 eklendi ---------- önceki mesaj saat 08:33 eklenmişti ----------

Cevap verebilecek biri varsa acil lazım :(
 

yuci308

Asistan
Katılım
7 Haziran 2008
Mesajlar
107
Reaksiyon puanı
2
Puanları
18
for döngüsünü kullanacaksın
örn. for i=1 to değer(hangi sayıya kadar)
daha sonra if ile
If i Mod 2=0 then
çiftsayılarıntoplamı=çiftsayılarıntoplamı+i
else
teksayılarıntoplamı=teksayılarıntoplamı+i
end if
next
 

BawerPower

Öğrenci
Katılım
11 Mart 2010
Mesajlar
23
Reaksiyon puanı
1
Puanları
0
for döngüsü kullanmana gerek yok. tümevarim yöntemini biliyorsan normalde 1 den n'e kadar olan sayilarin toplaminin n*(n+1)/2 oldugunu bilirsin. yani 1 den 5 e kadar olan ardisik sayilarin toplami = 5*(5+1)/2 = 15 tir. sana gereken ise bunu tek ve cift sayilara uyarlamak.

cift sayilar ise 2n formülü ile gösterilir. yani cift sayilari 2 parantezine alirsan
2( 1, 2, 3, 4, ... n) haline gelirki dikkat edersen parantez icindeki sayilar ardisik sayilar, bu durumda yukaridaki formülü ardisik sayilarin yerine koyarsan 2 (n*(n+1) / 2) = n*(n + 1) formülünü elde edersin. (dikkat burada 2n sayisi dizilimdeki son sayiyi temsil eder
yani 2 + 4 + 6 + 8 =? dedigimizde 2n=8 olur, ve dolayisiyla n = 8/2, n*(n+1) = 4*5 = 20 yapar

geriye kaldi tek sayilarin formülü ki tek sayilar da 2n -1 ile gösterilir :)
bunu uzatmayayim ayni yönteme dizilimi ardisik sayilara benzeterek formülü koydugunuzda elde edecegin formül tek sayilar icin = n^2 dir (n'in karesi).

yani 1 den diyelim 9 a kadar olan tek sayilarin toplami icin 2n-1 = 9 dersen n = 5 bulursun ve n^2 = 25 olur. yani 1 den 9 a kadar tek sayilarin toplami 25 dir.

ha 1 den degil de 11 den 39 'a kadar olanini nasil bulurum diyorsa, 1 den 39' a kadar olan sayilarin toplamindan, 1'den 9 e kadar olan sayilarin toplamini cikarirsan geriye 11 den 39'a kadar olan sayilarin toplami kalir ;)
 

erayyynn

Doçent
Katılım
25 Haziran 2009
Mesajlar
605
Reaksiyon puanı
3
Puanları
0
İkinizede çok teşekkür ederim :)
Makroları derste görüyoruz ve bazı yerler atlanıp gidiyordu.
İkiside işime yaradı.

Teşekkürler :)
 

JJaWaa

Doçent
Katılım
24 Ekim 2009
Mesajlar
589
Reaksiyon puanı
5
Puanları
0
Eray paket programları hocamıza dedim biz makro görücekmiyiz diye dediği cevap modülde varsa görücez :D
 

erayyynn

Doçent
Katılım
25 Haziran 2009
Mesajlar
605
Reaksiyon puanı
3
Puanları
0
Eray paket programları hocamıza dedim biz makro görücekmiyiz diye dediği cevap modülde varsa görücez :D

Bizim hoca bi' anda girdi konulara :D Makro iyidir.Vb de kullandıklarını kullanıyorsun sonuçta :wink:
 
S

SDN Okuru

SDN Okuru
hocam makrolarda 1 den 100 e kadar normal toplama ; 1 den 100 e kadar çift sayıları toplama ; 1 den 100 e kadar tek sayıları toplama ; a hücresine yazılan 10 tane aydan istegimizi buldurup msgbox da "... satırda " oldugunu söyleyen makrolar ; ve a1 hücresinin faktöriyelini alma kodlarını yazar mısınız hocam yardımcu olursanız çok sevinirim
 
Üst