Definição de uma função
A definição de uma função se dá por meio de um cabeçalho e de um corpo. O cabeçalho é constituído pelo tipo retornado, pelo nome da função, bem como pelos parâmetros que a mesma recebe. Os parâmetros são declarações dos tipos dos valores ou os dados que serão passados para a função, e sobre os quais a função poderá operar. Os dados ou valores passados são denominados de argumentos. Por exemplo, se desejássemos que uma função efetue uma operação matemática de divisão de dois números inteiros e nos devolva o resultado que poderia ser valor um ponto flutuante, poderíamos ter o cabeçalho da definição assim:
float Opera_Divisao( int, int)
Já o corpo da função consiste de uma chave de abertura
{
seguida pelos comandos que executam a tarefa da função, seguidos pela chave de fechamento
}
Por exemplo:
float Opera_Divisao( int Divsr, int Divdnd)
{
float Result = Divsr / Divdnd;
Return Result;
}
O Exemplo abaixo possui um Button, um Edit e um Label. Preste bastante atenção nos comentários, pois eles explicam os códigos com detalhes:
//---------------------------------------------------------------------------
#include <vcl.h>
#pragma hdrstop
#include "Unit1.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
//---------------------------------------------------------------------------
/* Protótipo da função com o tipo retornado,
o nome da função e o parâmetro entre parênteses*/
AnsiString Recb_Pass(AnsiString);
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
: TForm(Owner)
{
/* Cria um texto para Edit1 e um caption para Label1 em tempo de execução*/
Edit1 -> Text = "Essa string será passada para"
" a função Recb_Pass() que a imprimirá em Label1";
Label1 -> Caption = "Esta string será devolvida para Edit1";
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button1Click(TObject *Sender)
{
AnsiString Valor_Devolvido; // declara variável para receber valor de Recb_Pass()
/* recebe valor devolvido pelo comando return de Recb_Pass()*/
Valor_Devolvido =
/*Texto de Edit1 será passado como parâmetro para Recb_Pass()*/
Recb_Pass (Edit1 -> Text);
/*O valor devolvido por Recb_Pass() será o novo texto de Edit1*/
Edit1 -> Text = Valor_Devolvido;
/*Desabilita Button1 para evitar que valores sejam trocados a cada clique do mouse*/
Button1 -> Enabled = false;
}
//---------------------------------------------------------------------------
//Definição de Recb_Pass()
//Recb_Pass() devolverá um valor tipo AnsiString
//Recb_Pass() receberá AnsiString de Edit1->Text
AnsiString Recb_Pass(AnsiString Valor_Recebido)
{
/*Antes de alterar o caption de Label1, acumula o valor atual na variável
Valor_a_Devolver para retorná-lo via comando return*/
AnsiString Valor_a_Devolver = Form1 -> Label1 -> Caption;
//Coloca o valor recebido no Caption de Label
Form1 -> Label1 -> Caption = Valor_Recebido;
//Devolve o valor acumulado do caption de Label1
return Valor_a_Devolver;
}
|
HOME || MAPA DO SITE || CURSOS || TUTORIAIS || LINKS || FORUM || CONTATO |