2.1. Áreas de um Programa

Apesar de não ser uma linguagem de padrões rígidos com relação à estrutura do programa, é importante identificar algumas de suas partes.  Considere o programa de exemplo abaixo:

#include protheus.ch

/*
+===========================================+
| Programa: Cálculo do Fatorial             |
| Autor   : Microsiga Software S.A.         |
| Data    : 02 de outubro de 2001           |
+===========================================+
*/

User Function CalcFator()

Local nCnt
Local nResultado := 1  // Resultado do fatorial
Local nFator     := 5 // Número para o cálculo

// Cálculo do fatorial
For nCnt := nFator To 1 Step -1
nResultado *= nCnt
Next nCnt

// Exibe o resultado na tela, através da função alert
Alert("O fatorial de " + cValToChar(nFator) + ;
      " é " + cValToChar(nResultado))

// Termina o programa
Return

A estrutura de um programa ADVPL é composta pelas seguintes áreas:

Área de Identificação
Declaração dos includes
Declaração da função
Identificação do programa

Área de Ajustes Iniciais
Declaração das variáveis

Corpo do Programa
Preparação para o processamento
Processamento

Área de Encerramento

Área de Identificação

Esta é uma área que não é obrigatória e é dedicada a documentação do programa. Quando existente, contém apenas comentários explicando a sua finalidade, data de criação, autor, etc., e aparece no começo do programa, antes de qualquer linha de comando.

O formato para esta área não é definido. Pode-se colocar qualquer tipo de informação desejada e escolher a formatação apropriada.

#include “protheus.ch”

/*
+==========================================+
| Programa: Cálculo do Fatorial            |
| Autor   : Microsiga Software S.A.        |
| Data    : 02 de outubro de 2001          |
+==========================================+
*/

User Function CalcFator()


Opcionalmente podem-se incluir definições de constantes utilizadas no programa ou inclusão de arquivos de cabeçalho nesta área.

Área de Ajustes Iniciais

Nesta área geralmente se fazem os ajustes iniciais, importantes para o correto funcionamento do programa. Entre os ajustes se encontram declarações de variáveis, inicializações, abertura de arquivos, etc. Apesar do ADVPL não ser uma linguagem rígida e as variáveis poderem ser declaradas em qualquer lugar do programa, é aconselhável fazê-lo nesta área visando tornar o código mais legível e facilitar a identificação de variáveis não utilizadas.

Local nCnt
Local nResultado := 0  // Resultado do fatorial
Local nFator     := 10 // Número para o cálculo

Corpo do Programa

É nesta área que se encontram as linhas de código do programa. É onde se realiza a tarefa necessária através da organização lógica destas linhas de comando. Espera-se que as linhas de comando estejam organizadas de tal modo que no final desta área o resultado esperado seja obtido, seja ele armazenado em um arquivo ou em variáveis de memória, pronto para ser exibido ao usuário através de um relatório ou na tela.

// Cálculo do fatorial
For nCnt := nFator To 1 Step -1
nResultado *= nCnt
Next nCnt



A preparação para o processamento é formada pelo conjunto de validações e processamentos necessários antes da realização do processamento em si.

Avaliando o processamento do cálculo do fatorial descrito anteriormente, pode-se definir que a validação inicial a ser realizada é o conteúdo da variável nFator, pois a mesma determinará a correta execução do código.


// Cálculo do fatorial
nFator := GetFator()
// GetFator – função ilustrativa na qual a variável recebe a informação do usuário.

If nFator <= 0
         Alert(“Informação inválida”)
Return
Endif

For nCnt := nFator To 1 Step -1
nResultado *= nCnt
Next nCnt


Área de Encerramento

É nesta área onde as finalizações são efetuadas. É onde os arquivos abertos são fechados, e o resultado da execução do programa é utilizado. Pode-se exibir o resultado armazenado em uma variável ou em um arquivo ou simplesmente finalizar, caso a tarefa já tenha sido toda completada no corpo do programa. É nesta área que se encontra o encerramento do programa. Todo programa em ADVPL deve sempre terminar com a palavra chave return.

// Exibe o resultado na tela, através da função alert
Alert("O fatorial de " + cValToChar(nFator) + ;
      " é " + cValToChar(nResultado))

// Termina o programa
Return

Um comentário:

  1. Bom post para iniciantes. Bem explicado.
    Tem dicas boas também em:

    http://microsigadvpl.blogspot.com/

    Obrigado.
    Sérgio Makia
    sergiomakia83@hotmail.com

    ResponderExcluir

Caso você comente como anônimo (o que não seria o ideal), favor deixar seu nome e e-mail.

Abraço,

Murilo.