Arduino while - do while Döngüleri - Robo90 Arduino Dersleri #13
Вставка
- Опубліковано 6 жов 2022
- 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/arduino-uno-il...
👉Robo90 Arduino Uno Başlangıç Seti: www.robo90.com/arduino-uno-ba...
🔗 İ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. - Наука та технологія
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?
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) ;
Evet derss geldiii 👍😇
int a = 1;
int b = 1;
void setup() {
Serial.begin(9600);
Serial.println("Hello World");
while (a
int a = 5
int b = 10
int c = ;
Voildsetup()
{
serial.begin(9600)
}
Voildloop()
{
While(a>b){
While(b>a){
serial.println(*)
a++
}
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++;
}
}
👍
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);
}
}
Bu bölümde tamam.
int a = 100;
void setup() {
Serial.begin(9600);
}
void loop() {
while (a >= 0)
{
Serial.println(a);
a--;
delay(75);
}
}
int sayi = 100;
void setup() {
Serial.begin(9600);
while (sayi >= 0) {
Serial.println(sayi);
sayi = sayi - 1;
delay(1000);
}
}
void loop() {
}
#13 tamamlandı
int sayi = 100;
void setup() {
Serial.begin(9600);
do {
Serial.println(sayi);
sayi = sayi - 1;
delay(1000);
} while (sayi >= 0);
}
void loop() {
}
#13 bölüm tamamlandı
Soruları yapıyorum ama ilk baştaki rakamın yanına s100 veya ters soru işareti sonra rakam çıkıyor sebebini bulamadım.
int a=100;
void setup() {
Serial.begin(9600);
while(a>-1){
Serial.println(a);
a=a-1;
delay(100);
}
}
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 i = 1;
void setup() {
Serial.begin(9600);
do {
int a = 1;
do {
Serial.print("*");
a++;
} while (a
abi ben IDE dilini türkçe yapamıyorum nasıl yapabilirim
Net olarak kodlamada anlaması en zor konulardan bir tanesi….
Yine de bol örnek yaparak anlaşılmayacak Bi tarafı yok. :)
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
2. Sorunun cevabını bilen biri cevabı paylaşabilir mi?
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
Ö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ış
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 😅
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()
{
}
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.