DURUM CALISMASI Array Kullanarak Ortalama, Coklu Degerlerin Ortalamasini ve Mode Hesaplama
Simdi daha buyuk bir ornek uzerinde duracagiz.Bilgisayarlar yaygin olarak anket ve anket dusuncelerinin sonuclarini analize etmek ve derlemek icin kullanilirlar.Assagida yazacagimiz programada ki yanit adinda ki degisken aketlere cevap olarak 99 buyuklugunde bir array olarak baslatildi.Her bir yanit 1'den 9'a kadar olan numaralardir.Program genel ortalama ve her bir degiskenin ortalamasini almaktadir.
Genel ortalama 99 degerin matematiksel ortalamasidir. Fonksiyon GenelOrtalama 99 elemetin toplamini alip sonucu 99 a bolerek genel ortalamayi alacaktir.
Orta fonksiyonu da "orta degerdir".Fonksiyon Orta bubble sortu cagirarak orta degeri belirtecektir.
Programda yer alan ArrayiYaz fonksiyonu da yanit arrayin ciktisini alacaktir.hadi yavas yavas programi yazalim.
Unutmadan mode fonksiyonu da programin histogrami grafiksel olarak belirtmesinde yardimci olacaktir.
/*Program Anket Sonuclarinin Ortalamasini Almak icin yazilmistir*/
#include
#define SIZE 99
void GenelOrtalam(int []);
void Orta(int []);
void mode(int [], int []);
void bubleSort(int []);
void ArrayiYaz(int []);
main()
{
int SIKLIK[10] = {0},
Yanit[SIZE] = {6, 7, 8, 9, 8, 7, 8, 9,
8, 9,
7, 8, 9, 5, 9, 8, 7, 8, 7, 8,
6, 7, 8, 9, 3, 9, 8, 7, 8, 7,
7, 8, 9, 8, 9, 8, 9, 7, 8, 9,
6, 7, 8, 7, 8, 7, 9, 8, 9, 2,
7, 8, 9, 8, 9, 8, 9, 7, 5, 3,
5, 6, 7, 2, 5, 3, 9, 4, 6, 4,
7, 8, 9, 6, 8, 7, 8, 9, 7, 8,
7, 4, 4, 2, 5, 3, 8, 7, 5, 6,
4, 5, 6, 1, 6, 5, 7, 8, 7};
GenelOrtalama(Yanit);
Orta(Yanit);
mode(SIKLIK, Yanit);
return(0);
}
void GenelOrtalama(int cevap[])
{
int j, toplam = 0;
printf("%s\n%s\n%s\n", "********** ", "
GenelOrtlama", "**************");
for(j =0; j<=SIZE - 1; j++)
toplam + = cevap[j];
printf("GenelOrtlama data maddelerinin ortalamasidir\n"
"Genel Ortalama
data maddlerinin toplaminin\n"
" data
maddlerinin(%d) sayisi bolumune esittir.\n"
"Bu anket
icin verilen oylarin genel ortalamasi: %d %d = %.4f\n\n",
SIZE, toplam,
SIZE, (float) toplam / SIZE);
}// GenelOrtalama Sonu
void Orta(int cevap[])
{
printf("\n%s\n%s\n%s\n%s, "**********", " Orta",
"**************" ,
"Siralanmamis Array Yanitlar:");
ArrayiYaz(cevap);
bubleSort(cevap);
printf("Siralanmis Array ");
ArrayiYaz(cevap);
printf("\n\n Orta %d nin elementi \n"
"siralanmis
%d array element.\n"
"Bu anket
icin ortalama %d\n\n" ,
SIZE, / 2,
SIZE, cevap[SIZE /2] );
}//Orta fonksiyonun sonu
void mode(int SIK[], int cevap[])
{
int oylama, j, h, enGenis = 0; modeDeger = 0;
printf("\n%s\n%s\n%s,
"********** ", " Mode", "**********");
for(oylama = 1; oylama < = 9; oylama++)
SIK[oylama] = 0;
for(j = 0; j <= SIZE - 1; j++)
++SIK[cevap[j]] ;
printf("%s%11s%19s\n\n%54s\n%54s\n\n" ,
"YANIT", "SIKLIK", "HISTOGRAM",
"1 1 2 2",
"5 0 5 0 5");
for(oylama = 1; oylama <=9; oylama++)
{
printf("%8d%11d
", oylama, SIK[oylama]);
if(SIK[oylama] > enGenis)
{
enGenis = SIK[oylama];
modeDeger = oylama;
}
for(h = 1;
h <= SIK[oylama]; h++)
printf("*");
printf("\n");
}
printf("Mode en sik kullunilan degerdir.\n"
"Bu anket icin mode %d kez "%d olusmustur.",
modeDeger, enGenis);
}
void bubleSort(int a[])
{
int gec, j, dur;
for(gec = 1; gec < = SIZE -1; gec++)
for(j = 0; j <= SIZE - 2; j++)
if(a[j] > a[j + 1])
{
dur = a[j];
a[j] = a[j + 1];
a[j + 1] = dur;
}
}
void ArrayiYaz(int a[])
{
int j;
for(j = 0; j <= SIZE -1; j++)
{
if(j % 20 = = 0)
printf("\n");
printf("%2d", a[j]);
}
}
|