for dongusu & step

Katılım
17 Mart 2008
Mesajlar
12
Excel Vers. ve Dili
2003, turkce
For i=1 to 40 step 8
For a=5 to 50 step 11
Msgbox("aaaa")
Next
Next


Seklinde dongu calistigi zaman kac kere Msgbox ekrani goruntulenir ? Neden ? Dongulerin bitis degeri 500-1000 gibi cok buyuk sayilar da olabilir. O yuzden steple kurulmus ic ice 2 dongunun ya da daha fazla sayida dongunun calisma mantigini aciklayiniz ?
Lutfen Yardim Edin!!!....
 
Katılım
17 Haziran 2006
Mesajlar
218
Excel Vers. ve Dili
excel 2000 Türkçe
&
excel 2003 Türkçe
Sanırım bu bır sınav sorusu veya dönem ödevi gibi birşey. onun için kaç kez mesagebox çıkacağını soylemeden anlatmaya çalışayım. step ile dongunun kacar kacar atlayacağı belirtilir. ilk belirtilen değer ile başlanır ve bir sonraki değer step ile belirtidği kadar artmıs olarak 2. halini alır. ilk değer a ise ve step 6 ise 2.değer a+6 olur daha sonra a+6+6... olur.

iç içe döngülerin mantığı da içteki döngünün kaç defa tekrarlanmak istenmesi ile ilgilidir. dıştaki döngü bunu sağlamak için kurulur.
 
S

Skorpiyon

Misafir
Sayın burcutemir,

Öncelikle gönderdiğiniz kodları bir butona atayarak kaç defa mesaj kutusunun görüntülendiğini bulabilirsin. Diğer yandan mantık ise şudur.

For i=1 to 40 step 8
For a=5 to 50 step 11
Msgbox("aaaa")
Next a
Next i

Burada ilk önce For i döngüsü başlar. i 'nin ilk değeri 1'dir.
Arada herhangi bir kod olmadığından For a döngüsü başlayacaktır. a'nın ilk değeri ise 5'tir.
Ardından Msgbox görüntülenir. Mesaj kutusundaki Tamam butonuna bastığınız anda döngü tekrar çalışmaya başlayacaktır. İlk Next'i gördüğü anda yukarıya doğru ilk For'u görecektir. Yani For a 'yı.

a'nın ilk değeri 5'ti, ikinci değeri step ile 5 + 11 olarak belirlendiğinden a'nın ikinci değeri 16 olacaktır. 50 rakamına ulaşmadığından aynı döngü devam edecektir.
2. kez Msgbox görüntülenecek ve Tamam'a bastığınızda tekrar For a 'ya dönecektir.
a'nın üçüncü değeri 5+11+11, yani 27 olacaktır. Hala 50'ye ulaşmadığından tekrar msgbox çalışacak ve 3. kez görünecektir. Tamam'a tıkladığınızda a'nın dördüncü değeri 5+11+11+11, yani 38 olacaktır.
a'nın değeri hala 50'ye ulaşmadığından 4. kez mesaj kutusu görünecek ve Tamam'a tıklamanızdan sonra a beşinci değerini 5+11+11+11+11 alacaktır.
Sonuç hala 50'ye ulaşmadığından mesaj kutusu 5. kez görünecektir.
Tamam'a tıkladıktan sonra a, 5+11+11+11+11+11 değeri ile 50 rakamının üzerine çıktığından döngüden çıkılacak ve mesaj kutusu görüntülenmeden Next a'dan sonraki Next i 'ye gidilecektir.

Next i bizi For i döngüsüne götürecektir. Burada i'nin ilk değeri 1 demiştik. Step ile i'nin ikinci değeri 1+8=9 olacaktır. 40 değerine ulaşılmadığından aradaki kodlar (For a için anlatılan yerler) 2. kez çalıştırılacak ve karşınıza i'nin ikinci değeri için 5 kez daha mesaj kutusu gelecektir.

5 mesaj kutusundan sonra i üçüncü değeri için 1+8+8=17 değerini alacak ve aradaki kodlar (For a için anlatılan yer) 3. kez çalıştırılacak ve karşınıza i'nin üçüncü değeri için 5 kez daha mesaj kutusu gelecektir.

Bu döngü i değeri de 40 veya üzerine ulaştığında sona erecektir.

Kısacası 25 kez karşınıza mesaj kutusu gelir.
For Next döngüleri iç içe kullanıldığında önce içerideki kodlar sonra dışarıdaki kodlar çalıştırılır diyebiliriz. Dışarıdaki kodlar çalıştırılırken içerideki kodlar da tekrarlanır.

Yani önce a için 5 kez mesaj kutusu görüntülenir. Sonra i 'nin her bir değeri için 5 mesaj kutusu daha görüntülenir. 5 x 5 = 25 gibi.

Fazlasıyla karışık oldu ama dilerim yardımcı olabilmişimdir.
 
Katılım
26 Kasım 2005
Mesajlar
396
Excel Vers. ve Dili
Office 365
Babamı, ya elinde bir kitap ya da bir gazete okurken görürdüm. Bir şey sorduğumda hafifçe kafasını kaldırır ve " bak tam karşında bir sözlük var aç bak cevabı orda " derdi. ben kolay yolu seçiyordum. babamın bana neyi vermeye çalıştığını ben sonraları çok iyi öğrendim. bence soruna cevap vereni bulmaktan çok, cevabı kendin bulmaya çalışırsan çok daha iyi öğrenirsin. Mantığını hatta cevabını arkadaş vermiş. Ama bence öğretmenin senden istediği aslında cevap değil, araştır, bul, uygula. işte bunlar en güzel en güzel öğrenme tekniği.
 
Katılım
17 Mart 2008
Mesajlar
12
Excel Vers. ve Dili
2003, turkce
Parsley2 cok guzel soylemissiniz tsk ederim gercekten kendimi hic zorlamiyorum biraz gayret etsem biraz cabam olsa hersey olacak.
Sordugum sorunun cevabının 25 oldugunu biliyorum fakat calisma mantigini tam anlayamamıstım bunu da sagolsun arkadaslar yardımcı oldular. Gercekten yardım eden herkese tesekkurler ediyorum. Hakkınızı helal edin zamanınızı caldım.

Ek bilgi: Aslinda bu soruyu ogretmenimiz sınava calısırken soyledi boyle bi soru soracagim diye. Yarin da sinavimiz var. İnsallah guzel gecer.

Herkese kolay gelsin.
 
Üst