Dizi Kullanan Örnekler

Slides:



Advertisements
Benzer bir sunumlar
STRİNG FONKSİYONLARI.
Advertisements

Soru1: 1’den 4’e kadar olan tamsayıları ekrana tek satırda görülecek şekilde yazdıran bir programı aşağıdaki metotları kullanarak yazınız. Bir printf ifadesi.
Diziler.
Bölüm 8 Diziler Dizi Tanımı Dizi Elemanlarına Değer Atama
Bölüm 12 ÜST DÜZEY KONULAR Dinamik Bellek Ayırma Önişlemci
Göstericiler (Pointers)
void medyan(int cevap[]) { int j; siralama(cevap);
Bölüm 7 Fonksiyonlar GÖSTERGELER Gösterge Tanımı
Bölüm 2 C Dilinin Temelleri
switch - case Yapısı Döngü Yapıları
String Diziler(Katarlar)
C Programlama Diline Giriş
Tanım Birbirleriyle ilişkili ve bitişik iki ya da daha fazla bellek hücresinden oluşan yapı Örnek dizi tanımı: int tamsayiDizi[10]; tamsayiDizi[0] /*ilk.
Değişken Bildirimleri
Diziler.
Atama ve Girdi/Çıktı Komutları
Soru1: kuvvet(taban,us) Şeklinde bir yinelenen fonksiyon yazın
BPR152 ALGORİTMA VE PROGRAMLAMA - II
Bölüm 9 Dizgiler Dizgi Tanımı Dizgi Girdi İşlemleri
Bölüm 9 Dizgiler Dizgi Tanımı Dizgi Girdi İşlemleri
String Kütüphanesindeki Arama Fonksiyonları
Diziler(Arrays).
Bölüm 10 Yapılar ve Birleşimler
String ve Karakterlerin Temelleri
KOPYA YAPICI FONKSİYON, STATİK ELEMANLAR, ARKADAŞ SINIF VE FONKSİYONLAR, NESNE DİZİLERİ Yılmaz Kılıçaslan.
Bölüm 2 C Dilinin Temelleri Genel Kavramlar
Soru1: Dışardan "%s" format belirteci kullanılarak girilecek 20 elemanlı bir dizinin elemanlarının kaç tanesinin rakam, kaç tanesinin harf ve kaç tanesinin.
Soru1: Bir tanesi tam sayı diğeri string olan iki elemanlı bir struct’ı bir başka struct’a direk kopyalama, memcpy kullanarak kopyalama ve tek tek elemanlarını.
DİZİLER.
Soru1: Kullanıcıdan iki tam sayı girmesini isteyen ve daha sonra büyük olan sayı ile beraber ‘en büyüktür’ ifadesi yazan, ancak sayılar birbirine eşitse.
SINIFLAR VE DİNAMİK BELLEK YÖNETİMİ
FONKSİYONLAR.
Ders 2- Veri türleri, Karar ve Döngü Yapıları, Görsel Kontröller Aslı Ergün.
Bölüm 6 - Diziler indeks 6.1 Giriş 6.2 Diziler
Derleyici Teorisine Giriş
Diziler Adres Kavramı Nesnelerin Adresleri sizeof Operatörü
DÖNGÜLER.
Diziler Dizi Tanımı Dizi Elemanlarına Değer Atama Diziler ve Göstergeler 2-Boyutlu Diziler.
Dizi Elemanlarının Sıralanması
Algoritma & Programlama
C PROGRAMLAMA DİZİLER (ARRAYS).
Fonksiyonlar Fonksiyon Tanımı Değer Döndürmeyen Fonksiyonlar
Fonksiyonlar Fonksiyon Tanımı
Algoritma & Programlama
Diziler (Arrays).
JAVA’DA DİZİLER Dr.Galip AYDIN.
Temel Giriş/Çıkış Fonksiyonları
Diziler. Dizi Tanımı Dizi Elemanlarına Değer Atama Diziler ve Göstergeler 2-Boyutlu Diziler.
Bölüm 6 Fonksiyonlar Fonksiyon Tanımı Değer Döndürmeyen Fonksiyonlar
Bil 102 Bölüm 6 Diziler.
PROGRAM DENETİM DEYİMLERİ
Bil 102 Bölüm 3 Java’da Program Akış Denetimi Bil 1021.
STRING‘LER Karakter Kütüphanesi Fonksiyonları
Ders 2- Veri türleri, Karar ve Döngü Yapıları, Görsel Kontröller
Dizgiler Dizgi Tanımı Dizgi Girdi İşlemleri Dizgi Çıktı İşlemleri Dizgi Fonksiyonları Karakter Fonksiyonları Gösterge Dizgileri.
JAVA PROGRAMLAMA ORNEKLER
The if statement. if Şartlı kontrol Koşul değimi doğru (1) yada yanlış (0) değeri üretir. Şartın doğru olması durumunda if satırından sonraki değimler.
Doç. Dr. Cemil Öz SAÜ Bilgisayar Mühendisliği Dr. Cemil Öz.
1 7. HAFTA. 2 Referanslar  Referanslar adres temsilcisidir  İşaretçilerin görevlerini kısmi olarak yapabilirler  Değişken değildirler.  Bellekte yer.
Doç. Dr. Cemil Öz SAÜ Bilgisayar Mühendisliği Dr. Cemil Öz.
BİLGİSAYAR programlama II
BİLGİSAYAR programlama II
Hafta2 Rekürsif Algoritmalar
Bölüm 2 C Dilinin Temelleri Genel Kavramlar Yazım ve Noktalama Kuralları C Kütüphaneleri C Dilindeki Sözcükler Değer Sabitleri Veri Tipleri Değişkenler.
Örnek Sorular Bilgisayar Programlama BIL 107. Soru 1: Ekran çıktısında 66 yazması için boşlukları doldurunuz ______ i = 'A'; printf(____, i__); CEVAP:
1 Bölüm 2 C Dilinin Temelleri Alıştırmalar Bu bölümdeki problemler “C Dersi Çözümlü Problem Kitabı”, N. E. Ça ğ ıltay, C. E. Selbes, G. Tokdemir, ve Ç.
Fonksiyonlar ve Diziler
Bölüm 9 Dizgiler Dizgi Tanımı Dizgi Girdi İşlemleri
JAVA’DA DİZİLER. Özet  Dizi: belirli sayıda ve aynı veri türünden de ğ işkenlere aynı adla erişilmesini sa ğ layan bir yapıdır.  Dizilerde döngü işlemleri.
YAPISAL PROGRAMLAMA Hafta-7
Sunum transkripti:

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.

#include <stdio.h> #include <conio.h> 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; }

#include <conio.h> #include <stdio.h> void staticArrayInit( void ); void automaticArrayInit( void ); int main() { printf( "Her fonksiyon ilk cagri:\n" ); staticArrayInit(); automaticArrayInit(); printf( "\n\nHer fonksiyon ikinci cagri:\n" ); 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" ); printf( "a[%d] = %d ", i, a[ i ] += 5 );

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" ); printf( "a[ %d ] = %d ", i, a[ i ] += 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 ])

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ı

#include <stdio.h> #include <conio.h> int main() { char dizi[5]; printf("dizi=%x\n&dizi[0]=%x\n" "&dizi=%x\n", dizi,&dizi[0],&dizi); getch(); return 0; }

#include <stdio.h> #include <conio.h> #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<BOYUT;i++) printf("%3d",a[i]); printf("\n"); diziyiAyarla(a,BOYUT); printf("Ayarlanan Dizi: \n"); printf("\nDizi elemaninin degere gore cagrilarak gecmesininin" " etkileri: \n\na[3] degeri:%d\n",a[3]); elemaniAyarla(a[3]); printf("a[3] degeri:%d\n",a[3]); getch(); return 0; }

void diziyiAyarla(int a[],int boyut) { int i; for(i=0;i<boyut;i++) a[i]*=2; } void elemaniAyarla(int a) printf("elemani ayarladaki deger: %d\n",a*=2);

#include <stdio.h> #include <conio.h> #define BOYUT 3 void diziyiAyarla(const int [], int); int main() { int a[BOYUT]={10,20,30},i; diziyiAyarla(a,BOYUT); for(i=0;i<BOYUT;i++) printf("%d ",a[i]); getch(); return 0; } void diziyiAyarla(const int a[],int boyut) int i; for(i=0;i<boyut;i++) a[i]*=2;

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

Seçmeli Sıralama

#include <stdio.h> #include <conio.h> #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<BOYUT;i++) printf("%d ",a[i]); getch(); return 0; } void secmeliSiralama(int dizi[],int boyut) { int enkucuk, yedek; for (int i = 0; i < boyut-1; i++) enkucuk = i; for (int j = i + 1; j < boyut; j++) if (dizi[j] < dizi[enkucuk]) enkucuk = j; yedek = dizi[i]; dizi[i] = dizi[enkucuk]; dizi[enkucuk] = yedek; }

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.

#include <stdio.h> #include <conio.h> #define BOYUT 100 int lineerArama(const int[],int,int); int main() { int a[BOYUT],i,aramaD,eleman; for(i=0;i<BOYUT;i++) a[i]=2*i; printf("Tamsayi arama deger:"); scanf("%d",&aramaD); eleman=lineerArama(a,aramaD,BOYUT); if(eleman!=-1) printf("Bu deger, eleman %d' de bulundu\n",eleman); else printf("Bu deger bulunamadi\n"); getch(); return 0; } int lineerArama(const int dizi[],int key,int boyut) int i; for(i=0;i<BOYUT;i++) if(dizi[i]==key) return i; return -1;

Ç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 } };

#include <stdio.h> #include <conio.h> 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" ); }

#include <stdio.h> #include <conio.h> #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 ) );

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;

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;

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 ] ); }