Algoritmika · Pelajaran 4 dari 10

Menelusuri pseudocode

9 menit baca · BelajarCode

Soal algoritmika memberikan potongan pseudocode atau kode, lalu bertanya berapa nilai akhirnya. Tidak ada komputer saat lomba, jadi kamu harus bisa "menjalankan" kode di kepala dan di kertas.

Teknik 1: hitung dengan rumus

Pseudocode
x ← 0
UNTUK i DARI 1 SAMPAI 10 LAKUKAN
    UNTUK j DARI i SAMPAI 10 LAKUKAN
        x ← x + 1
    AKHIR UNTUK
AKHIR UNTUK
TULIS x

Saat i = 1, perulangan dalam berjalan 10 kali. Saat i = 2, 9 kali. Begitu seterusnya sampai i = 10, 1 kali. Jadi x = 10 + 9 + ... + 1 = 10 × 11 / 2 = 55.

Python
1x = 02for i in range(1, 11):3    for j in range(i, 11):4        x += 15print(x)
Keluaran
55

Teknik 2: tabel jejak untuk beberapa langkah pertama

Pseudocode
a ← 1
b ← 1
UNTUK i DARI 1 SAMPAI 5 LAKUKAN
    c ← a + b
    a ← b
    b ← c
AKHIR UNTUK
TULIS b
Jejak nilai a, b, c
icab
awal11
1212
2323
3535
4858
513813

Polanya adalah bilangan Fibonacci. Jawabannya 13. Setelah mengenali pola seperti ini, kamu bisa menjawab untuk perulangan 50 kali sekalipun tanpa menelusuri semuanya.

Teknik 3: pahami maksud fungsi rekursif

Pseudocode
FUNGSI f(n)
    JIKA n = 0 MAKA KEMBALIKAN 0
    KEMBALIKAN (n mod 10) + f(n div 10)
AKHIR FUNGSI

TULIS f(9876)

n mod 10 adalah digit terakhir dan n div 10 membuang digit terakhir. Jadi fungsi ini menjumlahkan semua digit: 9 + 8 + 7 + 6 = 30.

Python
1def f(n):2    if n == 0:3        return 04    return n % 10 + f(n // 10)56print(f(9876))
Keluaran
30

Langkah kerja di lomba

Pertama, jalankan dengan masukan kecil dan tulis tabel jejak. Kedua, cari polanya. Ketiga, buktikan atau setidaknya periksa pola itu dengan satu kasus lagi sebelum menjawab untuk masukan besar.

Cek pemahaman

Pada pseudocode x ← 0, UNTUK i DARI 1 SAMPAI 20, JIKA i mod 3 = 0 MAKA x ← x + i, berapa nilai akhir x?

Latihan

Telusuri fungsi misteri

Berapa keluaran pseudocode berikut? Jelaskan apa yang dikerjakan fungsi g.

Pseudocode
FUNGSI g(a, b)
    JIKA b = 0 MAKA KEMBALIKAN a
    KEMBALIKAN g(b, a mod b)
AKHIR FUNGSI

TULIS g(84, 36)

Jalankan contoh kode di pelajaran ini tanpa instalasi lewat compiler Python online.

Tandai pelajaran ini selesai

Masuk ke aplikasi untuk mencatat kemajuan, lalu lanjutkan ke pelajaran berikutnya dari perangkat mana pun.

Buka di aplikasi