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.