Arduino while - do while Döngüleri - Robo90 Arduino Dersleri #13
ฝัง
- เผยแพร่เมื่อ 27 ก.ย. 2024
- Döngüler kendini tekrarlaması gereken işlemleri gerçekleştirmek için kullanılabilecek en mantıklı kodlardır. Bu videoda döngü yapılarından birisi olan while ve do while'ın nasıl kullanılacağını öğreniyoruz. İyi seyirler.
🚀 Robo90 Arduino Setleri:
👉Robo90 Arduino Uno İleri Başlangıç Seti: www.robo90.com...
👉Robo90 Arduino Uno Başlangıç Seti: www.robo90.com...
🔗 İnternet Mağazamız: www.robo90.com/
🔗 Instagram: / robo90com
🔗 Arduino Dersleri Oynatma Listesi (Playlist):
• Neden Bu Arduino Kursu...
👉 Örnek soru 1 (basit olan):
100'den geriye doğru sayan ve güncel değeri ekrana yazan bir kodu hazırlayın. ( Önce while sonra da do while kullanarak yazın)
👉 Örnek soru 2 (bu biraz çetrefilli. Yazarsanız tebrikler, yazamazsanız üzülmeyin)
Aşağıdaki ekran çıktısını verecek bir kodu while ve do while ile geliştiriniz.
*
**
***
****
*****
******
.
.
.
.
********************
Tüm 3D yazıcı, filament ve yedek parça ihtiyaçlarınız için robo90.com'a göz atabilirsiniz.
Bu içerikte Robo90 kendi sunduğu ürün ve hizmetlerin #reklam ve #tanıtım faaliyetlerini yapmaktadır.
sayenizde çok şey öğrendim. ALLAH sizden razı olsun. çok teşekkürler 🤝🏻😊
int a = 0;
int b = 20;
int c = 1;
void setup()
{
Serial.begin(9600);
}
void loop()
{
while (a < b) {
a = 0;
while (a < c) {
Serial.print("*");
a++;
}
Serial.println("");
c = a + 1;
}
}
başarmanın verdiği mutluluk hissi☺
çaldım helal et
nasıl çalıştığını anlatabilir misiniz hocam?
@@Batu_Khan while içinde while yapmış
Evet derss geldiii 👍😇
2.soru
a yıldız sayısı , b satır sayısı
int a = 0, b = 0 ;
void setup() {
Serial.begin(9600);
while ( a
Net olarak kodlamada anlaması en zor konulardan bir tanesi….
Yine de bol örnek yaparak anlaşılmayacak Bi tarafı yok. :)
2. soruyu hiç anlamadım anlatabilcek varmı
1)
int a = 100 ;
void setup() {
Serial.begin(9600);
while (a > 0){
Serial.println(a);
a--;
}
2)
int a = 100 ;
void setup() {
Serial.begin(9600);
do{
Serial.println(a);
a--; }
while (a > 0) ;
Soruları yapıyorum ama ilk baştaki rakamın yanına s100 veya ters soru işareti sonra rakam çıkıyor sebebini bulamadım.
#13 bölüm tamamlandı
#13 tamamlandı
int a = 1;
int b = 1;
void setup() {
Serial.begin(9600);
Serial.println("Hello World");
while (a
abi ben IDE dilini türkçe yapamıyorum nasıl yapabilirim
dosya - tercihlerden yapabilirsin ben öyle yapmistim sanirim
int a = 100;
void setup() {
Serial.begin(9600);
do
{
Serial.println(a);
delay(75);
a--;
} while (a >= 0);
}
void loop() {
}
Örnek soru 1 (basit olan):
int a = 100;
void setup() {
Serial.begin(9600);
}
void loop() {
while (a >= 0) {
Serial.println(a);
a--;
delay(100);
}
}
2 soru için benim çözümüm :
int a = 0, b = 0;
void setup() {
Serial.begin(9600);
}
void loop() {
while (a < b) {
Serial.print("*");
a++;
}
Serial.println("*");
b++;
a = 0;
delay(1000);
}
A değişkeni satırda bulunan karakter sayısını
B değişkeni kaçıncı satır olduğunu tanımlamakta
Delay neden vat
2. Sorunun cevabını bilen biri cevabı paylaşabilir mi?
int a = 100;
void setup() {
Serial.begin(9600);
}
void loop() {
while (a >= 0)
{
Serial.println(a);
a--;
delay(75);
}
}
👍
int i = 1;
void setup() {
Serial.begin(9600);
}
void loop() {
while (i
merhaba iyi günler yazdığınız kodda i++ üzerinde yazan Serial.print(""); kodunun ne işe yaradığını anlamadım bir de bu sorduğum kodu * yazdırdığımız kodun hemen altına [Serial.print("*);] kodunun altına yazsak olmaz mı yardıcı olabiilir misiiniz bu konuda
int a=100;
void setup() {
Serial.begin(9600);
while(a>-1){
Serial.println(a);
a=a-1;
delay(100);
}
}
int i = 1;
void setup() {
Serial.begin(9600);
do {
int a = 1;
do {
Serial.print("*");
a++;
} while (a
Örnek Soru 2:
String mesaj = "*";
int sayi = 0;
String mesaj2 = "*";
void setup() {
Serial.begin(9600);
while (sayi
Python'da str ile int'i çarpabiliyoruz ama burda olmadı olsa çok daha basit olurdu. (str("*") * int(1+1))
dayı bu durmuyor
olmamış
100-0 kodum:
int a = 100 ;
void setup() {
// put your setup code here, to run once:
Serial.begin(9600);
do
{
Serial.println(a);
delay(151);
a=a-1;
}
while ((a > 0) && (a < 101));
}
void loop() {
}
* piramidi kodum :
String a = "*";
void setup() {
Serial.begin(9600);
while (a >= "*")
{
Serial.print(a);
delay(151);
a = a+"*";
Serial.println("");
}
}
void loop()
{
}
int ys = 0, ss = 0,c=0;
// ys= yıldız sayısı;
// ss= satır sayısı;
void setup() {
Serial.begin(9600);
Serial.println("Yıldız üçgeni:");
while (ss < 20) {
while (ys
Hocam while kısmını setup kısmına yazdınız ama ben loop kısmına yazdım ve yine aynı sonucu verdi bunun bir farkı var mıdır?
İlk 2 ci ve 3 cü arduino kodumuzu sizinle yazdık hocam
bu kadar güzel kursu udemy de bulamazsınız bu arada.
int /*(kaçıncı adım)*/ a = 0, /*kontrol sayısı*/ b = 1;
/* a sayısı be ye eşit oluncaya kadar '*' karakterini bas sonra bir alt satıra geç*/
void setup() {
Serial.begin(9600);
}
void loop() {
do {
Serial.print("*");
a++;
}
while (a < b);
while (a >= b) {
Serial.println("");
a = 0;
b++;
}
}
Bu bölümde tamam.
Soru1: Soru2'yi yapıştırırken yok oldu. Basit olduğu için bir daha yapmayı gereksiz buldum.
Soru2:
int sayi1 = 2;
int temp1 = 0;
void setup()
{
Serial.begin(9600);
while (sayi1 < 20)
{
temp1 = sayi1;
while (temp1 > 1)
{
Serial.print("*");
temp1--;
}
temp1 = sayi1;
Serial.println("");
while (temp1 > 0)
{
Serial.print("*");
temp1--;
}
temp1 = sayi1;
Serial.println("");
while (temp1 > 1)
{
Serial.print("*");
temp1--;
}
temp1 = sayi1;
Serial.println("");
while (temp1 > 0)
{
Serial.print("*");
temp1--;
}
Serial.println("");
sayi1 += 2;
}
}
void loop()
{
}
int a = 5
int b = 10
int c = ;
Voildsetup()
{
serial.begin(9600)
}
Voildloop()
{
While(a>b){
While(b>a){
serial.println(*)
a++
}
int sayi = 100;
void setup() {
Serial.begin(9600);
do {
Serial.println(sayi);
sayi = sayi - 1;
delay(1000);
} while (sayi >= 0);
}
void loop() {
}
int sayi = 100;
void setup() {
Serial.begin(9600);
while (sayi >= 0) {
Serial.println(sayi);
sayi = sayi - 1;
delay(1000);
}
}
void loop() {
}
Bu neden düzgün çalışmıyor acaba? While bloğunu görmüyor sanki arduino ve sonsuza gidiyor... (while olanda sorun olmamıştı, do while'da neden sorun oldu acaba, hem de videodaki gibi yaptım aynı halbuki...)
String x = "*";
int i = 0;
void setup()
{
Serial.begin(9600);
}
void loop()
{
do
{
Serial.println(x);
delay(500);
x = x + "*";
i = i + 1;
}
while (i < 19);
}
void setup'a değil de void loop'a yazmışım, tamamdır 😅
Dün 20 yıl aradan sonra biraz kod yazayım dedim, ama IDE v2 derleyicisinin bir optimizasyon hatasına tosladım, size de aktarayım:
// global alanda bir integer line değişkeni tanımlayıp sıfıra eşitledim.
long int line = 0;
void setup()
{ // bu arada, bunun adı süslü parantez değil, küme parantezidir.
//... burda bazı ön ayarlar...
}
void loop() {
line = 0; // derleyici işte bu satırı kendi optimizasyon algoritmasıyla iptal ediyor. if(TRUE) line=0; yazarsam mecburen kullanıyor.
// burada en basit line++ döngüyle 10 milyon toplama yapıyoruz karşılaştırma ve jump gibi işlemleri de dikkate alıyoruz...
// döngüden çıkınca line bilgisini yazdırıyoruz.
// ama aynı komutu en dibe yazarsam line = 0; bunu koda işliyor.
}
Bu kodu, ham matematik işlem kod döngüsü çalıştırarak unonun saniyede kabaca yaklaşık kaç komut işlediğini anlamak için yazmıştım.
Bir yerlerde 20 MIPS diye gördüm ama 16 Mhz bir RISC işlemci için bana pek inandırıcı gelmedi.
Kısacası C derleyicisi, optimizasyonu tek geçişli void main() bloğuna göre yapıyor ve line değişkenine tekrar sıfır değeri atamayı gereksiz buluyor, ama loop bir döngü ve optimizasyona uymuyor.