Do While döngüsü (Makro Yardım)

erayyynn

Doçent
Katılım
25 Haziran 2009
Mesajlar
605
Reaksiyon puanı
3
Puanları
0
Kullanıcının girdiği sayıya kadar olan sayıların faktöriyelini ve toplamını veren programı önce for döngüsü ile yaptım; şimdi de Do-While döngüsü ile yapacağım

Sub faktop()
n=inputbox("n değerini gir")
Faktor=1
Topla=0
For a=1 to n
Faktor=Faktor*a
Topla=Topla+a
Next
Range("A1").Value=Faktor
Range("B1").Value=Faktor
End Sub

Bunu Do-While döngüsünde yapacağım.Do-While döngüsünü eğer bunu çevirmeseniz bile ufak bir örnek üzerinde veya örneksiz açıklarsanız çok işime yarayacak :flowers:

Eğer elinde makrolarla ilgili kaynak olan varsa hayır demem :rolleyes:
 

__kadıköyRAP__

Müdavim
Müdavim
Katılım
3 Mart 2007
Mesajlar
29,201
Reaksiyon puanı
2,148
Puanları
7,358
Bu dil basic galiba, ben sana C ye göre söyleyeyim, for döngüsünde a değişkenini tanımlıyorsun o kendi kendine artıyor, do while de bunu kendin yazacaksın fark bu.
Mesela C de
for(a=1; a<=n; a++)
{
Faktor=Faktor+a;
Topla=Topla+a;
}

yerine do while ile yaparsan

a=1;
do
{
Faktor=Faktor*a;
Topla=Topla+a;
a=a+1;
}while(a<=n);

umarım farkı anlayıp basic koduna çevirebilirsin :)
 

ozkan370

Öğrenci
Katılım
22 Mart 2007
Mesajlar
99
Reaksiyon puanı
4
Puanları
0
Sub faktop()
n=inputbox("n değerini gir")
Faktor=1
Topla=0
do{
Faktor=Faktor*a
Topla=Topla+a
a++
}while(a<n)
Range("A1").Value=Faktor
Range("B1").Value=Faktor
End Sub
 

erayyynn

Doçent
Katılım
25 Haziran 2009
Mesajlar
605
Reaksiyon puanı
3
Puanları
0
Öncelikle ilgilendiğiniz için teşekkürler :)
@__kadıköyRAP__; Sizin verdiğiniz kodu çevirdim.Fakat Sub hata veriyor.Neden anlamadım :S
Bende yeni yeni öğrendiğim için tam olarak sorunun ne olduğunu anlamadım :huh:

@ozkan370; Sizin verdiğiniz kodda ise;
Sub faktop()
n = InputBox("n değerini gir")
Faktor = 1
Topla = 0
do{
Faktor = Faktor * a
Topla = Topla + a
a++
}while(a<n)
Range("A1").Value = Faktor
Range("B1").Value = Faktor
End Sub

Kalın yazdığım kısımlar kırmızı yanıyor. Sub ise hala sarı :(

Edit:Bir de Topla'yı yazdırmayı unutmuşsunuz :) Faktor yazmışsınız 2 kez :)
 

__kadıköyRAP__

Müdavim
Müdavim
Katılım
3 Mart 2007
Mesajlar
29,201
Reaksiyon puanı
2,148
Puanları
7,358
Süslü parantez olayı yok sanırım basicde onun yerine begin end olması lazım
 

ufukcoskun

Dekan
Katılım
28 Kasım 2008
Mesajlar
6,467
Reaksiyon puanı
104
Puanları
243
Basic'te a++ yazamazsın onu da düzelt istersen. a=a+1 yazmalısın.
 

__kadıköyRAP__

Müdavim
Müdavim
Katılım
3 Mart 2007
Mesajlar
29,201
Reaksiyon puanı
2,148
Puanları
7,358
Verdiği hata nedir belki çözebiliriz?
Evet özkanın verdiği kodda a++ varmış onu görmedim :)
 

erayyynn

Doçent
Katılım
25 Haziran 2009
Mesajlar
605
Reaksiyon puanı
3
Puanları
0

ufukcoskun

Dekan
Katılım
28 Kasım 2008
Mesajlar
6,467
Reaksiyon puanı
104
Puanları
243
Basic'te do-while diye bir döngü yok diye biliyorum. For-next ve while-wend döngüleri mevcuttu.

While wend kullanımı da şu şekilde.

While koşul
...
...işlemler
...
Wend
 

__kadıköyRAP__

Müdavim
Müdavim
Katılım
3 Mart 2007
Mesajlar
29,201
Reaksiyon puanı
2,148
Puanları
7,358
a=1
While a < n
Faktor = Faktor * a
Topla = Topla + a
a=a+1
End While

olarak denermisin birde, bu da olmazsa ben vazgeçiyorum bilmediğim bi konu çünkü :)
(Visual Studio da yazdım tutar inşallah)
 

erayyynn

Doçent
Katılım
25 Haziran 2009
Mesajlar
605
Reaksiyon puanı
3
Puanları
0
Basic'te do-while diye bir döngü yok diye biliyorum. For-next ve while-wend döngüleri mevcuttu.

While wend kullanımı da şu şekilde.

While koşul
...
...işlemler
...
Wend

Ben birkaç örnek inceledim fakat onlarda while do döngüsü kullanılmıştı.
Bende pek fazla vb bilmiyorum.Bunu ders olarak görüyoruz ve yeni başladık diyebilirim.

Aynı zamanda While do örneklerde yan yana kullanılmış ve bitirirken Loop girilmiş.Dediğiniz gibi Wend ile de bitiriliyor olabilir.
Onu da deneyeyim :)
 

ufukcoskun

Dekan
Katılım
28 Kasım 2008
Mesajlar
6,467
Reaksiyon puanı
104
Puanları
243
faktor=1
toplam=0
a=1
While (a<=n)
faktor=faktor*a
toplam=toplam+a
a=a+1
Wend


Bu olabilir belki.
 

erayyynn

Doçent
Katılım
25 Haziran 2009
Mesajlar
605
Reaksiyon puanı
3
Puanları
0
faktor=1
toplam=0
a=1
While (a<=n)
faktor=faktor*a
toplam=toplam+a
a=a+1
Wend


Bu olabilir belki.

faktor = faktor * a kısmın da sorun veriyor :(
Sub ilk defa hata vermedi hayret ettim :)

---------- saat 23:59 eklendi ---------- önceki mesaj saat 23:56 eklenmişti ----------

a=1
While a < n
Faktor = Faktor * a
Topla = Topla + a
a=a+1
End While

olarak denermisin birde, bu da olmazsa ben vazgeçiyorum bilmediğim bi konu çünkü :)
(Visual Studio da yazdım tutar inşallah)

Uğraşlarınız için çok teşekkürler :)

Fakat buda olmadı.Birde bende genelde Sub'da hata veriyor :huh:
Yazdığınız kodu tam olarak atarsanız biraz üzerinde uğraşayım :)
Son olarakta End While olmuyor :(

---------- 20-03-2010 saat 00:44 eklendi ---------- önceki mesaj 19-03-2010 saat 23:59 eklenmişti ----------

Çok teşekkürler arkadaşlar.Bununla yarın biraz daha uğraşacağım.Eğer yaparsam buraya anlatımlı olarak paylaşırım.Çok yorgunum biraz dinlenmem lazım...

İyi geceler...
 

merrvee

Öğrenci
Katılım
20 Mart 2010
Mesajlar
2
Reaksiyon puanı
0
Puanları
0
sub ornek()
for a=1 tı 5
cells(a,a).value="merve"
next
end sub
örneğini do while ile yapabnilir mi acill lütfen yardım edin!!!!!ÇILDIRCAM ÇÜNKÜ:cursing::cursing::cursing:
 

hanmet

Öğrenci
Katılım
20 Mart 2010
Mesajlar
2
Reaksiyon puanı
0
Puanları
0
Sayın merrvee hanım aşağıdaki kodlara bir göz atın.


Kod:
Sub hanmet()
  Dim i As Integer
    Do While i <> 25
        i = i + 1
        Cells(i, 1) = "Hanmet"
    Loop
End Sub
 

erayyynn

Doçent
Katılım
25 Haziran 2009
Mesajlar
605
Reaksiyon puanı
3
Puanları
0
Kullanıcının girdiği sayıya kadar olan sayıların faktöriyelini ve toplamını veren programı önce for döngüsü ile yaptım; şimdi de Do-While döngüsü ile yapacağım

Sub faktop()
n=inputbox("n değerini gir")
Faktor=1
Topla=0
For a=1 to n
Faktor=Faktor*a
Topla=Topla+a
Next
Range("A1").Value=Faktor
Range("B1").Value=Faktor
End Sub

Bunu Do-While döngüsünde yapacağım. :rolleyes:

@hanmet; Benim makroya da yardım edersen sevinirim :)

Edit=Akşam 7'ye kadar bunu halletmem lazım yoksa bir işe yaramayacak
Lütfen yardım edin
 

erayyynn

Doçent
Katılım
25 Haziran 2009
Mesajlar
605
Reaksiyon puanı
3
Puanları
0
Sanırım hallettim :)

Sub faktop()
n = InputBox("n değerini gir")

Faktor = 1
Topla = 0

Do While n > 0
Faktor = Faktor * n
Topla = Topla + a
n = n - 1
Loop

Range("A1").Value = Faktor
Range("B1").Value = Faktor
End Sub

Yardımcı olanlara çok teşekkürler :flowers:
 
Üst