Şimdi Ara

for döngüsü ile ilgili bir soruor.

Daha Fazla
Bu Konudaki Kullanıcılar: Daha Az
2 Misafir - 2 Masaüstü
5 sn
21
Cevap
0
Favori
3.918
Tıklama
Daha Fazla
İstatistik
  • Konu İstatistikleri Yükleniyor
Öne Çıkar
0 oy
Sayfa: 12
Sayfaya Git
Git
sonraki
Giriş
Mesaj
  • arkadaşlar merhaba

    int i;

    for(i=1,i<10,i++)
    {
    printf("deneme");

    }

    bu programda ekrana output olarak 10 kere deneme yazması gerekmez mi?

    ayrıca bir soru daha sormak istiyorum

    mesela

    for(i=1,i<10,i++)


    burada i değeri 1 ie başlıyor.altındaki döngüye girdiğinde 1 olarak mı girecek yoksa 1 10'dan kucuk ve i++ i değerini 2 yapıp mı girecek ilk işleme yani i değeri ilk işleme 2 olarak mı yoksa 1 olarak mı girecek?



    _____________________________
  • Merhaba,

    İlk olarak şu kodlar:
     
    int i;

    for(i=1,i<10,i++)
    {
    printf("%d",i);

    }


    1'den 9'a kadar ki(9 dahil) sayıları ekrana yazdırır. Çünkü döngü koşulu olarak i<10 yazmışsınız doğal olarak i 10 olduğunda 10<10 koşulu doğru olmayacağı için döngünün içine girilmeyecektir. Eğer 1'den 10'a kadar ki(10 dahil) sayıları yazdırmak istiyorsanız i<=10 yazmanız gerekmekte.

    Diğer sorunuza gelince for döngüsü ilk olarak 1 değeri ile başlar daha sonra döngü içi bitince tekrar başa dönülüp 2 değerini alıp o şekilde devam eder. Bu konu hakkında biraz daha bilgi almak için şu(http://www.cprogramming.com/tutorial/c/lesson3.html) link'deki yazıyı okumanızı tavsiye ediyorum.

    Kolay gelsin...
    _____________________________



    GreenPeace Türkiye | WWF Türkiye | Hayvan Hakları Federasyonu

    "sadece inandığın, istediğin ve doğru olduğuna inandığın bir şey için aptal durumuna düşmekten korkmazsan egonu yenebilirsin ve işte o zaman özgür kalırsın..."
  • Bu soruyu sorana kadar bu kodları kolayca test edip ne çıktı veriyormuş görebilirdin.
    _____________________________
    "Eğer 6 ay önce yazdığın kodları gördüğünde utanmıyorsan, kendini yeterince hızlı geliştiremiyorsun demektir."
  • quote:

    Orijinalden alıntı: TSF Aristona

    Bu soruyu sorana kadar bu kodları kolayca test edip ne çıktı veriyormuş görebilirdin.

    özür dilerim
    _____________________________
  • Merhaba,

    Eğer bu kod java ise :

    for içindeki virgüller ; olmalı.

    printf yerine System.out.println yazılmalı

    i değeri for içinde belirttiğiniz gibi 1 değeri ile başlıyor ve ilk yazılan "deneme" 1. sıradaki eleman olacaktır. Bunu anlamak için şöyle yapabilirsiniz. denemeyi yazdırmadan önceki satıra System.out.print(i+" : "); girerseniz önce i değerini yazdırır sonra yanına "deneme" yazdırır.

    for içindeki sayaç 10 a ulaştığında birşey yazdırmadan kod sonlanacaktır. Yani toplam 9 deneme yazılmış olacaktır.
    _____________________________
  • i++ belleği ve işlemciyi gereksiz yere yorar.gerekmedikçe ++i kullan.
    _____________________________
  • quote:

    Orijinalden alıntı: Fatih54102

    i++ belleği ve işlemciyi gereksiz yere yorar.gerekmedikçe ++i kullan.

    İşlemci mimarisine göre değişmekle birlikte modern derleyiciler için sorun değil böyle şeyler. İkisi de aynı şekilde derlenir.
  • Yapay Zeka’dan İlgili Konular
    Berserk (ile ilgili bir sorum var)
    11 yıl önce açıldı
    Daha Fazla Göster
  • c c++ ve java hangisinin dongusuyse virguller noktali birgul olmali, kosul 10 kez yazdirmak istiyorsan i<=10 olmali ki 10 kere donsun ve onkere printf islemini yapabilsin. eger i<10 yapman isteniliyorsa baslangic degeri olarak 0 atamalisin i ye. ki yine 10 donmus osun.



    < Bu mesaj bu kişi tarafından değiştirildi Fkaracuka -- 16 Kasım 2013; 21:52:56 >
    < Bu ileti mobil sürüm kullanılarak atıldı >
    _____________________________
    Furkan Karaçuka
  • quote:

    Orijinalden alıntı: elektro_gadget

    quote:

    Orijinalden alıntı: Fatih54102

    i++ belleği ve işlemciyi gereksiz yere yorar.gerekmedikçe ++i kullan.

    İşlemci mimarisine göre değişmekle birlikte modern derleyiciler için sorun değil böyle şeyler. İkisi de aynı şekilde derlenir.

    ++i ile i++ farkı nedir ki anlamadım ben
    _____________________________

    Haggard seveni ben de severim.
    2 kişilik hesâb

  • ++i değişkenin değerini anında 1 artırır ve ++i nin ürettiği değer değişkenin 1 artırılmış değeridir.
    i++ değişkenin değerini yan etki noktasından sonra artırır ve ++i nin ürettiği değer değişkenin artmamış değeridir.
    Aynı şeyler -- için de geçerli.

    i = 10;
    //... ++i ..// --> 11

    i = 10;
    // ... i++ ...// --> 10, ama yan etki noktasından sonra 11.

    Bu arada aynı nesneyi aynı ifade içinde birden fazla kez ++ ve ya -- nin nın operandı yapmak undefined behaviour dır.
    x = a + a++;
    func(++a, a);
    a = --a;
    Bunlar kesinlikle yapılmaması gereken işlemler.



    < Bu mesaj bu kişi tarafından değiştirildi 4kalan -- 16 Kasım 2013; 22:44:39 >
    _____________________________
  • quote:

    Orijinalden alıntı: 4kalan

    ++i değişkenin değerini anında 1 artırır ve ++i nin ürettiği değer değişkenin 1 artırılmış değeridir.
    i++ değişkenin değerini yan etki noktasından sonra artırır ve ++i nin ürettiği değer değişkenin artmamış değeridir.
    Aynı şeyler -- için de geçerli.

    i = 10;
    //... ++i ..// --> 11

    i = 10;
    // ... i++ ...// --> 10, ama yan etki noktasından sonra 11.

    Bu arada aynı nesneyi aynı ifade içinde birden fazla kez ++ ve ya -- nin nın operandı yapmak undefined behaviour dır.
    x = a + a++;
    func(++a, a);
    a = --a;
    Bunlar kesinlikle yapılmaması gereken işlemler.

    anladım gibi :D
    bundan sonra şöyle bi kod denedim ;
    int i = 1;
    int j = ++i;
    cout << i << endl << j;

    int i = 1;
    int j = i++;
    cout << i << endl << j;
    sağolun hocam



    < Bu mesaj bu kişi tarafından değiştirildi Lord Nibbler -- 16 Kasım 2013; 23:16:11 >
    _____________________________

    Haggard seveni ben de severim.
    2 kişilik hesâb





  • Rica ederim, yan etki noktası nedir, neler yan etki noktasıdır bakmakta fayda var.
    Sonra, for (i = 0; i < 10; i++) burdaki i++ nın durumu kafayı kurcalayabilir
    _____________________________
  • 4kalan kullanıcısına yanıt
    hocam bunun ingilizcesi nedir? google'a yan etki noktası yazdım hiç alakası olmayan şeyler çıktı :D -bkz:Orgazmı artıran G noktası aşısının yan etkisi- dafuq
    _____________________________

    Haggard seveni ben de severim.
    2 kişilik hesâb

  • sequence point.
    _____________________________
  • quote:

    Orijinalden alıntı: elektro_gadget

    quote:

    Orijinalden alıntı: Fatih54102

    i++ belleği ve işlemciyi gereksiz yere yorar.gerekmedikçe ++i kullan.

    İşlemci mimarisine göre değişmekle birlikte modern derleyiciler için sorun değil böyle şeyler. İkisi de aynı şekilde derlenir.

    ne olursa olsun en iyisi olmali. Adam volatile fonksiyonda o komutlari kullansa ne olacak?

    < Bu ileti mobil sürüm kullanılarak atıldı >
    _____________________________
  • quote:

    Orijinalden alıntı: Fatih54102

    ne olursa olsun en iyisi olmali. Adam volatile fonksiyonda o komutlari kullansa ne olacak?

    Yeni başlayanlar hep öyle düşünür. Kodu mümkün olduğunca kısa tutmak, 1 byte bile fazladan kullanmamak, olabilecek en hızlı şekilde çalıştırmak... Sonradan anlıyorsun ki doğru olanlar bunlar değil. En iyisi değil en uygunu olmalı. Mesela çoğu mimaride işaretsiz değişkenler işaretli olanlardan daha hızlıdır ama gerekmedikçe unsigned kullanılmaz. Fonksiyon çağrılarından kaçınmak için herşey tek fonksiyona gömülmez. Daha kısa tutuyor diye oop yi bırakıp fonksiyonel kodlama yapılmaz. 1 ms hızlandıracam diye her tarafa const yazılmaz (okunabilirliği arttırmak için yazılır ama). Birinci derece öncelikli olan okunabilirliktir.
  • Fatih54102 F kullanıcısına yanıt
    Merak ettim, volatile fonksiyonda kullanırsa ne olacak harbiden? Bir de volatile fonksiyondan kasıt ne, geri dönüş değeri volatile nesne olan fonksiyon mu? (Yoksa ben mi yanlış anladım volatile keyword ünü kastedmiyormusunuz?)
    _____________________________
  • quote:

    Orijinalden alıntı: elektro_gadget

    quote:

    Orijinalden alıntı: Fatih54102

    ne olursa olsun en iyisi olmali. Adam volatile fonksiyonda o komutlari kullansa ne olacak?

    Yeni başlayanlar hep öyle düşünür. Kodu mümkün olduğunca kısa tutmak, 1 byte bile fazladan kullanmamak, olabilecek en hızlı şekilde çalıştırmak... Sonradan anlıyorsun ki doğru olanlar bunlar değil. En iyisi değil en uygunu olmalı. Mesela çoğu mimaride işaretsiz değişkenler işaretli olanlardan daha hızlıdır ama gerekmedikçe unsigned kullanılmaz. Fonksiyon çağrılarından kaçınmak için herşey tek fonksiyona gömülmez. Daha kısa tutuyor diye oop yi bırakıp fonksiyonel kodlama yapılmaz. 1 ms hızlandıracam diye her tarafa const yazılmaz (okunabilirliği arttırmak için yazılır ama). Birinci derece öncelikli olan okunabilirliktir.

    dogru ama gnu compiler in son surumu bile bazi durumlarda optimize yapamayabiliyor. Mesela euler project in 14. Sorusunda signed kullanirsan sure 20 saniyeden fazla olur, unsigned kullanirsan 700 milisaniyeden az olur. Gerekirse yaptigim ornegi atabilirim. Hatta msvc bile optimize etmiyor. Yani kod okunulabilirlik artsin diye ekstra stack alani tahsis edip surekli stack kullanmak,surekli signed kullanmak, enum yerine preproc. Komutlarini kullanmak,... Bunlar yapilmamalidir.

    < Bu ileti mobil sürüm kullanılarak atıldı >
    _____________________________




  • quote:

    Orijinalden alıntı: 4kalan

    Merak ettim, volatile fonksiyonda kullanırsa ne olacak harbiden? Bir de volatile fonksiyondan kasıt ne, geri dönüş değeri volatile nesne olan fonksiyon mu? (Yoksa ben mi yanlış anladım volatile keyword ünü kastedmiyormusunuz?)

    optimize edilmeyen fonksiyon.

    < Bu ileti mobil sürüm kullanılarak atıldı >
    _____________________________
  • quote:

    Orijinalden alıntı: Fatih54102

    dogru ama gnu compiler in son surumu bile bazi durumlarda optimize yapamayabiliyor. Mesela euler project in 14. Sorusunda signed kullanirsan sure 20 saniyeden fazla olur, unsigned kullanirsan 700 milisaniyeden az olur. Gerekirse yaptigim ornegi atabilirim. Hatta msvc bile optimize etmiyor. Yani kod okunulabilirlik artsin diye ekstra stack alani tahsis edip surekli stack kullanmak,surekli signed kullanmak, enum yerine preproc. Komutlarini kullanmak,... Bunlar yapilmamalidir.

    O dediğin imkansız. Yine de o soruyu kontrol ettim ve şüphelendiğim şey çıktı. Arızanın ne olduğunu söylemiyorum kendin bul. Özür dilemene de gerek yok, bilmediğin konularda yazma yeter.
  • 
Sayfa: 12
Sayfaya Git
Git
sonraki
- x
Bildirim
mesajınız kopyalandı (ctrl+v) yapıştırmak istediğiniz yere yapıştırabilirsiniz.