csharp örnekleri etiketine sahip kayıtlar gösteriliyor. Tüm kayıtları göster
csharp örnekleri etiketine sahip kayıtlar gösteriliyor. Tüm kayıtları göster

14 Haziran 2013 Cuma

Onluk Sayı Sistemindeki Bir Sayıyı Binary(ikilik) Sayı Sistemine Çeviren Program-Csharp



Not : Bu örneği çözerken if yapısı,do while döngüsü ve dizi yapısını kullanacağız.
Soru: Kullanıcıdan aldığınız 0 – 15 arasında sayı alınız. Aldığınız bu sayıları binary sayı sistemine çevirdikten sonra tasarımınızda yer alan label’a yazdırınız.
Örnek   veri:6
Örnek Çıktı: 0110 

Binary sistemine çevirmek için izleyeceğiniz yol öncelikle sayıyı 2 ye bölün. Kalan 0, bölüm 3’tür. Sonra 3(bölümü) tekrar ikiye bölün kalan 1 bölüm 1’dir. Bölüm ikiden küçük olana kadar sürekli 2’ye bölünür. En son elde edilen bölüm, binary sisteminin ilk basamağı olacak ve diğer kalanlar sırayla yazılarak elde edilen bir sayı sistemidir.

Çö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;
using System.Collections;

namespace WindowsFormsApplication2
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void button1_Click(object sender, EventArgs e)
        {
             int[] kalan = new int[4];
            int k=0;
            int bolen;
            int sayi = Convert.ToInt32(textBox1.Text);
            if (sayi > 0 && sayi < 15)
            {

                do
                {
                    bolen = sayi / 2;
                  

                        kalan[k] = sayi % 2;


                        sayi = bolen;
                        k++;                            
                      
                   
                }
                while (sayi > 2);
                kalan[k] = bolen;


                Array.Reverse(kalan);
                for (int i = 0; i <= 3; i++)
                {
                    label1.Text += Convert.ToString(kalan[i]);
                }

                              
            }

            else
                MessageBox.Show("o-15 arsında bir sayı giriniz");
          
       
        }
Kod Açıklaması: 
           int[] kalan = new int[4];
            int k=0;
            int bolen;
            int sayi = Convert.ToInt32(textBox1.Text);
Öncelikle onluk sistemdeki bir sayıyı 2'lik sayı sistemine çevirirken sayıları tutmak için bir dizi oluşturuyoruz. 4 elemanlı bir dizi olmasının sebebi soruda verildiği gibi kullanıcıdan sadece 0-15 arasında bir sayı alacağız eğer kullanıcı 14 rakamını girerse bunun 2'lik sayı sistemindeki karşılığı 1110 o yüzden kullanıcı sanki en büyük sayı girecekmiş gibi onun karşılığı olan 4 elemanlı bir dizi oluşturduk. Sonra dizinin 0.,1.,2., ve 3. elemalarını tutarken biz k değişkenini kullanacağız. Sonra sayıyı her seferinde 2'ye böleceğiz. Ve bölen değişkeni yani matematikte bölüm'e karşılık geliyor. Bölüm 2 den büyük olduğu müddetçe biz 2'ye bölmeye devam edeceğiz. Programa başlamadan önce değişkenlerimizi tanımladık. İlk işimiz kullanıcıdan bir sayı almak. Biz bunu textbox üzerinden aldığımız için textbox'larda bildiğimiz gibi string değer tutar. Öncelikle textbox'taki değerimizi convert.ToInt32 metodu ile integer değişkenine atıyoruz.

  if (sayi > 0 && sayi < 15)
ilk olarak textbox'a gidğimiz değeri kontrol ediyoruz. Bu sayı 0'dan büyük ve 15'den küçük mü diye. Çünkü soruda bizden o aralıktaki sayılar istendi. Eğer doğru ise program çalışacak yanlış ise;

 else
                MessageBox.Show("0-15 arsında bir sayı giriniz");
 else ye kod düşecek ve mesaj kutusu ile bize uyarı mesajı verecek.

Kişi 0-15 arasında bir değer girmiş ise;

do
                {
                    bolen = sayi / 2;
                  

                        kalan[k] = sayi % 2;


                        sayi = bolen;
                        k++;                            
                      
                   
                }
                while (sayi > 2);
                kalan[k] = bolen;

Önce textbox'taki değer 2'ye bölünüyor.Bölümü buluyoruz. Sonra girilen değeri tekrar 2'ye bölüyoruz fakat bu sefer %2 demek sayıyı 2'ye bölüp kalanını bulacağız. Kalan'ı ise bizim kalan diye bir dizimiz vardı. Onun k. elemanı olarak kalan değerimizi diziye attık. Şimdi biz sayıyı / 2'ye böldük artık yeni sayımız bölen oldu. Bunu while'in içinde sayımız 2 den büyükmü diye kontrol ettirmeden bölen değişkenindeki sayimizi sayi değişkenine atıp son değerimiz onun olmasını sağlıyoruz. Tabii yeniden bu sayıyı 2'ye bölüp kalanı, kalan değişkenine atamadan önce dizinin k. elemanını bir artırıyoruz. Eğer sayımız 2'den büyük olduğu müddetçe bu döngü devam eder.Yoksa demekki bölüm 'den küçükkü artık bu sayı 2'ye bölünemiyor demekki. Ozaman yapmamız gereken bölümü(bizdeki değişken ismi bölen)dizinin k. elemanı olarak diziye eklemek.

Şimdi diziye attığımız bu elemanları yazdırmaya geldi label'a;

Array.Reverse(kalan);
                for (int i = 0; i <= 3; i++)
                {
                    label1.Text += Convert.ToString(kalan[i]);
                }
Array sınıfının reverse özelliği ile dizinin elemanlarının sırasını ters çeviriyoruz. Yani ilk başta dizieye eklenen eleman en sona atılır. Bizim dizimizde en fazla 4 eleman olacağı için bir for döngüsü oluşturuyoruz 4 defa dönecek. Sırayla dizinin i. elemanını bu sefer label'a yazdırıyoruz. Böyle onluk sayı sistemindeki bir sayıyı ikilik sayı sistemine çevirip label'a yazdırmış olduk.

Not: Uygulamayı Linkten İndirebilirsiniz: 
https://hotfile.com/dl/227524493/15caf5c/WindowsFormsApplication2.rar.html

12 Haziran 2013 Çarşamba

Klavyeden girilen 5 sayı ile artimetik işlem yapmak,sıralamak-Uygulama Örneği Csharp



Klavyeden a,b,c,d,e sayılarını giren, bu sayıların

HESAPLama

A. Toplamını
B. Çarpımını
C. En büyük olanı
D. Büyükten küçüğe göre sıralayarak


EKRANA YAZDIRMA
A- Toplamın sonucunu
B- Çarpımın sonucunu
C- En büyük olanı
D- Sıralanmış halini
FOrm Dizaynı: Windows formumuza 5 textbox, 1 buton ve 4 label ekliyoruz.
Çö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;
using System.Collections;

namespace WindowsFormsApplication2
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void button1_Click(object sender, EventArgs e)
        {
            int a = Convert.ToInt32(textBox1.Text);
            int b = Convert.ToInt32(textBox2.Text);
            int c = Convert.ToInt32(textBox3.Text);
            int d = Convert.ToInt32(textBox4.Text);
            int k = Convert.ToInt32(textBox5.Text);

            int toplam= a+b+c+d+k;
            label1.Text=Convert.ToString(toplam);
            int carpim = a * b * c * d * k;
            label2.Text = Convert.ToString(carpim);

            int[] sayilar = new int[5];

           sayilar[0]= a;
            sayilar[1]= b;
            sayilar[2]=c;
            sayilar[3]=d;
            sayilar[4]= k;

         Array.Sort(sayilar);
         for (int i = 0; i < 5; i++)
         {
             label3.Text += sayilar[i].ToString();
         }

       int l=  sayilar.Max();
       label4.Text = l.ToString();
       
        }

        private void Form1_Load(object sender, EventArgs e)
        {
           
     }
     
    }
   
    }
   

 Kodun Açıklaması:


int a = Convert.ToInt32(textBox1.Text);
            int b = Convert.ToInt32(textBox2.Text);
            int c = Convert.ToInt32(textBox3.Text);
            int d = Convert.ToInt32(textBox4.Text);
            int k = Convert.ToInt32(textBox5.Text);

            int toplam= a+b+c+d+k;
            label1.Text=Convert.ToString(toplam);
  
 Textbox'lara girilen değerleri alıp convert metodu ile integer değişkenlere atadık. COnvert metodu kullanmamızın sebebi textbox'lar string değerler tutar. Bu yüzden bunları integer değişkenlere atamamız için convert.toint32 demek zorundayız.
Sonra bu değişkenleri toplayıp sonucunu int toplam değişkenine aktardık. Bu toplam sonucu label'a yazdırmak için bu sefer bu integer değişkeni convert metodu ile string'e çevirmek zorundayız çünkü labellar string tipinde ifadeleri tutarlar.


 int carpim = a * b * c * d * k;
 label2.Text = Convert.ToString(carpim);

Aynı şekilde bu 5 integer tipindeki değişkeni çarpıp bunların sonucu carpim değişkenine atıyoruz. Eşitliğin her iki tarafındaki değişkenler integer tipinde olduğu için bu değişkenleri atarken sıkıntı çekmiyoruz. Bu çarpımdeğişkenindeki çarpım işleminin sonucunu label'a yazdırmamız için bunu convert metodun ile string ifadeye çevirmemiz lazım.



int[] sayilar = new int[5];

           sayilar[0]= a;
            sayilar[1]= b;
            sayilar[2]=c;
            sayilar[3]=d;
            sayilar[4]= k;

         Array.Sort(sayilar);
         for (int i = 0; i < 5; i++)
         {
             label3.Text += sayilar[i].ToString();
         }


 
 Bizim 5 tane textbox'lardan aldığımız integer tipinde değişkenlerimiz var. Bunları sıralayabilmemiz için bir dizinin içine atmamız gerekecek. Öncelikle int tipinde bir değişken tanımlıyoruz ismide sayilar olsun. Bu dizinin boyutu yani eleman sayısı 5 olsun. Bizim değişkenlerimizi diziye kendimiz atıyoruz istediğimiz sıra ile. Sonra biz bu dizimizi Array.Sort(dizinin ismi) ile dizimizin içindeki sayısal değerleri sıralı hale getirdik. Sıra geldi bu sıralanmış diziyi label'a yazdırmaya. Bunun için bir for döngüsü oluşturuyoruz. Bu döngü her döndüğünde dizinin sıralanmış şekilde olan i. elemanını alıyoruz label'a yazdırıyoruz. 



int l=  sayilar.Max();
 label4.Text = l.ToString();
       
Sonra dizimizdeki en büyük sayıyı bulmak için dizilerde kullanılan max() metodu var. Bu metod ile dizimizdeki en büyük sayıyı buluruz. Tabi bu sayı integer tipinde olacağı için bunu bir integer değişkene çevirdik. Sonra bu bulduğumuz en büyük sayıyı label'a yazdırdık.



Google PageRank Checker Powered by  MyPagerank.Net