Algoritmos e Lógica de Programação – O Básico para aprender – Aula 1
Por inúmeras vezes fui questionado sobre qual a melhor linguagem para iniciantes, e para apender a programar, e a resposta é simplesmente NENHUMA, isso porque PROGRAMAR é se comunicar com um computador, e analogamente a comunicação humana, não interessa em qual idioma ocorre a comunicação, desde que os 2 interlocutores falem o mesmo idioma, o que determina são as regras para que essa comunicação aconteça. Esse é o objetivo deste artigo, então, vamos lá que o assunto é bem extenso.
Para entender os conceitos, quando falamos em PROGRAMAR estamos dizendo que vamos nos comunicar com um computador, através de uma linguagem, que da mesma maneira que um idioma falado, possui regras e que para fazer isso essas regras devem ser rigidamente seguidas, ou seja, não é porque uma criança recém alfabetizada sabe escrever todas as palavras do idioma português, que ela seja um escritor, isso porque para ser um escritor além de conhecer a grafia correta das palavras ela precisa saber regras gramaticais e construções da linguagem para fazer de maneira correta.
Mantendo essa mesma linha de raciocínio, indiferente do idioma usado, temos estruturas mais ou menos rígidas para que a comunicação ocorra, por exemplo veja a seguinte frase: “gostaria de laranja, no meu quarto” ou “I would like orange, in my room” ou “Ich hätte gerne Orange in meinem Zimmer” todas estão gramaticamente corretas, porém, dependendo do contexto, poderia dizer muitas coisas, como a cor das paredes, ou um suco para ser bebido, ou mesmo uma fruta para ser comida. Ou seja, indiferente do idioma usado, as regras para que ocorra a comunicação sem falhas, devem ser seguidas.
Em programação de computadores, o contexto (se é uma cor, se é uma fruta ou se é um suco) é o ALGORITMO, a estrutura gramatical é a LÓGICA e o idioma é a LINGUAGEM DE PROGRAMAÇÃO e para podermos nos comunicar de maneira eficiente com qualquer tipo de máquina, devemos aprender primeiro esses conceitos.
ALGORITMOS
Algoritmo é simplesmente uma “receita” para executarmos uma tarefa ou resolver algum problema. Todas as tarefas executadas pelo computador, são baseadas em Algoritmos. Logo, deve também ser bem definido, pois é uma máquina que o executará. Uma calculadora por exemplo, para executar a operação de multiplicação, executa um algoritmo que calcula somas até um determinado número de vezes.
Um algoritmo não representa, necessariamente, um programa de computador, mas sim os passos necessários para realizar uma tarefa. Sua implementação pode ser feita por um computador, por outro tipo de máquina ou mesmo por um ser humano. Abaixo, um exemplo do algoritmo de multiplicação realizado pelas calculadoras de bolso. Para facilitar, consideremos que os fatores da multiplicação são positivos.
Declaração de variáveis numero1, numero2, resultado, contador: Inteiro Inicio ler(numero1) ler(numero2) resultado = 0 contador = 0 Enquanto contador < numero2 Faça resultado = resultado + numero1 contador = contador + 1 Fim-Enquanto escrever(resultado) Fim
Este tipo de estrutura é muito comum em programação. Se você quer aprender programação, indiferente da linguagem utilizada é necessário entendê-lo, se não conseguiu, leia-o novamente com mais atenção. A estrutura de um algoritmo é exatamente igual a estrutura de um programa de computador, porém, escrito com regras menos rígidas pois será interpretado por um ser humano, que tem uma capacidade imensamente maior de analisar padrões que um computador.
A estrutura básica é composta de 4 elementos, distintos, e presentes em todos os algoritmos, e programas, se algum deles estiver faltando, é porque alguma coisa esta errada ou devemos rever a necessidade de existência dele. São eles:
– DECLARAÇÕES onde são identificadas as variáveis e seus tipos, é boa prática fazer isso mesmo que a linguagem escolhida não precise desse tipo de declaração (algumas alocam durante o código, e de tipos dinâmicos; outras precisam da declaração antes da primeira instrução. Pode-se dizer que neste ponto são os ingredientes da receita.
– INPUT onde os dados serão recebidos pelo nosso programa, esses dados podem vir de um usuário, de um banco de dados, de outro trecho de código ou mesmo de outro programa. Analogamente, esse input, seria o fato de pesar e verificar a validade de todos os ingredientes, que serão usados na nossa receita.
– PROCESAMENTO que é parte mais importante do nosso algoritmo, onde vamos trabalhar os dados recebidos a fim de gerar o resultado esperado, é a função base do programa, ou do trecho de código que estamos trabalhando. Seria o modo de preparo da receita.
– SAÍDA que é a apresentação dos resultados, que podem ser o salvamento dos dados numa base, a impressão dos resultados para o usuário, o envio desse resultado para outros programas ou trechos de código. Seria a apresentação do prato pronto para ser servido.
Com o tempo, a leitura e criação de algoritmos passa a ser uma coisa muito simples para um programador. Mas para isso é preciso de prática! Uma das melhores ferramentas que um programador tem que possuir, é o entendimento do problema e sua transformação em um algoritmo. Então, você pode começar fazendo um exercício, crie algoritmos para as suas tarefas do dia-a-dia a partir do momento em que você acorda. Essa é a melhor forma de aprender a criar algoritmos.
Diferentes algoritmos podem realizar a mesma tarefa usando um conjunto diferenciado de instruções em mais ou menos tempo, espaço ou esforço do que outros. Tal diferença pode ser reflexo da complexidade computacional aplicada, ou do uso de estruturas de dados adequadas, ou mesmo do nível da linguagem utilizada. Por exemplo, um algoritmo para se vestir pela manhã, pode ser feito em linguagens com maiores ou menores complexidades de instruções. Deixem nos comentários um exemplo deste algoritmo para VESTIR-SE, e na próxima semana, vamos detalhar a complexidade computacional, ou nível de linguagem.