Arama butonu
Bu konudaki kullanıcılar: 1 misafir
6
Cevap
1378
Tıklama
0
Öne Çıkarma
C++ Katar Hakkında
M
13 yıl
Yarbay
Konu Sahibi

Merhaba arkadaşlar c++'ta katar dizisinde takıldım,örnek şu ;

quote:

#include <iostream>
#include <conio.h>
using namespace std;

main(){


int i,j;
char a[][80]={"Pazar","Pazartesi","Sali"};

for(i=0;i<=a[ i ][ 0 ];i++){
cout << "\n";
for(j=0;j<=a[j];j++)
cout << a[j] << "\n";
}

getch();
return 0;

}


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 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.

Üye Ol Şimdi Değil





< Bu mesaj bu kişi tarafından değiştirildi Muco -- 16 Temmuz 2012; 18:56:40 >

£
13 yıl
Yüzbaşı

quote:

Orijinalden alıntı: 53Muco

Merhaba arkadaşlar c++'ta katar dizisinde takıldım,örnek şu ;

quote:

#include <iostream>
#include <conio.h>
using namespace std;

main(){


int i,j;
char a[][80]={"Pazar","Pazartesi","Sali"};

for(i=0;i<=a[ i ][ 0 ];i++){
cout << "\n";
for(j=0;j<=a[j];j++)
cout << a[j] << "\n";
}

getch();
return 0;

}


1.for'da ki "i<=a[ i ][ 0 ]" kısmını anlayamadım a'nın neyiyle oynuyor.detaylı anlatırsanız sevinirim..

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.





< Bu mesaj bu kişi tarafından değiştirildi £XE -- 16 Temmuz 2012; 19:40:31 >
Bu mesaja 1 cevap geldi.
M
13 yıl
Yarbay
Konu Sahibi

quote:

Orijinalden alıntı: £XE

quote:

Orijinalden alıntı: 53Muco

Merhaba arkadaşlar c++'ta katar dizisinde takıldım,örnek şu ;

quote:

#include <iostream>
#include <conio.h>
using namespace std;

main(){


int i,j;
char a[][80]={"Pazar","Pazartesi","Sali"};

for(i=0;i<=a[ i ][ 0 ];i++){
cout << "\n";
for(j=0;j<=a[j];j++)
cout << a[j] << "\n";
}

getch();
return 0;

}


1.for'da ki "i<=a[ i ][ 0 ]" kısmını anlayamadım a'nın neyiyle oynuyor.detaylı anlatırsanız sevinirim..

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 ?


Bu mesaja 1 cevap geldi.
£
13 yıl
Yüzbaşı

quote:

Orijinalden alıntı: 53Muco

quote:

Orijinalden alıntı: £XE

quote:

Orijinalden alıntı: 53Muco

Merhaba arkadaşlar c++'ta katar dizisinde takıldım,örnek şu ;

quote:

#include <iostream>
#include <conio.h>
using namespace std;

main(){


int i,j;
char a[][80]={"Pazar","Pazartesi","Sali"};

for(i=0;i<=a[ i ][ 0 ];i++){
cout << "\n";
for(j=0;j<=a[j];j++)
cout << a[j] << "\n";
}

getch();
return 0;

}


1.for'da ki "i<=a[ i ][ 0 ]" kısmını anlayamadım a'nın neyiyle oynuyor.detaylı anlatırsanız sevinirim..

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,



G
13 yıl
Yarbay

quote:

Orijinalden alıntı: 53Muco

Merhaba arkadaşlar c++'ta katar dizisinde takıldım,örnek şu ;

quote:

#include <iostream>
#include <conio.h>
using namespace std;

main(){


int i,j;
char a[][80]={"Pazar","Pazartesi","Sali"};

for(i=0;i<=a[ i ][ 0 ];i++){
cout << "\n";
for(j=0;j<=a[j];j++)
cout << a[j] << "\n";
}

getch();
return 0;

}


1.for'da ki "i<=a[ i ][ 0 ]" kısmını anlayamadım a'nın neyiyle oynuyor.detaylı anlatırsanız sevinirim..

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.


Bu mesaja 1 cevap geldi.
M
13 yıl
Yarbay
Konu Sahibi

quote:

Orijinalden alıntı: elektro_gadget

quote:

Orijinalden alıntı: 53Muco

Merhaba arkadaşlar c++'ta katar dizisinde takıldım,örnek şu ;

quote:

#include <iostream>
#include <conio.h>
using namespace std;

main(){


int i,j;
char a[][80]={"Pazar","Pazartesi","Sali"};

for(i=0;i<=a[ i ][ 0 ];i++){
cout << "\n";
for(j=0;j<=a[j];j++)
cout << a[j] << "\n";
}

getch();
return 0;

}


1.for'da ki "i<=a[ i ][ 0 ]" kısmını anlayamadım a'nın neyiyle oynuyor.detaylı anlatırsanız sevinirim..

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.


Bu mesaja 1 cevap geldi.
H
12 yıl
Er

@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...



DH Mobil uygulaması ile devam edin. Mobil tarayıcınız ile mümkün olanların yanı sıra, birçok yeni ve faydalı özelliğe erişin. Gizle ve güncelleme çıkana kadar tekrar gösterme.