Atribuição e expressões no pseudocódigo essencial: operadores e precedência legível

Capítulo 5

Tempo estimado de leitura: 6 minutos

+ Exercício

Atribuição: um padrão único e fácil de reconhecer

Em pseudocódigo essencial, atribuição é a operação de colocar um valor dentro de uma variável. Para evitar confusão com comparação, use um símbolo exclusivo de atribuição, como <- (recomendado) ou :=. O objetivo é que, ao bater o olho, fique claro o que é “guardar valor” e o que é “comparar valores”.

Sintaxe recomendada

  • Atribuição: variavel <- expressao
  • Alternativa equivalente: variavel := expressao
  • Comparação (igualdade): a = b (nunca use = para atribuir)

Exemplos diretos

idade <- 18
nome <- "Ana"
precoFinal <- precoBase + frete

Repare que o lado esquerdo deve ser uma variável (ou posição em estrutura, como um índice), e o lado direito pode ser uma expressão.

Atualização de valores (sem atalhos dependentes de linguagem)

Em muitas linguagens existem atalhos como i++, i--, +=. Em pseudocódigo essencial, prefira uma forma explícita e uniforme, para não depender de convenções específicas.

Padrões de atualização

  • Incrementar: i <- i + 1
  • Decrementar: i <- i - 1
  • Somar um valor: saldo <- saldo + deposito
  • Subtrair um valor: estoque <- estoque - quantidade
  • Multiplicar por um fator: preco <- preco * 1.10

Passo a passo prático: acumulando um total

Objetivo: somar valores de uma lista e manter um total atualizado.

total <- 0
para cada valor em valores faça
    total <- total + valor
fim-para

Passos mentais:

Continue em nosso aplicativo e ...
  • Ouça o áudio com a tela desligada
  • Ganhe Certificado após a conclusão
  • + de 5000 cursos para você explorar!
ou continue lendo abaixo...
Download App

Baixar o aplicativo

  • Inicialize total com zero.
  • A cada item, atualize total usando a própria variável no lado direito.
  • Evite qualquer forma abreviada que possa ser interpretada de maneiras diferentes.

Operadores padronizados: aritméticos, relacionais e lógicos

Para manter o pseudocódigo legível e consistente, padronize os operadores. Abaixo está um conjunto recomendado que evita ambiguidades e se lê bem em português.

Operadores aritméticos

OperaçãoOperadorExemplo
Adição+soma <- a + b
Subtração-dif <- a - b
Multiplicação*area <- base * altura
Divisão/media <- total / n

Se você precisar de operações como resto da divisão ou potência, defina explicitamente no seu padrão (por exemplo, MOD e POT) e use sempre do mesmo jeito.

Operadores relacionais (comparações)

SignificadoOperadorExemplo
Igual=se x = 0 então
Diferentese senha ≠ "" então
Menor<se idade < 18 então
Menor ou igualse tentativas ≤ 3 então
Maior>se saldo > 0 então
Maior ou igualse nota ≥ 7 então

Quando não for prático usar , e (por limitação de teclado), uma alternativa aceitável é <=, >= e !=, desde que você declare e use consistentemente.

Operadores lógicos (booleans)

OperaçãoOperadorExemplo
ConjunçãoEse (idade ≥ 18) E (temDocumento = verdadeiro) então
DisjunçãoOUse (cupomValido = verdadeiro) OU (clienteVIP = verdadeiro) então
NegaçãoNÃOse NÃO bloqueado então

Escreva E, OU, NÃO por extenso para leitura natural. Evite símbolos como &&, || e ! no pseudocódigo essencial.

Precedência legível: quando usar parênteses

Mesmo que exista uma ordem “padrão” de operações, pseudocódigo essencial prioriza não deixar dúvidas. A regra prática é: se alguém puder interpretar de duas formas, use parênteses.

Ordem típica (apenas como referência)

  • Parênteses
  • Operações aritméticas de multiplicação e divisão
  • Operações aritméticas de adição e subtração
  • Comparações (<, , =, etc.)
  • NÃO
  • E
  • OU

Mesmo conhecendo essa ordem, prefira parênteses em expressões mistas (aritmética + lógica) e em condições longas.

Exemplos: tornando a intenção explícita

// Ambíguo para leitura rápida
aprovado <- nota ≥ 7 E faltas < 10 OU temRecurso

// Mais legível (define claramente a regra)
aprovado <- ( (nota ≥ 7) E (faltas < 10) ) OU (temRecurso = verdadeiro)
// Ambíguo: é desconto sobre (preco + frete) ou só sobre preco?
valor <- preco + frete * (1 - desconto)

// Explícito: desconto sobre o total
valor <- (preco + frete) * (1 - desconto)

Escrevendo cálculos em etapas (padrão recomendado)

Quando uma expressão fica longa, quebre em etapas com variáveis intermediárias. Isso melhora a leitura, facilita revisão e reduz erros de precedência.

Padrão: nomear subresultados

subtotal <- precoUnitario * quantidade
valorDesconto <- subtotal * percentualDesconto
subtotalComDesconto <- subtotal - valorDesconto
valorFinal <- subtotalComDesconto + frete

Boas práticas ao quebrar em etapas:

  • Use nomes que expliquem o significado do número (subtotal, valorDesconto), não apenas x1, x2.
  • Evite misturar cálculo e regra de negócio na mesma linha quando ficar denso.
  • Se uma etapa for uma regra (ex.: “desconto máximo”), deixe isso explícito em uma linha própria.

Passo a passo prático: cálculo com regra e condição

Objetivo: aplicar desconto, mas limitar o desconto a um teto.

subtotal <- precoUnitario * quantidade
valorDesconto <- subtotal * percentualDesconto

se valorDesconto > descontoMaximo então
    valorDesconto <- descontoMaximo
fim-se

valorFinal <- subtotal - valorDesconto

O cálculo fica verificável: primeiro calcula, depois aplica a regra do teto, por fim calcula o resultado.

Erros comuns e como evitar

1) Confundir comparação com atribuição

Erro típico: usar = como se fosse atribuição.

// Errado (parece comparação, e pode ser interpretado como condição)
preco = 10

// Certo
preco <- 10

Regra: = é sempre comparação. Atribuição é <- (ou :=).

2) Usar expressão booleana como se fosse atribuição numérica (ou vice-versa)

// Confuso: resultado de (a > b) é booleano
maior <- a > b

Isso pode ser válido se maior for booleano, mas deixe claro pelo nome:

ehMaior <- (a > b)

3) Ordem de operações ambígua em expressões mistas

// Ambíguo: o que vem primeiro para quem lê rápido?
resultado <- a + b / c - d * e

Prefira explicitar:

parte1 <- b / c
parte2 <- d * e
resultado <- (a + parte1) - parte2

4) Condições longas sem parênteses

// Difícil de revisar
podeAcessar <- usuarioAtivo E temPermissao OU ehAdmin E NÃO bloqueado

Reescreva com agrupamento:

podeAcessar <- ( (usuarioAtivo = verdadeiro) E (temPermissao = verdadeiro) )
             OU ( (ehAdmin = verdadeiro) E (NÃO bloqueado) )

Mesmo quando a indentação ajuda, os parênteses deixam a regra inequívoca.

5) Reaproveitar a mesma variável para significados diferentes

Evite fazer uma variável “mudar de papel” no meio do cálculo, pois isso dificulta auditoria.

// Evite
valor <- precoUnitario * quantidade
valor <- valor - (valor * desconto)
valor <- valor + frete

Prefira etapas nomeadas:

subtotal <- precoUnitario * quantidade
subtotalComDesconto <- subtotal - (subtotal * desconto)
valorFinal <- subtotalComDesconto + frete

Agora responda o exercício sobre o conteúdo:

Qual reescrita torna a condição abaixo mais legível e sem ambiguidade de precedência? aprovado <- nota ≥ 7 E faltas < 10 OU temRecurso

Você acertou! Parabéns, agora siga para a próxima página

Você errou! Tente novamente.

A alternativa correta explicita o agrupamento com parênteses, deixando claro que a aprovação ocorre por desempenho e faltas, ou pela existência de recurso, evitando interpretações diferentes da precedência entre E e OU.

Próximo capitúlo

Entrada e saída no pseudocódigo essencial: LEIA, ESCREVA e validação

Arrow Right Icon
Capa do Ebook gratuito Pseudocódigo Essencial: Um Padrão Simples para Descrever Soluções
33%

Pseudocódigo Essencial: Um Padrão Simples para Descrever Soluções

Novo curso

15 páginas

Baixe o app para ganhar Certificação grátis e ouvir os cursos em background, mesmo com a tela desligada.