Ir ao conteúdo
  • Cadastre-se

Pascal, cálculo dígito verificador


Fabiomask

Posts recomendados

Olá, criei este código em Pascal, cuja ideia seria gerar números sequenciais, e cada número gerado seria calculado o dígito verificador em módulo 11.

O calculo funciona, porém, não sei como fazer para calcular todos os números que estão no meu "for", ele só calcula o primeiro. Obrigado

program calculo;
uses crt;
var
num,resto,vaucher : longint;
dv1,soma,i : integer;
begin
for vaucher := 1 to 200 do
begin
soma := 0;
i := 2;
num := vaucher;
while num > 0 do
begin
resto := num mod 10;
soma := (resto*i) + soma;
num := num div 10;
i := i+1;
if i > 9 then i := 2;
end;
if soma mod 11 < 2 then
dv1 := 0
else
dv1 := 11-(soma mod 11);
i := 3;
num := vaucher;
writeln(vaucher,'-',dv1);
readkey;
end;
end.

Link para o comentário
Compartilhar em outros sites

Olá, Fabiomask...

Bem

Eu testei seu código no Dev-Pascal e ele funcionou num boa...

Para todos os valores contidos no "for"...

Uma observação: A última atribuição i:=3 acaba sendo desnecessária, pois, quando o programa volta ao início do laço, i passa a valer 2

Rapaz, muito obrigado pelo alerta, não tinha atentado em dar o enter para que calculasse os demais números do ´for´ e você nesta resposta acabou abrindo minha mente, muito obrigado.

Um abraço.

Link para o comentário
Compartilhar em outros sites

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...