C# ta karşılaştığım tuhaf durum.Sebebi nedir?

Kodla Büyü

spider23

Süper Üye
Süper Üye
Mesajlar
1,995
"ave b 5 er elemanlı iki dizi veriliyor.A dizisinin aynı indisli elmanını b dizisinin aynı indisli elemanına bölen ve b dizisinin elemanının 0 olduğu durumda uyarı mesajı verip programdan çıkan" kodu yazmaya çalıştım;F5 tuşu veya CTRL-F% ile derlediğim de ekranda sadece alt alta 1 ler çıkıyor;yada 0 değeri denk geldiyse hata mesajı verip program duruyor...ama F10 la adım adım çalıştırınca program istenildiği şekilde çalışıp sonuçları ekrana doğru olarak yazdırıyor..programda ki metodu kullanmadan deneyince de sorun yok..sizce 1-1-1-1-1 lerin sebebi nedir__? F5 le derlemede program neden yanlışlık yapıyor?
 

Ekli dosyalar

  • foto.jpg
    foto.jpg
    121.2 KB · Görüntüleme: 721
hocam sorun rastgele sayı tutma olayından kaynaklanıyor. şöyleki anlık(aynı anda veya çok yakın zamanda) iki farklı Random nesnesi ile rastgele sayı türetildiğinde ikisi aynı sayıyı tutar. yanlız anlık ve iki farklı Random nesnesi olması gerekiyor. sizin programda da f5 ile işlemler hızlı bir şekilde gerçekleştiğinden sorun ortaya çıkarken adım adım çalıştırmada (araya belli bir miktar süre girdiği için) sayılar farklı oluşuyor. sorunun çözümü Random rast=new Random() ile oluşturduğunuz rast nesnesini global olarak tanımlarsanız düzelir gibime geliyor. aynı random nesnesi ile ard arda random sayı üretildiğinde hep aynı sayıyı oluşturmaz.
Sonucu paylaşırsanız sevinirim kodları yazıp denemedim bende yanlış bilgiler vermek istemem :)
 
hocam ilginiz ve yanıtınız için çok teşekkürler dediğiniz doğru F5 le program fazla hızlı çalıştığından sanıyorum a ve b dizilerinde aynı değerler oluşturuyormuş;global düzeyde nesne tanımlamayı deneyemedim ;degeratama metodun daki diziye rast nesnesini kullanrak değer atadığım for döngüsü içerisine Thread.Sleep(1); komutunu kullandım ve program doğru şekilde çalıştı... :+1: ..aslında bu da .NET 'in bi açığı veya eksiği olarak nitelenmeli sanıyorum___?
 
BBNET
Geri
Üst