You are on page 1of 11

ALGORTMALAR

VE

BLGSAYAR PROGRAMCILIINA
GR

DEV IV
ki Boyutlu Bir Dizideki Saylarn En
Byklerini, En Kklerini Bulan, Aritmetiksel
Ortalamalarn ve Standart Sapmalarn
Hesaplayan C Program

AL NAL
200033028
Endstri Mh. 2C

PROBLEM
Bilgisayara, C dilini kullanarak;
t
7 13 310 427 204
99 2 508 85 607
28 44 807 797 308
35 109 44 707 107
6
ki boyutlu dizisinde satrlardaki, stunlardaki ve geneldeki en byk ve en kk saylar bulan,
aritmetiksel ortalamay ve starndart sapmay hesaplayan bir C program yaznz.
ZLENECEK YOL
1. Satrlar ve stunlar ayr ayr dolaarak en bykleri ve kkleri bulan for dngleri oluturulur.
2. Genel toplam hesaplanp ortalama bulunur.
3. Son bir for dngs oluturularak, nceden hesaplanan ortalama sayesinde standart sapma hesaplanr.
4. Bu deerlere eriim iin men sistemi gelitirilir.

PROBLEM N GELTRLEN C KODU (Sayfa #1/5)


#include
#include
#include
#include

<stdio.h>
<stdlib.h>
<math.h>
<conio.h>

int t[4][5]={{7,13,310,427,204},{99,2,508,85,607},{28,44,807,797,308},{356,109,44,707,107}},i,j;
int eks,ekt,ebs,ebt,s=0;
double stndev=0,average;
char secim;
void main()
{
void maxmin();
void sumaver();
void standev();
void backquestion();
void tabloyaz();
void toplam();
void ortalama();
system ("cls");
printf ("\n
printf ("\n
printf ("\n
printf ("\n
printf ("\n
printf ("\n
printf ("\n
printf ("\n\n\n\n
printf ("\n
printf ("\n
printf ("\n\n\n\n\n
printf ("\n
printf ("\n
printf ("\n\n\n
secim=getch();
reprog:
system ("cls");
printf ("\n
tabloyaz();

----------------------------------");
|
ALGORITMALAR
|");
|
ve
|");
| BILGISAYAR PROGRAMCILIGINA GIRIS |");
----------------------------------");
|
BIM 106/3
|");
----------------------------------");
**********");
* 4.ODEV *");
**********");
ALI INAL");
200033028");
End.Muh. 2C");
____Herhangi Bir Tusa Basiniz___");

KULLANILACAK DIZI\n ---------------------------------\n");

PROBLEM N GELTRLEN C KODU (Sayfa #2/5)


printf ("\n\n PROGRAM MENUSU\n ---------------------------------");
printf ("\n 1. En Buyukler/Kucukler");
printf ("\n 2. Aritmetiksel Ortalama");
printf ("\n 3. Standart Sapma");
printf ("\n 4. Cikis");
printf ("\n\n ");
resoru:
printf ("Seciminiz...");
secim=getch();
switch (secim)
{
case '1': {
system ("cls");
tabloyaz();
printf ("\n >>> Dizisinde En Buyuk, En Kucuk Analizi:\n -----------------------------------------");
maxmin();
backquestion();
goto reprog;
break;}
case '2': {
system ("cls");
tabloyaz();
printf ("\n >>> Dizisinde Aritmetiksel ");
sumaver();
printf ("\n");
backquestion();
goto reprog;
break;}
case '3': {
system ("cls");
tabloyaz();
printf ("\n >>> Dizisinde Standart ");
standev();
backquestion();
goto reprog;
break;}
case '4': {
printf ("\n\n");

PROBLEM N GELTRLEN C KODU (Sayfa #3/5)


exit(0);}
default: {
printf ("\nYanlis Secim! "); goto resoru; break;}
}
}
void maxmin(void)
{
ebt=t[0][0];
ekt=t[0][0];
for (i=0;i<=3;i++)
{
eks=t[i][0];
ebs=t[i][0];
for (j=0;j<=4;j++)
{
if (t[i][j]<eks) eks=t[i][j];
if (t[i][j]>ebs) ebs=t[i][j];
if (ebs>ebt) ebt=ebs;
if (eks<ekt) ekt=eks;
}
printf ("\n %d. Satirin En Buyugu= %4d
}
printf ("\n");
for (i=0;i<=4;i++)
{
eks=t[0][i];
ebs=t[0][i];
for (j=0;j<=3;j++)
{
if (t[j][i]<eks) eks=t[j][i];
if (t[j][i]>ebs) ebs=t[j][i];
}
printf ("\n %d. Sutunun En Buyugu= %4d
}
printf ("\n\n Tablonun En Buyugu= %4d

En Kucugu=%4d",i,ebs,eks);

En Kucugu=%4d",i,ebs,eks);

Tablonun En Kucugu=%4d",ebt,ekt);

PROBLEM N GELTRLEN C KODU (Sayfa #4/5)


}
void toplam(void)
{
s=0;
for (i=0;i<=3;i++)
{
for (j=0;j<=4;j++)
{
s=s+t[i][j];
}
}
}
void sumaver(void)
{
toplam();
average=s/20.0;
printf ("Ortalama= %lf",average);
}
void ortalama(void)
{
toplam();
average=s/20.0;
}
void standev(void)
{
ortalama();
for (i=0;i<=3;i++) for (j=0;j<=4;j++) stndev=stndev+(pow(t[i][j]-average,2));
stndev=sqrt(stndev/20);
printf ("Sapma= %lf\n",stndev);
}
void backquestion(void)
{
printf ("\n\n 1. Ana Menuye Don\n 2. Cikis\n");
resor:
printf (" Secminiz...");

PROBLEM N GELTRLEN C KODU (Sayfa #5/5)


secim=getch();
switch (secim)
{
case '1': break;
case '2': printf ("\n\n"); exit(0); break;
default: printf ("\n Yanlis Secim!"); goto resor; break;
}
}
void tabloyaz(void)
{
printf ("\n
");
for (i=0;i<=4;i++) printf (" [%d]",i);
printf("\n");
for (i=0;i<=3;i++)
{
printf (" [%d]",i);
for (j=0;j<=4;j++) printf ("%5d",t[i][j]);
printf ("\n");
}
}

PROGRAM IKTILARI
1. Ekran ktlar
a. Programn giri ekran
---------------------------------|
ALGORITMALAR
|
|
ve
|
| BILGISAYAR PROGRAMCILIGINA GIRIS |
---------------------------------|
BIM 106/3
|
----------------------------------

**********
* 4.ODEV *
**********

ALI INAL
200033028
End.Muh. 2C
____Herhangi Bir Tusa Basiniz___

b. Programn ana mens


KULLANILACAK DIZI
--------------------------------[0]
[1]
[2]
[3]

[0]
7
99
28
356

[1]
13
2
44
109

[2]
310
508
807
44

[3]
427
85
797
707

[4]
204
607
308
107

PROGRAM MENUSU
--------------------------------1. En Buyukler/Kucukler
2. Aritmetiksel Ortalama
3. Standart Sapma
4. Cikis
Seciminiz...

c. En byk/kk analizi
[0]
7
99
28
356

[0]
[1]
[2]
[3]

[1]
13
2
44
109

[2]
310
508
807
44

[3]
427
85
797
707

[4]
204
607
308
107

>>> Dizisinde En Buyuk, En Kucuk Analizi:


----------------------------------------0. Satirin En Buyugu= 427
En Kucugu=
7
1. Satirin En Buyugu= 607
En Kucugu=
2
2. Satirin En Buyugu= 807
En Kucugu= 28
3. Satirin En Buyugu= 707
En Kucugu= 44
0.
1.
2.
3.
4.

Sutunun
Sutunun
Sutunun
Sutunun
Sutunun

En
En
En
En
En

Buyugu=
Buyugu=
Buyugu=
Buyugu=
Buyugu=

Tablonun En Buyugu=

356
109
807
797
607
807

En
En
En
En
En

Kucugu=
7
Kucugu=
2
Kucugu= 44
Kucugu= 85
Kucugu= 107

Tablonun En Kucugu=

1. Ana Menuye Don


2. Cikis
Secminiz...

d. Aritmetiksel ortalama
[0]
[1]
[2]
[3]

[0]
7
99
28
356

[1]
13
2
44
109

[2]
310
508
807
44

[3]
427
85
797
707

[4]
204
607
308
107

>>> Dizisinde Aritmetiksel Ortalama= 278.450000


1. Ana Menuye Don
2. Cikis
Secminiz...

e. Standart sapma
[0]
[1]
[2]
[3]

[0]
7
99
28
356

[1]
13
2
44
109

[2]
310
508
807
44

[3]
427
85
797
707

[4]
204
607
308
107

>>> Dizisinde Standart Sapma= 269.166394


1. Ana Menuye Don
2. Cikis
Secminiz...

2. Aklamalar ve Sonular
Gelitirilen kod ile
t
7 13 310
99 2 508
28 44 807
35 109 44
6

427
85
797
707

204
607
308
107

Dizisindeki deerler iin satrlarda, stunlarda ve genelde en byk/kk saylar bulunmu,


ortalama ve standart sapma hesaplanmtr.
Dizi, ierii tamsay olduu iin integer olarak tanmlanmtr. Ayrca, satrlardaki/stunlardaki en
byk/kk deerleri tutan ebs ve eks deikenleri, genelde en byk/kk deerleri tutan ebt ve
ekt deikenleri ile toplam tutan s deikeni de integer olarak tanmlanmtr. Ortalama deerini
tutan average deikeni ile standart sapma deerini tutan stndev deikenleri, deerlerin hassasl
nedeniyle double tanmlanmtr. Men sisteminde girileri alan secim deikeni ise char olarak
tanmlanmtr.
Programda, menlerin ekrana yansmasndan nce gereken ekrann temizlenmesi ilemi iin,
system(cls) komutu kullanlmtr (clrscr fonksiyonu Microsoft C Compiler tarafndan
desteklenmedii iin bu komut Microsoft Developers Network (MSDN)in resmi sitesindeki;
http://support.microsoft.com/support/kb/articles/Q99/2/61.ASP adresinden alnmtr).
Bunun dnda programdan k iin stdlib.h balk dosyasnn bir fonksiyonu olan exit(0)
fonksiyonu ve tek karakter okutmak iin ise yine ayn balk dosyasnn fonksiyonu olan getch()
fonksiyonu kullanlmtr.
Programn icras sonucunda ise;
0. Satirin En Buyugu=

427

En Kucugu= 7

1. Satirin En Buyugu=

607

En Kucugu= 2

2. Satirin En Buyugu=

807

En Kucugu= 28

3. Satirin En Buyugu=

707

En Kucugu= 44

0. Sutunun En Buyugu= 356

En Kucugu= 7

1. Sutunun En Buyugu= 109

En Kucugu= 2

2. Sutunun En Buyugu= 807

En Kucugu= 44

3. Sutunun En Buyugu= 797

En Kucugu= 85

4. Sutunun En Buyugu= 607

En Kucugu= 107

10

Tablonun En Buyugu=

807

En Kucugu= 2

Aritmetiksel Ortalama= 278.450000


Standart Sapma = 269.166394 Deerleri bulunmutur.

11

You might also like