Pemrograman Perulangan - C++
Panduan Aktivitas Kotak Peralatan Guru
-
-
Eksplorasi ini akan memperkenalkan siswa pada pemrograman perilaku berulang dengan menggunakan perulangan repeat atau forever.
-
Mempelajari pemrograman menggunakan perulangan repeat dan forever memungkinkan siswa menghemat waktu saat membangun proyek yang menggunakan tindakan berulang yang sama. Untuk informasi lebih lanjut mengenai petunjuk yang digunakan dalam proyek teks, kunjungihelpinformation.
Clawbot V5 siap bergerak!
Eksplorasi ini akan memberi Anda alat untuk dapat mulai membuat beberapa proyek keren yang menggunakan perulangan.
-
Instruksi VEXcode V5 yang akan digunakan dalam eksplorasi ini:
-
Drivetrain.driveFor(maju, 300, mm);
-
Drivetrain.turnFor(kanan, 90, derajat);
-
ClawMotor.spinFor(reverse, 70, degrees);
-
ArmMotor.spinFor(maju, 360, derajat);
-
sementara (benar) {}
-
ulangi (4) {}
-
tunggu(5 detik);
-
Untuk mengakses informasi tambahan, klik kanan pada nama perintah di ruang kerja Anda untuk melihathelpuntuk perintah tersebut.
Tips untuk Guru
-
Menggunakan Fitur Pelengkapan Otomatis
Fitur pelengkapan otomatis (autocomplete) di VEXcode V5 memprediksi sisa perintah yang Anda ketik. Saat siswa mengerjakan VEXcode V5, dorong mereka untuk menggunakan fitur Autocomplete untuk membantu sintaks.

ArtikelAutocomplete - Tutorialmembahas cara menggunakan fitur Autocomplete. Untuk informasi lebih lanjut, jelajahi video tutorial di dalam VEXcode V5.

Pilih tutorial Pelengkapan Otomatis.
Pastikan Anda memiliki perangkat keras yang dibutuhkan, buku catatan teknik Anda, dan VEXcode V5 yang sudah diunduh dan siap digunakan.
| Kuantitas | Bahan-bahan yang Dibutuhkan |
|---|---|
| 1 |
VEX V5 Classroom Starter Kit (dengan firmware terbaru) |
| 1 |
VEXcode V5 (versi terbaru, Windows, macOS) |
| 1 |
Buku Catatan Teknik |
| 1 |
Contoh proyek Clawbot Template (Penggerak 2 motor, Tanpa Gyro) |
Langkah 1: Mari kita mulai pemrograman dengan perulangan
-
Sebelum memulai proyek Anda, pilih templat proyek yang tepat. Contoh proyek Clawbot Template (Drivetrain 2-motor, No Gyro) berisi konfigurasi motor Clawbot. Jika templat tidak digunakan, robot Anda tidak akan menjalankan proyek dengan benar.

- PilihFiledanBuka Contoh.
-
Gulir melalui berbagai proyekContoh. Proyek-proyek ini menunjukkan berbagai aksi yang dapat dilakukan oleh Clawbot Anda. Pilih dan buka proyek contohClawbot Template (Drivetrain 2-motor, No Gyro).

-
Beri nama proyek tersebut RepeatingActions.
-
Ketik kode berikut:
int main() { // Menginisialisasi Konfigurasi Robot. JANGAN DILEPAS! vexcodeInit(); // Bergerak maju dan berbelok 90 derajat selama 4 iterasi repeat(4){ Drivetrain.driveFor(forward, 300, mm); Drivetrain.turnFor(right, 90, degrees); wait(5, seconds); } }
Periksa proyek tersebut, lalu lakukan hal berikut di buku catatan teknik Anda.
-
Prediksikan apa yang akan dilakukan Clawbot dalam proyek tersebut. Jelaskan lebih dari sekadar fakta bahwa proyek tersebut berulang.
Apa yang sedang diulang-ulang? Apa yang sedang dilakukan Clawbot?
- Tuliskan prediksi Anda, tetapi jangan membagi proyek singkat tersebut menjadi lebih dari dua bagian.
Jawaban untuk Kotak Peralatan Guru
-
-
Proyek ini akan membuat robot: bergerak maju sejauh 300 milimeter, berbelok ke kanan 90 derajat, lalu menunggu selama 5 detik sebanyak 4 kali untuk menyelesaikan satu persegi. Alih-alih menggunakan 3 instruksi yang sama sebanyak 4 kali, instruksi pengulangan mengurangi jumlah pengulangan tersebut menjadi hanya 1 kali. Instruksi pengulangan mengulangi tindakan mengemudi maju dan kemudian berbelok.
-
Prediksinya mungkin sesederhana "Clawbot bergerak dalam bentuk persegi." Ini akan menjadi cara ringkas untuk menangkap gerakan berulang Clawbot tanpa konteks apa pun.
Buku catatan teknik mahasiswa dapat dipelihara dan dinilaisecara individuatau sebagaitim. Tautan-tautan sebelumnya memberikan rubrik yang berbeda untuk setiap pendekatan. Setiap kali rubrik disertakan dalam perencanaan pendidikan, praktik yang baik adalah menjelaskan rubrik tersebut atau setidaknya memberikan salinannya kepada siswa sebelum kegiatan dimulai.
-
Simpan, unduh, dan jalankanproyek Tindakan Berulang.
- Periksa penjelasan Anda tentang proyek tersebut di buku catatan teknik Anda dan tambahkan catatan untuk memperbaikinya jika diperlukan.
Langkah 2: Jalankan proyek dan amati robotnya.

Perhatikan kembali proyek Repeating Actions (di sebelah kanan). Proyek ini akan mengulangi perilaku maju lalu berbelok sebanyak empat kali. Struktur perulangan "repeat" digunakan ketika Anda ingin menggunakan serangkaian perilaku sejumlah kali tertentu.
Jika struktur repeat diganti dengan struktur perulangan "while", robot akan mengulangi perilaku maju dan kemudian berbelok "selama" kondisi tersebut benar. Anda juga dapat mengatur kondisi menjadi "true" agar loop "while" terus berjalan selamanya.
Pada proyek di sebelah kiri, input sensor digunakan untuk menentukan kapan harus mulai berbelok. Proyek di sebelah kanan menggunakan jarak Drivetrain tetap untuk menentukan kapan harus mulai berbelok.
Untuk terus memeriksa input sensor, pernyataan "if/else" digunakan bersama dengan loop "while". Pada proyek di sebelah kiri, robot akan berbelok ke kanan ketika sensor "BumperB" ditekan, jika tidak, robot akan terus bergerak maju tanpa henti jika sensor "BumperB" tidak ditekan. Untuk terus memeriksa nilai sensor BumperB, pernyataan "if" berada di dalam loop "while true".
Proyek di atas sebelah kiri adalah contoh praktis penggunaan struktur yang berulang tanpa henti - menggunakan loop while dan pernyataan if secara bersamaan. Bayangkan sebuah mesin penyapu jalan tanpa pengemudi yang terus melaju ke depan hingga menabrak tembok atau benda, lalu berbelok sebelum melanjutkan perjalanan.
Perluas Pembelajaran Anda
Untuk mengeksplorasi lebih lanjut cara menggunakan perulangan dengan kondisi, mintalah siswa untuk membuat proyek Penyapu Lantai di VEXcode V5.
- Mulailah dengan meminta siswadan menyambungkan sakelar bemper.
-
Mintalah siswa untuk membuka proyek contohClawbot Template (Drivetrain 2-motor, No Gyro).

-
Mintalah siswa untuk memberi nama proyek tersebut sebagai "Penyapu Lantai".
-
Mintalah siswa untuk membuat proyek berikut.
// Sertakan Pustaka V5 #include "vex.h" // Mempermudah penggunaan Pustaka VEX menggunakan namespace vex; // Fungsi pickRandom mengembalikan bilangan bulat acak antara nilai min dan // nilai max yang diberikan sebagai parameter. int pickRandom(int min, int max) { return min + rand() / (RAND_MAX / (max - min + 1)); } int main() { // Menginisialisasi Konfigurasi Robot. JANGAN DILEPAS! vexcodeInit(); // Inisialisasi generator angka acak. srand(randomSeed); while (true) { while (!BumperB.pressing()) { Drivetrain.drive(forward); wait(5, msec); } Drivetrain.stop(); Drivetrain.turnFor((90 + pickRandom(0, 90)), degrees); wait(5, msec); } }
Jika siswa membutuhkan bantuan dengan instruksi apa pun, arahkan mereka ke informasi
Minta siswa untukmengunduh dan menjalankan proyekuntuk mengamati bagaimana robot bergerak. Kemudian, mulailah diskusi kelas dan mintalah siswa untuk menjelaskan mengapa struktur "selamanya" digunakan alih-alih struktur "ulang
. Siswa harus mencatat bahwa struktur
selamanya" digunakan karena proyek ini terus menerus memeriksa apakah sakelar bumper ditekan.
Langkah 3: Tantangan Lingkaran Persegi!

- Suruh Clawbot Anda mengemudi di dalam bentuk persegi.
- Sebelum setiap giliran, cakar harus dibuka dan ditutup, dan lengan harus diangkat dan diturunkan.
- Clawbot tidak dapat melaju di sepanjang sisi alun-alun lebih dari sekali.
- Anda dapat menggunakan proyek RepeatingActions dari atas sebagai titik awal, tetapi simpan sebagaiSquaredLoopssebelum melakukan perubahan apa pun.
Dalam buku catatan teknik Anda, rencanakan hal-hal berikut:
- Rencanakan solusi Anda dan prediksi apa yang akan dilakukan Clawbot sesuai dengan setiap instruksi dalam proyek Anda.
- Unduh dan jalankanproyek Anda untuk mengujinya sebelum mengirimkannya.
- Lakukan perubahan pada proyek sesuai kebutuhan dan catat apa saja yang diubah selama pengujian.
Solusi Kotak Peralatan Guru
-
Berikut ini adalah solusi potensial untuk Tantangan Lingkaran Kuadrat:
int main() {
// Menginisialisasi Konfigurasi Robot. JANGAN DILEPAS!
vexcodeInit();
repeat(4){
Drivetrain.driveFor(forward, 300, mm);
ClawMotor.spinFor(reverse, 70, degrees);
ArmMotor.spinFor(forward, 360, degrees);
ClawMotor.spinFor(forward, 70, degrees);
ArmMotor.spinFor(reverse, 360, degrees);
Drivetrain.turnFor(right, 90, degrees);
wait(5, msec);
}
}Anda dapat memberikan rubrik pemrogramankepada siswauntuk menilai proyek mereka.
Buku catatan teknik siswa dapat dipelihara dan dinilaisecara individualatau sebagaitim.
