Sunum yükleniyor. Lütfen bekleyiniz

Sunum yükleniyor. Lütfen bekleyiniz

Dizi Kullanan Örnekler Karakter Dizisi  ‘merhaba’ gibi bir string aslında, C’de bağımsız karakterlerden oluşmuş static bir dizidir.  Bir string kullanılarak.

Benzer bir sunumlar


... konulu sunumlar: "Dizi Kullanan Örnekler Karakter Dizisi  ‘merhaba’ gibi bir string aslında, C’de bağımsız karakterlerden oluşmuş static bir dizidir.  Bir string kullanılarak."— Sunum transkripti:

1 Dizi Kullanan Örnekler Karakter Dizisi  ‘merhaba’ gibi bir string aslında, C’de bağımsız karakterlerden oluşmuş static bir dizidir.  Bir string kullanılarak ilk değerler atanabilir. Örneğin; char string1[] = "first"; null karakteri olan ‘\0’ string’i sonlandırır. String1 aslında 6 elemanlıdır. Ve aşağıdakine denktir. char string1[] = { 'f', 'i', 'r', 's', 't', '\0' };  Her bir karaktere erişlebilir. string1[3]’ ‘s’ karakteridir.  Bir dizinin ismi bu dizinin başlangıç adresi olup böylece scanf için & kullanılmaya ihtiyaç duyulmaz. scanf( "%s", string2 ); İlk boşluk karakteri gelen dek klavyeden okumaya devam eder. Dizinin büyüklüğüne dikkat etmez bu sebepten dizinin sonunda öteye de yazabilir.

2 #include int main() { char string1[20],string2[]="string literal"; int i; printf("Bir string giriniz:"); scanf("%s",string1); printf("string1: %s\nstring2: %s\n" "karakterler arasinda boslukla string1:\n", string1,string2); for(int i=0;string1[i]!='\0';i++) printf("%c ",string1[i]); printf("\n"); getch(); return 0; }

3 #include void staticArrayInit( void ); void automaticArrayInit( void ); int main() { printf( "Her fonksiyon ilk cagri:\n" ); staticArrayInit(); automaticArrayInit(); printf( "\n\nHer fonksiyon ikinci cagri:\n" ); staticArrayInit(); automaticArrayInit(); getch(); return 0; } void staticArrayInit( void ) {static int a[ 3 ]; int i; printf( "\nstaticArrayInit'e girerlen degerler:\n" ); for ( i = 0; i <= 2; i++ ) printf( "a[%d] = %d ", i, a[ i ] ); printf( "\nstaticArrayInit'den cikarken degerler:\n" ); for ( i = 0; i <= 2; i++ ) printf( "a[%d] = %d ", i, a[ i ] += 5 ); }

4 void automaticArrayInit( void ) { int a[ 3 ] = { 1, 2, 3 }, i; printf( "\n\nautomaticArrayInit'e girerlen degerler :\n" ); for ( i = 0; i <= 2; i++ ) printf("a[ %d ] = %d ", i, a[ i ] ); printf( "\nautomaticArrayInit'den cikarken degerler:\n" ); for ( i = 0; i <= 2; i++ ) printf( "a[ %d ] = %d ", i, a[ i ] += 5 ); }

5 Dizileri Fonksiyonlara Geçirmek Dizileri geçirmek  İsmini parantez kullanmadan belirtmeliyiz. int myArray[ 24 ]; myFunction( myArray, 24 ); Dizi boyutu da genellikle geçirilir.  Referansa göre çağırma yöntemiyle geçirilir.  İsmi, dizinin ilk elemanının adresidir.  Fonksiyon dizinin nerede tutulduğunu kesin olarak bilir. Elemanları orijinal hafıza konumunda değiştirir. Dizi elemanlarını geçirmek  Değere göre çağırır.  İndislenmiş adı ile fonksiyona geçirilir.(myArray[ 3 ])

6 Dizileri Fonksiyonlara Geçirmek Fonksiyon prototipinde void modifyArray( int b[], int arraySize );  b parametresi tamsayılardan oluşan bir dizi  arraySize ise dizi elemanlarının sayısı

7 #include int main() { char dizi[5]; printf("dizi=%x\n&dizi[0]=%x\n" "&dizi=%x\n", dizi,&dizi[0],&dizi); getch(); return 0; }

8 #include #define BOYUT 5 void diziyiAyarla(int [], int); void elemaniAyarla(int); int main() { int a[BOYUT]={0,1,2,3,4},i; printf("Butun dizinin referansa gore cagrilarak gecmesininin" " etkileri: \nOrjinal dizinin degerleri: \n"); for(i=0;i

9 void diziyiAyarla(int a[],int boyut) { int i; for(i=0;i

10 #include #define BOYUT 3 void diziyiAyarla(const int [], int); int main() { int a[BOYUT]={10,20,30},i; diziyiAyarla(a,BOYUT); for(i=0;i

11 Dizileri Sıralamak Veri sıralamak  Önemli bilgisayar uygulamalarından biridir.  Hemen hemen tüm organizasyonlar bazı verileri sıralamak zorundadır. Seçmeli sıralama 1.Listedeki en küçük değerli öğeyi bul. 2.İlk konumdaki öğeyle bulunan en küçük değerli öğenin yerini değiştir. 3.Yukarıdaki adımları listenin ilk elemanından sonrası için (ikinci elemandan başlayarak) yinele.

12 Seçmeli Sıralama

13 #include #define BOYUT 10 void secmeliSiralama(int [], int); int main() { int a[BOYUT]={2,6,4,8,10,12,89,68,45,37},i; secmeliSiralama(a,BOYUT); for(i=0;i

14 Dizilerde Arama Yapmak Bir dizide belirli bir arama değerine eşit bir değer olup olmadığının kararı Lineer arama  Basit  Dizinin her elemanını arama değeriyle karşılaştırır.  Küçük ya da sıralanmamış dizilerde iyi çalışır.

15 #include #define BOYUT 100 int lineerArama(const int[],int,int); int main() { int a[BOYUT],i,aramaD,eleman; for(i=0;i

16 Çok Boyutlu Diziler Çok boyutlu diziler  Satırlar ve sütunlar biçiminde düzenlenmiş tablolar.  Matrisler gibi: Satır tanımla ardından sütun. Bildirim  int b[ 2 ][ 2 ] = { { 1, 2 }, { 3, 4 } };  Değerler parantez içinde satırlara göre gruplandırılmıştır.  Eğer bir satır değeri içinde yeterince atama değeri yoksa, satırda diğer elemanlara 0 atanır. int b[ 2 ][ 2 ] = { { 1,}, { 3, 4 } };

17

18 #include void printArray( const int [][ 3 ] ); int main() { int array1[ 2 ][ 3 ] = { { 1, 2, 3 }, { 4, 5, 6 } }, array2[ 2 ][ 3 ] = { 1, 2, 3, 4, 5 }, array3[ 2 ][ 3 ] = { { 1, 2 }, { 4 } }; printf( "Satir satir array1' in elemanlari:\n" ); printArray( array1 ); printf( "Satir satir array2' in elemanlari:\n" ); printArray( array2 ); printf( "Satir satir array3' in elemanlari:\n" ); printArray( array3 ); getch(); return 0; } void printArray( const int a[][ 3 ] ) { int i, j; for ( i = 0; i <= 1; i++ ) { for ( j = 0; j <= 2; j++ ) printf( "%d ", a[ i ][ j ] ); printf( "\n" ); }

19 #include #define STUDENTS 3 #define EXAMS 4 int minimum( const int [][ EXAMS ], int, int ); int maximum( const int [][ EXAMS ], int, int ); double average( const int [], int ); void printArray( const int [][ EXAMS ], int, int ); int main() { int student; const int studentGrades[ STUDENTS ][ EXAMS ] = { { 77, 68, 86, 73 }, { 96, 87, 89, 78 }, { 70, 90, 86, 81 } }; printf( "Dizi:\n" ); printArray( studentGrades, STUDENTS, EXAMS ); printf( "\n\nEn dusuk not: %d\nEn yuksek not: %d\n", minimum( studentGrades, STUDENTS, EXAMS ), maximum( studentGrades, STUDENTS, EXAMS ) );

20 for ( student = 0; student <= STUDENTS - 1; student++ ) printf( "Ogrenci %d icin ortalama: %.2f\n", student, average( studentGrades[ student ], EXAMS ) ); getch(); return 0; } int minimum( const int grades[][ EXAMS ], int pupils, int tests ) { int i, j, lowGrade = 100; for ( i = 0; i <= pupils - 1; i++ ) for ( j = 0; j <= tests - 1; j++ ) if ( grades[ i ][ j ] < lowGrade ) lowGrade = grades[ i ][ j ]; return lowGrade; }

21 int maximum( const int grades[][ EXAMS ], int pupils, int tests ) { int i, j, highGrade = 0; for ( i = 0; i <= pupils - 1; i++ ) for ( j = 0; j <= tests - 1; j++ ) if ( grades[ i ][ j ] > highGrade ) highGrade = grades[ i ][ j ]; return highGrade; } double average( const int setOfGrades[], int tests ) { int i, total = 0; for ( i = 0; i <= tests - 1; i++ ) total += setOfGrades[ i ]; return ( double ) total / tests; }

22 void printArray( const int grades[][ EXAMS ], int pupils, int tests ) { int i, j; printf( " [0] [1] [2] [3]" ); for ( i = 0; i <= pupils - 1; i++ ) { printf( "\nogrenciNotlari[%d] ", i ); for ( j = 0; j <= tests - 1; j++ ) printf( "%-5d", grades[ i ][ j ] ); }


"Dizi Kullanan Örnekler Karakter Dizisi  ‘merhaba’ gibi bir string aslında, C’de bağımsız karakterlerden oluşmuş static bir dizidir.  Bir string kullanılarak." indir ppt

Benzer bir sunumlar


Google Reklamları