Conceitos básicos para entender algoritmos
Veja algumas definições dadas por autores famosos:
- “Algoritmo é uma sequência de passos que visa atingir um objetivo bem definido.” (FORBELLONE, 1999);
- “Algoritmo é a descrição de uma sequencia de passos que dever ser seguida para a realização de uma tarefa” (ASCENCIO, 1999);
- “Algoritmo é uma sequência finita de instruções ou operações cuja execução, em tempo finito, resolve um problema computacional, qualquer que seja sua instância.” (SALVETTI, 1999);
- “Algoritmo são regras formais para a obtenção de um resultado ou da solução de um problema, englobando fórmulas de expressões aritméticas.” (MANZANO, 1997);
- “Ação é um acontecimento que, a partir de um estado inicial, após um período de tempo finito, produz um estado final previsível e bem definido. Portanto, um algoritmo é a descrição de um conjunto de comandos que, obedecidos, resultam numa sucessão finita de ações.” (FARRER, 1999).
Como podemos perceber algoritmos é uma sequência de passos para se resolver determinada tarefa, observe abaixo alguns exemplos de algoritmos que executamos no dia a dia.
Exemplos de algoritmos do dia a dia
Primeiro exemplo de um algoritmo
Somar três números:
- determinar os três números;
- somar os três números aplicando aritmética básica;
- mostrar o resultado obtido.
Segundo exemplo de um algoritmo
Fazer um lanche:
- pegar um pão de forma;
- pegar maionese;
- pegar presunto;
- pegar queijo;
- pegar tomate e alface;
- cortar o tomate em fatias;
- passar maionese no pão;
- colocar o presunto e o queijo;
- colocar o alface e o tomate;
- colocar na sanduicheira;
- retirar assim que apitar;
- ser feliz comendo.
Terceiro exemplo de um algoritmo
Trocar uma lâmpada:
- pegar uma lâmpada nova;
- pegar uma escada;
- colocar a escada em baixo da lâmpada queimada;
- subir na escada;
- retirar a lâmpada velha;
- colocar a lâmpada nova;
- descer da escada;
- testar a lâmpada nova no interruptor;
- guardar a escada;
- ser um ser humano consciente e descartar lâmpada queimada em local próprio que não agrida o meio ambiente.
Quarto exemplo de um algoritmo
Ir para a escola de manhã:
- acordar cedo;
- despertar com um banho;
- vestir o uniforme;
- tomar café;
- pegar a bicicleta;
- pedalar até a escola;
- trancar a bicicleta;
- se tiver tempo, conversar com os amigos, se não, ir para a aula.
Quinto exemplo de um algoritmo
Comprar salgadinho com cartão de crédito:
- ir até a loja mais próxima;
- escolher o salgadinho;
- pegar o salgadinho e ir até o caixa;
- informar que irá pagar com cartão de crédito;
- inserir o cartão na maquininha;
- inserir a senha;
- aguardar o comprovante;
- deixar a loja;
- comer o salgadinho;
- fazer exercícios para queimar as calorias obtidas.
Tipos de algoritmos
Descrição narrativa
A descrição narrativa consiste em analisar o problema e escrever usando uma linguagem natural (português, espanhol, inglês etc), os passos necessários para a resolução do problema.
A vantagem é que não é preciso entender conceitos novos pois já se conhece a linguagem utilizada para escrever os passos, a desvantagem é que a língua natural pode ser interpretada de várias formas dependendo da naturalidade do leitor e pode dificultar a transcrição para software.
Fluxograma
O fluxograma consiste em usar símbolos gráficos predefinidos para representar os passos a serem seguidos para sua resolução.
A vantagem é que o entendimento de elementos gráficos é mais simples do que o de textos e a desvantagem é que é necessário compreender a simbologia dos fluxogramas e o algoritmo resultante não apresenta muitos detalhes, dificultando sua transcrição para software.
Pseudocódigo ou portugol
O pseudocódigo consiste em escrever por meio de regras predefinidas os passos a serem seguidos para a resolução de um problema.
A vantagem é que a passagem para software, usando esse método, é quase imediata, bastando conhecer as palavras reservadas da linguagem que será utilizada e a desvantagem é que é necessário aprender as regras do pseudocódigo, que serão apresentadas na próxima seção.
Atenção! As regras para pseudocódigo mudam dependendo do autor ou do professor em questão, mas todas seguem o mesmo formato, então você pode adaptar as diferenças do meu pseudocódigo para o que o seu professor deseja ou para algum que você já tenha conhecimento prévio.
O mais prático de todos na minha opinião.
Passo para construção de bons algoritmos
Passos importantes para a construção de um bom algoritmo:
- entender o problema a ser resolvido, destacar os pontos principais e os objetos que o compõem;
- definir os dados de entrada;
- definir o processamento (quais cálculos serão usados e quais as restrições para esses cálculos);
- definir os dados de saída (quais dados serão gerados após o processamento);
- construir o algoritmo utilizando a descrição narrativa ou pseudocódigo (também chamado de português estruturado ou portugol) ou fluxograma;
- passar para uma linguagem de programação;
- testar o algoritmo usando simulações.
Exemplos de algoritmos
Vamos ver agora alguns exemplos usando os três tipos construção de algoritmos citados anteriormente. Nos demais posts, para praticidade e conveniência, usaremos apenas pseudocódigo para construção de algoritmos e uma linguagem de programação.
I) Faça um algoritmo que mostre o resultado da soma de dois números.
Usando a descrição narrativa:
- receber os dois números a serem somados;
- somar os dois números usando as regras básicas de aritmética;
- mostrar o resultado obtido na multiplicação.
Usando fluxograma:
Usando pseudocódigo:
Algoritmo soma_de_dois_numeros var N1, N2, M: inteiro inicio escreva("Digite dois números inteiros:") leia(N1, N2) M <- N1+N2 escreva("O resultado da multiplicação é: ", M) fim.
II) Faça um algoritmo que mostre o resultado da multiplicação de dois números.
Usando a descrição narrativa
- receber os dois números a serem multiplicados;
- multiplicar os dois números usando as regras básicas de aritmética;
- mostrar o resultado obtido na multiplicação.
Usando fluxograma:
Usando pseudocódigo:
Algoritmo multiplicacao_de_dois_numeros var N1, N2, M: inteiro inicio escreva("Digite dois números inteiros:") leia(N1, N2) M <- N1*N2 escreva("O resultado da multiplicação é: ", M) fim.
III) Faça um algoritmo que calcule a média aritmética entre duas notas de um aluno e mostrar se esta aprovado se a média for maior ou igual a 7 ou reprovado se a média for menor do que 7.
Usando a descrição narrativa:
- receber as duas notas
- calcular a média aritmética;
- mostrar a média aritmética;
- se a média for maior ou igual a 7, então a situação do aluno é aprovado, se não, a situação é reprovado.
Usando fluxograma:
Usando pseudocódigo:
Algoritmo mediaAritmetica_de_dois_numeros var N1, N2, M: inteiro inicio escreva("Digite as duas notas do aluno:") leia(N1, N2) M <- (N1+N2)/2 escreva("A média do aluno é: ", M) se (M >= 7) entao inicio escreva("APROVADO") fim senao inicio escreva("REPROVADO") fim fim.
Referências:
ASCENCIO, A.F.G.; CAMPOS, E.A.V. Fundamentos da Programação de Computadores – Algoritmos, Pascal, C/C++ e Java. Pearson Prentice Hall. 2a. Ed. 2007.
Fluxogramas: https://www.lucidchart.com/
Was this helpful?
2 / 0