03. Tiga blok bangunan — Solusi pekerjaan rumah

Soal 1 — Temukan polanya

Contoh jawaban.

  1. Menghitung kelereng dalam toplesrepetition. Lihat satu kelereng, tambah 1 ke count, lalu yang berikutnya, dan yang berikutnya, sampai tidak ada yang tersisa.
  2. Memutuskan apakah kamu bisa membeli game barudecision. Pertanyaannya adalah apakah harganya kurang dari tabunganku?. Ya mengarah ke beli; tidak mengarah ke tunggu.
  3. Mengikuti resep tanpa pilihan di dalamnyasequence. Setiap langkah terjadi sekali, berurutan.
  4. Meminta pengguna memasukkan angka sampai mereka mengetik yang validrepetition di luar (terus bertanya), dengan sebuah decision di dalamnya (apakah jawabannya valid?). Repetition adalah pola utamanya.
  5. Mencetak setiap nama dalam daftar kelasrepetition. Polanya adalah "untuk setiap nama, cetak". Apakah list-nya punya 20 nama atau 200, loop berjalan sekali per nama.

Kesalahan umum.

  • Menyebut segalanya decision karena deskripsinya punya if. If sering ada di dalam loop tanpa menjadi pola utama. Tanyakan: apakah ini berhenti setelah satu putaran, atau terus berjalan? Jika terus berjalan, pola utamanya adalah repetition.

Soal 2 — Hanya sequence

Contoh jawaban.

Start Take a slice of breadfrom the loaf Put the slice in the toaster Push the toaster lever down Wait until the toast pops up Take the toast out Spread butter on the toast Done

Kesalahan umum.

  • Menyelipkan pertanyaan. Apakah roti panggangnya sudah cukup coklat? adalah berlian, dan soal ini mengatakan tidak ada berlian. Percayakan pada pemanggang untuk pop sendiri.

Soal 3 — Sequence dan decision

Contoh jawaban.

yes no Start Brush teeth Put on pyjamas Climb into bed Is it a school night? Set the alarm Turn out the light Sleep

Kesalahan umum.

  • Meletakkan matikan lampu hanya di satu cabang. Kedua cabang berakhir dengan cara yang sama, jadi langkah itu ada setelah keduanya bergabung, bukan di dalam salah satunya.

Tantangan — Ketiga pola

Contoh jawaban. Flowchart ini menggunakan ketiga pola sekaligus: sebuah sequence dari langkah-langkah setup di atas, sebuah loop di tengah yang terus memanggil hewan peliharaan, dan sebuah decision di bawah tentang hadiahnya.

yes no yes no yes no Start Fill the food bowl Fill the water bowl Set call count to 0 Has the pet arrived? Pet showed up Is call count 5? Gave up Call the pet Add 1 to call count Did the pet show up? Give the pet a treat Put the food away Done

Setiap pola ada di sini:

  • Sebuah sequence di atas mengisi mangkuk dan memulai penghitung.
  • Sebuah loop di tengah memanggil hewan peliharaan hingga lima kali, dengan decision kecil di dalamnya (apakah hewan peliharaan sudah datang? dan apakah call count 5?).
  • Sebuah decision di bawah memeriksa apa yang terjadi dan baik memberi hadiah hewan peliharaan atau menyimpan makanan.

Kedua jalur keluar dari loop mengarah ke tempat yang sama (decision di bawah), sehingga sisa program berjalan dengan cara yang sama tidak peduli bagaimana loop berakhir.

Kesalahan umum.

  • Bagian yang paling sulit adalah dua cara keluar dari loop: hewan peliharaan datang, atau penghitung mencapai 5. Lupakan salah satunya dan itu adalah bug — loop tidak pernah berakhir, atau menyerah terlalu cepat.
  • Kehilangan jejak "apakah hewan peliharaan datang?" setelah loop. Dalam kode kamu akan menyimpan jawabannya dalam sebuah variable. Di kertas, beri label panah yang keluar dari loop sehingga decision di bawah tahu apa yang harus diperiksa.

Selesai?

Sekarang kamu bisa menemukan tiga blok bangunan dalam rencana apa pun. Dua bab berikutnya mempertajam sisi membaca dari keterampilan yang sama: Menelusuri program dengan tangan menunjukkan cara mengetahui apa yang dilakukan kode di atas kertas, dan Penamaan dan dekomposisi menunjukkan cara menjaga program tetap cukup jelas untuk ditelusuri dari awal. Kemudian proyek mini Bagian 1 mengikat keterampilan perencanaan bersama.