Pascal - Funções
Subprogramas
Um subprograma é uma unidade / módulo de programa que executa uma tarefa específica. Esses subprogramas são combinados para formar programas maiores. Isso é basicamente chamado de 'design modular'. Um subprograma pode ser invocado por um subprograma / programa, que é chamado de programa de chamada.
Pascal fornece dois tipos de subprogramas -
Functions - esses subprogramas retornam um único valor.
Procedures - esses subprogramas não retornam um valor diretamente.
Funções
UMA functioné um grupo de declarações que juntas executam uma tarefa. Cada programa Pascal tem pelo menos uma função, que é o próprio programa, e todos os programas mais triviais podem definir funções adicionais.
Uma função declarationinforma ao compilador sobre o nome, o tipo de retorno e os parâmetros de uma função. Uma funçãodefinition fornece o corpo real da função.
A biblioteca padrão Pascal fornece várias funções integradas que seu programa pode chamar. Por exemplo, funçãoAppendStr() acrescenta duas strings, função New() aloca dinamicamente memória para variáveis e muitas outras funções.
Definindo uma função
Em Pascal, um functioné definido usando a palavra-chave de função. A forma geral de definição de uma função é a seguinte -
function name(argument(s): type1; argument(s): type2; ...): function_type;
local declarations;
begin
...
< statements >
...
name:= expression;
end;
Uma definição de função em Pascal consiste em uma função header, local declarations e uma função body. O cabeçalho da função consiste na função de palavra-chave e umnamedado à função. Aqui estão todas as partes de uma função -
Arguments- O (s) argumento (s) estabelecem a ligação entre o programa de chamada e os identificadores de função e também chamados de parâmetros formais. Um parâmetro é como um espaço reservado. Quando uma função é chamada, você passa um valor para o parâmetro. Esse valor é conhecido como parâmetro ou argumento real. A lista de parâmetros se refere ao tipo, ordem e número de parâmetros de uma função. O uso de tais parâmetros formais é opcional. Esses parâmetros podem ter tipo de dados padrão, tipo de dados definido pelo usuário ou tipo de dados de subfaixa.
A lista de parâmetros formais que aparece na instrução da função pode ser variáveis simples ou subscritas, arrays ou variáveis estruturadas ou subprogramas.
Return Type- Todas as funções devem retornar um valor, portanto, todas as funções devem receber um tipo. ofunction-typeé o tipo de dados do valor que a função retorna. Pode ser padrão, escalar definido pelo usuário ou tipo de subfaixa, mas não pode ser do tipo estruturado.
Local declarations - As declarações locais referem-se às declarações para rótulos, constantes, variáveis, funções e procedimentos, que são aplicados apenas ao corpo da função.
Function Body- O corpo da função contém uma coleção de instruções que definem o que a função faz. Deve sempre ser colocado entre as palavras reservadas início e fim. É a parte de uma função onde todos os cálculos são feitos. Deve haver uma declaração de atribuição do tipo -name := expression;no corpo da função que atribui um valor ao nome da função. Este valor é retornado como e quando a função é executada. A última declaração no corpo deve ser uma declaração final.
A seguir está um exemplo que mostra como definir uma função em pascal -
(* function returning the max between two numbers *)
function max(num1, num2: integer): integer;
var
(* local variable declaration *)
result: integer;
begin
if (num1 > num2) then
result := num1
else
result := num2;
max := result;
end;
Declarações de função
Uma função declarationinforma ao compilador sobre o nome de uma função e como chamá-la. O corpo real da função pode ser definido separadamente.
Uma declaração de função tem as seguintes partes -
function name(argument(s): type1; argument(s): type2; ...): function_type;
Para a função max () definida acima, a seguir está a declaração da função -
function max(num1, num2: integer): integer;
A declaração da função é necessária quando você define uma função em um arquivo de origem e chama essa função em outro arquivo. Nesse caso, você deve declarar a função na parte superior do arquivo que está chamando a função.
Chamando uma função
Ao criar uma função, você dá uma definição do que a função deve fazer. Para usar uma função, você terá que chamar essa função para executar a tarefa definida. Quando um programa chama uma função, o controle do programa é transferido para a função chamada. Uma função chamada executa uma tarefa definida e, quando sua instrução de retorno é executada ou quando a última instrução de fim é alcançada, ela retorna o controle do programa para o programa principal.
Para chamar uma função, você simplesmente precisa passar os parâmetros necessários junto com o nome da função e, se a função retornar um valor, você pode armazenar o valor retornado. A seguir está um exemplo simples para mostrar o uso -
program exFunction;
var
a, b, ret : integer;
(*function definition *)
function max(num1, num2: integer): integer;
var
(* local variable declaration *)
result: integer;
begin
if (num1 > num2) then
result := num1
else
result := num2;
max := result;
end;
begin
a := 100;
b := 200;
(* calling a function to get max value *)
ret := max(a, b);
writeln( 'Max value is : ', ret );
end.
Quando o código acima é compilado e executado, ele produz o seguinte resultado -
Max value is : 200