Neler Yeni

Rehber #5 Döngüler (Arduino)

baltazar

80+ Platinum
Katılım
2 Eylül 2020
Mesajlar
11,580
En İyi Cevap
9
Dahası  
Reaksiyon skoru
17,624
Konum
Ervah-ı Ezel
İsim
A.Ş.
İlgilendiği Kategoriler
Güç Kaynakları
DÖNGÜLER


Bildiğiniz gibi loop fonksiyonu sürekli tekrar eden bir yapıdaydı. Peki ya biz bazı kodlarımızın istediğimiz
kadar tekrar etmesi veya bir koşul sağladığında başlamasını istiyorsak ne yapmalıyız? İşte bu ve benzer
soruları çözmek için döngüleri kullanıyoruz. Döngüler : "
1-
For
2-While
3-Do-While "
olarka 3'e ayrılır.


For Döngüsü:

İçerisinde tanımlanan değişken denklik koşulunu sağladığı sürece belirlediğiniz değerde arttırılır veya
azaltılır.

for(değişkeini değeri, denklik koşulu, artış-azalış miktarı){
}

Örnek vermek gerekirse;

for(int i = 0; i < 10; i++){
/*
Burası 10 kere okunacak
program buraya her uğradığında eğer i değeri 10'dan küçükse i değişkenini bir arttıracak
i değeri 10 olduğunda döngü bitecek
*/
}


While Döngüsü:

While döngüsü gebelde bir koşula bağlanır. Bu koşul sağlandığı sürece döngü devam eder.
Örnek vermek gerekirse;

int a = 0;
void setup(){
}
void loop()
{
while(a < 21){
a = a + 5;
/*
Kodun en başında a değeri 0'a eşitlenmiştir. Döngü a değeri 21'den küçük olana kadar devam edecektir.
a değeri program her uğradığında 5 artacaktır.
*/
}
}


Do-While Döngüsü:

Do-Whiel döngüsünü While döngüsünden ayıran temel fark while döngüsünde program şartın sağlanıp
sağlanmadığına bakarken, do-while döngüsünde program direk döngüye girer ve daha sonra şartı
kontrol eder. Eğer şart sağlanıyorsa döngüyü tekrar ettirir.
Örnek vermek gerekirse;

int a = 0;
void setup(){
}

void loop()
{
Serial.println("Loop dongusu basliyor"); // Ekrana yazı yazıldı.
Serial.println(a); // Ekrana a'nın değeri yazıldı.

do // döngü başladı
{
a = a + 2; // a değişkenini 2 arrtır.
}
while (a < 30); // while döngüsü
delay(1000); // 1 saniye bekle
}


1. BÖLÜM :

2. BÖLÜM :

3. BÖLÜM :

4. BÖLÜM :

"Tamamen kendi yazılı eserimdir. İznim olmadan kopyalanamaz."
 

Emirhandkee

80+ Titanium
Katılım
25 Mart 2020
Mesajlar
22,711
En İyi Cevap
45
DÖNGÜLER


Bildiğiniz gibi loop fonksiyonu sürekli tekrar eden bir yapıdaydı. Peki ya biz bazı kodlarımızın istediğimiz
kadar tekrar etmesi veya bir koşul sağladığında başlamasını istiyorsak ne yapmalıyız? İşte bu ve benzer
soruları çözmek için döngüleri kullanıyoruz. Döngüler : "
1-
For
2-While
3-Do-While "
olarka 3'e ayrılır.



For Döngüsü:

İçerisinde tanımlanan değişken denklik koşulunu sağladığı sürece belirlediğiniz değerde arttırılır veya
azaltılır.

for(değişkeini değeri, denklik koşulu, artış-azalış miktarı){
}

Örnek vermek gerekirse;

for(int i = 0; i < 10; i++){
/*
Burası 10 kere okunacak
program buraya her uğradığında eğer i değeri 10'dan küçükse i değişkenini bir arttıracak
i değeri 10 olduğunda döngü bitecek
*/
}



While Döngüsü:

While döngüsü gebelde bir koşula bağlanır. Bu koşul sağlandığı sürece döngü devam eder.
Örnek vermek gerekirse;

int a = 0;
void setup(){
}
void loop()
{
while(a < 21){
a = a + 5;
/*
Kodun en başında a değeri 0'a eşitlenmiştir. Döngü a değeri 21'den küçük olana kadar devam edecektir.
a değeri program her uğradığında 5 artacaktır.
*/
}
}



Do-While Döngüsü:

Do-Whiel döngüsünü While döngüsünden ayıran temel fark while döngüsünde program şartın sağlanıp
sağlanmadığına bakarken, do-while döngüsünde program direk döngüye girer ve daha sonra şartı
kontrol eder. Eğer şart sağlanıyorsa döngüyü tekrar ettirir.
Örnek vermek gerekirse;

int a = 0;
void setup(){
}

void loop()
{
Serial.println("Loop dongusu basliyor"); // Ekrana yazı yazıldı.
Serial.println(a); // Ekrana a'nın değeri yazıldı.

do // döngü başladı
{
a = a + 2; // a değişkenini 2 arrtır.
}
while (a < 30); // while döngüsü
delay(1000); // 1 saniye bekle
}


1. BÖLÜM :

2. BÖLÜM :

3. BÖLÜM :

4. BÖLÜM :

"Tamamen kendi yazılı eserimdir. İznim olmadan kopyalanamaz."
C dili de mi?
 

Muammer Beytekin

80+ Bronze
Katılım
23 Mart 2020
Mesajlar
1,967
En İyi Cevap
1
Dahası  
Reaksiyon skoru
1,189
İsim
Muammer Beytekin

baltazar

80+ Platinum
Katılım
2 Eylül 2020
Mesajlar
11,580
En İyi Cevap
9
Dahası  
Reaksiyon skoru
17,624
Konum
Ervah-ı Ezel
İsim
A.Ş.
İlgilendiği Kategoriler
Güç Kaynakları
  • Konu Sahibi Konu Sahibi
  • #6
Arduino IDE üzerinden gidiyorum. O da C ile yazılmış bir dil. Mantık aynı. Yavaş yavaş projelere başlayacağım.
Mesaj otomatik birleştirildi:

Hocam rehber güzel, arkadaşın eksikleri yok değil ama yine de bilgilendirici bir rehber olmuş.
Hocam gördüğünüz büyük bir eksik varsa değiştireyim.
Yazıya dönüştürünce biraz eksiklikler veya kendini anlatamama olabiliyor, hata yaptıysam affola.
 

Muammer Beytekin

80+ Bronze
Katılım
23 Mart 2020
Mesajlar
1,967
En İyi Cevap
1
Dahası  
Reaksiyon skoru
1,189
İsim
Muammer Beytekin
Arduino IDE üzerinden gidiyorum. O da C ile yazılmış bir dil. Mantık aynı. Yavaş yavaş projelere başlayacağım.
Mesaj otomatik birleştirildi:


Hocam gördüğünüz büyük bir eksik varsa değiştireyim.
Yazıya dönüştürünce biraz eksiklikler veya kendini anlatamama olabiliyor, hata yaptıysam affola.
Yok processing kısmını sorduğunuz için dedim yoksa bilgiler başlangıç seviyesi öğrenmek isteyen kişi için çok bile.
 

Emirhandkee

80+ Titanium
Katılım
25 Mart 2020
Mesajlar
22,711
En İyi Cevap
45
Arduino IDE üzerinden gidiyorum. O da C ile yazılmış bir dil. Mantık aynı. Yavaş yavaş projelere başlayacağım.
Hoca ödev vermişti bir tane sonsuz döngü oluştırmam lazımdı. Bende hem for hem de while ile döngü oluşturdum ama bir tane printf'i ilk doğru gösteriyor sonra 2 tane yazmaya başlıyor ayrıca en altta da 10 değeri çıkıyor. Neyden kaynaklıdır?
Kodların içinde scanf de var.
 

baltazar

80+ Platinum
Katılım
2 Eylül 2020
Mesajlar
11,580
En İyi Cevap
9
Dahası  
Reaksiyon skoru
17,624
Konum
Ervah-ı Ezel
İsim
A.Ş.
İlgilendiği Kategoriler
Güç Kaynakları
  • Konu Sahibi Konu Sahibi
  • #9
Hoca ödev vermişti bir tane sonsuz döngü oluştırmam lazımdı. Bende hem for hem de while ile döngü oluşturdum ama bir tane printf'i ilk doğru gösteriyor sonra 2 tane yazmaya başlıyor ayrıca en altta da 10 değeri çıkıyor. Neyden kaynaklıdır?
Kodların içinde scanf de var.
Hoca kodu görmem lazım ama onun kolayı var
for(int i = 0 ; ; i++)
 

Emirhandkee

80+ Titanium
Katılım
25 Mart 2020
Mesajlar
22,711
En İyi Cevap
45

baltazar

80+ Platinum
Katılım
2 Eylül 2020
Mesajlar
11,580
En İyi Cevap
9
Dahası  
Reaksiyon skoru
17,624
Konum
Ervah-ı Ezel
İsim
A.Ş.
İlgilendiği Kategoriler
Güç Kaynakları

Emirhandkee

80+ Titanium
Katılım
25 Mart 2020
Mesajlar
22,711
En İyi Cevap
45

baltazar

80+ Platinum
Katılım
2 Eylül 2020
Mesajlar
11,580
En İyi Cevap
9
Dahası  
Reaksiyon skoru
17,624
Konum
Ervah-ı Ezel
İsim
A.Ş.
İlgilendiği Kategoriler
Güç Kaynakları
Top Bottom