VEXcode Pro V5'te İşlev Oluşturmak için Sözdizimini Anlamak

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ı

 VEXcode Pro V5 kod düzenleyicisinde, ana fonksiyonun tanımından önce getGCD'yi çağırdığı ve getGCD'nin bildirilmemiş tanımlayıcı hatası olarak vurgulandığı gösteriliyor.

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:

VEXcode Pro V5 arayüzü, klasör dahil etme bağlam menüsü açık ve başlık dosyası oluşturmak için Yeni Dosya seçeneği seçili.

Yeni Dosya Oluştur penceresinde, C++ başlık dosyası seçeneği işaretli ve dosya adı olarak common.h girilmiş olarak görünüyor.

VEXcode Pro V5 kod düzenleyicisinde, ayrı bir common.cpp dosyasında tanımlanmış getGCD fonksiyonunun gösterimi.

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.

Yeni Dosya Oluştur penceresinde, C++ kaynak dosyası seçeneği işaretli ve dosya adı olarak common.cpp girilmiş olarak görünüyor.

// 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

For more information, help, and tips, check out the many resources at VEX Professional Development Plus

Last Updated: