SUBs, FUNCTIONs, DECLARE, etc.

  Bom, provavelmente voce sabe como usar o GOTO no Qbasic, certo? Mas acontece que muitos programadores nao gostam desse comando, porque deixa o programa desorganizado, desestruturado. Para isso existem os SUBs e FUNCTIONs.

SUBs e FUNCTIONs sao subprogramas, ou seja, algumas linhas de programacao que voce resolve separar do resto do programa, para ficar mais organizado. Claro, existem algumas vantagens:

  1. Voce pode chamar (executar) o SUB ou FUNCTION facilmente, de qualquer parte do programa.
  2. Voce pode "passar" algumas variaveis para esse SUB/FUNCTION, que vai passar a usar essas variaveis. Se voce ainda nao entendeu, vai entender.

Antes de voce fazer o SUB/FUNCTION, voce deve declara-los, dizer ao programa que eles existem. Para isso voce usa o DECLARE, no inicio do programa, antes de qualquer outra coisa (bem, voce pode colocar comentarios e DEFINT A-Z, por exemplo). Assim:

DECLARE {SUB/FUNCTION} Nome (variavel1, variavel2, ...)

Vamos imaginar que voce vai criar um SUB chamado Apresentacao, e que vai passar a esse SUB as variaveis x e y. Ficaria assim:

DECLARE SUB Apresentacao (x, y)

Se nao quiser declarar nenhuma variavel, ainda assim voce tem que colocar os parenteses:

DECLARE SUB Apresentacao ()

Mas vamos considerar o primeiro exemplo. Agora sim voce vai escrever o conteudo do SUB. Digite:

SUB Apresentacao (x, y)

(e de Enter)
Entao vai aparecer no Qbasic:

SUB Apresentacao (x, y)

END SUB
 

Entre essas duas linhas voce deve digitar o conteudo do seu SUB.
 

Exemplo:

SUB Apresentacao (x, y)

LOCATE y, x: PRINT "Apresentacao do Teste de SUBs"
LOCATE y + 1, x: PRINT "Dezembro '98"

END SUB

Ai' voce aperta F2. Vai aparecer uma janela com o nome do arquivo que voce esta' editando e o nome do SUB. Voce entao escolhe a opcao que tem o nome do arquivo. A essa secao damos o nome de "modulo principal", ou "programa principal", ou qualquer outro nome que voce queira adotar.

Para chamar o SUB, basta digitar o nome dele, seguido das variaveis (separadas por virgula).

No nosso caso:

Apresentacao x, y

(Isso chama - executa - o SUB Apresentacao)

Mas voce pode, em vez de colocar variaveis, colocar valores. Por exemplo:

Apresentacao 10, 2

Ai' o SUB vai considerar que x = 10 e y = 2.

---

Agora vamos falar um pouco de FUNCTIONs. Inicialmente, sao iguais a SUBs. Voce declara, escreve o conteudo, etc. A diferenca e' que eles retornam um resultado. Ou seja, quando voce executa um FUNCTION, ele "diz" um valor. Para isso, voce coloca, em alguma parte do FUNCTION, algo desse tipo:

NomeDoFunction =  variavel ou valor

Exemplos: Soma% = resultado%
          Soma% = 0

E quando voce for chamar o FUNCTION, voce tem que dizer que variavel vai receber o valor retornado.

Ah, e um FUNCTION e' como uma variavel, voce tem que especificar se e' numero inteiro, decimal, texto, etc. (%, !, $, etc.). Se o FUNCTION vai retornar um numero, o FUNCTION deve ser do tipo do numero. Se for texto, deve ser do tipo texto ($).

Vamos fazer um pequeno programa exemplo:

DECLARE FUNCTION Soma% (x, y)

a = Soma%(3, 2)
PRINT a

------- e o FUNCTION fica:

FUNCTION Soma%  (x, y)

Soma% = x + y

END FUNCTION

----
 

Consideracoes finais:

  Em um SUB/FUNCTION, voce nao pode usar variaveis que estejam fora dele. Se voce fizer isso, a variavel (no SUB/FUNCTION) vai ter valor 0, ou "". Se voce quiser fazer isso, voce deve declarar a variavel (no programa principal), como variavel global (ou seja, que pode ser usada em todo o programa).

E' facil:

DIM SHARED variavel1, variavel2, ...

Ex.: DIM SHARED nome$, idade%, endereco$

Outros comandos que voce pode explorar sao STATIC, COMMON SHARED, SHARED e EXIT. 1