Subprogramas
[Prog]
0-9
Pode utilizar [Prog] como instrução num programa, de modo a desbloquear
a execução de um programa escrito num outro local, Chamamos de
subprograma a um programa que se executa dentro de um outro programa.
Utilizar um subprograma é útil, especialmente nos seguintes casos:
l Para utilizar um programa já escrito num novo programa.
l Por razões de clareza, quando o subprograma representa um cálculo
longo ou complicado, que é melhor separar do resto.
l Quando o mesmo procedimento / cálculo é utilizado várias vezes num
programa.
Atenção: Se tiver instruções Goto num programa ou num subprograma,
verifique bem se eles dizem respeito aos Lbl que se encontram no mesmo
programa ou subprograma.
Ex:
Temos um programa Prog 0 que calcula um valor X a partir de vários
parâmetros.
No programa 1 temos as seguintes instruções:
Prog 0 : X+1→A
Quando o programa encontra a instrução Prog 0, executa o programa Prog
0 na sua integralidade e depois volta a Prog 1 para procurar a instrução
seguinte: coloca então o valor de X+1 na memória temporária A.
Exemplo recapitulativo: o jogo do número mistério
O princípio do jogo é o seguinte: a calculadora gera um número entre 1 e
999 e tem 12 tentativas para o descobrir.
Vamos programar este jogo em Prog 0, utilizando um subprograma, Prog 1,
para todos os preparativos do jogo.
Utilizamos as seguintes variáveis:
l A para o contador das 12 tentativas.
l N para o número a ser descoberto.
l X para o valor proposto pelo utilizador.
Para cada valor de A não nulo, pedimos um valor de X.
l Se X=N, ganhou e é proposto que jogue novamente.
l Se X>N, aparece a mensagem "Demasiado grande" e é pedido um novo
valor de X. Senão, é porque X é demasiado pequeno e é pedido também
um novo valor de X.
Se A=0, perdeu e é proposto que jogue novamente.
Prog 1 nomeia o valor 12 a A e gera um número inteiro entre 0 e 999, com a
ajuda de Ran# (número aleatório entre 0 e 0,999) e de Int (parte inteira).
Escrevemos Prog 1:
12"A:Int (Ran# x1000+1)"N
46
Inserido num programa, desbloqueia a execução do
subprograma especificado.
Copyright © Lexibook 007