Pochopení syntaxe pro vytváření funkcí ve VEXcode Pro V5

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.

Definice funkce

Nyní, když jsme prošli několika ukázkami, podívejme se na obecnou formu definice funkce:

void function-name() {

	Deklarace proměnných atd.
	Výrazy...
	//není nutný žádný explicitní návrat.
}

Funkce nevrací žádnou speciální hodnotu ani žádné vstupní parametry.

void název-funkce(proměnná datového typu) {

	Deklarace proměnných atd.
	Výrazy...
	//není nutný žádný explicitní návrat.
}

Pokud chcete více proměnných, jednoduše použijte "," jako oddělovač:

Funkce nevrací žádnou speciální hodnotu, ale s jedním parametrem.

void název-funkce (proměnná datového typu, proměnná datového typu atd.) {

	Deklarace proměnných atd.
	Výrazy...
	//není nutný žádný explicitní návrat.
}

Funkce nevrací žádnou speciální hodnotu, ale s více než jedním parametrem.

void název-funkce (proměnná datového typu, proměnná datového typu atd.) {

	Deklarace proměnných atd.
	Výrazy...
	návratová hodnota
}

Funkce vrací hodnotu určitého datového typu a s více než jedním vstupním parametrem.

Typreturnfunkce musí být stejný jako datový typ návratové hodnoty, kterou funkce vrací. Návratová hodnotamůže být konstantní nebo proměnná. Před ním musí být klíčové slovo „return.

Typ návratu se řídí následujícími pravidly:

  • Pro návratový typ neexistují téměř žádná omezení, kromě pole. (Pole je další pokročilejší téma týkající se vytváření dat. Je to mimo rozsah tohoto článku a není zde zahrnuto.
  • Zadání, že návratový typ „void“ znamená, že není nutná žádná návratová hodnota. Klauzule „návrat“ je implicitní. To znamená, že musíte explicitně uvést „return“ na konci funkce „void“.

Vytvoření funkce před main() nebo po?

Kompilátor přečte váš soubor shora dolů. Na pořadí tedy záleží.

Vezměme si jako příklad jednoduchou funkci Greatest Common Denominator (GCD). Zobrazí se chyba:použití nedeklarovaného identifikátoru 'getGCD'

 Snímek obrazovky programovacího rozhraní VEXcode V5 zobrazující různé bloky kódování a možnosti programování systémů VEX Robotics, ilustrující funkce dostupné pro uživatele v sekci programování.

Ve skutečnosti to platí, ať už je to z hlavního() nebo jiného volajícího funkčního bloku, tj. „volaný funkční blok“ musí předcházet „volajícímu funkčnímu bloku“.

Dvě možná řešení:

int getGCD(int a, int b) {
  int zbytek = 1;
  while (zbytek > 0) {
    zbytek = a % b;
    a = b;
    b = zbytek;
  }
  návrat a;
}


int main() {
	Brain.Screen.printAt(5,60, “GCD ( %d, %d ) = %d”, getGCD(60, 100) );
}
	

Přesuňte „volanou funkci“ nad „volající funkční blok“ v příkladu „main().“

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 zbytek = 1;
  while (zbytek > 0) {
    zbytek = a % b;
    a = b;
    b = zbytek;
  }
  vrátit a;
}
	

Umístěte prototyp (nazývaný také podpis) funkce před „volající funkční blok“.


Co když chcete modularizovat funkce v různých souborech?

Krok 1: Vytvořte hlavičkový soubor a do tohoto souboru vložte prototyp funkce.

např. vytvořte soubor s názvem „myFuncs.h“

Tento soubor záhlaví musíte „přidat“ do svého projektu před kompilací kódu. To umožňuje IDE VEXcode Pro V5 „být si vědom“ zahrnutí tohoto nového hlavičkového souboru předtím, než začne budovat váš projekt.

Zde je postup:

Snímek obrazovky programovacího rozhraní zobrazující funkce kategorie V5, včetně úryvků kódu a nástrojů pro vývojáře, ilustrující funkce dostupné v sekci programování.

Snímek obrazovky obsahu souvisejícího s programováním v popisu kategorie V5, který ukazuje klíčové vlastnosti a funkce pro vývojáře.

Snímek obrazovky s popisem kategorie programování V5, představující klíčové vlastnosti a funkce související s programováním na platformě V5.

V tomto záhlaví souboru „common.h“ (můžete si pojmenovat, co chcete, pokud je alfanumerický bez mezery.)

Krok 2: Vytvořte samostatný soubor cpp, např. nazvaný common.cpp

Snímek obrazovky programovacího rozhraní předvádějící různé možnosti a funkce kódování, ilustrující funkčnost a rozložení popisu kategorie V5 v sekci programování.

//toto je soubor common.cpp

int getGCD(int a, int b) {
  int zbytek = 1;
  while (zbytek > 0) {
    zbytek = a % b;
    a = b;
    b = zbytek;
  }
  návrat a;
}

Do tohoto souboru přesuňte funkci getGCD(...).

#include "vex.h"
#include "common.h"
pomocí jmenného prostoru vex;

int main() { 
  vexcodeInit();
	Brain.Screen.printAt(5,60, "GCD ( %d, %d ) = %d", getGCD(60, 100) );
}

Nyní se vše, co máte v hlavním souboru cpp, bude skládat z následujícího

Reference:https://api.vexcode.cloud/v5/html/namespacevex.html

Budoucí témata budou v budoucnu pokryta v pokročilejších částech knihovny VEX:

  • Předat podle hodnoty vs. předat podle reference
  • Předejte v poli
  • Předejte ve struktuře

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

Last Updated: