Funções Algoritmicas



next up previous contents
Next: Recursividade Up: A Linguagem Algoritmica Previous: Instrução Iterativa para

Funções Algoritmicas

Vimos na secção 3.3 que podemos utilizar diversos operadores e funções matemáticas nos nossos algoritmos. Adicionalmente, podemos também definir novas funções. A utilização de funções algoritmicas tem duas vantagens principais:

Iremos utilizar a seguinte notação para escrever funções (este exemplo é uma função que calcula a média de três numeros):

 

Na primeira linha começamos por declarar o nome da função (media). Depois dos dois pontos indicamos os tipos dos parâmetros separados pelo simbolo ``''; neste caso a função tem três parâmetros, todos eles do tipo REAL. Finalmente, depois do simbolo ``'' indicamos o tipo do resultado que a função vai produzir.

Na segunda linha indica-se, entre parêntises, os nomes dos parâmetros. Note que o tipo do primeiro parâmetro será o tipo indicado em primeiro lugar na linha anterior, o tipo do segundo será o segundo tipo indicado e assim sucessivamente. Neste caso temos os parâmetros valor1, valor2 e valor3, todos do tipo REAL.

Finalmente é definido o algoritmo correspondente à função. O resultado que a função produz é definido pela instrução resultado, neste caso o resultado da função será o valor da variável med.

Podemos agora escrever um algoritmo que utilize a função média:

 

A função média é invocada três vezes neste algoritmo, de cada vez, com argumentos diferentes. A primeira vez é invocada com os argumentos a, b e c. Estes têm os valores 2.0, 6.1 e 7.5, respectivamente. Quando a função é invocada, este valores são copiados para os parâmetros valor1, valor2 e valor3, respectivamente. O algoritmo da função é então executado e a variável med irá tomar o valor 5.2, o qual será então devolvido como resultado da função e colocado na variável d.

Na segunda invocação da função a ordem dos argumentos é diferente. Assim, neste caso, os parâmetros valor1, valor2 e valor3 tomaram os valores 7.5, 2.0 e 6.1, respectivamente. É fácil de verificar que o resultado da função será também 5.2.

A terceira invocação da função mostra a versatilidade com que podemos escrever os argumentos. O primeiro argumento é uma variável (b), o segundo é uma constante (3.2) e o terceiro uma expressão (a+7). A correspondencia entre argumentos e parâmetros faz com que os parâmetros valor1, valor2 e valor3 tomem os valores 6.1, 3.2 e 9.0, respectivamente. Dentro da função a variável med tomará o valor 18.3/3.0, ou seja, 6.1, o qual será o resultado da função. Os resultados da segunda e terceira invocações da função são então somados e o resultado da soma (11.3) é atribuio à variável e.

Embora simples este exemplo mostra alguns pontos importantes sobre a utilização de funções:

As variáveis utilizadas dentro de uma função (incluindo os parâmetros) chamam-se variáveis locais. Isto significa que elas só são conhecidas dentro da função. Por exemplo, as variáveis valor1, valor2, valor3 e med usadas na função media são variáveis locais da função e, por isso, desconhecidas fora da mesma. Apenas o nome da função é conhecido fora dela, de modo a ser utilizado na invocação.

Note-se que o uso de variáveis locais numa dada função, não impede o uso de variáveis com o mesmo nome noutra função ou no algoritmo principal. No algoritmo 3.7 em vez das variáveis a, b, c e d, podriamos ter utilizados as variáveis valor1, valor2, valor3 e valor4. Embora com o mesmo nome, as variáveis valor1, valor2 e valor3 da função seriam diferentes das variáveis valor1, valor2 e valor3 do algoritmo principal.

Caso a função não produza nenhum resultado (uma função para escrever valores, por exemplo), não é colocado nenhum tipo depois do simbolo ``'' e não é utilizada a instrução resultado.





next up previous contents
Next: Recursividade Up: A Linguagem Algoritmica Previous: Instrução Iterativa para



Jose Franscisco Creissac Campos
Wed Jan 31 22:03:31 MET 1996