KONU : Bir sınıftaki N kadar öğrencinin notları klavyeden giriliyor. Bu öğrencilerin çan eğrisine göre harf notlarını hesaplanabilmesi için sınıfın ortalamasını ve standart sapmasını hesaplayan programı yazınız. Çan eğrisinde harflere karar vermek için sınıf ortalamasının (t) ve standart sapmasının(y) bulunması gerekmektedir. a.Kendisine gönderilen notlara göre ortalamayı hesaplayıp dönen ortalama adındaki fonksiyonu yazınız. b.Kendisine gönderilen notlara göre standart sapmayı hesaplayıp dönen stdsapma dındaki fonksiyonu yazınız. c.)Main/buttonclicked de notlar okunacak.Not okuma işlemi bitince fonksiyonlar çağırılıp sonuçlar ekrana yazılacak.
ETİKETLER: c sharp sapma - c sharp ortalama - c sharp standart sapma - c# sapma - c# ortalama - c sharp math
UYGULAMAYI İNDİR
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
namespace C_Sharp_Class_Aritmetik_Ortalama
{
public partial class Form1 : Form
{
List sayilar = new List();
public Form1()
{
InitializeComponent();
}
private void Form1_Load(object sender, EventArgs e)
{
this.AcceptButton = btnSayiGir;
}
private void btnSayiGir_Click(object sender, EventArgs e)
{
try
{
double sayi = double.Parse(txtSayi.Text);
lstSayilar.Items.Add(sayi);
sayilar.Add(sayi);
}
catch (Exception)
{
//Hata oldugunda not ekranını sil
MessageBox.Show(txtSayi.Text + " bu değer sayı olarak kabul edilemez", "HATA", MessageBoxButtons.OK, MessageBoxIcon.Error);
}
txtSayi.Text = "";
}
private void btnHesapla_Click(object sender, EventArgs e)
{
//Sayılar sınıfından bir örnek olşturalım.
Sayilar sayi = new Sayilar(sayilar);
lblOrtalama.Text = sayi.OrtalamaHesapla().ToString("0.000");
//burda nesnenin standart sapma hesapla metodunu kullanarak giridiğimiz
//sayılarının standart sapmasının hesaplatacağız.
sayi.StandartSapmaHesapla();
//şimdi burada yukarıdaki metodun hesapladığı değeri sınıfın özelliği olan
//standartsapma dan elde edeceğiz
lblStandartSapma.Text = sayi.StandartSapma.ToString("0.000");
}
private void btnTemizle_Click(object sender, EventArgs e)
{
lstSayilar.Items.Clear();
sayilar.Clear();
}
}
public class Sayilar
{
//private int tipinde alan (field)
private int sayi;
//private double tipinde alan (field)
private double ortalama;
//private double tipinde alan (field)
private double standartSapma;
//private string tipinde alan (field)
private string isim;
//private double tipinde dizi alan (field)
private double[] sayiDizisi;
///
/// Constructor, parametresiz
///
public Sayilar()
{
}
///
/// Constructor, parametreli
///
public Sayilar(List sayilist)
{
this.sayiDizisi = new double[sayilist.Count];
for (int i = 0; i < sayilist.Count; i++)
{
sayiDizisi[i] = sayilist[i];
}
}
///
/// public strign tipinde sınıf için özellik oluşturma
///
public string Isım
{
get
{
return isim ;
}
set
{
isim = value;
}
}
///
/// public strign tipinde sınıf için özellik oluşturma, " Read Only "
///
public double StandartSapma
{
get
{
return standartSapma;
}
}
//double tipinde parametre alan ve double değer dönen metot
public int OrtalamaHesapla(double[] sayidizisi)
{
int ortalama = 0;
int toplam = 0;
for (int i = 0; i < sayidizisi.Length; i++)
{
toplam += Convert.ToInt16(sayidizisi[i]);
}
ortalama = toplam / sayidizisi.Length;
return ortalama;
}
//Double değer dönen ve parametre almayan metot
public double OrtalamaHesapla()
{
double ortalama = 0;
double toplam = 0;
for (int i = 0; i < sayiDizisi.Length; i++)
{
toplam += sayiDizisi[i];
}
try
{
ortalama = toplam / sayiDizisi.Length;
}
catch (Exception)
{
ortalama = 0;
}
return ortalama;
}
//parametre almayan ve değer dönmeyen metot
public void StandartSapmaHesapla()
{
// Madde 1: Aritmetik ortalama:sayıların toplamı / sayıların adedi
int ortalama = OrtalamaHesapla(sayiDizisi);
// Madde 2: veri – aritmetik ortalama
// Madde 3: farkların karesi toplanır.
double farkKarelerininToplami = 0;
for (int i = 0; i < sayiDizisi.Length; i++)
{
farkKarelerininToplami += Math.Pow((double)(sayiDizisi[i] - ortalama), 2.0);
}
// Madde 4: hesaplanan değer, veri sayısının 1 eksiğine bölünür.
// Madde 5 : Hesaplanan değerin karekökü alınır.
this.standartSapma = Math.Sqrt(farkKarelerininToplami / (sayiDizisi.Length + -1));
}
}
}
Hiç yorum yok :
Yorum Gönder