Anahtar#

giriiş#

Switch blokları, öğrencilerin blok tabanlı kodlamadan metin tabanlı kodlamaya geçişine yardımcı olur. Switch blokları ile öğrenciler, bir blok projesinin içine doğrudan Python kodu yazabilirler (komutlar, koşullar, değerler veya fonksiyon tanımları) ve projenin geri kalanını bloklarla oluşturmaya devam edebilirler. Bireysel bloklar ayrıca eşdeğer Python komutlarına dönüştürülebilir.

Python komutlarını, yöntemlerini ve operatörlerini nasıl yazacağınızı öğrenmek için VEX CTE Python API’ye bakın.

Switch blokları Python kodu içerdiğinden, projenin beklendiği gibi çalışması için yazım, noktalama ve girintileme kurallarına uyulması gerekir.

Aşağıda tüm Switch bloklarının listesi bulunmaktadır:

Blokları Değiştir — Bir Blok projesine Python kodu ekleyin.

  • Yığın — Diğer yığın bloklarıyla sırayla çalışan Python komutlarını yazmak için bir alan sağlar.

  • C Bloğu — if, whileveya for ifadeleri gibi Python kontrol kodunu yazmak için bir alan sağlar.

  • C Genişletilebilir — if, elifveya else gibi birden fazla dallanma içeren Python kontrol kodunu yazmak için bir alan sağlar.

  • Mantıksal — True veya False döndüren Python kodunu yazmak için bir alan sağlar.

  • Muhabir — Değer döndüren Python kodunu yazmak için bir alan sağlar.

  • Şapka — Bir Python fonksiyonu tanımlamak için alan sağlar.

Yığın#

Stack bloğu, diğer stack bloklarıyla birlikte sırayla çalışan Python komutlarını yazmak için bir alan sağlar.

Yığın bloğu#
[] :: custom-switch

Bir Yığın bloğu, tek satır veya birden fazla satır Python kodu içerebilir.

Başlatıldığında, 6 Eksenli Kolu bir konuma taşımak için bir Yığın bloğu kullanır.#
başladığında :: hat events
[Move the 6-Axis Arm to a standard position at the start of the project.]
[arm.move_to(120, 120, 75, False)] :: custom-switch

C Bloğu#

C Bloğu, ifise, whileveya for gibi Python kontrol kodlarını yazmak için bir alan sağlar. C Bloğu içine yerleştirilen bloklar, bu Python kontrol yapısının bir parçası olarak çalışır.

C Bloğu#
if [] :: custom-switch
son

Bir C bloğunda kullanılabilen Python kontrol kodu şunları içerir:

Başlatıldığında, 6 eksenli kolun bir konuma ulaşabilip ulaşamayacağını kontrol etmek için bir C bloğu kullanır.#
başladığında :: hat events
[Check if the 6-Axis Arm can move to a position.]
if [if not arm.can_arm_reach_to(0, 0, 0):] :: custom-switch
konsolda [The 6-Axis Arm can't move to this position.] yazdır ◀ ve imleci sonraki satıra taşı
son

C Genişletilebilir#

C Genişletilebilir bloğu, ifise, elifise veya elsegibi birden fazla dallanma içeren Python kontrol kodunu yazmak için bir alan sağlar. Artı okunu seçerek ek dallanmalar eklenebilir.

C Genişletilebilir blok#
if [] :: custom-switch-expand
son

C Genişletilebilir bloğunda kullanılabilen Python kontrol kodu şunları içerir:

Başlatıldığında, 6 eksenli kolun bir konuma ulaşabilip ulaşamayacağını kontrol etmek için C genişletilebilir bloğunu kullanır.#
başladığında
[Check if the 6-Axis Arm can or can't move to a position.]
if [if not arm.can_arm_reach_to(0, 0, 0):] :: custom-switch-expand
konsolda [The 6-Axis Arm can't move to this position.] yazdır ◀ ve imleci sonraki satıra taşı
else [else:] :: custom-switch-expand
konsolda [The 6-Axis Arm can move to this position.] yazdır ◀ ve imleci sonraki satıra taşı
son

Mantıksal#

Boolean bloğu, True Doğru) veya FalseYanlış) değerlerini döndüren Python kodunu yazmak için bir alan sağlar. Altıgen girişlere sahip blokların içine yerleştirilebilir.

Mantıksal blok#
<[] :: custom-switch>

Bir Mantıksal blok, bir Python koşulu içerebilir.

Python koşulu içeren Boolean bloğu#
<[bumper_a.is_pressed()] :: custom-switch>

Bir Mantıksal blok, mantıksal operatörleri de kullanabilir:

Python mantıksal operatörü içeren Boolean bloğu#
<[bumper_a.is_pressed() or bumper_b.is_pressed()] :: custom-switch>

Bir Mantıksal blok, değerleri karşılaştırmak için karşılaştırma operatörlerini kullanabilir:

  • Büyüktür: >

  • Küçüktür: <

  • Eşittir: ==

  • Diğer karşılaştırma operatörleri <=, !=ve >=’i içerir.

Python karşılaştırma operatörüne sahip Boolean bloğu#
<[drivetrain.get_heading()> 100] :: custom-switch>
Başlatıldığında, 6 eksenli kolun bir konuma ulaşıp ulaşamayacağını kontrol etmek için bir Boolean bloğu kullanır.#
başladığında
[Check if the 6-Axis Arm can move to a position.]
eğer <<[arm.can_arm_reach_to(0, 0, 0)] :: custom-switch> değil> ise
konsolda [The 6-Axis Arm can't move to this position.] yazdır ◀ ve imleci sonraki satıra taşı
son

Muhabir#

Reporter bloğu, değer döndüren Python kodunu yazmak için bir alan sağlar. Dairesel girişlere sahip blokların içine yerleştirilebilir.

Muhabir bloğu#
([] :: custom-switch)

Bir Reporter bloğu, değer döndüren Python kodu içerebilir.

Değer döndüren Python kodu içeren muhabir bloğu#
([arm.get_y()] :: custom-switch)

Matematiksel operatörler bir Reporter bloğunda kullanılabilir:

  • Toplama: +

  • Çıkarma: -

  • Bölüm: /

  • Çarpma: *

Python eklentili muhabir bloğu#
([arm.get_y() + 45] :: custom-switch)
Başlatıldığında, 6 eksenli kol hareket ederken mevcut y konumunu yazdırır.#
başladığında
[Display the current y-position while the 6-Axis Arm moves.]
[kol v] kolunu x:(-100) y:(200) z:(100) [mm v] konumuna taşı ◀ ve bekleme
<[kol v] hareketi tamamladı mı?> olana kadar tekrarla
konsolda ([arm.get_y()] :: custom-switch) yazdır ◀ ve imleci sonraki satıra taşı
[0.25] saniye bekle
son

Şapka#

Şapka bloğu, bir Python fonksiyonu tanımlamak için bir alan sağlar. Şapka altına eklenen bloklar, o fonksiyonun gövdesini oluşturur.

Şapka kalıbı#
[] :: hat custom-switch

Şapka bloğunun içine bir Python fonksiyon tanımı yazın. Parametreler parantez içine yazılır. Fonksiyon parametre kullanmıyorsa, boş parantez kullanın.

Python fonksiyon tanımı içeren şapka bloğu#
[def function_name(parameter):] :: hat custom-switch
Başlatıldığında, bir fonksiyonu tanımlamak ve çağırmak için bir Hat bloğu kullanır.#
[def increment_y_100():] :: hat custom-switch
[Create a function to increment the 6-Axis Arm.]
[kol v] kolunun konumunu x:[0] y:[100] z:[0] [mm v] kadar artır ▶

başladığında :: hat events
[increment_y_100()] :: custom-switch