Algoritmos
Um algoritmo é um conjunto de instruções que resolvem um problema de maneira lógica e eficiente.
Um algoritmo pode resolver um problema muito específico, mas é melhor que ele consiga resolver problemas parecidos também. Por isso, ao criar um algoritmo, consideramos que ele seja capaz de receber dados de entrada para que ele possa ser reutilizado.
Exemplos de Algoritmos
Seção intitulada “Exemplos de Algoritmos”Imagine que você precisa explicar para alguém como fazer um bolo. Você pode criar uma lista de passos, que seria algo como:
- Separe os ingredientes: farinha, açúcar, ovos, leite, fermento, etc.
- Misture os ingredientes em uma tigela.
- Coloque a mistura em uma forma.
- Asse a mistura no forno por uma hora e meia.
Esse algoritmo é uma sequência de instruções que, se seguidas corretamente, resultará em um bolo. Ele é lógico porque as instruções estão em uma ordem que faz sentido, e é eficiente porque não inclui passos desnecessários.
Uma outra forma de descrever esse mesmo algoritmo seria usando Linguagem Natural de uma forma mais fluida, que é a forma como falamos e escrevemos no dia a dia. Por exemplo:
Para fazer um bolo, coloque em uma tigela farinha, açúcar e ovos. Misture e adicione leite e o fermento. Coloque a mistura em uma forma e asse no forno por uma hora e meia.
Representação de Algoritmos
Seção intitulada “Representação de Algoritmos”Um algoritmo pode ser representado de diferentes formas. A forma como representamos depende do objetivo e do público-alvo que irá utilizar o algoritmo.
Dentre as principais formas que podemos representar um algoritmo, estão:
- Linguagem Natural
- Lista de Passos
- Fluxograma
- Pseudocódigo
- Código de Programação
- Código de Máquina
Cada uma dessas formas tem suas vantagens e desvantagens, e a escolha da forma de representação depende do contexto em que o algoritmo será utilizado. Por exemplo, um fluxograma pode ser mais fácil de entender para pessoas que não estão familiarizadas com a linguagem de programação, enquanto um código de programação pode ser mais eficiente para programadores e para converter o algoritmo em instruções que serão usadas pelo computador.
Linguagem Natural
Seção intitulada “Linguagem Natural”A linguagem natural é a forma como falamos e escrevemos no dia a dia. Ela é fácil de entender para a maioria das pessoas, mas pode ser ambígua e difícil de seguir se o algoritmo for complexo. Observe o seguinte exemplo:

O menino estava certo? Ele seguiu as instruções corretamente, mas o resultado não foi o esperado.
O problema da linguagem natural é que ela pode ser interpretada de diferentes formas, dependendo do contexto e da experiência de cada pessoa. É importante ser muito específico e claro ao criar um algoritmo, exatamente por isso existem outras formas de representação que permitem menos ambiguidade.
Lista de Passos
Seção intitulada “Lista de Passos”A lista de passos é uma forma de representar um algoritmo de maneira mais estruturada e organizada. Ela é fácil de seguir e entender, mas pode ser difícil de ler se o algoritmo for muito longo ou complexo. Por exemplo:
- Separe os ingredientes: farinha, açúcar, ovos, leite, fermento, etc.
- Misture os ingredientes em uma tigela.
- Coloque a mistura em uma forma.
- Asse a mistura no forno por uma hora e meia.
A grande vantagem da lista de passos é que ela é mais fácil de seguir e estabelecer uma ordem clara para executar as instruções. No entanto, se o algoritmo for muito longo ou complexo, a lista de passos pode se tornar difícil de ler e entender.
Fluxograma
Seção intitulada “Fluxograma”O fluxograma é uma representação visual de um algoritmo, usando símbolos para representar as diferentes etapas e decisões. Ele é visualmente intuitivo e fácil de entender, mas pode ser mais difícil de construir e de ser interpretada pelo computador. Por exemplo:

O fluxograma é uma ótima forma de representar algoritmos que envolvem decisões e fluxos de controle, pois permite visualizar claramente as diferentes possibilidades e caminhos que o algoritmo pode seguir. No entanto, ele pode ser mais difícil de construir e interpretar, especialmente para algoritmos mais complexos.
Pseudocódigo
Seção intitulada “Pseudocódigo”O pseudocódigo é uma forma de representar um algoritmo usando uma linguagem de programação simplificada. Ele é mais próximo da linguagem de programação, facilitando a transição para o código real, mas pode ser difícil de entender para pessoas que não estão familiarizadas com a sintaxe do pseudocódigo. Por exemplo:
Algoritmo CalcularMedia Entrada: notas[1..n] Saída: media
soma <- 0 para i de 1 até n faça soma <- soma + notas[i] fim para media <- soma / n retorne mediaO pseudocódigo é uma ótima forma de representar algoritmos de maneira clara e estruturada, especialmente para programadores que estão familiarizados com a sintaxe do pseudocódigo. Ele permite uma representação mais precisa e detalhada do algoritmo, mas pode ser difícil de entender para pessoas que não estão familiarizadas com a sintaxe do pseudocódigo.
Código de Programação
Seção intitulada “Código de Programação”O código de programação é a forma mais precisa e detalhada de representar um algoritmo, pois pode ser interpretado diretamente pelo computador. Ele é eficiente para programadores e para converter o algoritmo em instruções que serão usadas pelo computador, mas requer conhecimento de uma linguagem de programação específica e pode ser difícil de entender para pessoas que não estão familiarizadas com a linguagem. Por exemplo:
def calcular_media(notas): soma = 0 for nota in notas: soma += nota media = soma / len(notas) return mediaO código de programação é a forma mais precisa e detalhada de representar um algoritmo, pois pode ser interpretado diretamente pelo computador. Ele é eficiente para programadores e para converter o algoritmo em instruções que serão usadas pelo computador, mas requer conhecimento de uma linguagem de programação específica e pode ser difícil de entender para pessoas que não estão familiarizadas com a linguagem.
Código de Máquina
Seção intitulada “Código de Máquina”O código de máquina é a forma mais baixa de representação de um algoritmo, pois é composto por instruções que podem ser interpretadas diretamente pelo computador, no formato binário. Ele é eficiente para o computador, mas é impraticável de entender para humanos e requer conhecimento avançado de arquitetura de computadores para converter. Por exemplo, o código de máquina para a instrução “calcular a média de um conjunto de notas” seria algo como:
10101000 0000000110101000 0000001010101000 0000001110101000 000001000101000 000001010101000 00000110Apenas um exemplo e não representa o algoritmo real
Comparação Final
Seção intitulada “Comparação Final”Por fim, podemos comparar as diferentes formas de representação de algoritmos em uma tabela:
| Forma de Representação | Vantagens | Desvantagens |
|---|---|---|
| Linguagem Natural | Fácil de entender para a maioria das pessoas. Pode ser usada para descrever algoritmos de forma informal e intuitiva. Pode expressar mais detalhes. | Pode ser ambígua e difícil de seguir se o algoritmo for complexo |
| Lista de Passos | Fácil de seguir e entender. Permite uma estrutura clara e organizada. | Pode ser difícil de ler se o algoritmo for muito longo ou complexo. |
| Fluxograma | Visualmente intuitivo e fácil de entender. Permite uma representação clara das decisões e fluxos de controle. | Mais difícil de construir e de ser interpretada pelo computador |
| Pseudocódigo | Mais próximo da linguagem de programação, facilitando a transição para o código real. Permite uma representação clara e estruturada do algoritmo. | Pode ser difícil de entender para pessoas que não estão familiarizadas com a sintaxe do pseudocódigo. |
| Código de Programação | Pode ser interpretado diretamente pelo computador. Permite uma representação precisa e detalhada do algoritmo. | Requer conhecimento de uma linguagem de programação específica. Pode ser difícil de entender para pessoas que não estão familiarizadas com a linguagem. |
| Código de Máquina | Pode ser interpretado diretamente pelo computador. Permite uma representação precisa e detalhada do algoritmo. | Difícil de entender para humanos. Requer conhecimento avançado de arquitetura de computadores. |