Antecessor E Sucessor - Escreva O Antecessor E O Sucessor Dos Números - FDPLEARN
Escreva O Antecessor E O Sucessor Dos Números - FDPLEARN

O que são antecessor e sucessor na prática

Antecessor é o número que vem imediatamente antes de outro. Sucessor é o que vem depois. Parece óbvio, mas a forma como você lida com isso no dia a dia — especialmente em planilhas, bancos de dados e programação — costuma causar dor de cabeça quando a lógica não é bem compreendida. Eu já vi gente gastar dias corrigindo falhas em sistemas causadas por confusão entre antecedência e sucessão de valores, simplesmente porque ninguém documentou como a sequência seria tratada nas bordas.

Como calcular antecessor e sucessor corretamente

A operação básica é subtrair 1 do antecessor e adicionar 1 ao sucessor. Para o número 47, o antecessor é 46 e o sucessor é 48. Pronto. O problema começa quando você trabalha com decimais, strings numéricas, datas ou valores negativos. E aí a coisa muda de figura. Eu tive um caso específico há alguns anos trabalhando com uma base de dados de registros médicos onde os IDs eram atribuídos sequencialmente mas podiam ter lacunas — deletões, migrações, rollback de testes. Um relatório precisava listar o antecessor e sucessor de cada ID para rastrear a origem dos dados. Quando fui buscar o antecessor usando apenas `SELECT id - 1`, o sistema retornava IDs que nem existiam na tabela. A solução foi usar uma query com `LAG` e `LEAD` do PostgreSQL, que pega o valor anterior e posterior considerando apenas os registros que realmente existem. Funcionou perfeitamente após ajustarmos o `PARTITION BY` para agrupar por categoria de registro.

Outro ponto que muita gente ignora: com números decimais, o sucessor de 5,5 não é 6,5. Depende da precisão que você está usando. Se o passo for 0,1, o sucessor de 5,5 é 5,6. Se for 1, é 6. Defina sempre qual é o incremento antes de fazer qualquer cálculo automático.

👉 Clique no botão abaixo para saber mais sobre o assunto!

Pegadinhas comuns que você vai encontrar

A primeira é com zero e números negativos. O antecessor de 0 é -1. O sucessor de -5 é -4. Pessoas que só pensam em números naturais commetem erros aqui e depois passam horas debuggando. A segunda é em sistemas que usam strings como identificadores numéricos. Se o ID é armazenado como "0047", fazer uma subtração direta vai resultar em erro ou em "0046" dependendo da linguagem. Converta para inteiro antes de operar, e formate de volta depois se necessário.

A terceira, e talvez a mais traiçoeira, é em sequências com gaps intencionais. Números de lote, números de série, CPFs — nenhum deles segue umaProgressão aritmética perfeita. Calcular antecessor e sucessor por subtração simples nesse contexto gera resultados que parecem corretos mas são semanticamente errados.

Quando essa abordagem não funciona

Se você está lidando com dados distribuídos em múltiplas tabelas, sharding ou replicação assíncrona, a noção de "antecessor" e "sucessor" perde o sentido rápido. Dois nós podem atribuir o mesmo sucessor a um registro diferente. Nesse cenário, o melhor é abandonar a lógica baseada em índice e usar timestamps ou UUIDs com ordenação por tempo de inserção. Também não faz sentido aplicar isso em conjuntos finitos com regras de negócio próprias. Uma fila de atendimento hospitalar, por exemplo, tem precedência clínica, não numérica. O "sucessor" de um paciente grave não é o próximo na fila, é o próximo prioritário.

O conceito de antecessor e sucessor é fundamental em algoritmos de ordenação, indexação e navegação. O problema é que ele parece trivial até você encontrar o primeiro caso edge que quebra a premissa. Documente sempre qual é a regra de incremento, trate bordas explicitamente e prefira funções de janela (window functions) em SQL quando a sequência tiver lacunas. Isso evita muito retrabalho.