The VEX Visual Studio Code Extension has replaced VEXcode Pro V5, which is now end-of-life.
VEXcode Blocks and VEXcode Text remain actively developed and supported for all VEX platforms.
Definisi fungsi
Sekarang setelah kita membahas beberapa contoh, mari kita lihat bentuk umum definisi fungsi:
void function-name() {
Deklarasi variabel, dll.
Ekspresi...
//tidak diperlukan pengembalian eksplisit.
}
Suatu fungsi tidak mengembalikan nilai khusus, ataupun parameter masuk.
void nama-fungsi(tipe-data variabel) {
Deklarasi variabel, dll.
Ekspresi...
//tidak diperlukan pengembalian eksplisit.
}
Jika Anda menginginkan beberapa variabel, Anda cukup menggunakan "," sebagai pembatas:
Suatu fungsi tidak mengembalikan nilai khusus, tetapi dengan satu parameter.
void nama-fungsi(variabel tipe-data, variabel tipe-data, dll.) {
Deklarasi variabel, dll.
Ekspresi...
//tidak diperlukan pengembalian eksplisit.
}
Suatu fungsi tidak mengembalikan nilai khusus, tetapi dengan lebih dari satu parameter.
void nama-fungsi(variabel tipe-data, variabel tipe-data, dll.) {
Deklarasi variabel, dll.
Ekspresi...
kembalikan nilai-kembali
}
Suatu fungsi mengembalikan nilai tipe data tertentu, dan dengan input lebih dari satu parameter.
Tipeyang dikembalikandari suatu fungsi harus sama dengan tipe data nilai kembali yang dikembalikan oleh fungsi tersebut. Nilai pengembaliandapat berupa nilai konstan atau variabel. Harus diawali dengan kata kunci “return.”
Aturan berikut mengatur jenis pengembalian:
- Hampir tidak ada batasan pada tipe pengembalian, kecuali array. (Array adalah topik lain yang lebih maju mengenai cara membuat data Anda. Hal itu di luar cakupan artikel ini dan tidak akan dibahas di sini.
- Menentukan bahwa tipe pengembalian “void” berarti tidak diperlukan nilai pengembalian. Klausa “kembali” tersirat. Artinya Anda harus secara eksplisit menyatakan “return” di akhir fungsi “void”.
Membuat fungsi sebelum main() atau sesudahnya?
Kompiler membaca berkas Anda dari atas ke bawah. Jadi, urutannya penting.
Mari kita ambil fungsi Penyebut Umum Terbesar (FPB) yang sederhana sebagai contoh. Anda akan mendapatkan kesalahan:penggunaan pengenal yang tidak dideklarasikan 'getGCD'
Sebenarnya hal ini berlaku baik dari main() maupun blok fungsi pemanggil lainnya, yaitu “blok fungsi yang dipanggil” harus mendahului “blok fungsi pemanggil.”
Dua kemungkinan solusi:
int getFPB(int a, int b) {
int sisa = 1;
sementara (sisa > 0) {
sisa = a % b;
a = b;
b = sisa;
}
kembalikan a;
}
int main() {
Brain.Screen.printAt(5,60, “FPB ( %d, %d ) = %d”, getFPB(60, 100) );
}
Pindahkan “fungsi yang dipanggil” ke atas “blok fungsi pemanggil”, dalam contoh "main()."
int getFPB(int, int);
int main() {
Brain.Screen.printAt(5,60, "FPB ( %d, %d ) = %d", getFPB(60, 100) );
}
int getFPB(int a, int b) {
int sisa = 1;
while (sisa > 0) {
sisa = a % b;
a = b;
b = sisa;
}
return a;
}
Letakkan prototipe (juga disebut tanda tangan) fungsi sebelum “blok fungsi pemanggil.”
Bagaimana jika Anda ingin memodulasi fungsi dalam file yang berbeda?
Langkah 1: Buat file header, dan letakkan prototipe fungsi ke dalam file ini.
misalnya membuat file bernama “myFuncs.h”
Anda perlu “menambahkan” file header ini ke dalam proyek Anda sebelum mengompilasi kode Anda. Hal ini memungkinkan IDE VEXcode Pro V5 “untuk mengetahui” penyertaan file header baru ini sebelum mulai membangun proyek Anda.
Begini caranya:



Dalam file header ini “common.h” (Anda dapat memberi nama apa pun yang Anda inginkan, asalkan berupa alfanumerik tanpa spasi.)
Langkah 2: Buat file cpp terpisah, misalnya, disebut common.cpp

//ini adalah file common.cpp
int getGCD(int a, int b) {
int remainder = 1;
while (remainder > 0) {
remainder = a % b;
a = b;
b = remainder;
}
return a;
}
Pindahkan fungsi getGCD(...) ke dalam file ini
#include "vex.h"
#include "common.h"
menggunakan namespace vex;
int main() {
vexcodeInit();
Brain.Screen.printAt(5,60, "FPB ( %d, %d ) = %d", getFPB(60, 100) );
}
Sekarang, semua yang Anda miliki di file cpp utama akan terdiri dari yang berikut ini
Referensi:https://api.vexcode.cloud/v5/html/namespacevex.html
Topik-topik mendatang akan dibahas di bagian-bagian lanjutan dari Perpustakaan VEX di masa mendatang:
- Lewati nilai vs. lewati referensi
- Melewati array
- Lulus dalam suatu struktur