random sayı etiketine sahip kayıtlar gösteriliyor. Tüm kayıtları göster
random sayı etiketine sahip kayıtlar gösteriliyor. Tüm kayıtları göster

14 Haziran 2013 Cuma

Geri Sayım Yaparken Rastgele Sayı Üretilip Listbox'a Sayılar Yazdırılıp Toplama -Csharp

Not: Bu uygulama geri sayım için timer kullanılacak. Rastgele sayı üretilip, listbox ve if yapısı kullanılacak.

Soru:
Kullanıcıdan alınan sayıdan itibaren geri sayım süresi başlayacak. Geri sayımın hızını kullanıcı seçebilecek. Geri sayım yapılırken 1 ile 50 arasından rastgele sayı üretilip listboxlara eklenecek. Geri sayım bittikten sonra üretilen rastgele sayılar toplanıp sonucu kullanıcıya gösterilecek bir program yazınız. 

 Windows Formu Hazırlama: Program için windows formun üzerine 1 textbox,buton,label,timer ve listbox eklenecek.

Çözümü:
 using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace uygulama3
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }
        int sure;
        private void button1_Click(object sender, EventArgs e)
        {
            sure = Convert.ToInt32(textBox1.Text);
            label1.Text = sure.ToString();
            timer1.Interval = System.Convert.ToInt32(comboBox1.Text);
            timer1.Start();
        }


        private void timer1_Tick(object sender, EventArgs e)
        {
           sure=sure-1;
            label1.Text = sure.ToString();
            Random rnd = new Random();
            int eklenecek_sayi=rnd.Next(1, 50);
            listBox1.Items.Add(eklenecek_sayi);
            if (sure == 0)
            {
                timer1.Stop();
                int toplam = 0;
                for (int i = 0; i < listBox1.Items.Count; i++)
                {
                    toplam += Convert.ToInt32(listBox1.Items[i]);
                }
                MessageBox.Show(toplam.ToString());
            }

        }
    }
}






Kodun Açıklaması: 

            sure = Convert.ToInt32(textBox1.Text);
            label1.Text = sure.ToString();
            timer1.Interval = System.Convert.ToInt32(comboBox1.Text);
            timer1.Start();

 Butona bastığımız zaman ilk önce textbox'ta bulunan sayıyı alıp convert metodu ile integer değişkeni olan sure değişkenine atıyoruz. Sonra bu girilen ve integere çevrilen değişkeni alıp label'a atıyoruz. Çünkü her bir süre azaldığında tekrar label'a yazılacağı için o değerin.Sonra combobox'ta yer alan değerlerden birini seçiyoruz. Bu değer timer'ın hangi aralıklarla tetikleneceğini belirliyor. Sonra timer çalışıyor. Timer, bize tetikleme işlemlerinde işimize yarayacak bir araçtır. Burada geri sayım yaparken birşey tarafından sürenin tetiklenmesi lazım buda timer ile yapıyoruz.

Peki, timer her tetiklendiğinde ne olacak, label'da olan süre 1 azalacak, 1-50 arasında rastgele sayı üretilip listbox'a atılacak. Süre 0 olduğunda ise sayı üretilmesi duracak ve listbox'ta olan sayılar toplacak. Şimdi bu işlemlere yapan kodlara bir göz atalım.

private void timer1_Tick(object sender, EventArgs e)
        {
           sure=sure-1;
            label1.Text = sure.ToString();
            Random rnd = new Random();
            int eklenecek_sayi=rnd.Next(1, 50);
            listBox1.Items.Add(eklenecek_sayi);
            if (sure == 0)
            {
                timer1.Stop();
                int toplam = 0;
                for (int i = 0; i < listBox1.Items.Count; i++)
                {
                    toplam += Convert.ToInt32(listBox1.Items[i]);
                }
                MessageBox.Show(toplam.ToString());
            }

        }

Timer her tetiklendiğinde süre=sure-1 kodu ile süre bir azalacak. Peki, timer hangi aralıklarda tetiklenecek. Yukarıda bahsetmiştik, combobox'tan seçilen değer timer'ın tetiklenme aralığını oluşturuyor.Timer.interval metodu ile. Sure bir azalır iken sure her seferinde label'a yeni değeri ile yeniden yazılıyor. Sonra random sınıfından rnd isimde bir rastgele nesnesi oluşturuyoruz. Bu rnd nesnesi 1-50 arasında değer uretecek. Bu değer bizim listbox'ımıza eklenecek değerimizdir. Bunu listbox1.Items.Add metodu ile listbox'ımıza ekliyoruz. Peki ne zamana kadar bu sayılar üretilip eklenecek sure==0 olana kadar. Süre 0 olduğunda ilk işimiz timer'ın çalışmasını durdurmak. Çünkü böylece timer tetiklenmeyinde süre azalmıyacak,rastgele sayılar üretilip listbox'a eklenmeyecek. Şimdi sıra listbox'a eklenen rastgele sayıların toplamını bulmaya. Bunun için bir for döngüsü oluşturuyoruz. Peki döngü ne kadar dönecek, listbox'taki itemlerin sayısı(count) kadar dönecek. Her seferinde Listbox'ın içinde bulunan i. item'ın değerini alacak bizim toplam diye değişkenimize atacak. Döngü bittiğinde ise bunu kullanıcıya messagebox metodu ile toplam sonucu bildiriyoruz.

Uygulamayı bu linkten indirebilirsiniz:  https://hotfile.com/dl/227592245/5a6517d/uygulama3.rar.html
 

18 Mayıs 2013 Cumartesi

Array (Diziler) - C Programlama

10 tane öğrencinin sınav notu alınacak ve bu öğrencilere random olarak okul numaraları verilecek. Notlar girildikten sonra ekrana öğrencilerin notları ve okul numaraları gelecek. Sonra girilen notlara ortalama hesaplanacak ve kimlerin ortalamanın altında kaldığı hesaplanacak.
Çözümü
#include
#include
#include
int a,b,c,d,e,f,x,y,z,k,dizinot[10],dizinum[10],top=0;
float ort;
int main (void)
{
dongu:
srand (time(0));
printf ("nnyapilacak islemi asagidan secinnnn");
printf ("ogrenci girisi ve ogrenci numarasi alimi icin : 1n");
printf ("girilen ogrenci notlari ortalamasi icin : 2n");
printf ("ortalamayi gecen ogrencilerin notlari ve ortalamasi icin : 3n");
printf ("en yuksek notu alan ogrenci numarasi ve notu icin : 4n");
scanf ("%d",&a);
if (a==1)
{
for (b=0;b<10;b++)
{
printf ("notunuzu giriniz ve ogrenci numaranizi aliniz");
scanf ("%d",&dizinot[b]);
d=(rand()%10000+1);
dizinum[b]=d;
printf ("ogrenci no: %d not: %dnn",dizinum[b],dizinot[b]);
}
for (e=0;e<10;e++)
printf ("nnogrenci no: %d not: %dn",dizinum[e],dizinot[e]);
printf ("nana menu icin 0 cikmak icin baska bir tusa basinn");
scanf ("%d",&f);
if (f==0)
goto dongu;
else
return 0;

}
if (a==2)
{
printf ("ortalama aliniyor...nn");
for (e=0;e<10;e++)
top=top+dizinot[e];
ort=top/10;
printf ("not ortalamasi: %f",ort);
printf ("ana menu icin 0 cikmak icin baska bir tusa basinn");
scanf ("%d",&f);
if (f==0)
goto dongu;
else
return 0;
}
if (a==3)
{
printf ("ortalamayi gecen ogrenci numaralari ve notlari:nn");
for (e=0;e<10;e++)
{
if (dizinot[e]>ort)
printf ("og num:%d og not:%dnn",dizinum[e],dizinot[e]);
}
printf ("nana menu icin 0 cikmak icin baska bir tusa basinn");
scanf ("%d",&f);
if (f==0)
goto dongu;
else
return 0;
}
if (a==4)
{
for (x=0;x<10;x++)
{
for (y=(x+1);y<10;y++)
if (dizinot[y]>dizinot[x])
{
z=dizinum[x];
dizinum[x]=dizinum[y];
dizinum[y]=z;
k=dizinot[x];
dizinot[x]=dizinot[y];
dizinot[y]=k;
}
}
printf ("en yuksek notu alan ogrenci notu:%d n ogrenci num:%d",dizinot[0],dizinum[0]);
printf ("nana menu icin 0 cikmak icin baska bir tusa basinn");
scanf ("%d",&f);
if (f==0)
goto dongu;
else
return 0;
}
else
printf ("gecersiz komut girdinizn");
return 0;

}

Google PageRank Checker Powered by  MyPagerank.Net