• Nenhum resultado encontrado

Argumentos e parâme tros

No documento Logica Programação (páginas 57-59)

apresentam ainda uma caracte- rística importante e que consiste na possibilidade de se chamarem a si próprios, ou seja, um subpro- grama é invocado recursivamente pelo mesmo subprograma. Agora que você já sabe mais sobre os subprogramas, siga para a pró- xima seção!

Seção 3

Argumentos e parâme-

tros

Muitas vezes é necessário indicar explicitamente ao subprograma as condições sob as quais a sua execução vai ser realizada. Por essas razões, um subprograma poderá aceitar argumentos que determinam essas condições. Os argumentos poderão ser variáveis, constantes ou expressões. Na des- crição do subprograma, devem estar definidos os parâmetros que correspondem aos argumentos que o programa do nível acima determinou. Essas considerações são válidas para subprogramas definidos pelos programadores e para subprogramas predefinidos. Vamos entender melhor! Consi- dere, por exemplo, um subpro- grama, designado por AREA, para calcular a área de um retân- gulo, dados os comprimentos dos lados. Esse subprograma irá devolver o valor da área do re- tângulo. O subprograma seria invocado recorrendo a uma ins- trução do tipo “varA = AREA (varComprimento,varLargura)”.

A variável A seria de um tipo com- patível com o valor de retorno do subprograma. Já o comprimento e a largura seriam variáveis usadas como argumentos. O subprogra- ma seria definido da seguinte ma- neira. Observe!

funcao AREA (varX, varY : real) : real

var

varAux : real inicio

varAux ← varX * varY retorne varAux fimfuncao

No subprograma AREA estão definidos os parâmetros varX e varY do tipo real. Os parâmetros declaram-se imediatamente antes da chaveta que marca o início do conjunto de instruções que cons- tituem a função ou procedimento. Existe uma relação direta entre os argumentos usados na chamada de um subprograma e os parâme- tros definidos para esse subpro- grama. A esses parâmetros irão ser atribuídos os valores dos argu- mentos. Se o subprograma fosse invocado como “varA = AREA (10,5)”, os parâmetros varX e varY passariam a conter os valo- res 10 e 5, respectivamente. Note que não precisa existir nenhuma correspondência entre os nomes das variáveis definidas como pa- râmetros de um subprograma e os nomes de eventuais variáveis usadas como argumentos na cha- mada desse subprograma. Aliás, no exemplo anterior, o subpro- grama foi invocado com valores constantes.

Outra possibilidade é a utilização de expressões com significado dentro do programa a partir do qual o subprograma é executado. Por exemplo: “varA = AREA( varX * 2, varLargura / 10 )”.

Nesse caso, a variável varX usada na expressão correspondente ao pri- meiro argumento tem um significado diferente do parâmetro varX usa- do na definição do subprograma, embora os nomes sejam iguais. Lem- bre-se de que é muito importante ter bem clara a distinção entre essas situações. Vamos em frente!

Seção 4

Funções

Na seção anterior você conheceu uma característica importante: o sub- programa AREA possui um valor de retorno. Ou seja, devolve um valor determinado que pode ser utilizado pelo programa que o invocou. Os subprogramas que apresentam essa característica designam-se por fun- ções. As funções podem ser definidas com ou sem parâmetros.

algoritmo “QUADRADO”

funcao QUADRADO (varX : real) : real var

varAux : real inicio

varAux <- varX * varX retorne varAux fimfuncao var

varNumero, varResultado : real varFim : logico

inicio

enquanto varFim = falso faca leia (varNumero)

se varNumero = 0 entao varFim = verdadeiro senão

varResultado ← QUADRADO (varNumero)

escreva (“Quadrado de ”, varNumero, “ é ”, varResultado) fimse

fimenquanto fimalgoritmo

As funções incluem sempre a pa- lavra retorne, seguida do valor a de-

volver ou de uma expressão que defina esse valor. Nas funções é também necessário indicar o tipo do valor de retorno. A linha “fun- cao QUADRADO (varX : real) : real” indica uma função designa- da por QUADRADO que aceita um parâmetro varX e retorna um valor real.

Genericamente, a sintaxe para definição de uma função é a que você verá a seguir.

funcao <nome-de-função> [(<seqüência-de-declarações- -de-parâmetros>)]:

<tipo-de-dado>

// Seção de Declarações In- ternas

inicio

// Seção de Comandos fimfuncao

Mas lembre-se de que a lista de parâmetros e declarações respec- tivas são opcionais.

58 CURSOS TÉCNICOS SENAI

Seção 5

Procedimentos

Os procedimentos são subprogramas que se distinguem das funções pelo fato de não apresentarem qualquer valor de retorno. Os procedimentos, tal como as funções, podem apresentar ou não uma lista de parâmetros que definem a forma como o procedimento irá ser executado. Tal como nas funções, é necessário declarar os parâmetros do procedimento, caso existam. Por exemplo, considere-se o programa que permite o cálculo da área de um retângulo, escrevendo o valor calculado. Nesse programa foram definidos dois subprogramas: a função AREA, que permite o cálculo da área do retângulo, e o procedimento ESCREVE_AREA, que apresenta o resultado calculado. O programa termina se for introduzido um valor negativo para o comprimento de um lado do retângulo.

algoritmo “AREA”

funcao AREA (varX, varY : real) : real var

varAux : real inicio

varAux ß varX * varY retorne varAux fimfuncao

procedimento ESCREVE_AREA (varX : real) inicio

escreva (“O valor da área é ”, varX) fimfuncao

var

varX, varY, varA : real varFim : logico inicio

repita leia (varX) leia (varY)

se varX < 0 ou varY < 0 entao varFim = verdadeiro senão

varA ← AREA (varX, varY) ESCREVE_AREA(varA) fimse

ate varFim = falso fimalgoritmo

Note que as funções e procedi- mentos que eventualmente pos- sam existir em um programa são sempre definidos antes do proce- dimento especial “inicio”. Portan- to, fique atento!

Genericamente, a sintaxe para de- finição de um procedimento é a seguinte, veja: procedimento <nome-de- -procedimento> [(<seqüên- cia-de-declarações-de-parâ- metros>)]

// Seção de Declarações In- ternas

inicio

// Seção de Comandos fimprocedimento

Tal como no caso das funções, a lista de parâmetros e declarações respectivas são opcionais.

Seção 6

Âmbito de variáveis

No documento Logica Programação (páginas 57-59)

Documentos relacionados