22.10.2014 Views

Aprendendo a Programar Programando em Linguagem C - FSM

Aprendendo a Programar Programando em Linguagem C - FSM

Aprendendo a Programar Programando em Linguagem C - FSM

SHOW MORE
SHOW LESS

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:

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!