Fórum do Clube do Hardware  

Voltar   Fórum do Clube do Hardware > Software > Programação e Desenvolvimento > Outros

Outros Fórum destinado a tudo sobre programação que não se encaixe nas demais categorias acima. Visual Basic, Ruby, Assembly, etc...


Tópico Fechado
 
Opções do Tópico Modos de Exibição
Antiga 14/10/2003, 10:01 H   #1
SpawnlinuX
Membro
 
Membro desde Abr/2003
Goiania/Go
Mensagens: 147

Thumbs up

<font color='#000000'>Estou precisando de ajuda na montagem de um algoritmo que faça validação de CPF. Faço curso de lógica de programação e tenho um trabalho para ser entregue amanhã (15/10/2003). Estou utilizando o programa Projeto Ambap, mas acho que ele não usa vetores, então vou ter que fazer manuscrito.
Alguém me ajuda? *</font>
__________________
Visitem meu site sobre World of Warcraft:
www.alvo.eti.br
O conteúdo depende de vocês!
SpawnlinuX está offline  
Nova  Links Patrocinados

Este anúncio só é mostrado a usuários não cadastrados. Cadastre-se hoje mesmo para não ver mais essa propaganda.
Antiga 15/10/2003, 14:06 H   #2
PedroWerneck
Membro
 
Membro desde Nov/2002
Mensagens: 454

Padrão

<font color='#000000'>Não estou certo se é isso que você quer, mas eu tenho esse código em Python que você pode portar para a linguagem que quiser. Acredito que não terá problemas em entendê-lo. Ele gera o próximo número da sequência de CPF, então para validar um número XXX.XXX.XXX-YY, você passa XXX.XXX.XXX para a função e ela deve retornar o primeiro dígito Y, em seguida você repete com XXX.XXX.XXX-Y e ela deve retornar o último dígito.


Código:
def _gen(cpf):
 * *res = []
 * *for i in range(len(cpf)):
 * * * *a = cpf[i]
 * * * *b = (len(cpf) + 1 - i)
 * * * *res.append(b * a)
 * * * *
 * *res = reduce(int., res)
 * *res = res % 11
 * * * * * * * * 
 * *if res > 1:
 * * * *return (11 - res)
 * *else:
 * * * *return 0
</font>
__________________
"One World, One Web, One Program"
Bill Gates

"Ein Volk, Ein Reich, Ein Fuhrer"
Adolf Hitler
PedroWerneck está offline  
Antiga 18/10/2003, 10:38 H   #3
Diogo Cabral
Membro
 
Membro desde Mai/2002
Maceió
Mensagens: 337

Padrão

<font color='#000000'>
Citação:
Postado Originalmente por SpawnlinuX@14 Out. 2003,11:01
Estou precisando de ajuda na montagem de um algoritmo que faça validação de CPF. Faço curso de lógica de programação e tenho um trabalho para ser entregue amanhã (15/10/2003). Estou utilizando o programa Projeto Ambap, mas acho que ele não usa vetores, então vou ter que fazer manuscrito.
Alguém me ajuda? *
O ambap dispõe de variaveis compostas.

a sintaxe é:
matriz numerico <expr1>[<expr2>,<expr3>] ,
matriz caracter <expr1>[<expr2>,<expr3>] ou
matriz logico <expr1>[<expr2>,<expr3>]

Ex:
Vetor de 10 posições
Variaveis
* * matriz numerico v[10]

Matriz 2x2
Variaveis
* * matriz numerico m[2,2]</font>
__________________
HP Pavilion dv4-1435dx
Core 2 Duo T6500
4GB DDR
Diogo Cabral está offline  
Antiga 19/10/2003, 03:01 H   #4
SpawnlinuX
Membro
 
Membro desde Abr/2003
Goiania/Go
Mensagens: 147

Padrão

<font color='#000000'>Galera, valeu d++++!! consgui montar o algoritmo para validação de CPF e ordenação de vetores!! Confiram:

Ordenação de Vetores:

//algoritmo feito em ila, sem utilizar procedimentos para ordenação de
vetores.
variaveis
numerico a,b,c,m,aux,menor
matriz numerico num[100]
inicio
//nesta linha deverão ser digitados os números que serão ordenados.
escrever "digite a quantidade de numeros que serão ordenados: "
ler a
para b de 1 ate a
*escrever "digite o ",b,"º numero:"
*ler num[b]
*próximo
//este laço é executado até que (B) seja igual ao índice do penúltimo
elemento do vetor.
*para b de 1 ate a-1
//na linha abaixo (menor) recebe o valor de (B)
* *menor:=b
//no laço abaixo © recebe o valor de (a) e será executado até que © seja
igual a (b+1), trazendo o menor elemento para //as posições inicias
sucessivamente voltando ao para da linha acima até que todos os valores do
vetor tenha sido movidos //para as posições de ordem correta.
* *para c de a ate b+1 passo -1
//a linha abaixo testa o menor valor.
* * *se num[c]<num[menor] então
//se a expressão for verdadeira (menor) recebe o valor de © senão volta ao
para e executa até fechar o laço e encontra o //menor numero.
* * * * *menor:=c
* * *fim_se
* *proximo
//nas linhas abaixo o menor valor é trazido para a primeira posição,
voltando ao primeiro para do laço, passando pelo //segundo para testando o
segundo o segundo menor numero, retornando as linhas abaixo para mover o
segundo menor //numero para a segunda posição assim sucessivamente.
* *aux:=num[b]
* *num[b]:=num[menor]
* *num[menor]:=aux
* *proximo
* * * *para b de 1 ate a
* * * * *escrever num[b]
* * * *proximo
fim



Validação de CPF:

//Algoritmo para validação de cpf.

variaveis
numerico dv,dv1,soma,soma1,divi,divi1,multi,mult1,rest,
matriz numerico cpf[11]
inicio
escrever "digite o CPF, após cada numero tecle enter: "
ler cpf[1]
ler cpf[2]
ler cpf[3]
ler cpf[4]
ler cpf[5]
ler cpf[6]
ler cpf[7]
ler cpf[8]
ler cpf[9]
ler cpf[10]
ler cpf[11]
soma:=(cpf[1]*10)+(cpf[2]*9)+(cpf[3]*8)+(cpf[4]*7)+(cpf[5]*6)+(cpf[6]*5)+(cpf[7]*4)+(cpf[8]*3)+(
cpf[9]*2)
rest:=resto(soma,11)
*se (rest=0) ou (rest=1) então
* * dv:=0
* * senao
* * dv:=(11-rest)
*fim_se
soma:=(cpf[1]*11)+(cpf[2]*10)+(cpf[3]*9)+(cpf[4]*8)+(cpf[5]*7)+(cpf[6]*6)+(cpf[7]*5)+(cpf[8]*4)+
(cpf[9]*3)+(dv*2)
rest:=resto(soma,11)
*se (rest=0) ou (rest=1) então
* * dv1:=0
* * senao
* * *dv1:=(11-rest)
* fim_se
*se (dv=cpf[10]) e (dv1=cpf[11]) então
* * escrever "CPF ok!"
* * senao
* * escrever "CPF invalido!"
*fim_se
fim</font>
__________________
Visitem meu site sobre World of Warcraft:
www.alvo.eti.br
O conteúdo depende de vocês!
SpawnlinuX está offline  
Antiga 19/10/2003, 13:52 H   #5
Clemente Silva
Membro
 
Membro desde Mai/2003
Campinas, SP
Mensagens: 2.467

Padrão

Legal! Mais caso encerrado!

Se precisar acrescentar mais alguma coisa ou reabrir este tópico por qualquer outro motivo, basta entrar em contato com a moderação.

Obrigado!

:**
__________________
-> não respondo mais dúvidas por MP, usem o Forum.
-> ao me adicionar no MSN, envie uma mensagem identificando-se (pedidos sem identificação serão bloqueados).
Clemente Silva está offline  
Nova Classificados
Placa De Video Geforce Gts 250 512mb Core Edition 256-Bit



R$ 399,00 em até 12x!
Placa De Video Xfx Nvidia Geforce 9800gt 512mb Ddr3



R$ 319,95 em até 12x!
Placa De Vídeo Geforce 9800gt / Xfx / 512mb



R$ 329,90 em até 12x!
Placa De Vídeo Agp 6200 512mb Nvidia Geforce



R$ 134,95 em até 12x!
Placa De Vídeo Geforce Nvidia 9600 Gt 512 Mb Ddr3



R$ 264,95 em até 12x!

Tópico Fechado

Bookmarks

Opções do Tópico
Modos de Exibição

Ir para...


Horário de Brasília. Agora são 12:34 H.


© 1996-2010, Clube do Hardware. Todos os Direitos Reservados.