↯ Robotik KodlamaTüm projeler

Renkli kutuları komşu takasıyla sırala

Beş kutunun boyunu küçükten büyüğe sıralarken her takası yazdır. Sonucu görmek kadar algoritmanın hangi adımları yaptığını da incele.

13+ yaş · 45 dakika · C++17

İnteraktif atölyede aç →

Neler öğreneceğiz?

Beş kutunun boyunu küçükten büyüğe sıralarken her takası yazdır. Sonucu görmek kadar algoritmanın hangi adımları yaptığını da incele.
Bu atölyede yalnız sonuca değil, tahmininin neden doğru veya yanlış çıktığına da bak. Bir deney günlüğünde giriş, beklenen sonuç, gözlenen sonuç ve düzeltme olmak üzere dört sütun aç.

Öğrenme hedefleri

  1. 7,2,6,1,5 sayılarını beş kartla temsil et.
  2. Takas yapılmayan turda erken çıkış ekle ve karşılaştırma sayısını ölç.
Renkli kutuları komşu takasıyla sırala — proje görseli
Özgün kavram ve algoritma çizimi. Yazılım örneğinin akışı resimli rehberde açıklanır; fiziksel devre kurulumu değildir.

Malzeme listesi

  1. C++17 derleyicisi bulunan bilgisayar
  2. Metin düzenleyici
  3. Deney günlüğü

Adım adım yapalım

  1. 7,2,6,1,5 sayılarını beş kartla temsil et.
  2. Soldan başlayıp yalnız ters sıralı komşuları değiştir.
  3. Bir turun sonunda en büyük sayının sağa gittiğini gözle.
  4. Kodu çalıştır ve animasyondaki takas sırasıyla karşılaştır.
  5. Zaten sıralı girdi verip takas sayısını kontrol et.
  6. Takas olmasa da karşılaştırmaların sürdüğünü koddan bul.

Kod · C++17

#include <iostream>
#include <vector>
#include <algorithm>
#include <cmath>
#include <string>
using namespace std;
int main(){
vector<int>a={7,2,6,1,5};int swaps=0;
for(size_t end=a.size();end>1;--end)
for(size_t j=0;j+1<end;++j)if(a[j]>a[j+1]){
swap(a[j],a[j+1]);++swaps;for(int n:a)cout<<n<<" ";cout<<"\n";
}
cout<<"Takas: "<<swaps<<"\n";
}

Kod nasıl çalışır?

Bubble sort eğitim için izlenebilir ama büyük listelerde verimsizdir. Animasyon tam bu girdi üzerinde komşu takaslarını gösterir.

Beklenen sonuç

Bilgisayarda çalıştırılan örneğin çıktısı:
2 7 6 1 5
2 6 7 1 5
2 6 1 7 5
2 6 1 5 7
2 1 6 5 7
2 1 5 6 7
1 2 5 6 7
Takas: 7

Sıra sende

Takas yapılmayan turda erken çıkış ekle ve karşılaştırma sayısını ölç.

Güvenli atölye

Bu çalışma düşük gerilimli eğitim içindir. Donanımı enerji kapalıyken, bir yetişkinle kur. Şebeke elektriği kullanma. Kodun derlenmesi fiziksel devrenin test edildiği anlamına gelmez.

Çalışmıyorsa kontrol et

  1. Sonucu alamıyorsan programın ilk satırından başlayıp girdileri tek tek kontrol et.
  2. Donanım varsa enerjiyi ayır; GND, sinyal uçları ve parça yönlerini bağlantı tablosundan doğrula.
  3. Aynı anda yalnız bir şeyi değiştir; değişiklik öncesi ve sonrası sonucu günlüğe yaz.

Kontrol noktaları

  1. Başlamadan önce: gerekli malzemeleri say ve giriş değerlerini deney günlüğüne yaz.
  2. Kurulumdan sonra: her bağlantıyı aşağıdaki tabloyla karşılaştır; yazılım projesinde giriş listesini kontrol et.
  3. Testten sonra: beklenen sonucu kendi çıktınla karşılaştır. Fark varsa ilk farklı adımı bul.

Kaynakların kullanımı

Kaynak, ilgili kavramı öğrenmek ve karşılaştırmak içindir. Türkçe görev, örnek kod ve görseller bu atölye için özgün hazırlanmıştır; kaynak makalenin çevirisi veya kopyası değildir.

Algoritmanın yol haritası
Algoritmanın yol haritası
Deney günlüğü: altı adım
Deney günlüğü: altı adım

https://docs.python.org/3/howto/sorting.html