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 [2016/01/01 22:48] (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: 2016/01/01 22:48 (external edit)