==== Subroutine ===== ==== Formato ==== **subroutine** subroutinename ( //lista de variáveis// )\\ //statements//\\ **end subroutine** **subroutine** subroutinename$ ( //lista de variáveis// )\\ //statements//\\ **end subroutine** ==== Descrição ==== Cria uma sub-rotina (ou subprograma) que vai receber zero ou mais valores e processar esses valores. A sub-rotina ao contrário da [[function|Function]] não devolve um valor. A execução de uma sub-rotina será encerrada e o controle será devolvido à "[[call | Call]] " quando a instrução [[return | Return]] é executada ou quando a sub-rotina termina com // End // . Todas as variáveis ​​utilizadas dentro da sub-rotina, que não tenham sido previamente declarados como [[global | Global]], são locais para a sub-rotina e não irão alterar os valores no código de chamada. As variáveis da ​​sub-rotina podem uma lista, numérica ou variáveis ​​de cadeia alfanumérica. Arrays e variáveis ​​podem ser passados ​​por referência usando [[Ref | Ref]]. Sub-rotinas devem ser definidos na parte inferior do programa, e não podem ser definidas dentro de outra [[function | Function]], [[Subroutine | Subroutine]] ou bloco de controle ([[ifthen | If/Then]], [[dountil | Do/Until]], ...) ==== Exemplo ==== # 100 random circles clg for x = 1 to 100 call draw() next x end function rnd(n) rnd = int(rand*n) end function subroutine draw() color rnd(256),rnd(256),rnd(256) circle rnd(graphwidth), rnd(graphheight), rnd(graphwidth/10) end subroutine draws\\ {{:en:subroutine_circle.png|Circles}} ==== Ver também ==== [[call|Call]], [[Function|Function]], [[Global|Global]], [[Ref|Ref]], [[Return|Return]] ==== Desde a versão ==== 0.9.9.1