03. Tiga blok bangunan

Bab sebelumnya menunjukkan kepadamu flowchart dengan aksi, pertanyaan, dan loop. Bab ini memperbesar tampilan dan memberi tiga pola tersebut nama yang benar. Begitu kamu bisa melihatnya, setiap program dalam sisa buku ini akan dibuat darinya, dan hanya darinya.

Ya — setiap program. Tidak ada pola keempat. Orang-orang telah mempelajari ini selama enam puluh tahun dan jawabannya selalu sama: setiap program dibangun dari tiga pola.

Tiga polanya

Namanya adalah:

  1. Sequence — lakukan ini, lalu ini, lalu ini.
  2. Decision — jika sesuatu benar, lakukan A; jika tidak, lakukan B.
  3. Repetition — lakukan sesuatu berulang-ulang sampai kondisi mengatakan berhenti.

Itu seluruh daftarnya. Baca ulang. Sisa bab menunjukkan seperti apa masing-masing, dengan contoh sehari-hari.

1. Sequence

Sequence adalah daftar aksi yang berurutan. Flowchart adalah garis lurus ke bawah halaman; setiap kotak terjadi sekali.

Start Put bread in toaster Push the lever down Wait two minutes Take the bread out Done

Kamu menggunakan sequence dalam flowchart sikat gigi di Bab 02. Ini adalah pola paling sederhana dan paling mudah untuk ditulis. Ini juga satu-satunya pola dalam proyek pertama buku ini — ASCII Name Banner — yang tidak lain hanyalah sequence panjang panggilan print.

Kamu akan menulis ini dalam kode di Bab 7. Sequence dalam Python hanyalah satu baris setelah baris lainnya:

print("Put bread in toaster")
print("Push the lever down")
print("Wait two minutes")
print("Take the bread out")

Itu secara harfiah adalah flowchart sequence, yang dituliskan.

2. Decision

Decision mengajukan pertanyaan ya/tidak dan menjalankan aksi yang berbeda tergantung pada jawabannya. Flowchart menggunakan berlian dengan dua panah keluar darinya.

yes no Start Is the door locked? Find the key Open it Unlock it Walk in

Decision adalah yang membuat program bereaksi. Tanpa decision, sebuah program berjalan dengan cara yang sama setiap kali, tidak peduli apa yang terjadi. Tambahkan satu decision dan program bisa mengambil jalur yang berbeda di hari yang berbeda.

Kamu menggunakan decision dalam pekerjaan rumah apa-yang-akan-ditonton dan apa-yang-akan-dipakai. Program nyata menggunakannya untuk setiap jenis "if". Jika skor pemain lebih dari 100, beri mereka bonus. Jika file tidak ada, buat. Jika sentuhan berasal dari Pemain, beri mereka koin.

Kamu akan menulis ini dalam kode di Bab 16. Decision dalam Python terlihat seperti ini:

if door_is_locked:
    find_the_key()
    unlock_it()
else:
    open_it()

Bentuk yang sama: pertanyaan di atas, dua jalur, bergabung di akhir.

3. Repetition

Repetition adalah melakukan jenis hal yang sama berulang-ulang sampai sebuah kondisi mengatakan berhenti. Flowchart menggunakan panah yang menunjuk kembali ke langkah yang sudah kamu lewati.

yes no Start Set count to 0 Is count 10? Done Do one push-up Add 1 to count

Setiap loop punya bagian yang sama:

  • sebuah kondisi awal (count adalah 0),
  • sebuah pertanyaan (apakah count 10?),
  • pekerjaan yang dilakukan setiap putaran (lakukan push-up),
  • sesuatu yang bergerak menuju berhenti (tambah 1 ke count).

Jika sebuah loop tidak punya bagian bergerak menuju berhenti, ia tidak pernah berakhir. Itu adalah bug yang disebut infinite loop, dan itu adalah bug yang paling umum dalam program awal. Jika programmu tampak membeku, kemungkinan kamu menulis satu. (Gunakan Ctrl + C di terminal untuk menghentikannya.)

Kamu menggunakan repetition dalam tantangan push-up di Bab 02. Program nyata menggunakan loop untuk melewati setiap item dalam list, menggambar setiap frame animasi, meminta pengguna lagi sampai mereka mengetik jawaban yang valid.

Kamu akan menulis ini dalam kode di Bab 18. Loop dalam Python terlihat seperti ini:

for i in range(1, 11):
    print("Push-up " + str(i))

Sepuluh baris keluaran dari dua baris kode. Loop adalah cara program melakukan pekerjaan yang terlalu besar untuk ditulis dengan tangan.

Mencampur ketiganya

Program nyata adalah tiga pola yang bersarang di dalam satu sama lain: sequence yang memegang decision, decision yang memegang loop, loop yang memegang loop lainnya. Number Guessing Game dari Bagian 3 punya ketiganya:

  • Seluruh program adalah sebuah sequence: pilih angka, lalu bermain, lalu umumkan pemenangnya.
  • Bagian bermain adalah sebuah loop: minta tebakan sampai salah satu benar.
  • Setiap putaran loop punya sebuah decision: apakah tebakannya terlalu tinggi, terlalu rendah, atau benar?

Begitu kamu bisa menemukan tiga pola itu, kamu bisa membaca program apa saja dengan bertanya, di setiap baris, yang mana ini?. Sebagian besar baris adalah sequence. Baris dengan if adalah bagian atas decision. Baris dengan while atau for adalah bagian atas loop. Itu sebagian besar pemrograman.

Di atas kertas, buat sketsa flowchart satu halaman untuk mainkan satu putaran batu, gunting, kertas melawan komputer. Coba gunakan setidaknya satu dari setiap pola: sequence langkah-langkah untuk mengatur permainan, decision untuk membandingkan dua pilihan, dan (opsional) loop jika kamu ingin bermain lebih dari satu putaran.

Pekerjaan Rumah

Masih kertas — pekerjaan rumah kertas terakhir sebelum kamu menginstal Python.

Soal 1 — Temukan polanya

Untuk setiap skenario, tuliskan mana dari tiga pola yang merupakan pola utama. (Beberapa menggunakan lebih dari satu — sebutkan yang paling penting.)

  1. Menghitung kelereng dalam toples.
  2. Memutuskan apakah kamu bisa membeli game baru.
  3. Mengikuti resep tanpa pilihan di dalamnya.
  4. Meminta pengguna memasukkan angka sampai mereka mengetik yang valid.
  5. Mencetak setiap nama dalam daftar kelas.

Soal 2 — Hanya sequence

Gambar flowchart untuk buat sepotong roti panggang menggunakan hanya sequence (tidak ada berlian, tidak ada loop). Lima hingga tujuh kotak.

Soal 3 — Sequence dan decision

Gambar flowchart untuk pergi tidur dengan tepat satu decision. Pertanyaannya adalah apakah ini malam sekolah?. Jika ya, tambahkan langkah ekstra (atur alarm). Jika tidak, lewati. Kedua jalur berakhir di matikan lampu.

Tantangan — Ketiga pola

Gambar flowchart untuk beri makan hewan peliharaan. Program harus mengandung ketiga pola:

  • Sequence: isi mangkuk makanan, lalu isi mangkuk air, lalu panggil hewan peliharaan.
  • Loop: terus memanggil sampai hewan peliharaan datang atau sampai kamu sudah memanggil lima kali (menyerah setelah lima).
  • Decision: jika hewan peliharaan memang datang, beri hadiah. Jika tidak, simpan makanannya.

Beri label setiap pola pada flowchart-mu sehingga pembaca bisa melihat di mana ia dimulai.

Bingung atau sudah selesai? Buka halaman solusi pekerjaan rumah.