17 Aralık 2011 Cumartesi

C dilinde dizi anlatım....

Diziler:

Dizi bir kümedir. Aynı tipte verilere tek bir isimle erişmek için kullanılır. Bir dizinin bütün elemanları bellekte peşpeşe saklanır.

Dizi Tipi Genel bildirimi Örnek
Tek boyutlu diziler tip ad[eleman_sayısı] int veri[10];
İki boyutlu diziler tip ad[satir_say][sutun_say] float mat[5][4];
Çok boyutlu diziler tip ad[boyut_1][boyut_2][boyut_3]...[ boyut_n] double x[2][4][2];

10 adet örnek çözülmüştür. Örnekleri dikkatle inceleyelim.

Dizi elamanlarına erişim:
1: main(){
2: int i,x[5];
3: x[0]=5;
4: x[1]=25;
5: x[2]=-40;
6: for(i=0;i<3;i++)
7: printf("%d\n",x[i]);
8: }


Dizilere başlangıç değeri verme:
1: main(){
2: int i,x[5]={5,0,6};
3: int y[]={1,5,9};
4: puts("X Y");
5: for(i=0;i<3;i++)
6: printf("%d %d\n",x[i],y[i]);
7: }


Karakter dizisi (String):

1: main(){
2: int i;
3: char ad[][15] ={"Ahmet",
4: "Mehmet","Can"};
5: int kilo[]={70,60,52};
6: float boy[] ={1.70,1.85,1.45};
7: puts("\nISIM\tKILO\tBOY");
8: for(i=0;i<3;i++)
9: printf("%s\t%d\t%1.3f\n",ad[i],kilo[i],boy[i]);
10: }


Beş sayının ortalama hesabı:
1: main(){
2: int i,x[5],toplam =0;
3: float ort;
4: for(i=0;i<5;i++){
5: printf("%d. eleman : ",i+1);
6: scanf("%d",&x[i]);
7: toplam += x[i];
8: }
9: ort = (float) toplam/5;
10: printf("ortalamalari : %f",ort);
11: }


Dizileri fonksiyonla kullanma:
1: void yaz(int x[]);
2: main(){
3: int x[10];
4: yaz(x);
5: }
6:
7: void yaz(int x[]){
8: int i;
9: for(i=0;i<10;i++)
10: printf("%d\n",x[i]);
11: }
12:


Dizinin bellekte kapladığı alan:
1: main(){
2: char dizi1[10];
3: int dizi2[10];
4: float dizi3[10];
5: double dizi4[10];
6: printf( "%d\n",sizeof(dizi1) );
7: printf( "%d\n",sizeof(dizi2) );
8: printf( "%d\n",sizeof(dizi3) );
9: printf( "%d\n",sizeof(dizi4) );
10: }


Beş elemanlı bir diziye ait elamanların sırlanaması:
1: main(){
2: int x[10],i,j,gec;
3: puts("5 tane sayi gir:");
4: for(i=0;i<5;i++)
5: {
6: printf("%d.sayi : ",i);
7: scanf("%d",&x[i]);
8: }
10:
11: for(i=0;i<4;i++)
12: {
13: for(j=i+1;j<5;j++)
14: {
15: if( x[j]<x[i] )
16: {
17: gec = x[i];
18: x[i] = x[j];
19: x[j] = gec;
20: }
21: }
22: }
23:
24:
25: for(i=0;i<5;i++)
26: printf("\n%d",x[i]);
27:
28: }


İki matrisin toplamı:
1: main(){
2: int i,j,A[3][3],B[3][3],C[3][3];
3: puts("iki matrisin toplami:");
4: puts("A matrisinin elemanlarini girin:");
5: for(i=0;i<3;i++){
6: for(j=0;j<3;j++){
7: printf("A(%d,%d)=",i+1,j+1);
8: scanf("%d",&A[i][j]);
9: }
10: }
11:
12: puts("B matrisinin elemanlarini girin:");
13: for(i=0;i<3;i++){
14: for(j=0;j<3;j++){
15: printf("B(%d,%d)=",i+1,j+1);
16: scanf("%d",&B[i][j]);
17: }
18: }
19:
20: puts("A+B matrisinin elemanlari:");
21: for(i=0;i<3;i++){
22: for(j=0;j<3;j++){
23: C[i][j] = A[i][j] + B[i][j];
24: printf("C(%d,%d)=%d\n",i+1,j+1,C[i][j]);
25: }
26: }
27:
28: }


Elemanları (0,100) arsında olan rasgele dizi:
1: #include <time.h>
2: #include <stdlib.h>
3: main(){
4: int i,x[10];
5: randomize(); /* rasgele sayı ürettecini başlatır */
6: for(i=0;i<10;i++)
7: {
8: x[i]=random(100); /* 0-100 arasında raslegele sayı seçiliyor */
9: printf("%d\n",x[i]);
10: }
11: }


Dizi elemanlarının bellekteki sıralanış adresleri:
1: main(){
2: int i,x[10];
3: puts("x dizisinin elemanlarının sıralanışı");
4: for(i=0;i<10;i++)
5: printf("%p\n",&x[i]);
6: }

Diziler Örnek1 ...



Başka bir örnek yapalım. Kullanıcımız, float tipinde 10 adet değer girsin. Önce bu değerlerin ortalaması bulunsun, ardından kaç adet elemanın ortalamanın altında kaldığı ve kaç adet elemanın ortalamanın üstünde olduğu gösterilsin.
Örnek kod:
#include<stdio.h>

int main( void )

{

    // Degerleri tutacagimiz 'dizi'

    // adinda bir dizi olusturuyoruz.

    float dizi[ 10 ];

    float ortalama, toplam = 0;

    int ortalama_ustu_adedi = 0;

    int ortalama_alti_adedi = 0;

    int i;



    // Kullanici dizinin elemanlarini giriyor:

    for( i = 0; i < 10; i++ ) {

            printf( "%2d. elemanı giriniz> ", (i+1) );

            scanf( "%f", &dizi[ i ] );

            toplam += dizi[ i ];

    }

   

    // dizinin ortalamasi hesaplaniyor.

    ortalama = toplam / 10.0;

   

    // ortalamadan kucuk ve buyuk elemanlarin

    // kac adet oldugu belirleniyor.

    for( i = 0; i < 10; i++ ) {

            if( dizi[ i ] < ortalama )

                     ortalama_alti_adedi++;

            else if( dizi[ i ] > ortalama )

                     ortalama_ustu_adedi++;

    }



    // raporlama yapiliyor.

    printf( "Ortalama: %.2f\n", ortalama );

    printf( "Ortalamadan düşük %d eleman vardır.\n", ortalama_alti_adedi );

    printf( "Ortalamadan yüksek %d eleman vardır.\n", ortalama_ustu_adedi );



    return 0;

}

12 Aralık 2011 Pazartesi

Fibanocci c programlama ornek

#include <stdio.h>
int fibanocci(int n)

{
int a, b, c, top;
a=1; b=1; c=0; top=1;
do
{
top+=b;
c=a+b;
a=b;
b=c;
} while (b<=n);
printf("toplam=%d ", top);
}
main()
{
int nn=15;
/* printf("son sayiyi gir :");
scanf("%d", &nn);*/
fibanocci(nn);
getch();

}