Fóruns sobre PHP, JavaScript, HTML, MySQLi, jQuery, Banco de Dados, CSS


Moderador: web

 
Mais de 100 postagens
Mais de 100 postagens
Tópico Autor
Mensagens: 290
Localização: Parana/curitiba/brasil
Contato:

digito verificador em php

21-12-2009 14:43

web tenho criar um digito verificador de um numero e fazer as seguintes passos abaxio, mas empaquei no primeiro onde eu tenho que colocar o 3 e 1 a baixo de cada digito e depois multiplicar, como que eu faço isso em php?

PASSO 1: Abaixo do código completo (sem o dígito verificador) e começando pela direita, situe alternadamente os números 3 e 1 para cada um dos dígitos, iniciando com peso 3.

7 8 9 1 2 3 4 5 0 0 0 1 DV
1 3 1 3 1 3 1 3 1 3 1 3

PASSO 2: Multiplique todos os dígitos pelos pesos correspondentes:

7 8 9 1 2 3 4 5 0 0 0 1 DV
1 3 1 3 1 3 1 3 1 3 1 3
7 24 9 3 2 9 4 15 0 0 0 3 resultado das multiplicações

PASSO 3: Some todos os resultados das multiplicações:

7+24+9+3+2+9+4+15+0+0+0+3 = 76

PASSO 4: O resultado obtido na soma(76) deve ser subtraído do múltiplo de 10 imediatamente maior do que ele.
Então: 80 - 76 = 4
0
 
Avatar do usuário
ADMIN
ADMIN
Mensagens: 17584
Nome: Kleber
Descrição do site: Onde você encontra scripts grátis para o seu site
Sexo: Masculino
Localização: RJ / RJ / Brasil
Contato:

digito verificador em php

21-12-2009 18:14

Não entendi muito bem. Você tem 2 linhas de valores, ai quer trabalhar cada número da linha de cima com o correspondente da linha de baixo?
0
A melhor hospedagem para o seu site HostGator!
 
Mais de 100 postagens
Mais de 100 postagens
Tópico Autor
Mensagens: 290
Localização: Parana/curitiba/brasil
Contato:

digito verificador em php

21-12-2009 21:15

ok, vamos lá temos a $dv= "789123450001";

ai eu tenho que fazer a multiplicação de todos os digitos acima com os numeros 3 e 1 colocando de tras para frente na $dv:
exemplo:
$dv= "789123450001";

7 x 1 = 7
8 x 3 = 24
9 x 1 = 9
1 x 3 = 3
2 x 1 = 2
3 x 3 = 9
4 x 1 = 4
5 x 3 = 15
0 x 1 = 0
0 x 3 = 0
0 x 1 = 0
1 x 3 = 3

esta parte abaixo eu sei fazer o problema é ai em cima, na hora de separar e colocar o 3 e 1 multiplicando os resultados!
0
 
Avatar do usuário
ADMIN
ADMIN
Mensagens: 17584
Nome: Kleber
Descrição do site: Onde você encontra scripts grátis para o seu site
Sexo: Masculino
Localização: RJ / RJ / Brasil
Contato:

digito verificador em php

21-12-2009 21:33

Seria isso

<?php $string = "789"; for($i = 0; $i < strlen($string); $i++) { $i % 2 ? $multi=3 : $multi=1; $total = $string[$i]*$multi; echo $string[$i]." x $multi = $total<br>"; } ?>

0
A melhor hospedagem para o seu site HostGator!
 
Mais de 100 postagens
Mais de 100 postagens
Tópico Autor
Mensagens: 290
Localização: Parana/curitiba/brasil
Contato:

digito verificador em php

21-12-2009 21:57

cara é isso mesmo, web tem como vc me passar uma explicação rápida do que cada função que vc colocou faz, é que eu nunca criei nada com for!
0
 
Avatar do usuário
ADMIN
ADMIN
Mensagens: 17584
Nome: Kleber
Descrição do site: Onde você encontra scripts grátis para o seu site
Sexo: Masculino
Localização: RJ / RJ / Brasil
Contato:

digito verificador em php

21-12-2009 22:07


<?php // os valores que serão quebrados 1 à 1 $string = "789"; // o for vai incrementando a partir do 0 // até chegar a contagem do tamanho da string for($i = 0; $i < strlen($string); $i++) { // se o resultado de $i dividido por 2 tiver resto // definido no % 2, $multi será igual a 3, caso contrário 1 $i % 2 ? $multi=3 : $multi=1; // ao adicionar um índice a string [0][1]... eu pego o caracter da posição // em cada laço, eu multiplico por um dos $multi e armazendo o resultado no $total $total = $string[$i]*$multi; // aqui imprimo o que será visto, e também o total da multiplicação echo $string[$i]." x $multi = $total<br>"; } ?>

0
A melhor hospedagem para o seu site HostGator!
 
Mais de 100 postagens
Mais de 100 postagens
Tópico Autor
Mensagens: 290
Localização: Parana/curitiba/brasil
Contato:

digito verificador em php

21-12-2009 22:35

Nossa, muito legal, é como se fosse o while, to entendedo, só uma coisa, eu achei que sabia, mas não sei não, tentei usar o str_replace para trocar os espaços por +, mas não deu certo. Ele até printa com os numeros e o + mas não efetua a soma se eu colocar o $total2 = $total + 0; ! como faço no for para somar ? eu tentei jogar o $total fora do for, mas ele não recebe todos, tem que fazer tudo dentro né?
0
 
Avatar do usuário
ADMIN
ADMIN
Mensagens: 17584
Nome: Kleber
Descrição do site: Onde você encontra scripts grátis para o seu site
Sexo: Masculino
Localização: RJ / RJ / Brasil
Contato:

digito verificador em php

22-12-2009 16:45

Você fala somar um 0 ou escrever um 0?
0
A melhor hospedagem para o seu site HostGator!
 
Mais de 100 postagens
Mais de 100 postagens
Tópico Autor
Mensagens: 290
Localização: Parana/curitiba/brasil
Contato:

digito verificador em php

22-12-2009 19:32

nossa tentei de tudo quanto é forma que eu conheço e não consegui....
então web, agora a ideia é pegar todos os resultados e somar.
no exemplo temos os resultados 7, 24, 9, 3, 2, 9, 4, 15, 0,0,0,3 agora tenho que soma-los e chegar o ao resultado 76!

7 x 1 = 7
8 x 3 = 24
9 x 1 = 9
1 x 3 = 3
2 x 1 = 2
3 x 3 = 9
4 x 1 = 4
5 x 3 = 15
0 x 1 = 0
0 x 3 = 0
0 x 1 = 0
1 x 3 = 3
0
 
Avatar do usuário
ADMIN
ADMIN
Mensagens: 17584
Nome: Kleber
Descrição do site: Onde você encontra scripts grátis para o seu site
Sexo: Masculino
Localização: RJ / RJ / Brasil
Contato:

digito verificador em php

22-12-2009 20:03

Isso é simples.

Antes do for, defina uma base, tipo

$base = 0; 

Em algum lugar dentro do while, você coloca o seguinte:

$base+=$total; 

Para obter o total fora do while, você usa

echo $base; 

0
A melhor hospedagem para o seu site HostGator!
 
Mais de 100 postagens
Mais de 100 postagens
Tópico Autor
Mensagens: 290
Localização: Parana/curitiba/brasil
Contato:

digito verificador em php

22-12-2009 20:31

ah, então eu posso usar as mesmas funções do while no for...hum...entendi...voltando ao script, eu fiz isso mas parece que não esta somando o ultimo numero, ele esta resultando em 73 e não 76!?da uma olhada web!
0
 
Avatar do usuário
ADMIN
ADMIN
Mensagens: 17584
Nome: Kleber
Descrição do site: Onde você encontra scripts grátis para o seu site
Sexo: Masculino
Localização: RJ / RJ / Brasil
Contato:

digito verificador em php

22-12-2009 20:41

Acabei de testar agora aqui, peguei o script que te passei como base, sua string com os valores

$dv= "789123450001"; 

Apliquei a "$base" e deu total de 76 no echo.
0
A melhor hospedagem para o seu site HostGator!
 
Mais de 100 postagens
Mais de 100 postagens
Tópico Autor
Mensagens: 290
Localização: Parana/curitiba/brasil
Contato:

digito verificador em php

22-12-2009 21:06

Afffff...bobeira minha coloquei a base antes da $total = $string[$i]*$multi; ai nunca ia dar mesmo, agora eu coloquei a $base+=$total; depois e deu certo, somou direitinho! valew web! obrigado! :-x
0
 
Mais de 1000 postagens
Mais de 1000 postagens
Mensagens: 1254
Sexo: Masculino

Re: digito verificador em php

31-01-2017 10:29

Olá! Aqui está a explicação matemática de como funciona o dígito verificador: http://www.ngmatematica.com/2014/02/com ... or-do.html. Fiz uma pesquisa de código PHP para isso pelo Google e surgiu este tópico. O colega poderia ter postado o código.
1

Quem está online

Usuários navegando neste fórum: Nenhum usuário registrado