O que é um algoritmo?
Um algoritmo é um conjunto de regras e instruções bem definidas para executar uma tarefa e/ou solucionar um problema.
Um algoritmo recebe e trata uma entrada, ou um conjunto de entradas e produz uma saída apropriada.
Por exemplo, para atravessar uma rua, poderíamos descrever uma série de passos, que seria um algoritmo.
Algoritmo para atravessar uma rua:
1. Olhar para a esquerda
2. Olhar para a direita
3. Aguarde caso estiver vindo carro
4. Atravesse a rua se não tiver vindo carro
Nesse caso, as etapas 1 e 2 são responsáveis pela entrada.
As etapas 3 e 4 são as saídas.
Características de um bom algoritmo
Para um algoritmo ser útil, é necessário algumas características:
- Entradas e saídas precisam ser bem definidas
- Cada etapa necessita ser clara e precisa, sem margem para múltiplas interpretações
- Necessita ser eficiente para resolver um problema em qualquer condição de entrada
- Necessita ser simples o suficiente para poder ser interpretado por qualquer um e implementado em qualquer linguagem.
Exemplos de algoritmos
Abaixo será descrito alguns algoritmos em português estruturado.
Somando dois números
1. Início.
2. Declarar variáveis n1, n2 e resultado.
3. Ler valores para n1 e n2.
4. Somar n1 com n2 e salvar o resultado em resultado.
5. Mostrar resultado.
6. Fim.
Esse algoritmo na linguagem c
ficaria da seguinte forma:
#include <stdio.h>
int main(void) {
int n1, n2, resultado;
scanf("%i", &n1);
scanf("%i", &n2);
resultado = n1 + n2;
printf("Resultado: %i", resultado);
return 0;
}
Encontrando o fatorial de um número
1. Início.
2. Declarar variáveis n, i e fatorial.
3. Iniciar a váriavel fatorial com 1.
4. Iniciar a váriavel i com 1.
5. Ler o valor para n.
6. Multiplicar fatorial por i e salvar o resultado em fatorial.
7. Somar 1 a n.
8. Voltar para o passo 6 se i for diferente de n.
9. Mostrar fatorial.
10. Fim.
Esse algoritmo na linguagem c
ficaria da seguinte forma:
#include <stdio.h>
int main(void) {
int n, i, fatorial;
fatorial = 1;
i = 1;
scanf("%i", &n);
while (i <= n)
{
fatorial = fatorial * i; // fatorial *= i
i = i + 1; //i++
}
printf("Resultado: %i", fatorial);
return 0;
}
Verificando se um número é primo
1. Início.
2. Declarar variáveis n, i e flag.
3. Iniciar a váriavel flag com 0.
4. Iniciar a váriavel i com 2.
5. Ler o valor para n.
6. Salvar 1 em flag se o resto da divisão de n por i for igual a zero.
7. Somar 1 a i.
8. Voltar para o passo 6 Se i for maior que n dividido por 2.
9. Mostrar "primo" se flag for igual a 1
10. Mostrar "não primo" se flag for igual a 0
11. Fim.
Esse algoritmo na linguagem c
ficaria da seguinte forma:
#include <stdio.h>
int main(void) {
int n, i, flag;
flag = 0;
i = 2;
scanf("%i", &n);
while (i <= n/2)
{
if(n % i == 0)
flag = 1;
i = i + 1; //i++
}
if(flag == 0)
printf("Primo");
else
printf("Não primo");
return 0;
}