Fungsi dan tumpukan panggilan – parameter, nilai kembalian, dan cakupan

InformatikaAlgoritma dan pemecahan masalahUsia 15–16

Gunakan di kelas saya ✨ Sesuaikan dengan AI Laporkan masalah

Jalankan langkah demi langkah program yang memanggil prosedur dan fungsi, lalu lihat setiap panggilan menumpuk sebuah bingkai: argumen diikat ke parameter, variabel lokal, dan nilai kembalian yang dikirim ke baris pemanggil. Bandingkan variabel lokal dan global, pemanggilan berdasarkan nilai dan referensi, serta rekursi dalam Python atau pseudokode. Mode pustaka memungkinkan Anda memanggil rutin bawaan untuk menjelajahi tanda tangan fungsi dan abstraksi.

Pelajaran: Subprogram: prosedur, fungsi, parameter, dan cakupan variabel

Yang ditunjukkan

Subprogram adalah blok kode bernama yang dapat dipanggil berkali-kali. Saat dipanggil, komputer menumpuk sebuah bingkai berisi parameter dan variabel lokalnya; argumen diikat ke parameter, lalu return mengirim nilai kembali dan mengangkat bingkai itu dari tumpukan. Variabel lokal hanya ada selama panggilan dan dapat menutupi variabel global yang bernama sama. Rekursi menumpuk banyak bingkai dari fungsi yang sama. Rutin pustaka menyembunyikan kodenya di balik tanda tangan, dan begitulah program dipecah menjadi modul dan API.

Cara menggunakan

Pilih Contoh dan Bahasa, lalu tekan Langkah untuk menjalankan satu baris setiap kali atau Jalankan untuk memutar program pada Kecepatan yang dipilih. Amati tumpukan panggilan, catatan Yang terjadi pada langkah ini, dan grafik kedalaman. Tekan Ubah untuk mengubah kode. Beralih ke Rutin pustaka, pilih Rutin, ketik argumennya, lalu tekan Panggil.

Parameter yang dapat diubah

  • Mode Telusuri program, Rutin pustaka
  • Contoh Parameter dan nilai kembalian, Variabel lokal dan global, Fungsi memanggil fungsi, Prosedur dan fungsi, Rekursi (faktorial), Berdasarkan nilai dan referensi
  • Bahasa Python, Pseudokode
  • Kecepatan 0,5–10 langkah/detik

Pertanyaan untuk dijelajahi

  1. Pada panggilan area(w, 3), nilai mana yang merupakan argumen dan nama mana yang merupakan parameter?
  2. Mengapa print(count) di program utama masih menampilkan 10 setelah double(3) dijalankan?
  3. Berapa banyak bingkai di tumpukan panggilan saat factorial(4) mencapai kasus dasarnya?