myUASARevision for UASAUlang kaji UASA
Asas Sains Komputer notesnota, bab 2

Algoritma

TextbookBuku teks Asas Sains Komputer Tingkatan 2 KSSM (cetakan pertama 2017), pageshalaman 38–73

What this chapter coversMatlamat bab ini

  • Murid boleh menulis pseudokod dan melukis carta alir menggunakan struktur kawalan pilihan bersarang dalam penyelesaian masalah (2.1.1 (i))
  • Murid boleh menulis pseudokod dan melukis carta alir menggunakan struktur kawalan ulangan for dan while dalam penyelesaian masalah (2.1.1 (ii))
  • Murid boleh mengesan dan membaiki ralat yang terdapat dalam pseudokod dan carta alir dalam penyelesaian masalah (2.1.2)
  • Murid boleh menyelesaikan masalah menggunakan pseudokod dan carta alir dengan menggabungkan pelbagai struktur kawalan (2.1.3)

2.1Pembangunan algoritma

Dalam hidup harian, banyak perkara melibatkan pilihan dan ulangan: lampu isyarat yang sentiasa bertukar, pusingan kereta di litar F1, atau tarian sumazau. Semuanya boleh ditulis sebagai algoritma. Bab ini mengajar anda menulis algoritma dengan struktur kawalan dan menyemak sama ada algoritma itu betul.

Algoritma ialah satu siri langkah untuk menyelesaikan sesuatu masalah atau melengkapkan sesuatu tugas. Algoritma terdiri daripada prosedur langkah demi langkah yang tersusun untuk menghasilkan output yang diperlukan (Rajah 2.1, ms. 40).

Pengatur cara membangunkan algoritma sebelum menulis atur cara dalam bahasa pengaturcaraan. Pada peringkat ini, pengatur cara tidak perlu tahu bagaimana komputer akan melaksanakan arahan. Algoritma ialah salah satu teknik utama dalam pemikiran komputasional.

Contoh algoritma harian: peraturan menggunakan jalan raya, membakar kek dan menanam pokok (ms. 40).

Cara mewakili algoritma

Algoritma diwakili dalam dua bentuk (Peta Konsep, ms. 70):

BentukMaksud
PseudokodAlgoritma ditulis dengan ayat pendek dan kata kunci seperti Mula, Jika, while. Tiada sintaks bahasa pengaturcaraan.
Carta alirAlgoritma dilukis dengan simbol dan anak panah.
Lima simbol carta alir: terminator, input atau output, proses, keputusan dan anak panah
Simbol carta alir yang digunakan dalam buku ini (seperti Rajah 2.7 dan 2.13, ms. 46 dan 52).
Kata kunci pseudokod yang digunakan dalam bab ini
Kata kunciMaksud
Mula, TamatAlgoritma bermula dan berakhir.
Isytihar pemboleh ubahMenamakan pemboleh ubah yang akan digunakan.
SetkanMemberi nilai kepada pemboleh ubah (Setkan kira = 1).
Masukkan, BacaMenerima input daripada pengguna.
PaparkanMenunjukkan output.
KirakanMelakukan pengiraan (Kirakan jum = jum + kira).
Jika, Jika tidak, Tamat jikaStruktur kawalan pilihan.
for, whileStruktur kawalan ulangan (gelung).
Ulang langkah NKembali ke langkah N.
<, <=, ==, !=Kurang daripada, kurang daripada atau sama dengan, sama dengan, tidak sama dengan.
Namakan dua bentuk perwakilan algoritma. Simbol carta alir yang manakah digunakan untuk ujian syarat?
Tunjuk jawapanSembunyi jawapan
Pseudokod dan carta alir. Ujian syarat menggunakan simbol keputusan (berlian) dengan dua jalan keluar, Ya dan Tidak.

Struktur kawalan yang telah dipelajari

Di Tingkatan 1 anda telah belajar empat jenis struktur kawalan (Imbas kembali, ms. 41): pilihan tunggal, dwipilihan, pelbagai pilihan dan ulangan. Di Tingkatan 2 anda belajar pilihan bersarang serta dua jenis ulangan, iaitu for dan while.

2.1.1 (i) Struktur kawalan pilihan bersarang

Struktur kawalan pilihan bersarang terdiri daripada satu struktur kawalan yang terbenam dalam satu struktur kawalan yang lain (ms. 41).

Struktur kawalan pertama menyebabkan struktur kedua (yang terbenam) bermula. Struktur kedua dilaksanakan sehingga tamat dahulu, baharu struktur pertama tamat. Ia ibarat pintu dalam pintu: anda hanya sampai ke pintu kedua jika pintu pertama dibuka.

Contoh: mencari kek lapis Sarawak (Rajah 2.3 dan 2.4)

1Mula
2Cari kedai kek
3Masuk ke kedai kek
4Jika ada kek lapis Sarawak
      Semak corak kek
      Jika menarik
         Beli kek lapis Sarawak
      Jika Tidak
         Keluar dari kedai kek
   Jika Tidak
      Keluar dari kedai kek
5Tamat

Pseudokod mengikut Rajah 2.3, buku teks Asas Sains Komputer Tingkatan 2, ms. 41.

Carta alir dua keputusan bersarang: ada kek lapis Sarawak, kemudian corak menarik
Carta alir mencari kek lapis Sarawak (Rajah 2.4, ms. 42). Ada dua keputusan dan setiap satu mempunyai dua jalan: ia ialah dua struktur kawalan dwipilihan yang bersarang.
Keputusan kedua ("Corak menarik?") hanya diuji jika keputusan pertama Ya. Jangan lukis dua keputusan yang diuji satu demi satu tanpa syarat pertama.

Contoh 2.1: integer positif, negatif atau sifar (ms. 43)

Integer x diuji. Jika x < 0, tandanya -. Jika x == 0, ia ialah 0. Jika tidak, tandanya +.

1Mula
2Isytihar pemboleh ubah x dan tanda
3Baca x
   Jika (x < 0)
      tanda = -
   Jika tidak
      Jika (x == 0)
         tanda = 0
      Jika tidak
         tanda = +
4Tamat
Carta alir x kurang daripada 0, kemudian x sama dengan 0, jika tidak tanda tambah
Carta alir Contoh 2.1: struktur Jika tidak yang kedua terbenam dalam Jika tidak yang pertama.

Semakan meja dengan tiga nilai (dikira dengan Python). Ujian pertama ialah x < 0; ujian kedua ialah x == 0.

xUjian pertamaUjian keduatanda
-4Yatidak diuji-
0TidakYa0
9TidakTidak+
Uji nilai di sempadan (0 dalam contoh ini). Nilai sempadan paling kerap menunjukkan syarat yang salah, misalnya < dan <= yang tertukar.

Menyelesaikan masalah: sistem kad bayaran elektronik (Rajah 2.5 hingga 2.7, ms. 44 hingga 46)

Sebuah sekolah menggunakan kad bayaran. Dua syarat disemak: tempoh sah laku kad dan nilai kad (sekurang-kurangnya RM5.00). Buku teks menunjukkan tiga langkah membangunkan algoritma:

LangkahApa yang dilakukan
1 PenyiasatanKenal pasti proses: semak sah laku, semak nilai minimum, laksanakan atau batalkan transaksi.
2 Mendraf algoritma dan semakan semulaTulis draf proses dan keputusan, kemudian periksa logiknya.
3 Memurnikan langkah-langkah algoritmaTulis langkah akhir yang tepat (Rajah 2.5).
1Mula
2Baca kad
3Jika kad sah digunakan
      Periksa nilai minimum kad
      Jika nilai minimum mencukupi
         Paparkan "Jalankan urus niaga"
      Jika tidak
         Paparkan "Tambah nilai"
      Tamat jika
   Jika tidak
      Paparkan "Kad ditolak"
4Tamat jika
5Tamat

Pseudokod mengikut Rajah 2.6, buku teks Asas Sains Komputer Tingkatan 2, ms. 46.

Dalam pilihan bersarang, setiap Jika mesti diakhiri dengan Tamat jika di tempat yang betul. Kalau tidak, ralat akan timbul dalam skrip (Tip, ms. 46). Dalam pseudokod di atas ada dua Jika, maka ada dua Tamat jika.
Awas, ralat cetakan dalam buku (ms. 45 dan 46). Dalam draf (Langkah 2, ms. 45), langkah 4 berkata nilai kad "bersamaan atau lebih" daripada nilai minimum dan langkah 5 berkata "bersamaan atau kurang". Nilai tepat RM5.00 jadi masuk kedua-duanya. Syaratnya ialah sekurang-kurangnya RM5.00: RM5.00 atau lebih memberi "Jalankan urus niaga", kurang daripada RM5.00 memberi "Tambah nilai". Dalam Rajah 2.5, langkah 4 ("melebihi RM5.00") dan langkah 5 ("kurang daripada RM5.00") pula tidak meliputi RM5.00 tepat. Dalam carta alir Rajah 2.7, anak panah dari "Tambah nilai" juga bersambung ke "Kad ditolak", padahal pseudokod (Rajah 2.6) hanya memaparkan "Kad ditolak" apabila tempoh kad tamat.

Aktiviti 2.1: komisen jurujual (ms. 44), cadangan jawapan nota ini

Komisen bergantung pada jumlah jualan sebulan: kurang daripada RM400 = 7.0%; RM400 hingga kurang daripada RM750 = 10.0%; RM750 hingga kurang daripada RM1000 = 12.5%; RM1000 ke atas = 16.0%. Pilihan bersarang menguji dari kecil ke besar:

Baca jualan
Jika (jualan < 400)
   komisen = 7.0
Jika tidak
   Jika (jualan < 750)
      komisen = 10.0
   Jika tidak
      Jika (jualan < 1000)
         komisen = 12.5
      Jika tidak
         komisen = 16.0
Paparkan komisen

Semakan: jualan RM350 memberi 7.0%; RM400 memberi 10.0% (bukan 7.0% kerana 400 tidak kurang daripada 400); RM820 memberi 12.5% iaitu RM102.50; RM1000 memberi 16.0% iaitu RM160.00.

Dalam Contoh 2.1, apakah nilai tanda jika x = 0? Mengapa x == 0 tidak diuji apabila x = -4?
Tunjuk jawapanSembunyi jawapan
tanda = 0. Apabila x = -4, syarat pertama x < 0 benar, jadi struktur kedua (yang terbenam dalam Jika tidak) tidak dimulakan.

2.1.1 (ii) Struktur kawalan ulangan

Struktur kawalan ulangan terdiri daripada satu set langkah atau arahan yang sentiasa berulang sehingga suatu syarat dipenuhi. Set langkah yang berulang disebut gelung (loop) dan setiap ulangan gelung disebut lelaran (iteration) (ms. 47).

Tarian sumazau dan lampu isyarat ialah contoh ulangan. Dalam algoritma tarian sumazau (Rajah 2.8, ms. 48), langkah 6, 10 dan 12 memberitahu ulangan bagi jujukan langkah yang berlainan: "ulang langkah 2 hingga 5 sebanyak lima kali", "ulang langkah 7 hingga 9 sebanyak 10 kali" dan "ulang langkah 7 hingga 11 sehingga muzik tamat".

Lampu isyarat (Contoh 2.2, ms. 50): lampu hijau menyala 60 saat, kuning 10 saat, merah 40 saat, kemudian ulang semula selagi sistem berfungsi. Sistem ini diperiksa untuk kerosakan lampu; jika ada kerosakan, algoritma tamat.

Dalam pengaturcaraan, ulangan menjimatkan kerja: kod yang serupa tidak perlu ditulis berkali-kali, dan penambahbaikan hanya dibuat pada satu segmen kod. Dua struktur kawalan ulangan yang kerap digunakan ialah for dan while.

Struktur kawalan ulangan for

Struktur for mengulang pernyataan untuk bilangan kali yang tertentu. Bilangan ulangan dikawal oleh nombor yang disebut pembilang, yang berubah pada setiap ulangan (ms. 52).
1Isytihar pembilang.
2Syarat diuji.
      Jika benar
         Pernyataan yang berulang dilaksanakan.
         Kemas kini pembilang for.
      Jika tidak benar
         Atur cara keluar dari struktur kawalan ulangan for.
3Ulangi langkah 2 sehingga syarat menjadi tidak benar.

Rangka umum mengikut Rajah 2.11, buku teks Asas Sains Komputer Tingkatan 2, ms. 52.

Contohnya, pembilang bermula 0 dan syarat "pembilang < 10" membuat pernyataan berulang 10 kali (Rajah 2.12 dan 2.13, ms. 52): nilai 0, 1, 2 hingga 9 lulus ujian, manakala 10 tidak.

Contoh 2.3: hasil tambah 1 hingga n (ms. 53 dan 54)

Pengguna memasukkan nombor n. Atur cara menjumlahkan 1 + 2 + 3 + ... + n. Tiga pemboleh ubah digunakan: nom (n), kira (pembilang) dan jum (hasil tambah).

1Mula
2Isytihar pemboleh ubah nom, kira, jum
3Setkan nilai kira kepada 1
4Setkan nilai jum kepada 0
5Masukkan satu nombor
6Setkan nilai nom kepada nombor yang dimasukkan
7for kira <= nom
      Kirakan jum = jum + kira
      Kirakan kira = kira + 1
8Paparkan nilai jum
9Tamat

Pseudokod mengikut Contoh 2.3, buku teks Asas Sains Komputer Tingkatan 2, ms. 54.

Carta alir ulangan for: selagi kira <= nom, jum = jum + kira dan kira = kira + 1
Carta alir Contoh 2.3. Anak panah dari kotak proses kembali ke ujian syarat: itulah gelung.

Semakan meja bagi nom = 5 (dikira dengan Python; buku menggunakan nom = 10). Ujian syarat ialah kira <= 5.

Lelarankira sebelumUjian syaratjum selepaskira selepas
11Ya12
22Ya33
33Ya64
44Ya105
55Ya156
Ujian6TidakGelung berhenti. Paparkan jum = 15.

Untuk nom = 10, jum bertambah 1, 3, 6, 10, 15, 21, 28, 36, 45, 55 dan gelung berhenti apabila kira = 11. Output ialah 55. Penerangan buku (ms. 55) berhenti apabila kira = 11, sama seperti di sini.

Gelung for kira <= nom berjalan nom kali apabila kira bermula 1. Selepas gelung tamat, pembilang sentiasa satu lebih besar daripada nilai terakhir yang lulus syarat.
Jika pengguna memasukkan 4, berapakah jum dipaparkan dan berapa kali gelung berjalan?
Tunjuk jawapanSembunyi jawapan
jum = 1 + 2 + 3 + 4 = 10. Gelung berjalan 4 kali (kira = 1, 2, 3, 4) dan berhenti apabila kira = 5.

Struktur kawalan ulangan while

Dalam struktur while, ulangan dilaksanakan selagi syarat yang diuji adalah benar. Syarat diuji sebelum pernyataan berulang dilaksanakan (ms. 56).
forwhile
Bilangan ulanganDitetapkan (diketahui)Tidak diketahui; bergantung sama ada syarat dipenuhi
KawalanPembilang yang berubah setiap ulanganSyarat yang diuji, contohnya input pengguna
Ujian syaratSebelum pernyataan berulang dilaksanakan (sama untuk kedua-duanya)
ContohCetak ayat 10 kaliTerima nama sehingga ruang kosong

Struktur while digunakan dalam pelbagai bahasa pengaturcaraan seperti Scratch, C, C++, Java dan Python (Fakta segera, ms. 56). Rajah 2.15 dan 2.16 menunjukkan algoritma yang menerima dan mencetak nama yang ditaip selagi nama itu bukan ruang kosong.

Contoh 2.4: jumlah sehingga pengguna menaip 0 (ms. 57 hingga 59)

1Mula
2Isytihar pemboleh ubah jumlah dan nombor
3Setkan jumlah = 0
4Setkan nombor = 0
5Paparkan mesej "Masukkan nombor:"
6Setkan nombor = nombor yang dimasukkan
7while nombor != sifar
      Kirakan jumlah = jumlah + nombor
      Ulang langkah 5
8Paparkan jumlah
9Tamat

Pseudokod mengikut Contoh 2.4, buku teks Asas Sains Komputer Tingkatan 2, ms. 58.

Simbol != bermaksud tidak sama dengan. Syarat nombor != sifar bermaksud selagi nombor tidak bersamaan dengan sifar, pernyataan dalam gelung while akan dilaksanakan (Tip, ms. 58).
Carta alir ulangan while: selagi nombor bukan 0, jumlah ditambah nombor dan kembali meminta nombor
Carta alir Contoh 2.4. Anak panah ulangan kembali ke langkah "Paparkan mesej", iaitu "Ulang langkah 5" dalam pseudokod.

Semakan meja jika pengguna menaip 4, 7, 2, 0 (dikira dengan Python). Ujian syarat ialah nombor != 0.

Nombor dimasukkanUjian syaratjumlah selepas
4Ya4
7Ya11
2Ya13
0Tidak, gelung berhenti13

Output ialah 13. Nombor 0 ialah penanda untuk berhenti; ia tidak ditambah ke jumlah.

Dalam while, sesuatu mesti berubah di dalam gelung (di sini, nombor baharu dibaca semula). Jika tiada apa-apa yang mengubah syarat, gelung tidak akan berhenti.
Pilih for atau while: (a) mencetak "Saya sihat" 6 kali; (b) membaca markah murid satu demi satu sehingga guru menaip -1.
Tunjuk jawapanSembunyi jawapan
(a) for, kerana bilangan ulangan diketahui (6 kali). (b) while, kerana bilangan markah tidak diketahui; gelung berhenti apabila syarat tidak dipenuhi (-1 dimasukkan).

2.1.2 Mengesan dan membaiki ralat dalam pseudokod dan carta alir

Atur cara ditulis untuk menghasilkan output yang dijangka. Kadang-kadang ia memberi output yang tidak dijangka, berhenti tiba-tiba atau berulang tanpa henti. Maka atur cara itu mempunyai ralat.

Ralat ialah kesilapan atau kesalahan dalam proses pembangunan atur cara atau segmen kod. Ralat selalu dikenal pasti dalam fasa pengujian (ms. 59).
Tiga jenis ralat (Rajah 2.17, ms. 60)
Jenis ralatCiri
Ralat sintaksKesilapan dalam penggunaan bahasa pengaturcaraan, seperti kesilapan ejaan atau tatabahasa. Ada mesej ralat semasa atur cara dilaksanakan.
Ralat masa larianAtur cara terhenti tiba-tiba semasa jalanan ujian (test run). Sebabnya boleh jadi memori tidak mencukupi, virus atau perisian hasad.
Ralat logikAtur cara memberi output yang tidak dijangka, misalnya urutan tindakan salah atau syarat ditulis salah. Sebab utama ialah kecuaian. Tiada mesej ralat, maka sukar dikesan.
Atur cara yang berjalan tanpa mesej ralat belum tentu betul. Ralat logik tidak memaparkan mesej; hanya output yang salah menunjukkannya.

Ralat logik dikesan dengan dua teknik manual, iaitu semakan meja (desk check) dan langkah demi langkah (step through). Kedua-duanya menggunakan kertas dan pensel, satu set sampel data input dan semakan terhadap output yang dijana (ms. 60).

Semakan meja ialah teknik semakan kualiti untuk menyemak logik dalam algoritma. Ia dilakukan secara manual dengan pen dan kertas sahaja (ms. 45).

Contoh 2.5 dan 2.6: senarai nombor menaik (ms. 61 hingga 63)

Murni menulis atur cara yang menyenaraikan nombor menaik bermula daripada nombor yang dimasukkan, naik 5 setiap kali. Dia mahu senarai berhenti pada 45 apabila nombor permulaan ialah 20.

1Mula
2Isytihar pemboleh ubah k = 0
3Paparkan mesej "Masukkan nombor yang bermula:"
4Setkan nilai k = nombor yang dimasukkan
5while k <= 50
      Paparkan k
      k = k + 5
6Tamat
Awas, kenyataan buku (ms. 61). Buku berkata urutan nombor itu "tidak melebihi 50", tetapi output yang dikehendaki berhenti pada 45. Nombor 50 tidak melebihi 50, jadi kata-kata itu tidak sepadan dengan output yang dikehendaki. Dalam nota ini output yang dikehendaki (20 hingga 45) dijadikan ukuran, seperti dalam Contoh 2.6.

Dengan input 20, Murni menyemak dengan kertas dan pensel. Ujian syarat ialah k <= 50. Dia mendapati output memaparkan 50 yang tidak dikehendaki:

Langkahk dipaparkank selepas k = k + 5Ujian syarat
12025Ya
22530Ya
33035Ya
43540Ya
54045Ya
64550Ya (50 <= 50)
75055Tidak

Ini ialah ralat logik: syarat ulangan k <= 50 tidak tepat. Syarat yang dibaiki ialah k <= 45. Semakan meja kali kedua memberi 20, 25, 30, 35, 40, 45 dan gelung berhenti kerana 50 tidak kurang daripada atau sama dengan 45.

Dua carta alir sebelah-menyebelah: k <= 50 (ada ralat) dan k <= 45 (dibaiki)
Carta alir sebelum dan selepas dibaiki (Contoh 2.5 dan Rajah 2.18, ms. 61 dan 63). Hanya syarat dalam berlian yang berubah. Pseudokod dan carta alir mesti dibaiki kedua-duanya.
Cara mengesan ralat: (1) pilih sampel data input; (2) jalankan algoritma satu langkah demi satu langkah dan catat nilai pemboleh ubah dalam jadual; (3) bandingkan output dengan output yang dikehendaki; (4) cari langkah yang menyebabkan beza; (5) baiki, kemudian semak meja sekali lagi.

Aktiviti 2.5: carta alir sifir (ms. 64), tafsiran nota ini

Buku tidak memberi jawapan bagi aktiviti ini. Bahagian di bawah ialah tafsiran nota ini, bukan jawapan buku teks.

Carta alir meminta nom (contoh 5), menyetkan bilang = 1, kemudian: selagi bilang < 12, lakukan nom = nom + bilang, bilang = bilang + 1, Paparkan nom. Buku berkata carta alir itu "menjana sifir" dan 12 nombor bermula daripada 5 akan dipaparkan.

Semakan meja (dikira dengan Python) dengan nom = 5 memberi output 6, 8, 11, 15, 20, 26, 33, 41, 50, 60, 71. Itu ialah 11 nombor, bukan 12, dan nombor itu bukan hasil darab 5 (sifir 5).

Tafsiran: jika "sifir" bermaksud sifir 5, output yang dikehendaki ialah 5, 10, 15, ..., 60. Dalam tafsiran itu ada dua ralat logik:

  1. nom = nom + bilang mengubah nilai nom itu sendiri. Hasil darab ialah nom * bilang dan nom mesti kekal 5.
  2. bilang < 12 berhenti pada 11, maka hanya 11 nombor dipaparkan. Syarat yang membolehkan 12 nombor ialah bilang <= 12.

Selepas dibaiki: bilang <= 12? Ya: Paparkan nom * bilang, bilang = bilang + 1. Output: 5, 10, 15, 20, 25, 30, 35, 40, 45, 50, 55, 60 (12 nombor). Guru anda mungkin menerima tafsiran lain; yang pasti ialah carta alir asal tidak memaparkan 12 nombor.

Atur cara tiba-tiba terhenti kerana memori komputer tidak mencukupi. Apakah jenis ralatnya?
Tunjuk jawapanSembunyi jawapan
Ralat masa larian: atur cara terhenti secara tiba-tiba semasa jalanan ujian; memori tidak mencukupi ialah salah satu sebabnya.

2.1.3 Menggabungkan pelbagai struktur kawalan

Masalah yang kompleks harus dileraikan kepada masalah yang lebih kecil dan mudah melalui pembentukan algoritma. Setiap penyelesaian bermula dengan rancangan, dan rancangan itu ialah algoritma (ms. 65).

Lima langkah strategi menyelesaikan masalah (Fakta segera, ms. 65): (1) baca dan fahami masalah; (2) pilih konsep teori yang boleh diguna pakai; (3) hurai masalah secara kualitatif; (4) bina strategi penyelesaian; (5) uji dan hurai jawapan.

Contoh: mesin membuat capati (Rajah 2.19 hingga 2.21, ms. 65 hingga 68)

Nadira menulis algoritma untuk mesin yang membuat capati. Pengguna memasukkan bahan dan menekan butang Mula; mesin mengadun bahan dan membuat capati selagi adunan masih ada. Tiga langkah digunakan:

LangkahIsi
1 PenyiasatanInput: bahan membuat adunan. Proses: mengadun bahan dan membuat capati. Output: capati.
2 Mendraf algoritmaMesin menyemak bahan; mengadun sehingga sebati; membuat capati selagi adunan ada; paparkan jumlah capati; pengguna menyemak sama ada jumlah mencukupi.
3 Memurnikan langkah-langkahTulis tujuh langkah akhir (Rajah 2.19) dan wakilkan sebagai pseudokod (Rajah 2.20) dan carta alir (Rajah 2.21).
1Mula
2Sediakan bahan.
      Jika ada, masukkan bahan ke dalam mesin. Hidupkan mesin.
      Jika tidak, sediakan bahan dahulu. Ulang Langkah 2.
3Semak bahan.
      Jika ada, mula mengadun bahan.
      Jika tidak, paparkan mesej "Sila masukkan bahan". Ulang Langkah 2.
4Semak mencapai masa tamat mengadun.
      Jika ya, mula membuat capati.
      Jika tidak, terus mengadun bahan. Ulang Langkah 4.
5Semak adunan habis.
      Jika ya, paparkan jumlah capati yang dihasilkan.
      Jika tidak, terus membuat capati. Ulang Langkah 5.
6Semak jumlah capati.
      Jika mencukupi, matikan mesin.
      Jika tidak mencukupi, ulang Langkah 2.
7Tamat

Pseudokod mengikut Rajah 2.20, buku teks Asas Sains Komputer Tingkatan 2, ms. 67.

Awas, ketidakselarasan dalam buku (ms. 66 dan 67). Langkah 7 dalam Rajah 2.19 (ms. 66) berkata "Jika tidak cukup, ulang Langkah 1", tetapi Rajah 2.20 menulis "ulang Langkah 2". Nota ini mengikut Rajah 2.20, yang sepadan dengan carta alir. Perkataan "Langakh" dalam Rajah 2.20 ialah salah ejaan bagi "Langkah".
Carta alir membuat capati: pilihan, ulangan mengadun, ulangan membuat capati dan semakan jumlah
Carta alir membuat capati (Rajah 2.21, ms. 67 dan 68). Lajur kiri menyambung ke lajur kanan melalui penyambung A.

Cari struktur kawalan dalam algoritma ini:

StrukturDi mana dalam algoritma
Pilihan (Jika ... Jika tidak)Bahan tersedia? Semak bahan?
Ulangan whileTerus mengadun sehingga masa tamat; terus membuat capati selagi adunan belum habis
Ulangan keseluruhan prosesJika jumlah capati tidak cukup, ulang dari langkah 2
Pada carta alir, setiap keputusan mesti ada dua jalan (Ya dan Tidak) dan jalan "Tidak" pada ulangan mesti kembali ke langkah yang betul. Jalan yang tergantung ialah ralat.

Aktiviti 2.6: lesen memandu Kelas D (ms. 68 dan 69)

Algoritma lesen memandu mempunyai syarat umur, ujian buta warna, ujian teori, 10 jam belajar memandu, ujian praktikal dan tempoh PDL selama dua tahun. Petunjuk daripada nota ini (bukan daripada buku): setiap "Jika lulus ... Jika tidak lulus, ulangi ujian" ialah satu ulangan while (ulang selagi belum lulus), manakala "Jika tidak lulus, tidak dibenarkan" ialah satu pilihan. Tulis pseudokod dahulu, kemudian lukis carta alir dan semak dengan sampel data (misalnya umur 16, 17 dan 18).

Namakan satu struktur pilihan dan satu struktur ulangan dalam algoritma capati.
Tunjuk jawapanSembunyi jawapan
Pilihan: "Jika ada bahan, mula mengadun; jika tidak, paparkan mesej". Ulangan: "Jika adunan tidak habis, terus membuat capati" (ulang Langkah 5).

Ringkasan bab

KonsepIngat
AlgoritmaLangkah demi langkah yang tersusun; diwakili oleh pseudokod dan carta alir.
Pilihan bersarangStruktur pilihan di dalam struktur pilihan; setiap Jika ada Tamat jika.
Ulangan forBilangan ulangan ditetapkan oleh pembilang.
Ulangan whileBerulang selagi syarat benar; bilangan ulangan tidak diketahui.
Ralat sintaksSalah bahasa; ada mesej ralat.
Ralat masa larianAtur cara terhenti tiba-tiba.
Ralat logikOutput salah; tiada mesej; dikesan dengan semakan meja atau langkah demi langkah.
Awas, ralat cetakan dalam bahagian Jawapan buku (ms. 185). Jawapan Pentaksiran Bab 2 soalan berstruktur 5 menyatakan "Isytihar pembilang i = 1" tetapi menulis "for pembilang <= 3" dan "pembilang = pembilang + 1". Nama pemboleh ubah mesti sama dalam semua baris: guna i sahaja atau pembilang sahaja.
Setiap kali anda menulis algoritma, lakukan semakan meja dengan sekurang-kurangnya satu nilai biasa dan satu nilai sempadan sebelum menganggapnya siap.