↯ Robotik KodlamaTüm projeler

Teslim görevlerini öncelik sırasına koy

Hastane maketindeki robotun acil teslimatları önce, eşit öncelikteki görevleri geliş sırasıyla yapmasını sağlayan kuyruk kur.

13+ yaş · 45 dakika · Python 3 · deney modeli

İnteraktif atölyede aç →

Neler öğreneceğiz?

Hastane maketindeki robotun acil teslimatları önce, eşit öncelikteki görevleri geliş sırasıyla yapmasını sağlayan kuyruk kur.
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ç.
Python kodu ölçüm/algoritma modelidir; GPIO pinlerine veya motora komut göndermez. Animasyon ise konuyu gösteren ayrı ve ideal bir modeldir.

Öğrenme hedefleri

  1. Öncelikte küçük sayının önce geldiği kuralını görev kartlarına yaz.
  2. Uzun süre bekleyen görevin önceliğini artıran yaşlandırma tasarımı yaz.
Teslim görevlerini öncelik sırasına koy — 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. Python 3 çalıştırabilen bilgisayar
  2. Kareli kâğıt, kalem ve deney günlüğü

Adım adım yapalım

  1. Öncelikte küçük sayının önce geldiği kuralını görev kartlarına yaz.
  2. Dört görevi listedeki sırayla ekle ve çıkış sırasını tahmin et.
  3. Öncelik aynı olduğunda sıra numarasının karşılaştırıldığını bul.
  4. Kodu çalıştır; ilaç, su, kitap, kalem sırasını kontrol et.
  5. Yeni bir öncelik 0 görevi ekle ve yerini göster.
  6. Sürekli acil görev gelirse normal işlerin bekleyebileceğini tartış.

Kod · Python 3 · deney modeli

import heapq
queue=[]
jobs=[(2,"Kitap"),(1,"İlaç maketi"),(2,"Kalem"),(1,"Su maketi")]
for sequence,(priority,name) in enumerate(jobs):heapq.heappush(queue,(priority,sequence,name))
while queue:
 priority,sequence,name=heapq.heappop(queue)
 print(priority,name)

Kod nasıl çalışır?

Üçlü kayıt öncelik, eklenme sırası ve adı taşır. İkinci alan eşit öncelikte kararlı sıra sağlar. Sıralama animasyonu karşılaştırma fikrini gösterir; heap algoritması animasyonu değildir.

Beklenen sonuç

Python modelinin çalıştırılan çıktısı (fiziksel ölçüm değildir):
1 İlaç maketi
1 Su maketi
2 Kitap
2 Kalem

Sıra sende

Uzun süre bekleyen görevin önceliğini artıran yaşlandırma tasarımı yaz.

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/library/heapq.html