C# Girilen Sayıların Gösterimi ve Standart Sapmasının Hesaplanması - Bilişim Konuları

C# Girilen Sayıların Gösterimi ve Standart Sapmasının Hesaplanması

Bu örneğimizde C# form ortamında klavyeden girilen sayıların listesinin ekranda gösterilmesi ve girilen sayıların standart sapmasının hesaplanmasını yapan programı yapacağız. Sayıları girmek için bir tane textbox nesnesi kullanıyoruz. Girilen sayıları ekranda göstermek için  richtextbox (zengin metin kutusu) nesnesi kullanıyoruz. Yine sonuçları göstermek için iki tane textbox nesnesi kullanıyoruz. Programımız aşağıdaki şekilde olacaktır.

Programın C# kodları:

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 standart_sapma
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }
        ArrayList dizi = new ArrayList();
        private void Form1_Load(object sender, EventArgs e)
        {
            t_is.Enabled = false;
            t_rs.Enabled = false;
            t_is.Clear();
            t_rs.Clear();
            Sayı.Clear();
            richTextBox_eklenenSayilar.Clear();
        }
        private void Ekle_Click(object sender, EventArgs e)
        {
            if ((Sayı.Text=="")|| (Sayı.Text == String.Empty))
                MessageBox.Show("Boş Geçemezsin");

            else
            {
                dizi.Add(int.Parse(Sayı.Text));
                richTextBox_eklenenSayilar.Text += Sayı.Text + " --> ";
                Sayı.Clear();
            }
        }

        private void Temizle_Click(object sender, EventArgs e)
        {
            richTextBox_eklenenSayilar.Clear();
            dizi.Clear();
            t_is.Clear();
            t_rs.Clear();
            Sayı.Clear();
        }
        private void Hesapla_Click(object sender, EventArgs e)
        {
            int n;
            n = dizi.Count;
            if (n >= 2)
            {
                t_is.Text = ih().ToString();
                t_rs.Text = rh().ToString();
            }
            else
                MessageBox.Show("Girilen değer 2'den az");
        }
        private void Sayı_KeyPress(object sender, KeyPressEventArgs e)
        {
            e.Handled = !char.IsDigit(e.KeyChar) && !char.IsControl(e.KeyChar);
        }
        public double ih() //iterative hesapla
        {
            //ss=standart sapma   gs=girilen sayı atama için değişken
            //t=girilen sayı toplamı     ort=girilen sayıların ortalaması
            //n= n değeri     sigma=girilen sayıların ortalamalardan farkının karesinin toplamı
            double ss, v, gs, ort, sigma = 0;
            double t = 0;
            int n = 0;
            n = dizi.Count;
            for (int i = 0; i < n; i++)
            {
                gs = double.Parse(dizi[i].ToString());
                t += gs;
            }
            ort = t / n;
            for (int i = 0; i < n; i++)
            {
                gs = double.Parse(dizi[i].ToString());
                sigma += Math.Pow((gs - ort), 2);
            }
            v = (1 / (Convert.ToDouble(n) - 1)) * sigma;
            ss = Math.Round(Math.Sqrt(v), 4);
            return ss;
        }
        public double rh() // recursive hesapla
        {
            //ss=standart sapma   gs=girilen sayı atama için değişken
            //t=girilen sayı toplamı     ort=girilen sayıların ortalaması
            //n= n değeri     sigma=girilen sayıların ortalamalardan farkının karesinin toplamı
            double ss, v, ort, sigma = 0;
            int n = 0;
            n = dizi.Count;
            ort = rob(n);
            sigma = rtb(n, ort);
            v = 1 / (Convert.ToDouble(n) - 1) * sigma;
            ss = Math.Round(Math.Sqrt(v), 4);
            return ss;
        }
        public double rob(int n) //recursive ortalama bul
        {
            if (n == 0)
                return 0;
            double gs = double.Parse(dizi[n - 1].ToString());
            return (rob(n - 1) * (n - 1) + gs) / n;
        }

        public double rtb(int n, double ort) //recursive toplam bul
        {
            if (n == 0)
                return 0;
            double gs = double.Parse(dizi[n - 1].ToString());
            return Math.Pow(gs - ort, 2) + rtb(n - 1, ort);
        }
    }
}

Ekran Görüntüsü:

standart-sapma1

standart-sapma2

standart-sapma3

standart-sapma4

Bu Yazıya Tepkin Nedir?
+1
1
+1
0
+1
0
+1
0
+1
0
+1
0
+1
0

Yorum Yap