digito verificador

11
UNIVERSIDADE ESTADUAL DE FEIRA DE SANTANA ENGENHARIA DE COMPUTAÇÃO PROBLEMA I – DÍGITO VERIFICADOR MUTANTE ALGORITMOS E PROGRAMAÇÃO MARCUS VINICIUS ARAUJO MARTINS

Upload: viniciusfsa

Post on 27-Sep-2015

6 views

Category:

Documents


3 download

DESCRIPTION

Digito Verificador

TRANSCRIPT

  • UNIVERSIDADE ESTADUAL DE FEIRA DE SANTANAENGENHARIA DE COMPUTAO

    PROBLEMA I DGITO VERIFICADOR MUTANTE

    ALGORITMOS E PROGRAMAO

    MARCUS VINICIUS ARAUJO MARTINS

  • - 2 -

    PROBLEMA I DGITO VERIFICADOR MUTANTE

    ALGORITMOS E PROGRAMAO

    SEMESTRE 2006.1Outubro de 2006

    Feira de Santana - Bahia

    Relatrio solicitado pela disciplina de Algoritmos e Programao, do curso de Engenharia de Computao, da Universidade Estadual de Feira de Santana. O mesmo refere-se exposio de discusses realizadas nas sees de PBL, da prpria disciplina.

    Tutor: Gabriela

  • - 3 -

    Sumrio

    1 - Introduo.............................................................................................. 4

    2 - O menu principal.................................................................................... 5

    3 Menu 1: Gerar o dgito.......... .............................................................. 6

    4 - Menu 2 e 3: Teste e Porcentagem de acertos......................................... 7

    5 - Pseudocdigo......................................................................................... 8

    6 Concluso............................................................................................ 10

    7 Referncias............................................ 11

  • - 4 -

    Introduo

    Um algoritmo pode ser conceituado como uma srie de passos a serem seguidos, a fim de solucionar ou evitar um problema. Na prtica, todos realizam algoritmos em atividades diversas, como fazer um bolo ou se preparar para dormir. Existem sempre regras a serem cumpridas, passo a passo, que juntas possibilitam um produto satisfatrio.

    A rede bancria X-Men pretende implantar um sistema que possa evitar possveis erros de digitao de seqncias de nmeros, visando com isso, proteger seu patrimnio. A idia foi repassada para um professor de matemtica chamado Charles Xavier. Este props a implantao de um dgito verificador baseado em operaes simples sob os algarismos da prpria conta.

    Para esse desenvolvimento, necessria a produo de um algoritmo, visando ter subsdios necessrios pra produo e perfeita execuo do programa solicitado. O algoritmo tratado ser representado de duas formas: Em diagrama de blocos e em pseudocdigo. Ambos recaem a um produto final comum. Contudo, no diagrama de blocos, a estrutura desenvolvida sob uma vasta quantidade de simbologias que implicam nos mais diversos recursos utilizados em cada passo do algoritmo, tais como exibio em vdeo, estruturas condicionais, dentre outras. O pseudocdigo por sua vez, implica no portugol, ou na linguagem propriamente dita, sob uma srie de imperativos e opes de escolha, tudo isso em um texto que se ramifica de fora para dentro, como numa escala de vrios nveis.

    Alm disso, o algoritmo possuir trs opes de escolha e mais uma que faz sair do programa. As trs simbolizam: gerar o cdigo, testar e, com base nos testes realizados, efetuar um clculo percentual sob o nmero de acertos.

    Vale lembrar que, nem o diagrama e nem pseudocdigo representam, de fato, o programa propriamente dito. Tratam-se na verdade, de estruturas que calcaro o desenvolvimento do programa na prpria linguagem de mquina, no trabalhada ainda neste relatrio.

    O objetivo deste relatrio : Desenvolver um algoritmo que possibilite uma maior segurana a rede bancria X-Men em proteger seu patrimnio. Implantar um dgito verificador no nmero da conta de cada cliente da grande rede bancria eliminarconsideravelmente problemas oriundos de erros na digitao de nmeros de contas.Estruturas de controle e escolha, que existem nos algoritmos, asseguraram uma plena eficcia no desenvolvimento do projeto.

  • - 5 -

    INCIO

    CONT20

    S0

    1,2,3,4

    1,2,3,4

    PORC FIMGERAR DG.

    1 2 3 4

    TESTAR DG. OPO INVLIDA

    Seno

    O Menu Principal

  • - 6 -

    x

    S0

    Cont1

    Cont1,6,1

    Qxdiv10

    rx-10.Q

    Ar*(cont+1)

    SA+S

    xQ

    RS-11*(Sdiv11)

    DV11-R

    DV=10 ouDV=11

    DV0

    DV

    Menu 1: Gerar o dgito

  • - 7 -

    X,DVT

    S0

    Cont1

    Cont1,6,1

    Qxdiv10

    rx-10.Q

    Ar*(cont+1)

    SA+S

    xQ

    RS-11*(Sdiv11)

    DV11-R

    DV=10 ouDV=11

    DV0

    Cont2 Cont2+1

    DVT=DV

    DGITO INCORRETO

    DGITO CORRETO

    SCSC+1

    PORC100*SCDIVcont2

    Sc 0

    Menu 2 e 3: Teste e Porcentagem de acertos

  • - 8 -

    Pseudocdigo

    Programa: Dgito_verificadorVAR N,Cont,S,Q,X,r,A,DV,DVT,Cont2,SC : Inteiro

    Porc: Real Incio

    Para (indefinidamente) Escreva: Escolha uma opo

    1- Gerar dgito verificador2- Verificar validade do dgito3- Verificar porcentagem de acertos4- Sair

    Leia NEscolha N

    Caso (1): Escreva (Escreva nmero da conta)Leia XCont 1S 0

    Para (Cont at 6 passo 1) faaQ Xdiv10R X 10*QA r*(cont + 1)S A + SX Q

    Fim ParaR S -11* (Sdiv11)DV 11-R

    Se (DV=10 ou DV=11)entoDV 0

    SenoDV 11-R

    Fim SeEscreva DV

    Caso(2) ): Escreva (Escreva nmero da conta com o dgito)Leia (X,DVT)Cont 1S 0Sc 0

    Para (Cont at 6 passo 1) faa Q Xdiv10R X 10*QA r*(cont + 1)S A + SX Q

    Fim ParaR S -11*(Sdiv11)DV 11-R

  • - 9 -

    Se (DV=10 ou DV=11)entoDV 0

    SenoDV 11-R

    Fim SeCont2 Cont2 + 1

    Se (DVT = DV) entoEscreva(Dgito verificador correto)SC SC + 1Porc 100 * SCdivCont2

    SenoEscreva(Dgito verificador incorreto)

    Sim SeCaso (3): Escreva (Porcentagem de acertos: Porc %)Caso (4) Sair do ProgramaSeno: Escreva (Opo Invlida)

    Fim EscolhaFim Para

    Fim

  • - 10 -

    Concluso

    O produto deste relatrio implica em um amadurecimento de idias e conhecimentos a respeito do real conceito de algoritmos. A implantao de um dgito verificador ao nmero dascontas dos clientes da rede bancria X-Men viabilizou a utilizao de estruturas de repetio e deciso, em decorrncia das necessidades surgidas no desenvolver do algoritmo.

    Uma das estruturas de repetio utilizadas no algoritmo foi a Para-faa. A fim deobter individualmente os algarismos que compem a conta corrente, surgiu uma srie de clculos matemticos, que envolveram operaes simples, porm limitadas. Cada processo de operaes deveria ser repetido um nmero de vezes igual a 6, devido conta possuir seis algarismos. Utilizar uma estrutura como essa, portanto, garante o controle de operaes que devem ser realizadas.

    Dentre as estruturas de deciso, foram utilizadas tanto a Se como a Escolha. A estrutura Se foi a base das decises de apenas duas respostas, quando comparamos os valores de DV e DVT ou quando queramos atribuir pra o DV um valor, por exemplo. A estrutura Escolhafoi o alicerce do menu principal. Ela pde garantir um leque de opes disponveis para o usurio, em suas quatro opes de escolha.

    Algo notvel no funcionamento desse algoritmo foi a utilizao de um recurso que vamos tratar como loop indefinido. No clculo da porcentagem, dados precisavam ser armazenados, registrando o nmero de acertos e o nmero total de acessos. A no utilizao de uma estrutura como essa inviabilizaria o clculo percentual, na terceira opo, uma vez que os dados seriam perdidos a cada trmino de acesso a uma das opes. No caso trabalhado, as dados s so perdidos caso a quarta opo (finalizar o programa) seja utilizada.

    A elaborao do algoritmo, portanto, fincou a primeira parte do desenvolvimento de uma estrutura de programao. A organizao de algoritmo permitiu um maior entendimento do problema e ajudou a solucionar os possveis problemas que certamente ocorreriam no desenrolar da elaborao do programa. As bases do programa que a rede bancria necessita foram produzidas e promovem a eficcia do desenvolvimento da etapa seguinte: Gerar o programa propriamente dito.

  • - 11 -

    Referncias

    1- MANZANO, Jose Augusto N. G.; OLIVEIRA, Jayr Figueiredo de. Algoritmos: logica para desenvolvimento de programao. 5. ed. So Paulo: Erica, 1998.

    2- FORBELLONE, Andre Luiz Villar; EBERSPACHER, Henri Frederico. Logica de programacao : a construcao de algoritmos e estrutura de dados. 2. ed.rev. ampl So Paulo: Makron Books, 2000.