Aprendendo a Programar Programando em Linguagem C - FSM
Aprendendo a Programar Programando em Linguagem C - FSM
Aprendendo a Programar Programando em Linguagem C - FSM
You also want an ePaper? Increase the reach of your titles
YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.
com uma função <strong>em</strong> relação àquele do ex<strong>em</strong>plo já citado, que realizava todas as ações necessárias dentro da<br />
função main(). Na verdade, a utilização de funções só é bastante vantajosa quando se trata de programas<br />
grandes, capazes de realizar diversas tarefas independentes, mas relacionadas. Por ex<strong>em</strong>plo, um programa<br />
que gerencie as contas correntes de um banco deve ser capaz, entre outras coisas, de fornecer o saldo de uma<br />
dada conta; atualizar o saldo <strong>em</strong> função da ocorrência de uma retirada ou de um depósito; cadastrar uma<br />
nova conta; excluir do cadastro uma dada conta, etc. Naturalmente, <strong>em</strong>bora estas tarefas estejam<br />
relacionadas, deve-se pretender que elas sejam realizadas de forma independente, pois um dado cliente num<br />
dado momento pode querer a realização de apenas uma delas.<br />
Num caso como este, o programa deve possuir uma função para cada uma das tarefas pretendidas,<br />
ficando a cargo da função main() a chamada de uma ou de outra função de acordo com a tarefa pretendida.<br />
Isto permite que vários programadores desenvolvam o programa (cada um desenvolvendo algumas funções),<br />
facilita a realização de testes de correção do programa (as funções pod<strong>em</strong> ser testadas de forma isolada) e a<br />
manutenção posterior do programa (modificações necessárias no programa pod<strong>em</strong> ficar restritas a<br />
modificações <strong>em</strong> algumas das funções). Na verdade, a modularização do programa só traz benefícios e deve<br />
ser uma prática de todo programador.<br />
É comum que um programa "multi-tarefa" como o ex<strong>em</strong>plificado acima seja iniciado com a<br />
disponibilização para o usuário das diversas tarefas que ele é capaz de executar. Normalmente, este conjunto<br />
de tarefas é chamado de menu de opções e pode ser obtido através de uma função que não retorna nenhum<br />
valor. Considerando apenas as tarefas listadas acima, o menu de opções do programa referido poderia ser<br />
construído a partir da seguinte função.<br />
void Menu()<br />
{<br />
printf("1-Saldo \n 2-Depósito \n 3-Retirada \n 4-Nova conta \n 5-Encerra conta \n 6-Sai do<br />
programa);"<br />
}<br />
Neste caso, uma das primeiras instruções da função main() é a ativação da função Menu() com a<br />
simples referência ao seu identificador seguido de parênteses vazios e de ponto-e-vírgula:<br />
main()<br />
{<br />
Menu();<br />
. . .<br />
}<br />
Observe que esta função ex<strong>em</strong>plifica uma função que não retorna um valor (daí ser do tipo void) e<br />
cuja Lista de parâmetros é vazia.<br />
Atualmente, com a disponibilização das linguagens visuais (VisualBasic, Delphi e outras), os menus<br />
de opções são disponibilizados através de interfaces programa/usuário (contendo botões, banners e outras<br />
denominações) e as ativações das funções que executam a tarefa pretendida é feita através de mouses ou<br />
mesmo através de toque manual na tela do computador. Exist<strong>em</strong> algumas bibliotecas gráficas que permit<strong>em</strong><br />
que se cri<strong>em</strong> interfaces de programas <strong>em</strong> C; porém, o estudo destas bibliotecas não está no escopo deste<br />
livro.<br />
Outra aplicação importante de funções se dá quando há necessidade de que o programa determine a<br />
mesma grandeza para valores diferentes. Um ex<strong>em</strong>plo típico desta necessidade aparece num programa que<br />
determine medidas estatísticas, como média aritmética, mediana, desvio médio, desvio padrão, de uma<br />
relação de números. Como o desvio médio é a média aritmética dos valores absolutos dos desvios <strong>em</strong> relação<br />
à média, o seu cálculo exigirá a determinação da média aritmética da relação e a média aritmética dos<br />
desvios. Escrever<strong>em</strong>os então uma função para o cálculo da média de uma relação qualquer e a utilizar<strong>em</strong>os<br />
para os cálculos das duas médias necessárias. Este ex<strong>em</strong>plo será visto no capítulo seguinte.<br />
5.3 Passag<strong>em</strong> de parâmetros<br />
Uma outra possível utilização de funções é para substituir uma sequência de instruções que se repete<br />
<strong>em</strong> várias partes do programa. Por ex<strong>em</strong>plo, o ex<strong>em</strong>plo 3 da seção 3.4 apresentava um programa para<br />
ordenar três números: