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.
Fonksiyon tanımı
Şimdi birkaç örneği inceledikten sonra fonksiyon tanımının genel biçimine bakalım:
void fonksiyon-adı() {
Değişken bildirimleri, vb.
İfadeler...
//Açıkça bir dönüş değeri belirtmeye gerek yok.
}
Bir işlev özel bir değer veya gelen parametre döndürmez.
void fonksiyon-adı(veri-tipi değişken) {
Değişken bildirimleri, vb.
İfadeler...
//Açıkça bir dönüş değeri belirtmeye gerek yok.
Birden fazla değişken kullanmak istiyorsanız, ayırıcı olarak "," kullanmanız
:
Bir fonksiyon özel bir değer döndürmez, ancak tek bir parametreyle döner.
void fonksiyon-adı(veri-tipi değişkeni, veri-tipi değişkeni, vb.) {
Değişken vb. bildirimleri.
İfadeler...
//Açıkça bir dönüş değeri belirtmeye gerek yok.
}
Bir işlev özel bir değer döndürmez, ancak birden fazla parametreyle döner.
void fonksiyon-adı(veri-tipi değişkeni, veri-tipi değişkeni, vb.) {
Değişken vb. bildirimleri.
İfadeler...
dönüş değeri
}
Bir işlev, belirli bir veri türünün değerini ve birden fazla giriş parametresiyle döndürür.
Bir fonksiyonundönüş değeriolan türü, o fonksiyonun döndürdüğü değerin veri türüyle aynı olmalıdır. dönüş değeri, sabit bir değer veya değişken bir değer olabilir. Başında “return” anahtar kelimesi bulunmalıdır.”
Aşağıdaki kurallar dönüş türünü yönetir:
- Dönüş türünde dizi dışında neredeyse hiçbir kısıtlama yoktur. (Dizi, verilerinizin nasıl oluşturulacağıyla ilgili daha ileri düzey bir konudur. Bu makalenin kapsamı dışındadır ve burada ele alınmayacaktır.
- Dönüş tipinin "void" olduğunu belirtmek, dönüş değerinin gerekli olmadığı anlamına gelir. "Geri dönmek" ifadesi örtülüdür. Bu, bir "void" fonksiyonunun sonunda açıkça "return" ifadesini belirtmeniz gerektiği anlamına gelir.
Fonksiyonu main() fonksiyonundan önce mi yoksa sonra mı oluşturmalıyım?
Derleyici dosyanızı yukarıdan aşağıya doğru okur. Bu nedenle sıra önemlidir.
Örnek olarak basit En Büyük Ortak Payda (GCD) fonksiyonunu ele alalım. hatayı alacaksınız: 'getGCD' adlı tanımlanmamış bir tanımlayıcının kullanımı
Aslında bu, ister main()'dan ister başka çağıran fonksiyon bloğundan olsun doğrudur, yani "çağrılan fonksiyon bloğu", "çağrıyan fonksiyon bloğundan" önce gelmelidir.
İki olası çözüm:
int getGCD(int a, int b) {
int kalan = 1;
while (kalan > 0) {
kalan = a % b;
a = b;
b = kalan;
}
return a;
}
int main() {
Brain.Screen.printAt(5,60, “GCD ( %d, %d ) = %d”, getGCD(60, 100) );
}
"Main()" örneğinde "çağrılan işlevi" "çağıran işlev bloğunun" üzerine taşıyın.
int getGCD(int, int);
int main() {
Brain.Screen.printAt(5,60, "GCD ( %d, %d ) = %d", getGCD(60, 100) );
}
int getGCD(int a, int b) {
int remainder = 1;
while (remainder > 0) {
remainder = a % b;
a = b;
b = remainder;
}
return a;
}
Fonksiyonun prototipini (imza olarak da bilinir) "çağıran fonksiyon bloğunun" önüne koyun.
Peki ya farklı dosyalardaki fonksiyonları modüler hale getirmek isterseniz?
Adım 1: Bir başlık dosyası oluşturun ve fonksiyonun prototipini bu dosyaya yerleştirin.
örneğin “myFuncs.h” adında bir dosya oluşturun
Kodunuzu derlemeden önce bu başlık dosyasını projenize "eklemeniz" gerekir. Bu, VEXcode Pro V5 IDE'nin projenizi oluşturmaya başlamadan önce bu yeni başlık dosyasının dahil edildiğinden "farkında olmasını" sağlar.
İşte nasıl:



Bu başlık dosyasında “common.h” (boşluksuz alfanümerik olduğu sürece istediğiniz ismi verebilirsiniz.)
Adım 2: Ayrı bir cpp dosyası oluşturun, örneğin common.cpp adında.

// Bu, common.cpp dosyasıdır
int getGCD(int a, int b) { int remainder =
while (remainder > )
remainder = a % b;
=
;
= remainder;
return a;
getGCD(...) fonksiyonunu bu dosyaya taşıyın
#include "vex.h"
#include "common.h"
using namespace vex;
int main() {
vexcodeInit();
Brain.Screen.printAt(5,60, "GCD ( %d, %d ) = %d", getGCD(60, 100) );
}
Artık ana cpp dosyasında sahip olduğunuz tek şey aşağıdakilerden oluşacaktır:
Referans:https://api.vexcode.cloud/v5/html/namespacevex.html
Gelecekteki konular VEX Kütüphanesinin daha ileri düzey bölümlerinde ele alınacaktır:
- Değere göre geçiş ve referansa göre geçiş
- Bir diziye geçiş
- Bir yapıya geçmek