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:
Cevaplar
_
2007'den beri29 bin mesaj
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 :)
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
Ö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 :)
_
2007'den beri29 bin mesaj
Süslü parantez olayı yok sanırım basicde onun yerine begin end olması lazım
Süslü parantez olayı yok sanırım basicde onun yerine begin end olması lazım
Evet bende o parantezleri sildim fakat Sub'da hata vermesini anlamadım :huh:
Yoksa sizin kodu çevirdim.Begin End'i de denedim fakat olmadı :(
U
Basic'te a++ yazamazsın onu da düzelt istersen. a=a+1 yazmalısın.
_
2007'den beri29 bin mesaj
Verdiği hata nedir belki çözebiliriz?
Evet özkanın verdiği kodda a++ varmış onu görmedim :)
Basic'te a++ yazamazsın onu da düzelt istersen. a=a+1 yazmalısın.
Onu o şekilde düzenledim.Fakat sorun farklı ;
Verdiği hata nedir belki çözebiliriz?
Evet özkanın verdiği kodda a++ varmış onu görmedim :)
Hata;
Compile Error:
While without WendSub faktop() Sarı yanıyor :(
U
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
_
2007'den beri29 bin mesaj
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)
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 :)
U
faktor=1
toplam=0
a=1
While (a<=n)
faktor=faktor*a
toplam=toplam+a
a=a+1
Wend
Bu olabilir belki.
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...
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:
Sayın
merrvee hanım aşağıdaki kodlara bir göz atın.
Sub hanmet()
Dim i As Integer
Do While i <> 25
i = i + 1
Cells(i, 1) = "Hanmet"
Loop
End Sub
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
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:
Cevabını yaz
Cevap yazmak için giriş yap ya da üye ol. Eski forum kullanıcı adın ve parolanla girebilirsin.