KlavyeSende.CoM
Ekim 11, 2008, 11:14:06 ÖS *
Merhaba, Ziyaretçi. Lütfen giriş yapın veya üye olun.

Kullanıcı adınızı, parolanızı ve aktif kalma süresini giriniz
  KlavyeSende.Com | Artık Klavye Sende !
 
Ana Sayfa Yardım Ara Admin Admin Admin Giriş Yap Kayıt  
Sayfa: [1]
  Yazdır  
Gönderen Konu: DiziLer  (Okunma Sayısı 116 defa)
0 Üye ve 1 Ziyaretçi konuyu incelemekte.
Ocak 13, 2007, 10:39:33 ÖS  |  Uyarı : Dikkat bu Administrator mesajıdır |
ChaR
Administrator
********

Üye Bilgileri
Üye ID: 1

Mesaj Sayısı: 2601

Nerden: Bilmem Sence Nerden ;)

Cinsiyet: Bay

Rep : 136
Online Online

« Not Found Keyboard »

Durumum:


Üyelik Bilgileri WWW

Resimlerin Görüntülenmesine İzin Verilmiyor
Resimleri Görebilmek İçin Üye Ol veya Giriş Yap

DİZİLER
Bir Tamsayı Dizisi
main()
{
int degerler[12];
int index;

for (index = 0;index < 12;index++)
degerler[index] = 2 * (index + 4);

for (index = 0;index < 12;index++)
printf("Index = %2d deki degeri %3d dir..\n",index,degerler[index]);

}
Bu programda, bir tamsayi dizisi tanimliyoruz. Gordugunuz gibi, ayni katar tanimlama gibi.. Bu sayede, index degiskeni haric oniki tane degiskenimiz oluyor. Bu degiskenlerin isimleri "degerler[0]" , "degerler[1]" ,vs. dir. Ilk "for" dongusunde, bunlara deger atiyoruz, ikincisi ise, index degiskeni ve "degerler" dizisinin icindekileri ekrana yaziyor.

BİR KAYAR NOKTA DİZİNİ
char isim1[] = "Birinci Program basligi";

main()
{
int index;
int ivir[12];
float tuhaf[12];
static char isim2[] = "Ikinci Program Basligi";

for (index = 0;index < 12;index++) {
ivir[index] = index + 10;
tuhaf[index] = 12.0 * (index + 7);
}

printf("%s\n",isim1);
printf("%s\n\n",isim2);
for (index = 0;index < 12;index++)
printf("%5d %5d %10.3f\n",index,ivir[index],tuhaf[index]);
}
Burada, "float" olarak tanimli bir kayar nokta dizisi goruyorsunuz. Ayrica bu program, katarlara nasil baslangic degeri atanabilecegini gosteriyor. Koseli parantezlerin icini bos birakarak, derleyicinin o veriyi saklamak icin yeteri kadar yer ayarlamasini sagladik. Programin icinde, bir katar daha ilk degerini veriyoruz. Burada onune "static" k****k zorunlugumuz var. Baska yeni birsey yok bu programda. Degiskenler rastgele degerlere atanir, ve sonra da bu degerler ekrana yazdirilir.

BİR FONKSIYONDAN DEĞER DÖNDÜRME
main()
{
int index;
int matrix[20];

for (index = 0;index < 20;index++) /* veriyi uretelim */
matrix[index] = index + 1;

for (index = 0;index < 5;index++) /* orjinal veriyi, ekrana. */
printf("Baslangic matrix[%d] = %d\n",index,matrix[index]);

yapbirsey(matrix); /* fonksiyona gidip, deger degistirme */

for (index = 0;index < 5;index++) /* degismis matrix i yazalim */
printf("Geri donen matrix[%d] = %d\n",index,matrix[index]);
}

yapbirsey(list) /* Veri donusunu gosterir */
int list[];
{
int i;

for (i = 0;i < 5;i++) /* print original matrix */
printf("Onceki matrix[%d] = %d\n",i,list);

for (i = 0;i < 20;i++) /* add 10 to all values */
list += 10;

for (i = 0;i < 5;i++) /* print modified matrix */
printf("Sonraki matrix[%d] = %d\n",i,list);
}
Bir fonksiyondan deger dondurmenin bir yolu da, diziler kullanmaktir. Buradam 20 hanelik bir dizi tanimladiktan sonra, icine degerler atiyoruz, bu degerlerin ilk besini ekrana yazdiktan sonra, "yapbirsey" isimli fonksiyona atliyoruz. Burada goreceginiz gibi, bu fonksiyon "matrix" isimli diziye "list" demeyi tercih ediyor. Fonksiyona, ne cins bir dizi gececegini bildirmek icin, "int" olarak "list"i tanimliyoruz. Fonksiyona kac elemanlik bir dizi gecegini soylememize luzum yok, fakat istenirse belirtilebilir. Bu nedenle bos koseli parantezler kullaniyoruz.

Bu fonksiyon da, kendisine gecen degerleri gosterdikten sonra, bu degerlere 10 ekliyor, ve yeni degerleri gosterip, ana programa geri donuyor. Ana programda goruyoruz ki, fonksiyonun yaptigi degisiklikler, "matrix" degerlerini de degistirmis.

Dizilerin, normal degiskenlerin aksine, fonksiyondaki degerleri degisince, cagiran programdaki dizinin degerlerinin degismesini garipsiyebilirsiniz. Pointerlar konusuna gelince butun bunlar daha manali olacaktir.

BİRDEN FAZLA BOYUTLU DİZİLER
main()
{
int i,j;
int buyuk[8][8],dev[25][12];

for (i = 0;i < 8;i++)
for (j = 0;j < 8;j++)
buyuk[j] = i * j; /* Bu bir carpim tablosudur */

for (i = 0;i < 25;i++)
for (j = 0;j < 12;j++)
dev[j] = i + j; /* Bu da bir toplama tablosudur */

buyuk[2][6] = dev[24][10]*22;
buyuk[2][2] = 5;
buyuk[buyuk[2][2]][buyuk[2][2]] = 177; /* bu, buyuk[5][5] = 177; demek */

for (i = 0;i < 8;i++) {
for (j = 0;j < 8;j++)
printf("%5d ",buyuk[j]);
printf("\n"); /* Her i nin degeri artinca, bir RETURN */
}
}
Burada iki tane iki boyutlu dizi kullaniyoruz. "buyuk" adli 8 e 8 lik dizinin elemanlari
  • dan [7][7] ye kadar, toplam 64 tanedir. Diger tanimli "dev" dizi ise, kare degildir, fakat dizinin kare olmasinin sart olmadigini gosteren bir ornektir.

Iki dizi de biri carpim tablosu, digeri de toplama tablosu ile doldurulur.

Dizi elemanlarinin tek tek degistirilebilecegini gostermek icin, once "buyuk" un elemanlarinda birine, "dev" in bir elemani ile, 22 ile carpildiktan sonra atanir. Ikinci atamada ise, "buyuk[2][2]" elemani 5 degerine atanir. Herhangi bir islemin index olarak kullanilabilecegini gosteren ucuncu atama ise, aslinda "big[5][5] = 177;" dir.

alıntıdır..
Logged

Resimlerin Görüntülenmesine İzin Verilmiyor
Resimleri Görebilmek İçin Üye Ol veya Giriş Yap

Herkes dalgasına baksın ,
Ama benim dalgamda boğulmasın ,
Bilsin ki yüz verip adam ettiysem ,
Sıfırla çarpar , yok ederim ,
Bu saatten sonra uğraşmam ,
Dünümle ve dünümdekilerle ,
Ben yarına bakarım yanımdakilerle...
Ekim 31, 2007, 01:24:53 ÖS
anaconda_
BanneD
*
Avatar Yok

Üye Bilgileri
Üye ID: 2214

Mesaj Sayısı: 1911

Nerden: anaconda'nın yanından

Cinsiyet: Bay

Rep : 25
Offline Offline

AnaCoNDaa

Durumum:


Üyelik Bilgileri WWW


annamiom ama emegine sağlık
Logged
Sayfa: [1]
  Yazdır  
 
Gitmek istediğiniz yer:  

MySQL ile Güçlendirildi PHP ile Güçlendirildi Powered by SMF 1.1.2 | SMF © 2006, Simple Machines LLC
Seo4Smf v0.2 © Webmaster's Talks
XHTML 1.0 Geçerli! CSS Geçerli!
eXTReMe Tracker