Değişkenleri sıralama

miniktro

Üye
Katılım
7 Ocak 2022
Mesajlar
3
Puanları
1
Yaş
24
Arduinoda serial monitörden girilen değişkenleri küçükten büyüğe sıralamam gerekiyor, nasıl yapabilirim bilmiyorum acil yardım...
 

"Comparison Operators" ve if komutunu araştırın çözüme ulaşırsınız​

 
C dilinde birçok sıralama algoritması vardır. En ünlüsü buble sort olarak bilinir. Bu şekilde arayabilirsin. Aşağıdaki örnekte diziyi nasıl sıralayacağın gösterilmiş. Dizinin içini Serial.parseInt() fonksiyonuyla doldurabilirsin.

C++:
int sortValues[13] = { 2, 7, 4, 6, 5, 3, 8, 10, 9, 11, 14, 12, 13 };

void setup(){
  Serial.begin(9600);
}

void loop() {
  sort(sortValues,13); //Pass in the values and the size.

  Serial.print("Sorted Array: ");
  for(int i=0; i<13; i++) {
     Serial.print(sortValues[i]);
     Serial.print(",");
  }
  Serial.println("");
  Serial.print("Max Number: ");
  Serial.print(sortValues[12]);
  Serial.println("");
  Serial.print("Min Number: ");
  Serial.print(sortValues[0]);
  Serial.println("");
  delay(10000); //Make sure we have enough time to see the output before starting the demo again.
}

void sort(int a[], int size) {
    for(int i=0; i<(size-1); i++) {
        for(int o=0; o<(size-(i+1)); o++) {
                if(a[o] > a[o+1]) {
                    int t = a[o];
                    a[o] = a[o+1];
                    a[o+1] = t;
                }
        }
    }
}
 
C dilinde birçok sıralama algoritması vardır. En ünlüsü buble sort olarak bilinir. Bu şekilde arayabilirsin. Aşağıdaki örnekte diziyi nasıl sıralayacağın gösterilmiş. Dizinin içini Serial.parseInt() fonksiyonuyla doldurabilirsin.

C++:
int sortValues[13] = { 2, 7, 4, 6, 5, 3, 8, 10, 9, 11, 14, 12, 13 };

void setup(){
  Serial.begin(9600);
}

void loop() {
  sort(sortValues,13); //Pass in the values and the size.

  Serial.print("Sorted Array: ");
  for(int i=0; i<13; i++) {
     Serial.print(sortValues[i]);
     Serial.print(",");
  }
  Serial.println("");
  Serial.print("Max Number: ");
  Serial.print(sortValues[12]);
  Serial.println("");
  Serial.print("Min Number: ");
  Serial.print(sortValues[0]);
  Serial.println("");
  delay(10000); //Make sure we have enough time to see the output before starting the demo again.
}

void sort(int a[], int size) {
    for(int i=0; i<(size-1); i++) {
        for(int o=0; o<(size-(i+1)); o++) {
                if(a[o] > a[o+1]) {
                    int t = a[o];
                    a[o] = a[o+1];
                    a[o+1] = t;
                }
        }
    }
}
Kodları anlatabilirmisiniz??
 
Hayır anlatamam ama basit bir google aramasıyla istediğin her türlü bilgiye ulaşabilirsin. Bana da vahiy yoluyla gelmedi sonuçta.

Aranacak anahtar kelimeler:

C dilinde diziler
C dilinde for döngüsü
 
Degişik sıralama metodları vardır.Sizin yapacagınız en basit çözüm dizideki ilk elemandan başlayarak bir sonraki ile mukayase yapacaksın,eger bir sonraki daha küçük ise geçici bellege alıp bir önceki ile yer degiştireceksiniz.Bu işlemi elemen sayısı kadar tekrar ederseniz sıralama işlemini gerçekleştirmiş olursunuz.
 

Forum istatistikleri

Konular
129,835
Mesajlar
930,600
Kullanıcılar
452,663
Son üye
Yılmaz Çetiner

Yeni konular

Çevrimiçi üyeler

Geri
Üst