Cursos / Jogos Digitais / Programação Estruturada / Aula

arrow_back Aula 08 - Funções e procedimentos

4. Procedimentos

Vamos ao segundo tipo de rotina que podemos criar, os chamados procedimentos, que são as rotinas que não retornam valor. É isso mesmo, essa é a única diferença entre funções e procedimentos! Por isso, é comum algumas pessoas no dia a dia se referirem a funções e procedimentos como uma coisa só. Evite isso! Use sempre a terminologia certa para cada tipo de rotina.

Você já deve ter percebido que já faz uso de um procedimento. Sabe de qual procedimento estou falando? Identifique-o no programa a seguir:

Conseguiu identificar? É a rotina main. Ela é um procedimento! É uma rotina que recebe como argumento um array de Strings e que não retorna nada. Isso pode ser verificado pela palavra chave void que está no lugar do tipo de retorno. O void representa o conjunto vazio, indicando que não há valor válido a ser retornado. Em outras palavras, o void indica que a rotina não retorna nada, ou seja, que ela é um procedimento.

Dessa forma, o que muda na forma geral de se declarar um procedimento é a presença do void no lugar do tipo de retorno:

Vejamos um exemplo de código que faz uso de outros procedimentos além do main:

Essa nova versão do programa que calcula a média de 4 notas e da situação do aluno agora tem um procedimento chamado de pegarNotas. Esse procedimento está encapsulando o código que lê as notas, que chama as funções calcularMedia() e verificarSituacaoAluno(), e que imprime as informações na tela.

Vamos agora observar dois pontos importantes no código do ProgramaFuncaoMedia3. Em primeiro lugar, observe que uma rotina (função ou procedimento) pode chamar outra rotina. No caso, a rotina main está chamando a rotina pegarNotas() que por sua vez chama as rotinas calcularMedia() e verificarSituacaoAluno(). É muito comum em sistemas grandes observarmos essas situações de funções e procedimentos que chamam outras funções e procedimentos.

O segundo ponto que você pode inclusive estar se perguntando é se vale à pena criar o procedimento pegarNotas(). Essa questão é um pouco mais complicada. Olhando só o código mostrado, temos uma simplificação extrema da rotina main. Para algumas pessoas, isso pode não ser um benefício suficiente para justificar a criação de uma nova rotina. Porém, a criação da rotina pegarNotas() permite que outras partes do sistema (outras classes) façam uso dela. Se isso for necessário, passa a ser interessante a criação dessa rotina pegarNotas().

Versão 5.3 - Todos os Direitos reservados