1. Lógica da Programação.
1. Algoritmos
Sempre que vamos escrever um programa de computador estaremos tentando resolver um problema.
Um problema pode ser definido como qualquer tipo de questão levantada para se chegar a uma decisão
ou solução.
Mas por onde começar? Existe um conceito matemático que ajuda a definir soluções de problemas: o
algoritmo.
Um Algoritmo é uma sequência ordenada e finita de etapas, cuja execução passo a passo resolve um
determinado problema. Dessa forma, um algoritmo pode tanto definir uma solução para um problema
computacional quanto um problema do cotidiano.
Vejamos um problema do cotidiano:
Realizar um depósito no caixa eletrônico: digamos que você pede para alguém realizar um depósito em
dinheiro na sua conta no caixa eletrônico. Você entrega o dinheiro à pessoa mas ela nunca realizou esta
tarefa antes. Você precisa explicar passo a passo todos os procedimentos para ela realizar o depósito.
Tá vendo como o cara tá constrangido? Ele é gente boa, mas nunca fez um depósito antes. Vamos
ajudá-lo.
Vejamos como ficaria uma sequência de instruções que poderia gerar um algoritmo para resolver esse
problema:
1. Ao chegar na agência, pegue um envelope próprio para depósito em dinheiro.
2. Escreva o número da agência, da conta e o valor do depósito.
3. Coloque o dinheiro dentro do envelope e feche o mesmo.
4. Dirija-se a um caixa eletrônico, procure a tecla para "depósito sem cartão".
5. Siga as instruções da tela do caixa, inserindo os números de acordo com as solicitações.
6. Verifique se os dados estão corretos.
2. 7. Após confirmar os dados, coloque o envelope no local indicado.
8. Aguarde a impressão do recibo.
Para alguém que esteja acostumado a realizar esta tarefa, a mesma é automática, mas para quem nunca
a realizou antes, o roteiro pode resolver o problema.
Esse é um bom conceito para algoritmo: "dar um roteiro passo a passo para a execução de determinada
tarefa".
O interessante é que existem diversas maneiras de escrever um algoritmo, portanto não existe somente
uma solução possível.
2. Lógica da Programação
Lógica é o estudo das leis do pensamento, no sentido de verificar se algo é ou não verdadeiro.
A Lógica da Programação consiste em planejar e definir corretamente os comandos a serem inseridos
em um algoritmo, visando a resolução de problemas.
Nem sempre os problemas são computacionais, mas podem surgir em qualquer âmbito. E já dissemos
que algoritmos podem definir um roteiro passo a passo para a resolução de um problema. Para fazer
uma analogia, digamos que eu precise escrever um algoritmo para resolver o problema de fritar um
ovo.
Primeiro, fazemos uma análise mental genérica sobre o problema:
Em seguida, podemos escrever um roteiro passo a passo para a resolução do problema:
1. Pegue uma frigideira e coloque sobre o fogão;
2. Pegue o óleo ou manteiga e coloque na frigideira;
3. Pegue um ovo e quebre sobre a frigideira, sem deixar cair a casca.
4. Espere o ovo fritar, retire com a escumadeira em um prato.
Aí você analisaria o algoritmo e poderia dizer:
3. " Ei! Seu algoritmo tem um erro de lógica! Seu ovo nunca vai fritar, pois você não acendeu a chama
do fogão para aquecer a frigideira!"
Neste caso, a solução poderia ser inserir um ou dois passos a mais, ficando dessa forma:
1. Pegue uma frigideira e coloque sobre o fogão;
2. Pegue o óleo ou manteiga e coloque na frigideira;
3. Ligue a chama do fogão abaixo da frigideira.
4. Pegue um ovo e quebre sobre a frigideira, sem deixar cair a casca.
5. Espere o ovo fritar, retire com a escumadeira em um prato.
6. Desligue a chama do fogão abaixo da frigideira.
Veja que adicionando esses passos o algoritmo ficou mais completo e detalhado, além do fato que
passos imprescindíveis estão presentes.
Este exemplo ilustra a importância do estudo da Lógica da Programação e da construção de
Algoritmos. Imagine se ao invés de escrever primeiro o algoritmo eu tivesse decidido escrever
diretamente o programa "fritar_ovo.exe". Não funcionaria e o programa teria que ser escrito
novamente. Essa é a importância dos algoritmos: planejar a execução do programa antes de escrevê-lo.
O interessante é que normalmente não existe somente uma única solução para os problemas. Por essa
razão, um algoritmo escrito por uma pessoa pode ser muito diferente da solução encontrada por outra,
mas geralmente o que importa é a resolução do problema. Hum, mais ou menos. Há controvérsias. Às
vezes uma proposta pode levar à solução de um problema mas, digamos assim..., através de "caminhos
tortuosos".
Em certas situações a simplicidade é mais importante, em outras, a especificidade. Mas teremos muitas
oportunidades de verificar essas questões quando estivermos desenvolvendo nossos programas durante
o curso!
3. Português Estruturado
Para estudar a construção de algoritmos e a lógica da programação geralmente utilizamos um código
que não pode ser executado pelos computadores.
Utilizaremos o que é chamado de pseudocódigo, também conhecido como Português Estruturado ou
Portugol.
4. Vamos escrever sequências de instruções que possam ser entendidas por qualquer programador,
independente da linguagem de programação utilizada. Com essas instruções (algoritmo em português
estruturado), o programador terá um roteiro para a codificação do programa.
Simultaneamente, vamos testar na prática os conceitos aprendidos, criando pequenos programas nas
linguagens de programação C++ e Java.
Todas são linguagens de programação orientadas a objetos e não estruturadas. Mas servem
perfeitamente para o estudo da lógica e dos algoritmos por sua flexibilidade e sintaxe simples.
Vejamos um exemplo de algoritmo em português estruturado: