Saudação

Sejam Bem-Vindos! Hoje é

sábado, 21 de março de 2015

Afinal, o que é um algoritmo e o que isso tem a ver com computação?

algoritmo1


Suponha que você perguntou ao seu colega como chegar à padaria saindo de seu trabalho. Ele te responde assim:

1- Siga reto;
2- Quando chegar na rua A, vire à direita;
3- Se o sinal estiver aberto, siga reto. Caso contrário, vire à esquerda;
4- Se você seguiu reto, vire à esquerda na segunda rua;
5- Se você seguiu à esquerda, vire à direita na terceira rua;
6- Siga reto e você chega lá.

Você entendeu essas instruções? Seria capaz de seguí-las? Então parabéns, você fez exatamente o que um software faz o tempo todo enquanto seu computador, celular e outros gadgets estão ligados: você seguiu um algoritmo. 
Na matemática e na computação, um algoritmo é definido como uma série de instruções passo-a-passo que descrevem explicitamente várias operações. No caso do seu carro, as operações eram "siga reto", "vire à esquerda" ou "vire à direita". Em dados momentos, você teve condições a seguir: se o sinal estivesse aberto, deveria "ir reto". Senão, deveria "virar à esquerda". Seu computador faz isso o tempo todo e de forma tão rápida que às vezes nem percebemos.
Pense na forma como você está lendo este site agora mesmo. Clique com o mouse em algum ponto de seu navegadorSe esse ponto for um hiperlink, abrirá uma nova janelaSe for um botão, seguirá as instruções desse botão. Se não for nenhum deles, não fará nada. Tudo o que o seu computador faz é executar diversas operações baseadas em certas informações fornecidas a ele. Essas informações são as entradas.
Uma entrada é o dado inicial que será utilizado para seguir uma operação. No primeiro algoritmo de que falamos, as entradas seriam as condições em que você estava: você estava no trabalho; você estava de carro. Baseado nessas entradas, você foi capaz de seguir as operações que lhe foram disponibilizadas: vire à esquerda, siga reto, vire à direita. 
No meio do percurso, havia uma situação que poderia ter duas condições possíveis: o sinal poderia estar aberto ou fechado. Nesse caso, consideramos que o sinal é uma variável. Afinal, ele varia, correto? Ele pode estar com diferentes valores, pode ser verde, amarelo, vermelho ou até azul! O que você faria nesse caso? Talvez nada, porque não foi programado para agir numa situação dessas. O seu programa poderia dar erro, talvez até fechar sem que o usuário tivesse mandado. Isso soa familiar? Pois são essas situações, em que o programa não prevê todas as situações possíveis, que ocorre a famosa tela azul do Windows, o jogo travado ou o browser que parou de responder.
Mas não pense que apenas o sinal é uma variável. A sua posição é uma variável. Ela inclusive faz parte dos dados sobre você. Os seus dados, digamos, são esses: você é fulano, trabalha na "Ciclaninho LTDA". No momento, está na posição A1. Ao final da operação de "ir à padaria", a sua posição será outra, será, digamos, B2. Ela variou. Portanto, sua posição e até você mesmo são variáveis desse simples algoritmo.
Tem-se, neste momento, uma entrada e algumas variáveis. Mas qual é a saída? É exatamente o objetivo do algoritmo: você na padaria!
Agora pense no seu navegador, no seu sistema operacional, no seu jogo. Quais são as entradas e saídas? Elas são a posição do seu mouse, o seu clique, as teclas que você pressiona. Ao final das operações, você tem o editor de texto aberto, o personagem batendo no monstro ou o navegador aberto no Canaltech.
O conceito de algoritmos é um dos mais básicos da computação, algo que rege a maior parte dos eletrônicos que utilizamos no dia-a-dia. Você tem dúvidas? (Não -> "Texto finalizado com sucesso" / Sim -> "Consulte o material abaixo").
Há uma infinidade de material sobre algortimos disponível na Internet. Se você deseja começar a programar e não sabe como, indicamos o site Coursera, que disponibiliza aulas de diversas universidades renomadas. Tudo gratuito e frequentemente atualizado. Boa sorte!


FONTE: http://canaltech.com.br/

Nenhum comentário:

Postar um comentário

Related Posts Plugin for WordPress, Blogger...