İçeriğe geç
ShiftDelete.Net
Haber ara/ SDN'ye SorGiriş
Haber Akışı SDNTV İnceleme Forum Yapay Zeka Akıllı Telefon Elektrikli Otomobil Oyun ShiftDelete.Net Global Teknoloji Haberleri Mobil Otomobil Donanım Savunma Bilim Sosyal Medya İnternet Giyilebilir Teknoloji Rehber Ürünler Son dakika Yazarlar

Akış

    Tüm akış
    1. Ana sayfa
    2. Topluluk
    3. Yazılım
    4. Ofis Yazılımları
    Ofis Yazılımları

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

    erayyynn19.03.201017 cevap5.708 görüntüleme
    2009'den beri605 mesaj
    #1
    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
    #2
    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 :)
    2007'den beri99 mesaj
    #3
    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 Konuyu açan
    2009'den beri605 mesaj
    #4
    Ö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
    #5
    Süslü parantez olayı yok sanırım basicde onun yerine begin end olması lazım
    erayyynn Konuyu açan
    2009'den beri605 mesaj
    #6
    __kadıköyRAP__ dedi: ↑
    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ı :(
    2008'den beri6.467 mesaj
    #7
    Basic'te a++ yazamazsın onu da düzelt istersen. a=a+1 yazmalısın.
    2007'den beri29 bin mesaj
    #8
    Verdiği hata nedir belki çözebiliriz?
    Evet özkanın verdiği kodda a++ varmış onu görmedim :)
    erayyynn Konuyu açan
    2009'den beri605 mesaj
    #9
    ufuk179 dedi: ↑
    Basic'te a++ yazamazsın onu da düzelt istersen. a=a+1 yazmalısın.
    Onu o şekilde düzenledim.Fakat sorun farklı ;
    __kadıköyRAP__ dedi: ↑
    Verdiği hata nedir belki çözebiliriz?
    Evet özkanın verdiği kodda a++ varmış onu görmedim :)
    Hata;

    Compile Error:
    While without Wend


    Sub faktop() Sarı yanıyor :(
    2008'den beri6.467 mesaj
    #10
    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
    #11
    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 Konuyu açan
    2009'den beri605 mesaj
    #12
    ufuk179 dedi: ↑
    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 :)
    2008'den beri6.467 mesaj
    #13
    faktor=1
    toplam=0
    a=1
    While (a<=n)
    faktor=faktor*a
    toplam=toplam+a
    a=a+1
    Wend

    Bu olabilir belki.
    erayyynn Konuyu açan
    2009'den beri605 mesaj
    #14
    ufuk179 dedi: ↑
    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 ----------

    __kadıköyRAP__ dedi: ↑
    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...
    2010'den beri2 mesaj
    #15
    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:
    2010'den beri2 mesaj
    #16
    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
    
    erayyynn Konuyu açan
    2009'den beri605 mesaj
    #17
    erayyynn dedi: ↑
    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 Konuyu açan
    2009'den beri605 mesaj
    #18
    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.