Uma linguagem de programação é como uma forma de conversar com o computador.
Ela serve de ponte entre o raciocínio humano (o que queremos que aconteça) e a execução da máquina (o que ela realmente faz).
Com ela, transformamos nossas ideias em instruções que o computador entende e executa.
Cada linguagem tem suas regras de escrita (sintaxe) e significados (semântica), que juntas permitem criar códigos capazes de fazer o computador realizar tarefas — como exibir uma página, tocar uma música ou até controlar um robô.
Antes de escrever um programa, é preciso planejar o que ele vai fazer — e é aí que entra o algoritmo.
Um algoritmo é um passo a passo lógico que indica como resolver um problema.
Podemos pensar nele como uma receita de bolo: há uma sequência de instruções que, se seguidas corretamente, levam a um resultado esperado.
Algoritmos
Com a estrutura apresentada anteriormente, torna-se mais fácil compreender a definição de um algoritmo, que pode ser caracterizado como um conjunto de instruções objetivas. Embora o termo “algoritmo” frequentemente remeta a ideias complexas, ele consiste essencialmente em um conjunto de passos planejados para resolver um problema. Isso não significa que todos os algoritmos sejam simples; alguns podem ser bastante complexos, dependendo da dificuldade do problema que se deseja solucionar.
Representações de um algoritmo
Agora que apresentamos uma introdução sobre o que são algoritmos, vamos entender como eles podem ser representados. Existem diversas formas de representação, que vão desde métodos mais simples, utilizando figuras e símbolos, até abordagens mais detalhadas, que incluem regras de implementação.
Entre as formas mais comuns, destacam-se duas: o fluxograma, que utiliza figuras para ilustrar tomadas de decisão e o fluxo de execução, e o pseudocódigo, amplamente utilizado no ensino de lógica de programação. Já a representação em linguagem de máquina é voltada para que os computadores processem os algoritmos e resolvam problemas de forma automática.
O pseudocódigo funciona como um recurso didático para aprender a programar, mas não permite a construção direta de softwares. Para isso, é necessário aprofundar-se em linguagens de programação específicas, como Java, Python, PHP, Ruby, JavaScript, C#, entre outras.
Fluxograma
O fluxograma utiliza formas e símbolos para tornar o entendimento de um algoritmo mais simples, pois uma figura muitas vezes comunica melhor do que várias palavras. Ele é composto por uma série de símbolos combinados com desenhos geométricos que representam os passos do algoritmo, como: início, entrada e saída de dados, tomada de decisões, estruturas de repetição e término do algoritmo.
Algoritmo: Troca de Lâmpada
início
ir para o primeiro soquete
enquanto (soquetes testados < 10) faça
acionar o interruptor
se (lâmpada não acendeu) então
pegar uma escada
colocar a escada embaixo do soquete
buscar uma lâmpada nova
acionar o interruptor
subir na escada
retirar a lâmpada queimada
colocar a lâmpada nova
se (lâmpada não acendeu) então
retirar a lâmpada queimada
colocar a lâmpada nova
fimse
fimse
ir para o próximo soquete
fimenquanto
fim
O processo começa indo até o primeiro soquete.
Enquanto houver menos de 10 soquetes testados, o procedimento continua.
O interruptor é acionado para verificar se a lâmpada acende.
Se a lâmpada não acender, o algoritmo executa uma sequência:
Pega e posiciona uma escada.
Busca uma lâmpada nova.
Aciona novamente o interruptor.
Sobe na escada, retira a lâmpada queimada e coloca a nova.
Se mesmo assim não acender, troca novamente a lâmpada.
Após cada teste, o algoritmo segue para o próximo soquete.
Quando todos os 10 soquetes forem testados, o processo termina.
Pseudocódigo: O Esqueleto da Lógica
Diferente do fluxograma, o Pseudocódigo (também conhecido como Portugol ou Português Estruturado) é uma ferramenta textual que utiliza a PDL (Program Design Language) para descrever a lógica de um programa.
Ele é, essencialmente, uma narração estruturada e simplificada das instruções que o código final deverá executar.
Por que usá-lo? O pseudocódigo funciona como a base essencial no aprendizado de qualquer linguagem de programação. Ele preenche a lacuna entre a linguagem humana (falada e conceitual) e a linguagem computacional (código real), permitindo que você se concentre apenas na lógica do programa, sem se preocupar com a sintaxe rigorosa da linguagem.
Para construir um algoritmo em pseudocódigo, utilizamos comandos e palavras-chave que definem sua estrutura e lógica.
Esses elementos ajudam a organizar o raciocínio e representar o funcionamento do programa passo a passo.
Esses comandos delimitam e organizam as diferentes partes do algoritmo:
algoritmo – Inicia a definição do algoritmo e permite atribuir um nome ao programa.
Exemplo:
algoritmo "MeuPrimeiroAlgoritmo"
var – Indica a seção de declaração de variáveis.
É onde todas as variáveis que serão utilizadas devem ser listadas, junto com seus tipos de dados.
Exemplo:
var nome: caractere
inicio – Marca o ponto onde a execução do programa começa.
Dentro desse bloco ficam os comandos e as instruções que serão executadas.
Exemplo:
inicio
fimalgoritmo – Indica o encerramento do algoritmo.
Nenhum comando é executado após essa linha.
Exemplo:
fimalgoritmo
Esses comandos permitem a interação com o usuário, exibindo mensagens e recebendo dados digitados.
escreva – Exibe uma mensagem ou valor na tela sem quebrar a linha.
Exemplo:
escreva("Informe seu nome: ")
escreval – Exibe uma mensagem ou valor e, em seguida, pula para a próxima linha.
Exemplo:
escreval("Obrigado por utilizar o programa.")
leia – Captura um valor digitado pelo usuário e armazena em uma variável.
Exemplo:
leia(nome)
algoritmo "ExemploSimples"
var
nome: caractere
inicio
escreva("Informe seu nome: ")
leia(nome)
escreval("Olá, ", nome, "! Seja bem-vindo ao programa.")
fimalgoritmo
O uso do pseudocódigo (Portugol) aqui teve o objetivo de introduzir a lógica de programação e facilitar o entendimento da estrutura básica de um algoritmo.
A partir das próximas seções, trabalharemos com JavaScript, aplicando os mesmos conceitos de forma prática, com exemplos reais e exercícios de treino para fixar o aprendizado de maneira mais completa e dinâmica.
Para quem está começando no mundo da tecnologia, é comum haver confusão sobre as diferenças entre um algoritmo e a linguagem que o computador realmente utiliza. É fundamental entender que eles representam etapas distintas no processo de criação de software.
O Algoritmo é a base de tudo. Ele é, em essência, o plano lógico, a "receita" ou a sequência de passos bem definidos que um programa deve seguir para resolver um problema específico ou executar uma tarefa. O algoritmo é uma ideia abstrata, independente de qualquer máquina ou linguagem de codificação, focando apenas na lógica da solução.
No entanto, um computador não consegue executar diretamente uma receita. Para que o algoritmo se torne uma realidade funcional, ele precisa ser traduzido em uma Linguagem de Programação (como Python, Java, ou C++). Essa é a etapa onde o desenvolvedor escreve o "código-fonte", que é legível e compreensível para os humanos.
A ponte final entre o código-fonte legível e o hardware é feita pelo Compilador (ou Interpretador). A função crucial dessa ferramenta é traduzir todo o código para a Linguagem de Máquina, que é o conjunto de instruções binárias (os famosos zeros e uns) que o processador do computador entende e executa diretamente.
Em resumo, o algoritmo é a lógica que define o quê fazer; a linguagem de programação é o meio pelo qual essa lógica é escrita; e a linguagem de máquina é o formato final que o computador utiliza para executar a tarefa. Um depende do outro para que qualquer software possa funcionar.