Soru & Cevap

Derslerde Kod Yanlış Yazılmış

29.08.2016 - 04:03

Merhaba, eğitimlerden Arduino öğrenmeye çalışıyorum fakat "Kara Şimşek Uygulaması" yazısında kullanılan kod yanlış değil mi? 2'den 9'a kadar pinler dizide tanımlanmış. For düngüsünde "i", 0'a eşitlenmiş ve küçük 8 olasıya kadar artır demiş. Hem "i" 1'e eşitlenmeli ve i küçük eşit 9'a kadar i artırılmamalı mı?  Yani;

for(int i = 2; i<=9; i++){}

şeklinde olması gerekirken, aşağıdaki gibi yazılmış.

​
for(int i=0; i<8 ;i++)    
  { /* For dongusuyle LEDdizisi elemanlarina ulasiyoruz */
    pinMode(LEDdizisi[i], OUTPUT); /* LED pinleri cikis olarak ayarlandi */
  }

 For döngüsünü pek anlayamıyorum ama bu şekilde olması lazım değil mi? Eğer doğru verildiyse benim yazdığım yanlış mı? Hatta sayfada verilen int dizisini de vereyim. 

const int LEDdizisi[] = {2,3,4,5,6,7,8,9};

 

12 Görüntülenme

2 Cevap

Sitedeki sorulara cevap verebilmek için giriş yapın ya da üye olun.

picture-87289-1569234090.png
yakupgovler
28.09.2019 - 02:08

Kodda LEDdizisi değişkeni kullanılmak yerine doğrudan pinler kullanılmak istenseydi, dediğiniz gibi i=2;i<=9 şeklinde yazılmalıydı. Ama koddaki amaç dizilerin kullanımını göstermek olduğundan böyle kullanılmış. Aslında örnekte dizi içerisindeki değerler sıra ile değil de karışık verilseydi daha anlamlı olurdu, insanlar da sizin gibi şüpheye düşmezdi.

Profile picture for user programmer.kanguru
programmer.kanguru
29.08.2016 - 09:05

Merhaba;
Öncelikle C / C++ / C# / Java vb. programlama dillerinde diziler her zaman 0'dan başlar. Bu yüzden for içindeki i'nin ilk değeri 0 olarak ayarlanmış. Koşul ifadesinde de i < 8 olmasının sebebi ledDizisi adlı dizinin 8 eleman barındırmasıdır. Bu durumda dizilerin indisleri 0'dan başladığına göre ve dizide 8 eleman olduğuna göre i < 8 yani i <= 7'ye kadar i değer alıyor.

Samet
30.08.2016 - 11:34
Peki teşekkürler, anladım sanırım. Ama for düngüsünde 0'dan başlama zorunluluğu yok, zaten derste de ikinci for düngüsü 7'den başlamıştı. Teşekkürler tekrardan.