O que é Algoritmo?

Embora as vezes não percebemos, utilizamos algoritmos no nosso dia-a-dia e não sabemos. Para a execução de alguma tarefa ou mesmo resolver algum problema, muitas vezes inconscientemente executamos algoritmos. Mas o que é Algoritmo? É simplesmente uma “receita” para executarmos uma tarefa ou resolver algum problema. E como toda receita, um algoritmo também deve ser finito. Se seguirmos uma receita de bolo corretamente, conseguiremos fazer o bolo. A computação utiliza muito esse recurso, então se você pretende aprender programação, obviamente deve saber o que é algoritmo.

Exemplo de Algoritmo

Imagine o trabalho de um recepcionista de cinema, ele deve conferir os bilhetes e direcionar o cliente para a sala correta. Além disso, se o cliente estiver 30 minutos adiantado o recepcionista deve informar que a sala do filme ainda não está aberta. E quando o cliente estiver 30 minutos atrasado o recepcionista deve informar que a entrada não é mais permitida (Nota: Essas regras não são 100% verdade, eu as defini neste artigo apenas para fins didáticos). Vamos escrever um algoritmo para descrever a atividade do recepcionista.

Algoritmo Recepcionista de Cinema

Inicio

1 – Solicitar ao cliente o bilhete do filme.

2 – Conferir a data e o horário do filme no bilhete.

Se data/hora atual > data/hora do filme + 30 minutos Então

3 – Informar ao cliente que o tempo limite para entrada foi excedido.

4 – Não permitir a entrada.

Senão Se data/hora atual < data/hora do filme – 30 minutos Então

5 – Informar ao cliente que a sala do filme ainda não foi liberada para entrada.

6 – Não permitir a entrada.

Senão

7 – Permitir a entrada.

8 – Indicar ao cliente onde fica a sala do filme.

Fim-Se

Fim

Qualquer pessoa que seguir esses passos executará a função do recepcionista do cinema. Concorda? É importante notar que o algoritmo tem um fluxo que pode seguir diferentes caminhos dependendo da situação em que se encontra. Outro aspecto interessante é que o algoritmo é finito, uma hora ele tem que acabar! Vejamos outro exemplo, dessa vez com uma representação visual: Como trocar uma lâmpada?

Fluxograma

Fluxograma (Representação gráfica de um algoritmo)

 

Esta representação gráfica do algoritmo é chamada de fluxograma. Os losangos representam as decisões que são tomadas para executar um ou outro passo. Ao final, a lâmpada tem que estar funcionando.

Algoritmos na computação

Todas as tarefas executadas pelo computador, são baseadas em Algoritmos. Logo, um algoritmo 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. Abaixo, um exemplo do algoritmo de multiplicação. Para facilitar, consideremos que os fatores da multiplicação são positivos.

Algoritmo Multiplição de números 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 algoritmo pode ser considerado complexo por iniciantes, mas algoritmos deste tipo, utilizando variáveis e controle de fluxo, é muito comum em programação. Se você quer aprender programação, é necessário entendê-lo, se não conseguiu, leia-o novamente com mais atenção. Para ajudar, vamos definir algumas coisas importantes sobre o algoritmo:

  • Variável é um espaço alocado na memória para armazenar dados. No algoritmo, foram criadas 4 variáveis.
  • O símbolo “<-” representa uma atribuição de valor a uma variável. Por exemplo, (resultado <= resultado + numero1) atribui à variável resultado, o valor da própria variável resultado, acrescido do valor da variável numero1.
  • O comando “ler(numero1)“, significa que o algoritmo está lendo o que o usuário digita e armazenando na variável numero1.
  • O comando Enquanto é uma estrutura de controle de fluxo do tipo “Estrutura de repetição”.
  • O comando escrever(resultado) exibe na tela o valor da variável resultado.

Com o tempo, a leitura e criação de algoritmos passa a ser uma coisa muito simples para um programador. Mas para isso é preciso bastante prática! 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.

O que é Algoritmo?
4.14 (82.85%) 526 votos
  • Ruben cespedes a

    Sensacional, muito bom e esclarecedor parabens…!!

  • D’M

    Gostei! Espero que me ajudem mas vezes. Parabéns!

  • Valdenir

    Excelente a matéria sobre algoritmo.

  • flavio

    Interessante, apesar de nao ter conseguido entender.

  • Sylar

    Cara, muito bom mesmo, mas ainda não entendi o simbolo “<-", nem esse negócio de enquanto…

    • Luiz F

      Colega, o símbolo é só uma representação de atribuição para esta linguagem em estudo que está em português. Na linguagem Pascal por exemplo este símbolo é representado por =: , ou seja, no caso desse algoritmo acima “resultado <- 0", significa que a variável resultado está recebendo o valor 0, que dizemos que está sendo atribuído o 0 a variável resultado; no Pascal seria: resultado =: 0; , certo? espero ter ajudado. O termo enquanto também é considerado uma palavra reservado que diz para executar aquele bloco de comando enquanto for satisfeita a condição de: contador < numero2 , ou seja, que o valor da variável contador seja menor que o valor da variável numero2; em Pascal seria utilizado em inglês a palavra while (contador < numero2) … Do. é mais ou menos isso aí. Ajudou-lhe?

  • Marcelo

    Pocha quero aprender muito espero contar com a ajuda de vocês no futuro quem sabe poder estar ajudando alguém, vlw galera

  • Heitor Souza

    Parabéns pelo Help. É a primeira vez que vejo um artigo em português muito bem feito e divertido de ler. Você não somente é um bom programador como também um excelente professor.

  • Luiz Carlos

    MUITO BOM GOSTEI

  • queria uma ajuda
    montar um algoritimo

  • Layla Agnes

    existe algum programa igual ao Visualg que seja pra windows 8?

    • Oi Layla, não conheço um programa parecido com o Visualg especificamente para o Windows 8. Mas você pode instalar o Visualg mesmo no Windows 8, como um aplicativo de desktop normal.

      Um abraço!

      • Voce podia usar exemplos de verdade em vez de número 1 contador 1 etc… Acho q facilitaria aprender como é um algoritmo de verdade

  • evaldo juvino

    Ola amigo medis uma coisa o que um programador precisa para setorna um dos melhores

  • mateus

    Gostei muito mais não entendi muito como funciona tudo isso, estou procurando entender mais e irei ler e reler até entender tudo certinho c:

  • Guto Labbri

    Poxa cara! Show de bola sua aula! eu preciso aprender isso urgentemente.

  • Wau óla mano eu quero tanto aprender esse tipo de coisa mais necessito de ajuda de um profissional posso contar contigo para algumas aulas?

    Aguardo sua resposta…
    Saudações

  • Luis

    Muito bom trabalho e gosto por ajudar outros.So posso dizer obrigado.

  • Obrigado, To começando, eu tava tentando aprender .net só que me embananei e resolvi começar desde o principio.

  • wanderson

    ADOREI A SUA AULA PARABENS

  • Pedro Fagnani

    Ola Gustavo,,,, primeiramente eu gostei muiitoo, mas muito mesmo do seu site, e as suas explicações são ótimas, mas me esclareça uma coisa o sinal “<-” atribui a que exatamente, e o que seria contador??? Não seria uma variavel também???

    • Olá Pedro, muito bom você perguntar.

      Primeiro, o sinal ‘<-' atribui um valor a uma variável. Ou seja, a variável é um espaço reservado na memória e atribuir um valor a uma variável significa colocar um dado nesse espaço de memória. O contador é uma variável normal como qualquer outra. Nós chamamos de 'contador' devido a forma como a gente usa essa variável no contexto do algoritmo. Ela serve pra contar alguma coisa. No caso, nós contamos quantas execuções aconteceram no LOOP.

  • erik

    porque o engenheiro precisa elaborar algoritmo?

    • Erik, por vários motivos qualquer pessoa deveria aprender a fazer algoritmos.
      Mas pensando no caso de engenheiro, um Engenheiro Mecânico por exemplo, pode precisar programar uma máquina CNC. Um engenheiro agrônomo pode programar um sistema de irrigação, ou um aplicativo, etc. Software traz muitas possibilidades para todo mundo. Todos deveriam pelo menos começar a aprender programação.

      Forte abraço!

  • Luiz F

    Gostei das explanações, bem didáticas. Parabéns¹

    • Oliveira

      O que é uma explanação????

  • Wallyson

    Oi Gustavo, muito boa sua explicação, mas se o numero1 fosse igual a 4 e o numero2 igual a 5, qual seria o resultado desse algoritmo?

  • Edson

    Olá Gustavo,como se lê o sinal ‘<-' ? no caso seria 'maior que" ou 'menor que menos zero'… seria assim?

    • Edson,

      o sinal ‘<-' ou ':=' significa atribuição de valor a uma variável. Por exemplo: a <- 2 significa que a variável a, armazenará o valor 2.

  • Vagner Sales

    Parabéns, sem demagogia melhor material que ja encontrei.
    estou querendo iniciar na área de programação, e este material me empolgou a buscar um pouco mais.

  • Gustavo Oliveira

    Muito esclarecedor, parabéns
    abraço..

  • joao

    é o que esperar se nao sei nada de nada mal sei entrar no face mas fico facinado e queria aprender a desenvolver mas ja tenho 46 e nao ei se poderia entender tanto de tudo

    • João, todo mundo pode aprender programação. Lógica de programação é essencial, assim como aprender inglês.
      Não precisa fluência, mas quanto melhor o inglês mais fácil será. Banco de dados também é importante aprender.
      Juntando as peças, você consegue criar softwares.
      Continue acompanhando o blog, que em breve vou lançar um minicurso gratuito de lógica de programação para iniciantes como você.
      Um abraço!

  • Então o lance é só lógica? Com essa Pascal que vi vc citar, quantas linguagens existem para algoritmos? E de que forma é possível aplicá-los em coisas qualitativas, tipo, ao medir a qualidade de um texto jornalístico que já tem seis critérios pré definidos? Isso é possível ou é viagem minha?

    • Cris Saviani

      O site não é meu, mas vou responder: sim, é super possível, principalmente porque já tem os seis critérios pré-definidos.

  • José Fernandes

    Tenho 86 anos, vivo num lar, Auto didacta .Só consegui o antigo 2º ano dos liceus. e nunca percebi o que era um algoritmo nem para que serve.Agora fiquei com umas luzes.. Que devo fazer para aprender mais ?

    José Fernandes.

    • José Fernandes, agora é praticar a criação de algoritmos, pra treinar lógica de programação …

      Pense em problemas do dia a dia que você resolveria com um algoritmo, um passo-a-passo…

  • Ivan Jr

    Olá Gustavo. Oh, eu entendi esta bagaça e me interessei… é extraordinário! Você deveria oferecer cursos. Mas sim, voltando… desculpa o meu desconhecimento do assunto, mas onde a gente escreveria o algoritmo? Tem um programa pra isso? Se sim, e como que fizeram esse programa que faz programa?? Deve ter um um início totalmente mecânico.
    Obrigado pelo site, cara!

    • Ivan, obrigado pelo comentário.
      Eu pretendo lançar um canal no youtube e um minicurso de lógica de programação em breve.

      Os primórdios da tecnologia atual é mecânica sim, com máquinas capazes de calcular (computar) “somas”. Depois começou a entrar a eletrônica e os cálculos passaram a usar bits.
      Os lugares onde escrevemos algoritmos podem ser muitos, você pode criar programas no bloco de notas do seu computador.

  • Anibal Batista Leal

    Não consegui entender.

    • Anibal, Algoritmo é tipo uma receita de bolo, só que no caso é uma receita para o computador seguir para realizar alguma atividade.

  • Muito bom mi ajudou muito !!
    No exemplo da troca de lâmpada ,após a verificação que a lâmpada não estava enrroscada , não deveria verificar se ela não Esta fundida ?

  • Larissa Santos

    Adorei!
    Estou estudando a linguagem Python. Me diz uma ordem que devo aprender: algoritmos, linguagem ou lógica? Qual a ordem para começar?

  • David Scofield

    Como posso criar um programa no bloco de notas do meu computador?

  • Muito bom! Inicio o curso em GTI neste semestre, mas gostaria de agregar mais conhecimentos na área, por acaso você já tem uma data prevista para início do mini curso?
    Parabéns pelo conteúdo e obrigado!

  • Machado Francisco

    feito ele no bloco de nota qual vai ser a sua extensão

  • Mauricio Bugno

    Ola. Iniciei hoje seu curso. Estou aguardando a próxima aula. Enquanto isso estoulendo o restante dos textos no site. Nao consegui compreender esse algoritimo. Utilizando o exemplo de um colega abaixo onde o numero 1 é 4 e o numero 2 é 5, vc disse que o resultado é 20. Mas acima no algoritimo vc diz que o contador é o numero 2, ou seja = 5 e o resultado é ele mesmo + numero 1, ou seja 0 + 4 que é 4. Até aí ok, mas daí entrou a parte dizendo que o contador é contador +1, ou seja 5 +1 qu é 6 e então….eu fiquei perdido. Vc pode esplanar melhor essa sequencia?
    Obrigado

  • Emanuela Giusti Ferreira

    Oi, queria saber o ano essa publicação para utiliza-la em meu trabalho, se puder me ajudar agradeço mt.

  • ricks 21

    vish faço T.I e foi mal nesta matéria alguém sabe alguma dica para se ir bem nesta matéria?

    • A dica é praticar bastante.
      Indico o meu minicurso de lógica de programação gratuito.
      Basta se inscrever aqui: http://www.dicasdeprogramacao.com.br/minicurso-logica-de-programacao/

      Bons estudos!

      • ricks 21

        tem mais algum outro material ou vídeo- aulas?

        • Infelizmente ainda não fiz produzi outro material além do blog e do minicurso.
          Hoje posso te indicar a plataforma alura.com.br. Também tem muito conteúdo bom lá. Inclusive eu frequentemente faço cursos no Alura.

          Bons estudos!

  • Gabriel Muhamed

    ola queria saber se vc me da aula particular de graça ?

  • Kayro

    Faça um algoritmo que receba o nome e as 8 notas de um aluno, e informar a média de cada semestre e a média final com seu nome.
    O código deve obrigar q digitar uma nota válida, de 0 a 10, e por fim, linha por linha, indique o nome do aluno e exiba as médias bimestrais, a média final e se ficou ou não de recuperação (menor que 24 pontos)

    Alguém, urgente, por favor