Ortalama MOD Medyan
ÖRNEKLER:ORTALAMA, MOD ve MEDYANI DİZİLER
KULLANARAK HESAPLAMAK
Şimdi daha büyük bir örnek inceleyeceğiz. Bilgisayarlar genellikle, araştırma ve oylama sonuçlarını derlemek ve analiz etmek için kullanılırlar. Şekil 6.16, ilk değer olarak araştırmaya verilmiş 99 (BOYUT sembolik sabiti ile gösterilmiştir) yanıtı kullanan cevap dizisini kullanmaktadır. Her yanıt 1'den 9'a kadar bir rakamdır. Bu program 99 değerin mod, medyan ve ortasını hesaplamaktadır.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 |
/* Şekil 6.16: fig06_16.c Bu program araştırma ve analiz yapar. orta, medyan, ve mod hesaplar. */ #include <stdio.h> #define BOYUT 99 void orta( const int [ ] ); void medyan( int [ ] ); void mod( int [ ], const int [ ] ) ; void kabarcikSiralama( int [ ] ); void diziyiYazdir ( const int [ ] ); int main( ) { int frekans[ 10 ] = { 0 }; int cevap [BOYUT] = { 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 }; orta ( cevap ); medyan (cevap ); mod (frekans, cevap ); return 0; } void orta ( const int cevap [ ] ) { int j, toplam = 0; printf( "%s\n%s\n%s\n", "********", " orta ", "********" ); for ( j = 0; j <= BOYUT - 1; j++ ) toplam += cevap [ j ]; printf( "Orta veri nesnelerinin ortalama değeridir.\n" "Ortalama bütün veri nesnelerinin\n" "toplamının veri nesnelerinin sayısına( %d )\n" "bölümüdür. Bu veriler için\n" "ortalama: %d / %d = %.4f\n\n", BOYUT, toplam, BOYUT, ( double ) toplam / BOYUT); } void medyan ( int cevap[ ] ) { printf( "\n%s\n%s\n%s\n%s", "********", " medyan ", "********", "Sıralanmamış Dizi " ); diziyiYazdir( cevap ); kabarcikSiralama ( cevap ); printf( "\n\nSıralanmış dizi " ); diziyiYazdir( cevap ); printf( "\n\n Sıralanmış %d elemanlık dizide\n" "medyan %d.elemandır\n" "Bu çalıştırılmada medyan %d\n\n", BOYUT, BOYUT/ 2, cevap[ BOYUT / 2 ] ); } void mod( int frek[], const int cevap [] ) { int puan, j, h, enBuyuk = 0, modDegeri = 0; printf( "\n%s\n%s\n%s\n", "********", " Mod", "********" ); for (puan = 1; puan <= 9; puan ++ ) frek[ puan ] = 0; for ( j = 0; j <= BOYUT - 1; j++ ) ++frek [ cevap[ j ] ]; printf( "%s%11s%19s\n\n%54s\n%54s\n\n", " Cevap ", " Frekans ", "Histogram", "1 1 2 2", "5 0 5 0 5" ); for (puan = 1; puan <= 9; puan ++ ) { printf( "%8d%11d ", puan, frek[puan] ); if ( frek[puan] > enBuyuk) { enBuyuk = frek[puan]; modDegeri = puan; } for ( h = 1; h <= frek[puan]; h++ ) printf( "*" ); printf( "\n" ); } printf( "Mod en sık rastlanan değerdir\n" "Bu çalıştırılmada mod %d dir." " %d kez rastlanmıştır\n", modDegeri, enBuyuk); } void kabarcikSiralama( int a[] ) { int tur, j, tut; for ( tur = 1; tur <= BOYUT - 1; tur++ ) for ( j = 0; j <= BOYUT - 2; j++ ) if ( a[ j ] > a[ j + 1 ] ) { tut = a[ j ]; a[ j ] = a[ j + 1 ]; a[ j + 1 ] = tut; } } void diziyiYazdir( const int a[] ) { int j; for ( j = 0; j <= BOYUT - 1; j++ ) { if ( j % 20 == 0 ) printf( "\n" ); printf( "%2d", a[ j ] ); } } |
Şekil 6.16 Araştırma Analiz Programı
********
Orta
********
Orta veri nesnelerinin ortalama değeridir.
Ortalama bütün veri nesnelerinin
toplamının veri nesnelerinin sayısına( 99 )
bölümüdür. Bu veriler için
ortalama: 681 / 99 = 6.8788
********
Medyan
********
Sıralanmamış Dizi
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
Sıralanmış dizi
1 2 2 2 3 3 3 3 4 4 4 4 4 5 5 5 5 5 5 5
5 6 6 6 6 6 6 6 6 6 7 7 7 7 7 7 7 7 7 7
7 7 7 7 7 7 7 7 7 7 7 7 7 8 8 8 8 8 8 8
8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8
9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9
Sıralanmış 99 elemanlık dizide
medyan 49.elemandır.s
Bu çalıştırılmada medyan 7
********
Mode
********
Cevap Frekans Histogram
1 1 2 2
5 0 5 0 5
1 1 *
2 3 ***
3 4 ****
4 5 *****
5 8 ********
6 9 *********
7 23 ***********************
8 27 ***************************
9 19 *******************
Mod en sık rastlanan değerdir\n"
Bu çalıştırılmada mod 8 dir."
27 kez rastlanmıştır
Şekil 6.17 Araştırma Analiz Programının örnek bir çalıştırılması
Orta, 99 değerin aritmetik ortalamasıdır. orta fonksiyonu ( 34.satır ), ortayı 99 değeri toplayıp, toplamı 99'a bölerek hesaplamaktadır.
Medyan, ortadaki değerdir. medyan fonksiyonu (51.satır) medyanı bulabilmek için kabarciksiralama fonksiyonunu (103.satırda tanımlanmıştır) çağırmaktadır. Böylece, yanıtlardan oluşan diziyi artan bir sırada dizdirip, sıralanmış diziden ortadaki elemanı cevap[BOYUT/2] ile seçmektedir. Çift sayıda eleman olduğunda, medyan ortadaki iki elemanın aritmetik ortalaması hesaplanarak bulunmalıdır. Ancak medyan fonksiyonu şu anda bu yeteneğe sahip değildir. diziyiyazdir fonksiyonu (118.satır), cevap dizisini yazdırmak için çağrılmıştır.
Mod, 99 yanıt arasından en çok karşılaşılanıdır. mod fonksiyonu (67.satır) mod değerine, her tipte yanıtın sayısını sayarak ve daha sonra da saydıkları arasında en büyük olanı seçerek karar vermektedir. mod fonksiyonunun bu versiyonu bir düğümü çözememektedir (Alıştırmalar 6.14'e bakınız). mod fonksiyonu, mod değerine karar verebilmesine yardımcı olması için çizgi grafik de kullanmaktadır. Şekil 6.17, bu programın örnek bir çıktısını göstermektedir. Bu örnek, dizi problemlerinde, dizileri fonksiyonlara geçirmek de dahil olmak üzere bir çok genel işlemi içermektedir.
Bilinmesi Gerekli
Arduino

Arduino ile bilgisayar programlarınızı gerçek dünyaya taşıyabilirsiniz.
İlk Transistör

Bell laboratuvarlarında icat edilen ilk transistör







