SkillsTecnológicas
Menu
Conteúdo da trilha

Conteúdo 13 de 20

Variáveis e constantes

Entenda como nomes representam dados, acompanhe mudanças de estado e diferencie valores atualizáveis de associações constantes.

Publicado em 10 de setembro de 202614 min de leituraSkills Tecnológicas

Recipientes desenhados a lápis mostram um valor mudando em três etapas e outro valor permanecendo ancorado

Variáveis dão nome ao estado de um algoritmo

Uma variável é um nome usado para acessar um dado que o algoritmo precisa guardar, consultar ou atualizar. Se quantidadeDeItens vale 3 agora e um item é adicionado, o mesmo nome pode passar a representar 4.

Pense nela como uma etiqueta associada ao valor atual. A metáfora da “caixa” ajuda no início, mas não descreve igualmente todas as linguagens: algumas armazenam o valor diretamente; outras fazem o nome referenciar um objeto. O modelo essencial é este: o nome permite recuperar o estado que importa naquele ponto da execução.

Uma constante também dá nome a um dado, mas estabelece que essa associação não deve mudar durante o contexto definido. Ela comunica estabilidade e, quando a linguagem oferece suporte, pode impedir uma nova atribuição. É esse estado nomeado que permite ligar a entrada ao processamento e à saída sem perder os valores intermediários.

Linha do tempo mostra a variável itens mudando de 2 para 3 e 4, enquanto a constante limite permanece em 10 nas três etapas
A variável acompanha mudanças do estado; a constante preserva a referência definida para aquela execução.

O ciclo de uma variável

Para usar uma variável com clareza, separe quatro ideias. Os exemplos seguem as convenções da aula sobre como escrever um pseudocódigo claro.

Declaração

Declarar introduz o nome no algoritmo. Linguagens com tipagem explícita podem exigir também o tipo; outras inferem ou permitem que ele seja definido pelo valor. A próxima aula aprofundará tipos de dados.

Em pseudocódigo independente de linguagem, podemos registrar apenas a intenção:

declare quantidadeDeItens

Inicialização

Inicializar fornece o primeiro valor válido:

quantidadeDeItens ← 0

Esse valor inicial precisa fazer sentido para o problema. Zero pode representar uma contagem vazia, mas não serve automaticamente para datas, nomes ou estados desconhecidos.

Leitura

Ler é usar o valor atual em uma expressão, condição ou saída:

informe quantidadeDeItens

A leitura não altera a variável. Ela apenas consulta o estado naquele momento.

Atualização

Atualizar calcula e atribui um novo valor:

quantidadeDeItens ← quantidadeDeItens + 1

O valor anterior participa do cálculo; o resultado volta a ser associado ao mesmo nome. Depois da instrução, a leitura de quantidadeDeItens devolve o novo valor.

Atribuição não é igualdade matemática

Na matemática, x = x + 1 seria impossível. Em um algoritmo, o símbolo de atribuição indica uma operação no tempo: avalie o lado direito com o estado atual e grave o resultado no alvo à esquerda.

Por isso, o pseudocódigo desta trilha usa :

saldo ← saldo + deposito

Se saldo vale 40 e deposito vale 15, a execução ocorre assim:

  1. ler saldo, obtendo 40;
  2. ler deposito, obtendo 15;
  3. calcular 40 + 15, obtendo 55;
  4. atribuir 55 a saldo.
Atribuição lê saldo 40 e depósito 15, calcula 55 e atualiza saldo de 40 para 55
O lado direito usa o estado anterior; somente depois do cálculo o alvo recebe o resultado.

Documentações de linguagens formalizam a atribuição de maneiras próprias. A referência do Python, por exemplo, descreve que a expressão é avaliada e o resultado é atribuído ao alvo. O detalhe de implementação varia, mas a leitura temporal evita confundir atualização com comparação.

O que caracteriza uma constante

Uma constante representa um valor ou uma associação que deve permanecer estável no contexto do programa. Exemplos possíveis incluem DIAS_DA_SEMANA ← 7 ou um limite definido pela regra do exercício.

Ela é útil porque:

  • dá significado a um literal que apareceria solto;
  • evita alterações acidentais quando a linguagem fiscaliza a restrição;
  • centraliza um valor reutilizado;
  • comunica ao leitor que aquele nome não participa das mudanças de estado.

Em pseudocódigo, podemos escrever:

constante LIMITE_DE_TENTATIVAS ← 3

Usar letras maiúsculas é uma convenção comum para destacar constantes, não uma regra universal. O importante é que o padrão do material ou da equipe seja consistente.

Constante não significa a mesma coisa em toda linguagem

O conceito introdutório é estável, mas a garantia concreta depende da linguagem.

Em C#, uma constante declarada com const precisa ser conhecida em tempo de compilação e aceita apenas certos tipos. Quando o valor só pode ser determinado em tempo de execução, existem outros mecanismos, como campos readonly.

Em JavaScript, const impede que o identificador seja reatribuído. Se ele referencia um objeto ou uma coleção, o conteúdo desse objeto ainda pode ser modificado. Portanto, referência constante não é sinônimo de objeto imutável.

Compare conceitualmente:

constante CONFIGURACAO ← objetoConfiguracao

CONFIGURACAO ← outroObjeto       // reatribuição: proibida pela regra
CONFIGURACAO.tema ← "escuro"     // alteração interna: depende da linguagem e do objeto

Esta aula trabalha com valores simples no pseudocódigo. Ao programar, consulte a documentação da linguagem antes de presumir o que a palavra constante protege.

Exemplo: controlar vagas de uma turma

Considere uma turma com capacidade definida em 30, inicialmente com 18 vagas ocupadas. Uma nova reserva inclui 3 pessoas.

constante CAPACIDADE_MAXIMA ← 30

vagasOcupadas ← 18
quantidadeDaReserva ← 3

vagasOcupadas ← vagasOcupadas + quantidadeDaReserva
vagasDisponiveis ← CAPACIDADE_MAXIMA - vagasOcupadas

informe vagasOcupadas
informe vagasDisponiveis

O algoritmo termina com 21 vagas ocupadas e 9 disponíveis. Observe os papéis:

  • CAPACIDADE_MAXIMA permanece 30;
  • vagasOcupadas muda de 18 para 21;
  • quantidadeDaReserva vale 3 neste exemplo e participa do cálculo;
  • vagasDisponiveis é derivada do estado atualizado.
Rastreamento mostra capacidade máxima constante em 30, vagas ocupadas mudando de 18 para 21 e vagas disponíveis sendo calculadas como 9
Separar cada etapa revela quais nomes mudam, quais permanecem e quando o valor derivado deve ser calculado.

Uma tabela de rastreamento confirma a ordem:

Após a instruçãoCAPACIDADE_MAXIMAvagasOcupadasquantidadeDaReservavagasDisponiveis
inicializar capacidade30
inicializar ocupadas3018
registrar reserva30183
atualizar ocupadas30213
calcular disponíveis302139

O traço significa “ainda não definido”, não zero. Essa distinção evita usar um valor antes de inicializá-lo.

O exemplo supõe que a reserva cabe na turma. A validação será aprofundada no módulo de decisões; por enquanto, o objetivo é acompanhar o estado.

Quando escolher variável ou constante

Pergunte se o nome deve receber outro valor dentro do contexto atual.

Use uma variável quando o dado:

  • acompanha contagem, saldo, posição ou estado;
  • recebe entrada que pode variar entre execuções;
  • é atualizado por uma regra;
  • guarda um resultado intermediário ou derivado.

Use uma constante quando o dado:

  • representa uma regra estável naquela execução;
  • não deve receber uma nova associação;
  • aparece em vários cálculos com o mesmo significado;
  • ganha clareza ao substituir um número ou texto literal.

Nem todo valor inicial é constante. saldoInicial pode começar em 100 e mudar. Nem todo valor que muda entre implantações precisa ser variável durante a execução: uma configuração pode ser carregada uma vez e depois permanecer somente para leitura.

Como criar nomes informativos

O nome deve explicar o significado, não apenas o formato. Prefira quantidadeDeTentativas a q, valor1 ou dado.

Boas práticas:

  • use substantivos para valores e contagens;
  • diferencie total, valor atual, limite e resultado;
  • mantenha o idioma e o estilo de escrita consistentes;
  • evite abreviações que só o autor entende;
  • não inclua um tipo no nome sem necessidade;
  • reserve convenções visuais de constante para valores realmente estáveis.

Um nome longo o bastante para ser claro costuma reduzir comentários. Ainda assim, não coloque uma frase inteira no identificador.

Erros comuns

Usar antes de inicializar

Somar a uma variável sem valor inicial torna o resultado indefinido ou provoca erro, conforme a linguagem.

Confundir atribuição e comparação

Atribuição atualiza o estado; comparação pergunta se dois valores atendem a uma relação. Use símbolos distintos no pseudocódigo.

Criar nomes genéricos

x, temp e valor escondem o papel do dado fora de exemplos muito pequenos.

Declarar como constante algo que é configuração mutável

Se o valor precisa mudar durante a execução, tratá-lo como constante contradiz a regra. Se muda apenas entre ambientes, modele explicitamente como configuração carregada.

Acreditar que const congela qualquer conteúdo

Algumas linguagens impedem apenas a reatribuição do nome. Imutabilidade do objeto é outra propriedade.

Atualizar na ordem errada

Calcular vagasDisponiveis antes de somar a nova reserva produziria 12, um resultado antigo. A sequência das atribuições importa.

Pratique rastreando uma pontuação

Considere:

constante BONUS ← 5

pontos ← 10
pontos ← pontos + BONUS
pontos ← pontos * 2
  1. monte uma tabela com uma linha após cada instrução;
  2. registre BONUS e pontos;
  3. informe o valor final;
  4. explique por que BONUS não precisa mudar;
  5. troque o valor inicial de pontos para 0 e execute novamente;
  6. identifique o que seria inválido em BONUS ← 8 depois da declaração.

O resultado final do primeiro rastreamento é 30: primeiro 10 + 5, depois 15 × 2. Confira seguindo o método de testar um algoritmo manualmente.

O que você deve guardar

Variáveis e constantes dão nomes aos dados do algoritmo. A variável permite acompanhar um estado que pode ser atualizado. A constante comunica que uma associação deve permanecer estável no contexto definido.

Atribuição acontece no tempo: primeiro a expressão é avaliada; depois o resultado é associado ao alvo. Inicialize antes de ler, escolha nomes pelo significado e consulte as regras da linguagem para saber o que uma declaração constante realmente garante.

Este conteúdo abre o módulo de dados e expressões. Avance para tipos de dados para entender quais valores e operações cada variável admite e consulte o catálogo da trilha de Lógica de Programação para acompanhar a sequência.

Referências