Sayfayı Yazdır | Pencereyi Kapat

0 dan 100 e kadar olan sayıları 5 e bölün program

Nereden Yazdırıldığı: C#nedir?com
Kategori: C# / .NET
Forum Adı: C#
Forum Tanımlaması: .NET Platformunun gözde dili
URL: http://www.csharpnedir.com/forum2/forum_posts.asp?TID=41991
Tarih: 23 Kasım 2014 Saat 13:45
Program Versiyonu: Web Wiz Forums 8.03 - http://www.webwizforums.com


Konu: 0 dan 100 e kadar olan sayıları 5 e bölün program
Mesajı Yazan: Golgoth
Konu: 0 dan 100 e kadar olan sayıları 5 e bölün program
Mesaj Tarihi: 16 Ağustos 2011 Saat 14:10
Kitapta "FOR" döngüsünü anlatıyordu açıkcası anlamadım

okudum okudum tekrar okudum... sonra 5 tane soru veriyor ama cevaplarıda var tabiki bir tanesinde

"1'den 1000'e kadar olan sayılar içerisinden 5'e tam bölünen aynı zamanda 7'ye tam bölünemeyen sayıları sayan toplamlarını hesaplayan ve sayıları listeleyen bir program yazınız"

Diye bir soruydu ben bunu yapamadım kitaba baktım ve bende yine kitaba bakarak :(


using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace boşluk
{
    class Program
    {
        static void Main(string[] args)
        {
            int adet = 0;
            
            for (int i = 1; i <= 100; i++)
            {
             if( ((i % 5 == 0)) )
               Console.WriteLine(i);
               adet ++;
            }
       
            Console.WriteLine(adet+" sayı bulundu");
            Console.ReadLine();
        }
    }
}


Bunu yazdım sadece 5 e bölüyor ama hata verdi bana For Döngüsünü anlatabilecek ve burdaki hatayı açıklayabilecek bir arkadaş varmı acaba ?

-------------
GoLGoTH



Cevaplar:
Mesajı Yazan: mfdemir
Mesaj Tarihi: 16 Ağustos 2011 Saat 14:18
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace boşluk
{
    class Program
    {
        static void Main(string[] args)
        {
            int adet = 0;
            
            for (int i = 1; i <= 100; i++)
            {
             if (i % 5 == 0)
              {
               Console.WriteLine(i);
               adet ++;
               }
            }
       
            Console.WriteLine(adet+" sayı bulundu");
            Console.ReadLine();
        }
    }
}

if koşulundaki süslü parentezleri koydum hatra vermiyor artık


Mesajı Yazan: hatuncann
Mesaj Tarihi: 16 Ağustos 2011 Saat 14:42
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace boşluk
{
    class Program
    {
        static void Main(string[] args)
        {
            int adet = 0;
            int toplam=0;

            Console.WriteLine("5'e bölünüp 7'ye bölünmeyen 100'den küçük sayılar = ");
            for (int i = 1; i <= 100; i++)
            {
               if ((i % 5 == 0) && (i%7!=0))
               {
                    
                    Console.WriteLine(i);
                    adet++;
                    toplam +=i;
               }
            }

            Console.WriteLine(adet + " sayı bulundu");
            Console.WriteLine("Bu sayıların toplamı : " + toplam);
            Console.ReadLine();
        }
    }
}

-------------
DIŞARIDA HAVA YAĞMURLU OLSA DA BENİM HAVAM YETER BANA =)


Mesajı Yazan: hatuncann
Mesaj Tarihi: 16 Ağustos 2011 Saat 14:44
7'ye bölünmemesi ve toplamlarının hesaplanması kısmını ekledim..
çalışıyor.
eğer anlayamadığın bir kısım varsa cevaplarım..

-------------
DIŞARIDA HAVA YAĞMURLU OLSA DA BENİM HAVAM YETER BANA =)


Mesajı Yazan: Golgoth
Mesaj Tarihi: 16 Ağustos 2011 Saat 15:14
Bu döngü olayını anlamadım bunun yerine birşey kullanamazmıyım yani mesela Swicht Kullanmıyorum İf kullanıyorum ben Swichti biliyorum ama İf daha kolayıma geliyor Ama FOR'u defalarca okumama Rağmen Anlıyamadım Birisinin Göstermesi gerekli

-------------
GoLGoTH


Mesajı Yazan: hatuncann
Mesaj Tarihi: 16 Ağustos 2011 Saat 15:30
do while döngüsü kullanabilirsin.


using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace boşluk
{
    class Program
    {
        static void Main(string[] args)
        {
            int i=1;
            int adet = 0;
            int toplam = 0;

            Console.WriteLine("5'e bölünüp 7'ye bölünmeyen 100'den küçük sayılar = ");
            do
            {

               if ((i % 5 == 0) && (i % 7 != 0))
               {

                    Console.WriteLine(i);
                    adet++;
                    toplam += i;
               }
               i += 1;

            } while (i <= 100);
            

            
            Console.WriteLine(adet + " sayı bulundu");
            Console.WriteLine("Bu sayıların toplamı : " + toplam);
            Console.ReadLine();
        }
    }
}



-------------
DIŞARIDA HAVA YAĞMURLU OLSA DA BENİM HAVAM YETER BANA =)


Mesajı Yazan: hatuncann
Mesaj Tarihi: 16 Ağustos 2011 Saat 15:38
for (int i = 1; i <= 100; i++)
--> i diye bir değişken tanımlatıp bu değişkenin değerini 1'den başlatıyoruz
i en çok 100 değerini alana kadar
i'yi birer birer artırıyoruz
noktalı virgüllerle de cümlelerimizi ayırıyoruz

içindeki koşullar gerçekleşip bitene kadar curly bracket gerçekleştiriliyor ve süslü parantez kapatılana kadar işlemleri basamak basamak gerçekleştiriyoruz

-------------
DIŞARIDA HAVA YAĞMURLU OLSA DA BENİM HAVAM YETER BANA =)


Mesajı Yazan: hatuncann
Mesaj Tarihi: 16 Ağustos 2011 Saat 15:42
Orjinalini yazan: hatuncann



içindeki koşullar gerçekleşip bitene kadar curly bracket gerçekleştiriliyor ve süslü parantez kapatılana kadar işlemleri basamak basamak gerçekleştiriyoruz


( ) içindeki koşullar bitene kadar    { } içindeki işlemleri basamak basamak ve tekrar tekrar gerçekleştiriyoruz .. demek istedim

-------------
DIŞARIDA HAVA YAĞMURLU OLSA DA BENİM HAVAM YETER BANA =)


Mesajı Yazan: Golgoth
Mesaj Tarihi: 16 Ağustos 2011 Saat 21:31
Peki For Döngüsünden sonrasını açıklarmısın hocam

-------------
GoLGoTH


Mesajı Yazan: hatuncann
Mesaj Tarihi: 16 Ağustos 2011 Saat 22:55
estağfirullah, Büşra de bana =)
for'un içindeki if'ten başlayayım.

   if ((i % 5 == 0) && (i%7!=0)) --> i sayısı 5'e bölündüğünde kalanın 0 olduğu sayılar yani 5'in tam
                                   katları. Aynı zamanda 7'ye bölündüğünde 0 kalanını vermeyen sayılar
                                   hangileridir diye aratıyoruz. Yani 5'in katlarını alacağız ama
                                   7 ve 5'in e.k.o.k'u olan sayıları almayacağız anlamına geliyor
                                   bu cümle.

if de süslü parantezler içine yazılır. Sonra..
                  
    Console.WriteLine(i); -->i sayısını konsola(ekrana) yaz

    adet++; --> 5'e tam bölünen ama 7'ye tam bölünmeyen sayılar vardı ya, o sayıları saymak için
               adet hesaplıyoruz.

    toplam +=i; --> toplam'ı en başında 0 olarak verdim çünkü amacım 5,10,15,20,25,30,40,45,50...
                    sayılarını toplamak. burada yazdığım kod toplam=toplam+i; demek. yani toplam
                    sayısıyla yeni sayıyı topluyoruz. Başta toplam 0'dı, sonra i'yi 1 artırdık
                    ama 5'e bölünmedi, 2,3,4 de öyle, 5 sayısı 5'e bölünüyor ve 7'ye bölünmüyo,
                    öyleyse toplam=toplam+i yani toplam=0+5 oldu toplam=5 şu anda.
                    Sonra 6,7,8,9 diye değişti i ama bu sayılar 5'e bölünmediğinden adet'i
                    de değiştirmiyor toplam'ı da. sıra da 10 var. i=10 olunca 10 5'e bölündüğü
                    7'ye bölünmediği için if döngüsüne giriyoruz yani ekrana i'yi 10
                    değerini yazıyoruz ve adet sayısını 1 artırıyoruz (5'te adet 0'dan 1'e
                    çıkmıştı, şimdi adet=adet+1=1+1=2 oldu) ve toplam=toplam+i
                    olduğundan toplam değişkenine toplamın eski değeriyle
                    yeni i değerini toplayıp yazıyoruz toplam=toplam+i=5+10=15.
                    Yeni toplam değeri 15 oldu. sırayla böyle devam ediyo..

-------------
DIŞARIDA HAVA YAĞMURLU OLSA DA BENİM HAVAM YETER BANA =)


Mesajı Yazan: hatuncann
Mesaj Tarihi: 16 Ağustos 2011 Saat 23:09
döngünün amacı aynı işlemi defalarca yazmamamız. yani i'ye 100 tane değer vermektense i'nin kendisini birer birer artırmasını yazıyoruz for döngüsünde.

aslında for'u 100 kere çalıştırıyoruz, if'i 18 kez.

i=1 için if cümlesi sağlanıyor mu? hayır, öyleyse if'i çalıştırma for cümlesinin içine dön
i=2 için if cümlesi sağlanıyor mu? hayır, öyleyse if'i çalıştırma for cümlesinin içine dön
...
i=5 için if cümlesi sağlanıyor mu? evet, öyleyse if'i çalıştır, ekrana i değerini yaz, adet sayısını 1 artır, toplama i değerini ekle. Sonuçta ekrana 5 yazılacak adet=1 toplam=5 olacak. if döngüsü tamamlanınca if'ten çıkılacak ve for'un devamı olsaydı ona devam edilecekti ama devamı olmadığından i değeri kontrol edilecek.
i=6 için if cümlesi sağlanıyor mu? hayır, öyleyse if'i çalıştırma for cümlesinin içine dön
...
i=35 için if cümlesi sağlanıyor mu? evet, öyleyse if'i çalıştır yani if'in içindekileri yap..

if'in içi de az önce anlattığım gibi. ilk parantez i sayısı 5'e bölündüğünde kalan 0 olsun diyor, ikinci parantez i sayısı 7'ye bölündüğünde kalan 0 olmasın diyor, aradaki && işareti ilk parantez ve ikinci parantez aynı anda sağlanmadıkça if'in içine girilmesin diyor.


-------------
DIŞARIDA HAVA YAĞMURLU OLSA DA BENİM HAVAM YETER BANA =)


Mesajı Yazan: hatuncann
Mesaj Tarihi: 16 Ağustos 2011 Saat 23:13
kendimi kaptırmışım, i=35 için sağlanıyo yazmışım =) i=35 için ilk parantez değeri sağlanıyo ama ikincisi sağlanmıyo, o yüzden if gerçekleştirilmez, tekrar for cümlesi kontrol edilir i=36 için 36 değeri 100'den küçükse for'un içine girilir if kontrol edilir falan..
yani defalarca aynı kodu yazmamızı engelliyor for



-------------
DIŞARIDA HAVA YAĞMURLU OLSA DA BENİM HAVAM YETER BANA =)


Mesajı Yazan: Golgoth
Mesaj Tarihi: 17 Ağustos 2011 Saat 09:40
Kitapta böyle anlatsaydı hiçbirşeyi buraya taşımak zorunda kalmazdım :) Teşekkür ederim Büşra hanım :)

-------------
GoLGoTH


Mesajı Yazan: hatuncann
Mesaj Tarihi: 17 Ağustos 2011 Saat 12:27
rica ederim, kolay gelsin

-------------
DIŞARIDA HAVA YAĞMURLU OLSA DA BENİM HAVAM YETER BANA =)


Mesajı Yazan: PcMaKeR
Mesaj Tarihi: 17 Ağustos 2011 Saat 12:32
Orjinalini yazan: Golgoth

Kitapta böyle anlatsaydı hiçbirşeyi buraya taşımak zorunda kalmazdım :) Teşekkür ederim Büşra hanım :)


kitaplarda anlatılanlarda çok nadir deneyim anlatılıyor.

-------------
http://pcmaker.net/ - programlama - pcmaker.net



Sayfayı Yazdır | Pencereyi Kapat

Bulletin Board Software by Web Wiz Forums version 8.03 - http://www.webwizforums.com
Copyright ©2001-2006 Web Wiz Guide - http://www.webwizguide.info