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..
DH forumlarında vakit geçirmekten keyif alıyor gibisin ancak giriş yapmadığını görüyoruz.
Üye Ol Şimdi DeğilÜye olduğunda özel mesaj gönderebilir, beğendiğin konuları favorilerine ekleyip takibe alabilir ve daha önce gezdiğin konulara hızlıca erişebilirsin.
< Bu mesaj bu kişi tarafından değiştirildi Muco -- 16 Temmuz 2012; 18:56:40 >