Quem nunca teve curiosidade de abrir um computador e, finalmente, entender como aquela máquina tão inteligente funciona? Ok, a maioria fica só na vontade porque não parece tão fácil assim manusear tantas peças, mas o lado bom é que também podemos entender o computador e suas peças sem necessariamente precisar abri-lo por inteiro.
Tudo começa pela Placa Mãe, na qual são ligadas todas as outras peças e é por meio dela que todos os outros componentes se conversam (bem estilo mãe mesmo, que comanda tudo). Depois temos o HD, vulgo Hard Driver, no qual são armazenadas as informações persistentes, e a Memória RAM, que guarda as informações temporárias. O Processador é a parte mais inteligente das nossas máquinas, é a que faz todas as contas por nós. E a Placa de Vídeo é a parte responsável por transformar as informações em pontinhos coloridos para aparecer no monitor (e esses pontinhos se chamam pixels).
Máquinas também precisam ser ensinadas
Os computadores são como crianças que precisam de alguém que diga a elas como fazer as coisas até entenderem como podem fazer aquilo sozinhas. E a computação nada mais é do que receber uma entrada e produzir uma solução. Ou seja, a máquina recebe ‘uma ordem’ e nos apresenta uma resposta conforme o que solicitamos. E esses comandos são feitos por meio de algoritmos.
Algoritmos são simplesmente os passos para executar uma tarefa, uma sequência finita de funções. Sim, nunca se esqueçam de realizar um comando final ou você pode travar o seu computador em um loop infinito. Mas o que é isso? Loop infinito ocorre quando não há um comando de saída, ou seja, não há um ponto de parada do processamento. Sem a finalização o processador fica trabalhando eternamente e isso “enche” a memória da máquina, que tem recursos limitados para lidar com a quantidade de informação processada. E é esse excesso de processamento que pode travar seu computador.
Algoritmo de Busca
Você se lembra como fazer para encontrar um determinado nome numa lista telefônica? Era difícil, não é?! Se você é muito jovem e nem sabe o que é uma lista telefônica, pense em como se faz para encontrar uma palavra no dicionário. O conteúdo muda, mas o sistema de busca é bem parecido.
Então, algoritmo de busca é um comando que podemos dar ao computador para que ele faça essa pesquisa por nós. E o melhor de tudo: esse comando pode funcionar de várias formas e se adapta de acordo com a necessidade da busca que você precisa realizar naquele momento.
Voltando ao exemplo da lista telefônica, podemos pensar em diferentes algoritmos de busca. Um primeiro exemplo de algoritmo seria ler nome a nome, até encontrar o que procura, o que daria muito trabalho. Uma segunda possibilidade seria pular de página em página olhando apenas o primeiro nome de cada página. Se não estiver naquela página, pule mais uma. Quando encontrar a página correta, olhe nome a nome até encontrar o que procura.
Se ainda assim achar que não é a melhor maneira, um terceiro modelo de algoritmo poderia dividir a lista ao meio e descobrir se o nome está na metade da direita ou na metade da esquerda. Então escolha a metade correta e a corte no meio novamente, aplique a mesma lógica, até encontrar o nome. Ou então, uma outra opção é ter um índice da primeira letra, se o nome que está procurando começa com D, e você tem um índice dizendo em que página começa e termina o D, você pode aplicar qualquer um dos algoritmos acima nesse trecho de D a E.
Falando assim parece confuso não é?! Mas quando paramos para pensar, é possível perceber que usamos algoritmos diariamente no nosso dia a dia e eles apenas nos passam despercebidos. E isso acontece porque nós não precisamos repassar em nossa cabeça o passo a passo da tarefa cada vez que vamos realizá-la. Fazer uma ligação é um exemplo disso. Veja como ficaria o algoritmo nesse caso:
1 – Retirar o fone do gancho;
2 – Esperar o ruído de discar (o som que mostra que a linha está funcionando);
3 – Após ouvir o ruído, disque o número desejado;
4 – Se der sinal de ocupado:
I – Coloque o fone no gancho e volte ao passo 1.
5 – Se começar a chamar:
II- Espere alguém do outro lado da linha atender;
II – Converse à vontade;
III – Ao terminar, coloque novamente o fone no gancho.
Algoritmo de Ordenação
Assim como o algoritmo de busca pode fazer a função de pesquisa por você, o algoritmo de ordenação por organizar suas coisas (não, isso não inclui a organização do seu quarto). Mas como assim organizar? Desde que você descreva o comando correto, detalhando os itens e sabendo como fazer um ‘código genérico’, que englobe o maior número de variáveis, ele pode ordenar desde as suas músicas e áudios mp3 até conteúdos muitos mais extensos e complexos.
E como fazer o computador entender esses comandos?
Bom, já dissemos que a máquina precisa de um direcionamento para funcionar. E para o computador entender todos os comandos que são dados, nós precisamos saber ‘falar a língua do computador’. Pense numa receita, seja de bolo ou qualquer outro prato. Nela você tem os ingredientes, as quantidades e como usar cada um deles. Para você conseguir os passos, a receita deve estar escrita no idioma que você conhece, certo?
Pois o computador funciona exatamente igual: você descreve os itens que vai utilizar, detalha o passo a passo do comando que ele precisa realizar e precisa escrever numa linguagem que ele entenda. É aí que entram os diversos tipos de linguagens existentes na computação. Fizemos um resumo e, ainda assim, olha quantos tipos nós temos:
- Assembly = linguagem do processador
- Linha de comando (copy c:/teste.txt d:/teste.txt)
- Compiladas (c, ++, pascal)
- Interpretadas (javascript, php)
- Funcionais (operações matemáticas) (haskell, f#)
- Procedurais (Cobol, c#)
- Orientadas a Objeto (java, c#)
- Script (para automação de tarefas) (Lua, Ruby, python)
- Dinâmicas (javascript, Ruby)
- Estáticas (java, c#, c++)
- Markup (HTML, XML)
Por fim, a dica mais importante para quem está começando a conhecer esse mundo complexo e, aparentemente, maluco dos computadores e da programação é sempre tentar entender a lógica. Computador é uma máquina que funciona com bases lógicas e dominá-las é o que pode ajudar a tornar mais fácil as diferentes linguagens da computação.
E se você curtiu nossas explicações e se interessou em aprender um pouco mais sobre “O que, afinal de contas, é programar?”, nós falamos um pouco mais sobre isso aqui.
Elis Faber é jornalista formada pela FAPCOM e autora do livro “Nas Asas do Águias”. Ela ama contar/escrever histórias e busca aprender coisas novas todos dias.
Este conteúdo foi escrito com base na Aula 02 do Curso Eu Programo, de introdução à programação e desenvolvimento web. Veja outros textos baseados no material do Curso Eu Programo, clicando aqui.