Augusto Manzano

Natural da Cidade de São Paulo, tem experiência em ensino e desenvolvimento de programação de software desde 1986. É professor da rede federal de ensino no Brasil, no Instituto Federal de Educação, Ciência e Tecnologia. É também autor, possuindo na sua carreira várias obras publicadas na área da computação.

Algoritmo de Verhoeff

Na edição 16 da Revista PROGRAMAR em Outubro de 2008 foi publicado o artigo Algoritmos para o Cálculo de Dígito Verificador que descreveu o cálculo de dígito verificador para códigos de identificação a partir dos métodos de módulo 10 e 11. Além dos algoritmos já apresentados existem outros mecanismos para cálculo e obtenção de dígitos verificadores, podendo-se destacar o algoritmo de Verhoeff, tema deste artigo.

O algoritmo ora apresentado foi desenvolvido por Jacobus (Koos) Verhoeff, matemático holandês para sua tese de doutorado em 1969 (GARCIA, et. al., 2007, p. 47). Verhoeff escreveu um algoritmo capaz de operacionalizar sequências de dígitos decimais de qualquer tamanho, evitando desta forma a ocorrência de erros de dados (HAMMING, 1986, p.27) e de transposição de dígitos adjacentes quando efectuados por utilizadores humanos (WAGNER & PUTTER,1989), tais como:

  • Substituir um dígito por um outro dígito. Por exemplo, invés de informar os dígitos 5678 acaba-se por informar 4678, onde o dígito que deveria ser 5 foi substituído pelo dígito 4. Este tipo de erro ocorre quando se acciona no teclado uma tecla adjacente à tecla que deveria ter sido realmente accionada. Ocorre em cerca de 60% a 90% dos casos.
  • Omissões ou adições de dígitos. Este tipo de erro ocorre normalmente por falta de atenção do utilizador. Ocorre em cerca de 10% a 20% dos casos.
  • Trocar da ordem entre dois dígitos. Por exemplo, invés de informar os dígitos 5678 acaba-se por informar 6578, onde os dígitos 56 foram trocados pelos dígitos 65. Este tipo de erro ocorre quando se escreve muito rápido em um teclado. Ocorre em cerca de 10% a 20% dos casos.

Continuar a ler

Manipulação de Datas

Introdução

No mundo da programação, é comum necessitarmos de algum utilitário que efectue cálculos com datas do calendário gregoriano. Os ambientes de programação integrados normalmente possuem tais funções já definidas internamente, bastando ao programador apenas fazer uso das mesmas. A principal questão deste artigo é responder à questão: como podem esses cálculos ser processados? Para solucionar este tipo de problemas, é conveniente conhecer e utilizar algoritmos específicos. Existem várias formas e soluções, no entanto é aconselhável utilizar aquelas que já tenham sido testados como, por exemplo, algoritmos utilizados na área da Observação Astronómica, que possibilitam calcular qualquer data a partir do ano 4712 a.C. Para entender melhor o processo do cálculo de datas, torna-se necessário entender os conceitos de: Dia Juliano, Calendário Juliano, Calendário Gregoriano e Ano Bissexto.

Continuar a ler