Esta é a primeira aula e introdução ao estudo das funções e procedimentos. Modularizar nosso programa significa dividir em partes, em módulos, onde cada módulo (função ou procedimento) resolve uma pequena parte do problema. Então, vamos entender melhor como e por que modularizar nossos programas e nas próximas aulas vamos aprender como criar nossas funções e procedimentos.
Outro nome muito comum utilizado para modularização é sub-rotina. Há inclusive uma aba no Portugol Studio com exemplos de sub-rotinas, como apresentada na figura a seguir.
Modularização ou sub-rotinas são pequenos trechos de código que resolvem um problema bem específico. Na programação, todo problema pode ser dividido em problemas menores. Imagine o problema de identificar se uma matriz é um quadrado magico. Para resolver este problema pprecisamos resolver uma série de problemas menores, como:
- calcular a soma de cada linha
- calcular a soma de cada coluna
- calcular a soma da diagonal principal
- calcular a soma da diagonal secundária
Uma matriz 5 x 5 por exemplo possui 5 linhas e 5 colunas. Como precisamos descobrir o somatória de cada linha e de cada coluna, podemos então escrever um pequeno trecho de código para calcular o somatório de uma linha x, e outro para calcular o somatório da coluna x. Uma vez escritos, posso utilizar quantas vezes for necessário. Nas aulas seguintes faremos isso na prática.
Qual a diferença entre uma função e um procedimento?
As duas coisas, função e procedimento, possuem basicamente a mesma definição, são pequenos trechos de código que executam uma ação bem específica, ou ainda, resolvem um problema bem específico. Mas então, qual a diferença?
É simples. Imagine que vamos escrever um trecho de código para imprimir um vetor na tela. Perceba que a única ação a ser feita é imprimir os elementos do vetor na tela.
Agora, imagine que vamos escrever um trecho de código para calcular uma soma, a soma dos elementos de um vetor. Se vamos calcular uma soma, significa que precisamos do resultado, então esse resultado precisa ser retornado para quem chamou esse trecho de código.
Essa é a diferença entre função e procedimento. Uma função realização alguma ação e retorna algum valor, enquanto que um procedimento apenas realiza alguma ação, não retornando nenhum valor.
Um procedimento tem o padrão a seguir, a palavra reservada “função” seguida do identificador (nome) do procedimento.
funcao imprimirVetor(){ // código para imprimir o vetor }
Uma função tem o padrão a seguir, a palavra reservada “função” seguida do tipo de retorno, neste caso um número inteiro, e do identificador (nome) da função. Perceba que ao final temos a palavra reservada retorne que irá retornar o valor da variável soma.
funcao inteiro somarVetor(){ inteiro soma // código para calcular a soma de um vetor. ... retorne soma }
Não se preocupe se esses conceitos parecem abstratos demais por enquanto. Esta é apenas a primeira aula. Nas aulas seguintes veremos exemplos e escreveremos nossas funções e procedimentos.