Os números essencialmente podem ter 4 porções:
Prefixo do país (dois dígitos):
Código de chamada país: +55
Prefixo da operadora (dois dígitos):
12 - CTBC
14 - Brasil Telecom
15 - Telefónica
21 - Embratel
23 - Intelig
25 - GVT
31 - Oi
41 - TIMPrefixo geográfico (dois dígitos): Wikipedia
Número de telefone nos formatos:
NNNN-NNNN 9NNNN-NNNN
Além disso, existem outros números com uma nomenclatura especial, os números de utilidade publica que contém apenas 3 digitos.
Tipos de números
Existem apenas dois tipos de números, fixos ou móveis, distinguidos entre si pelo primeiro digito:
- 2 a 5 são números fixos (linha terrestre)
- 6 a 9 são números móveis (telemóvel)
Pseudocódigo
Com base nos dados em cima expostos, o algoritmo teria que funcionar dentro dos seguintes moldes:
Verificar se tem mais que três dígitos para determinar se é um número de utilidade publica.
Se for de utilidade publica, terminamos aqui e agimos em conformidade.
Verificar se número começa por
+55
para determinar se tem o código de chamada do país.Se tiver o código de chamada do país, vamos remover o mesmo do número e continuar com a verificação.
Verificar se tem pelo menos 12 dígitos.
Se não tiver 12 ou mais dígitos, é inválido, terminamos aqui e agimos em conformidade.
Verificar se tem 13 dígitos.
Se tiver 13 digito, é numero móvel de São Paulo, terminamos aqui e agimos em conformidade.
Apurar se fixo ou móvel.
Chegando aqui temos que ter 12 dígitos, como tal, vamos pegar no 5º digito e verificar se o mesmo está no grupo (2~5) ou no grupo (6~9), terminamos a operação e agimos em conformidade.
Opcional:
Partir os 12 dígitos em porções para identificar onde se encontra o mesmo:
2 dígitos - Operadora 2 dígitos - Área geográfica 4 dígitos - Primeira parte do número 4 dígitos - Segunda parte do número
Diagrama
O fluxo da informação com base no que apuramos até ao momento pode ser apresentado da seguinte forma: