User Tools

Site Tools


pt:subroutine

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

pt:subroutine [2020/02/28 10:46] (current)
Line 1: Line 1:
 +==== 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 ====
 +
 +<code>
 +# 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
 +</code>
 +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
pt/subroutine.txt · Last modified: 2020/02/28 10:46 (external edit)