Ir ao conteúdo

Algoritmo


VampireHunterD

Posts recomendados

Postado

Boa tarde comecei com algoritmo tem nem 5 dias ainda com dificuldade para montar a estrutura sera que alguem poderia me ajudar nesses dois aqui e como eu faço a estrutura.

Todo número de CPF é formado por uma sequência de 9 algarismos mais 2 dígitos verificadores, conforme

pesquisado na questão anterior. É possível identificar a região fiscal à qual o CPF pertence através do 9º

algarismo. Um CPF de número 124.258.346-72, possui o 6 como seu 9º algarismo e isto significa que pertence à

região fiscal do estado de MG. Veja a tabela a seguir:

Algarismo Região Fiscal

1 DF, GO, MS, MT, TO

2 AC, AM, AP, PA, RO, RR

3 CE, MA, PI

4 AL, PB, PE, RN

5 BA, SE

6 MG

7 ES, RJ

8 SP

9 PR, SC

0 RS

Crie um algoritmo que receba como entrada o número de um CPF contendo seus 11 dígitos e identifique a qual

região fiscal pertence.

Um Banco gera os números das contas de seus clientes contendo 5 algarismos mais um dígito verificador da

seguinte maneira:

• O número de cinco algarismos é separado em valores absolutos.

• O primeiro algarismo é multiplicado por 6, o segundo por 5, o terceiro por 4, o quarto por 3 e o quinto por 2.

• É realizada uma soma destes produtos.

• A soma é dividida por 11 e o resto da divisão é analisado:

• Caso o resto seja igual a 0, o dígito verificador será 1;

• Caso o resto seja igual a 1, o dígito verificador será 0;

• Sendo o resto maior que 1, o dígito verificador é igual a: 11 - Resto.

se alguem pode me ajudar obrigado agradeço, tenho muito que aprender, ainda não consigo montar as estruturas.

Postado

Olá amigo,

Respondendo a primeira questão:

Pra poder dizer de que regiao é o cpf você tem que, obviamente, conseguir "extrair" o numero que corresponde ao 9º algarismo do cpf e utilizá-lo para condicionais.

Espero que saiba condicional, vai ser necessario "Se, então"

Então, começando pela matematica:

Se queremos tirar o 9º algarismo, primeiro temos que tirar tudo que vem antes dele, para fazer isso a gente pode dividir o numero por 1000, então serão adicionadas 3 virgulas ao numero original e teremos os tres ultimos numeros separados da parte inteira do numero original.

Ex: 202154584-72 vai ser escrito sem o traço(-), logo será 20215458472.

Dividindo 20215458472 por 1000 teremos 20215458,472.

Agora é hora de usarmos uma função que a maioria das linguagens de aprendizado têm, a função "Inteiro".

A função inteiro tira só a parte inteira de um numero dado.

Se separarmos a parte inteira então teremos:

x = 20215458,472.

inteiro de x = 20215458

mas o que queremos é a parte fracionária, então vamos subtrair de x a parte inteira:

x - inteiro de x = 0,472

Então já temos, separado, os tres ultimos digitos.

Agora temos que tirar o 4 daí pra usa-lo como condição(mesmo raciocínio anterior).

Pra tirar o 4(9º algarismo) daí, primeiro vamos fazer o primeiro numero depois da virgula(4) adiantar-se da virgula tornando-se a parte inteira do numero, a gente faz isso multiplicando o numero por 10.

>> 0,472 * 10 = 4,72

Agora a gente tira a parte inteira do numero usando a mesma funçao (Inteiro)

Inteiro de 4,72 é 4, pronto, temos o numero separado do resto.

Agora temos de criar as condicionais, por exemplo (No ILA).

Regiao, no caso, é a variavel que eu atribui a parte inteira da fração (4,72)

Se (regiao = 1) então

Escrever "A regiao Fiscal e DF, GO, MS, MT, TO"

senao

Belezinha?!

A segunda da pra usar o mesmo raciocinio usando a função "Resto" que a maioria dos pseudo-codigos de aprendizado têm, o ILA tem, por exemplo.

Postado

Obrigado pela ajuda, realmente sou muito obtuso e respondendo sua pergunta não sei condicionais não, duvida não ira precisar delcarar uma variavel para ele rodar todos os estados não??

Postado

Claro,

As variaveis seriam as seguintes

cpf, xcpf, icpf, tresdig, xtresdig, regiao

Eu que escolhi os nomes, claro.

cpf > CPF que a pessoa vai escrever

xcpf > O cpf/1000

icpf > a parte inteira do cpf

tresdig > os ultimos tres digitos do cpf (ainda em fração)

xtresdig > os tres digitos * 10 (Pra poder deixar só o 9º algarismo em evidencia).

regiao > A parte inteira de xtresdig (que é o numero que a gente quer).

Depois disso faz as condicionais em cima da variavel "regiao"

Se (regiao = 1) então

Escrever "A regiao Fiscal e DF, GO, MS, MT, TO"

senao

Se (regiao = 2) então

Escrever "A regiao Fiscal e AC, AM, AP, PA, RO, RR"

senao

e por aí segue...

Qualquer coisa só dizer.

Postado

Muito obrigado pela ajuda vou tentar terminar de fazer ele aqui valeu mesmo, espero cada vez melhorar eu quero aprender.

Não sei se esta certo mais do fazendo assim olha só

inicio

inteiro:cpf, xcpf, icpf, tresdig, xtresdig, regiao;

imprima:("Digite o CPF");

leia:(cpf);

xcpf <---cpf/1000;

estou fazendo certo ou do errado como e que coloco os se e como eu coloco os outro imprimi.

Postado

É assim mesmo amigo, mas você está usando visualg? Não sei direito a formatação do visualg, eu fiz aqui em ILA pra você ter uma ideia, mas recomendo olhar o começo e só depois olhar a resposta toda, espero que ajude:

------------------------

Variaveis

Numerico cpf, xcpf, icpf, tresdig, xtresdig, regiao

Inicio

Limpar

Escrever "Escreva seu CPF"

Ler cpf

xCPF = cpf/1000

iCPF = Inteiro(xCPF)

tresdig = xCPF - iCPF

xtresdig = 10*tresdig

regiao = Inteiro(xtresdig)

Se (regiao = 1) então

Escrever "A regiao Fiscal e DF, GO, MS, MT, TO"

senao

Se (regiao = 2) então

Escrever "A regiao Fiscal e AC, AM, AP, PA, RO, RR"

senao

Se (regiao = 3) então

Escrever "A regiao Fiscal e CE, MA, PI"

senao

Se (regiao = 4) então

Escrever "A regiao Fiscal e AL, PB, PE, RN"

senao

Se (regiao = 5) então

Escrever "A regiao Fiscal e BA, SE"

senao

Se (regiao = 6) então

Escrever "A regiao Fiscal e MG"

senao

Se (regiao = 7) então

Escrever "A regiao Fiscal e ES, RJ"

senao

Se (regiao = 8) então

Escrever "A regiao Fiscal e SP"

senao

Se (regiao = 9) então

Escrever "A regiao Fiscal e PR, SC"

senao

Se (regiao = 0) então

Escrever "A regiao Fiscal e RS"

fim_se

fim_se

fim_se

fim_se

fim_se

fim_se

fim_se

fim_se

fim_se

fim_se

Fim

Postado

sim eu ainda tenho muito que aprender, estou tentando usar visualg mais do apanhando e para montar mesmo a estrutura estou começando entender sobre variaveis so apanhando quanto eu tento montar a estrutura, muito obrigado mesmo, gostaria de agradeçer pela paciencia por me ajudar ainda sou iniciante buscando aprender mais.

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...

LANÇAMENTO!

eletronica2025-popup.jpg


CLIQUE AQUI E BAIXE AGORA MESMO!