Bagian yang berjudul Implementasi Algoritma memiliki kode berikut:
// Return RC low-pass filter output samples, given input samples,
// time interval dt, and time constant RC
function lowpass(real[0..n] x, real dt, real RC)
var real[0..n] y
var real α := dt / (RC + dt)
y[0] := x[0]
for i from 1 to n
y[i] := α * x[i] + (1-α) * y[i-1]
return y
apa artinya: = artinya?
:=
sebagai "sama dengan". Saya sebenarnya lebih suka ini daripada=
dan==
karena "=" dalam bahasa alami adalah operator perbandingan (atau setidaknya pernyataan kebenaran.)Jawaban:
: = adalah operator penugasan untuk bahasa yang menggunakan pengujian kesetaraan tanda sama dengan tunggal. Bahasa-bahasa yang paling terkenal adalah Pascal. Karena pengaruh C, sebagian besar bahasa beralih ke = untuk tugas dan == untuk pengujian. Beberapa teks dan penulis lama yang dilatih dengan gaya seperti itu menggunakan: = untuk pseudocode. Anda terkadang melihat panah <- juga untuk penugasan .
Dari artikel:
Beberapa bahasa modern menggunakan panah untuk penugasan; terutama R , yang menggunakannya untuk penugasan global sementara menggunakan tunggal sama dengan (=) untuk penugasan lokal.
Dari Konsep Bahasa Pemrograman Sebesta dan catatan kelas dari Dr. KN King kita belajar bahwa standar penugasan kembali jauh lebih jauh daripada C atau Pascal. Tampaknya pada tahun 1958 ketika Algol dirancang, diputuskan untuk menggunakan: = untuk penugasan. Komite tersebut terdiri dari perwakilan Amerika dan Eropa. Beberapa orang Jerman dalam panitia akrab dengan bahasa Plankalkul Konrad Zuse (yang dirancang selama Perang Dunia II tetapi tidak diterbitkan sampai tahun 1972 dan tidak dilaksanakan sampai tahun 2005) dan ingin penugasan mengikuti metode penugasan yang diusulkan bahasa yang
b+c => a
di mana b + c ditugaskan untuk a. Komite mengubah ini menjadi =: dengan alasan bahwa metode memasukkan program pada saat itu disebut keypunch, tidak memiliki ">" untuk digunakan. Jadi mereka berkompromi pada titik yang sama. Namun, orang Amerika yang terbiasa dengan FORTRAN (tidak memiliki huruf kecil sampai 1990) ingin penugasan untuk beroperasi ke kiri karena itulah cara FORTRAN melakukannya.Jadi mereka berhasil mengubahnya menjadi: = alih-alih dan membuat penugasan beroperasi ke kiri daripada ke kanan dalam gaya FORTRAN (menjadi bahasa yang diimplementasikan yang diketahui) daripada Plankalkul (bahasa yang hampir tidak dikenal di luar Jerman dan tidak diimplementasikan) . Algol 60 sangat memengaruhi semua bahasa imperatif utama berikutnya termasuk Pascal dan C. Dengan demikian Pascal menyimpan sintaks ALGOL untuk tugas dan keduanya menjaga posisi kiri penugasan.
ALGOL dirancang agar mudah dibaca dan dekat dengan notasi matematika. Itu adalah standar de facto (dan pada dasarnya de jure) untuk menulis algoritma dalam jurnal selama 20 tahun ke depan. Oleh karena itu, instruktur dan ilmuwan komputer yang dididik dari tahun 1960 hingga sekitar tahun 1980 akan terbiasa dengan gaya notasi itu.
Rilis IBM 029 Keypunch pada tahun 1964 memungkinkan untuk> dan <karakter, sehingga mendorong dimasukkannya mereka dalam C di antara yang lainnya.
sumber
:=
untuk penugasan. orang dengan latar belakang matematika juga akan menyukai ini.Hanya catatan cepat dan bertele-tele. Pseudocode cukup informal, jadi ": =" hanya berarti apa yang Anda inginkan. Seperti yang dikatakan orang lain, bahasa tertentu seperti Pascal menggunakan ": =" untuk penugasan untuk menghindari kebingungan dengan "=" untuk kesetaraan, sedangkan bahasa lain menggunakan kombinasi "=" dan "==" untuk tujuan yang sama.
Sejauh menyangkut Pseudocode yang sebenarnya , Anda dapat menggunakan "=", "==", "equals", "ditugaskan ke", ": =", "has", "accept", atau apa pun yang mengapungkan perahu Anda, cukup selama Anda konsisten, dan penggunaan serta konteksnya dalam kodesemu Anda jelas.
sumber
Saya menduga tugas itu (saya pikir itu adalah operator penugasan dalam Delphi), jadi dalam y [0]: = x [0] Anda menetapkan nilai x [0] ke y [0].
Tapi AFAIK tidak ada yang namanya kode pseudo standar , jadi secara teori bisa apa saja: =).
sumber
=
sudah memiliki arti yang sangat berbeda : kesetaraan. Menggunakan operator yang sudah memiliki makna yang dipahami dengan baik untuk sesuatu yang berbeda akan sangat bodoh.:=
pilihan alami, karena dalam notasi matematikax := v
berarti "biarkanx
menjadiv
" sebagai lawanx = v
, yang berarti "x
sama denganv
" dan karena itu akan menyebabkan kebingungan.=
untuk tugas membingungkan. Saya masih ingat, dulu ketika saya pertama kali belajar memprogram, betapa membingungkannya melihatnyax = x + 1
. Setelah Anda mempelajari matematika dasar sekolah menengah,x = x + 1
sepertinya omong kosong yang tidak mungkin bertentangan. Selanjutnya saya membaca buku yang bagus tentang ilmu komputer untuk pembaca umum ( saya pikir inilah ini ) yang digunakan<-
untuk tugas.x <- x + 1
jauh lebih mudah dimengerti.Biasanya berarti hal yang sama artinya dalam matematika: tugas.
sumber
:=
biasanya berarti "didefinisikan sebagai" atau "sama dengan definisi".x := 1; y := 2; if (x = 1) y := 3
seolah-olah itu baru sajay := 3
merupakan optimasi yang masuk akal (dengan anggapan x tidak digunakan nanti). Dari 3 penugasan, 2 diimplementasikan dengan menggunakan analisis statis. "Definisi" penugasan Anda adalah pernyataan menyeluruh, yang tidak dapat diterima tanpa banyak asumsi, yang tidak harus bergantung pada definisi istilah ini.