1. sayfa
1.For döngüsü şöyle : i 'yi 0 olarak tanımladık .. .a[ i ](a'nın içine i degerini yolladık)sıfır olana kadar devam etsin dedik.. ve i'yi i++ şeklinde birer birer arttır komutu verdik. Bu şekilde de a[ i ] kısmını arttırmışsın. |
a[ i ] yanındaki [ 0 ] nedir peki ? |
a[ 0 ] dediğimiz şey şöyledir ki : mesela şu bir dizi olsun. a[ 3 ]={'E','x','e'}; şimdi burada c++ şöyle algılar : Normalde Exe, 3 harflidir. Bu yüzden a[ 3 ] olarak belirttik. Fakat program bunu okurken en baştaki E harfini 0 olarak okur yani programın gözünde harfler şöyle numaralandırılır : E=0 x=1 e=2 Ama 3 harfli belirttiğimiz için, değişkenin içinde bu kelimenin 3 harfli olduğunu belirtiriz. Yani programdaki a[ 0 ] -->> Pazar'ı temsil eder, |
2 boyutlu dizi oluyor o. Yani diğer adıyla dizi dizisi. C++ ta katarlar karakter dizisidir. Mesela "Pazar" 6 elemanlı bir char dizisi. 5 harf + 1 null karakter (otomatik eklenir). Şöyle bir tanımlamada; char a[] = "Pazar"; //(Tek boyutlu dizi) a[0] = 'P' a[1] = 'a' a[2] = 'z' a[3] = 'a' a[4] = 'r' a[5] = '\0' (null) dur. Örnekteki gibi 2 boyutlu dizide ise; a[0] = "Pazar" a[1] = "Pazartesi" a[2] = "Salı" Gördüğün gibi 2 boyutlu dizinin her elemanı tek boyutlu dizi. Harflere erişmek istersek; a[0][0] = 'P' a[0][1] = 'a'; ... a[0][4] = 'r' ... a[1][2] = 'z' ... a[2][0] = 'S' dir... Son olarak ta char a[][80]={"Pazar","Pazartesi","Sali"}; ifadesinde, içteki her dizi maksimum 80 karakter (null dahil) alabilir demek. Fakat a dizisinin eleman sayısı belirtilmemiş. Bu durumda derleyici verilen elemanları sayarak dizi uzunluğu bulur. Örnekte 3 tane. Yani derleyici bu kodu şöyle derler: char a[3][80]={"Pazar","Pazartesi","Sali"}; Bide hatırlatmakta fayda var. Diziler derleme zamanında belleği rezerve eder, yani kullanılmayan bellek boşa gider. Mesela "Pazartesi" nin devamında kullanılamayacak olan 70 byte var. |
Çok çok sağolsun hocam bu kadar detaylı anlattığını için ,şimdi anladım. |
|
@1.for'da ki "i<=a[ i ][ 0 ]" kısmını anlayamadım a'nın neyiyle oynuyor.detaylı anlatırsanız sevinirim.. su kısmı bu sekılde anladım yanlısım varsa duzeltır mısınız :) i sureklı artıcak ama her karakter (p,a,z,a,r,t,e,s,i) ıcın i kucuk sayıılacaktır ( 0<p 1<a 2<z ...) taa kı dızının son elemanına kadar. cunku dızının son elemanı'\0' (null) dur '/0'=a[ i ][ 0 ]. yanı o durumda i sıfırdan buyuk olacagı ıcın for dan cıkılır. eyer boyleyse her karakter ıcın ı nın kucuk olma durumu dogru mu ve mantıgı nedır? 0<p 1<a 2<z ... cok kafam karıstı bu konuda yardım edersenız cok sevınırım... |
1. sayfa
1.for'da ki "i<=a[ i ][ 0 ]" kısmını anlayamadım a'nın neyiyle oynuyor.detaylı anlatırsanız sevinirim..
< Bu mesaj bu kişi tarafından değiştirildi Muco -- 16 Temmuz 2012; 18:56:40 >