3.1 - Perguntas básicas para implementar um algoritmo
No restante desta apostila procuraremos mostrar como desenvolver programas utilizando as linguagens C e Python. Os problemas que abordaremos são, em sua
maioria, bastante simples, no sentido de ser possível resolvê-los manualmente (sem o auxílio de programas de computador). A dificuldade consiste em obter
soluções computacinais para tais problemas, ou seja, em escrever um processo que resolva tais problemas servindo-se de uma linguagem extremamente rígida e
um pouco limitada.
Um programa pode ser entendido como uma sequência finita de comandos que manipulam um numero limitado de variaveis e que deve devolver
algum conjunto-resposta. Em geral, os problemas que admitem solucoes via computador apresentam caracterısticas de repeticao, isto ́e, permitem que
uma mesma sequência de passos seja repetida (um numero finito de vezes) ate que se obtenha o resultado desejado.
Sugerimos ao leitor, principalmente aos iniciantes em programação, que se concentre em quatro questões chaves à resolução de problemas via algoritmos,
independentemente da linguagem a ser utilizada, seja ela qual for.
- 1ª Pergunta: Quais variáveis são necessárias?
- 2ª Pergunta: Quais comandos devem apareceer dentro de um bloco de repetição?
- 3ª Pergunta: Qual a condição para que continue a repetição?
- 4ª Pergunta: Quais os comandos necessários antes e depois do bloco de repetição?
Nem sempre é possível responder completamente estas perguntas nesta sequência. Muitas vezes, ao longo da descrição do programa surge a necessidades de novas
variáveis, que devem ser acrescentadas à lista inicialmente pensada como resposta à 1ª pergunta. Por outro lado, com o passar do tempo (e aquisiçao de
experiência na programação), será natural que ao tentar responder a 2ª pergunta ja se note a necessidade de alguns comandos que devem aparecer antes do
bloco de repetição (4ª pergunta). Alem disto, somente “problemas pequenos” possuem um ́unico bloco de repetição, sendo que as perguntas 2 a 4 devem ser
levadas em conta para cada novo bloco de repetição. No entanto, a experiência tem-nos mostrado que, pelo menos enquanto se esta comecando a aprender a
descrever processos em liguagens estruturadas, estas perguntas servem como um bom roteiro ao programador iniciante.
Veremos, a seguir, o desenvolvimento de programas para alguns problemas.
Obs: Nos códigos em C só serão mostradas as partes centrais do código, para ter um código funcional você deverá importar as respectivas bibliotecas e adicionar o código
dentro da função main