Covil Do Dev

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.

ad

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;
}

Obrigado por visitar o blog e por ler esse artigo, se tive qualquer dúvida, ideia ou sugestão, não hesite em entrar em contato pelo meu e-mail: lindomar@covildodev.com.br