Вы находитесь на странице: 1из 11

UNIVERSIDADE ESTADUAL DE FEIRA DE SANTANA

ENGENHARIA DE COMPUTAO

PROBLEMA I DGITO VERIFICADOR MUTANTE


ALGORITMOS E PROGRAMAO

MARCUS VINICIUS ARAUJO MARTINS

PROBLEMA I DGITO VERIFICADOR MUTANTE


ALGORITMOS E PROGRAMAO

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

SEMESTRE 2006.1
Outubro de 2006
Feira de Santana - Bahia
-2-

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

-3-

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

-4-

O Menu Principal

INCIO

CONT20

S0

1,2,3,4

1,2,3,4

GERAR DG.

TESTAR DG.

PORC

-5-

FIM

Seno

OPO
INVLIDA

Menu 1: Gerar o dgito

S0

Cont1

RS-11*(Sdiv11)

Cont1,6,1

DV11-R
Qxdiv10

DV=10
ou
DV=11

rx-10.Q

DV0
Ar*(cont+1)

SA+S

DV

xQ

-6-

Menu 2 e 3: Teste e Porcentagem de acertos


X,DVT

S0

Sc 0

Cont1

Cont1,6,1

RS-11*(Sdiv11)

DV11-R

Qxdiv10

rx-10.Q

DV=10
ou
DV=11

Ar*(cont+1)

DV0

SA+S

Cont2 Cont2+1

xQ

DVT=DV

DGITO
CORRETO

DGITO
INCORRETO

SCSC+1

PORC100*SCDIVcont2

-7-

Pseudocdigo
Programa: Dgito_verificador
VAR N,Cont,S,Q,X,r,A,DV,DVT,Cont2,SC : Inteiro
Porc: Real
Incio
Para (indefinidamente)
Escreva: Escolha uma opo
1- Gerar dgito verificador
2- Verificar validade do dgito
3- Verificar porcentagem de acertos
4- Sair
Leia N
Escolha N
Caso (1): Escreva (Escreva nmero da conta)
Leia X
Cont 1
S0
Para (Cont at 6 passo 1) faa
Q Xdiv10
R X 10*Q
A r*(cont + 1)
SA+S
XQ
Fim Para
R S -11* (Sdiv11)
DV 11-R
Se (DV=10 ou DV=11)ento
DV 0
Seno
DV 11-R
Fim Se
Escreva DV
Caso(2) ): Escreva (Escreva nmero da conta com o dgito)
Leia (X,DVT)
Cont 1
S0
Sc 0
Para (Cont at 6 passo 1) faa
Q Xdiv10
R X 10*Q
A r*(cont + 1)
SA+S
XQ
Fim Para
R S -11*(Sdiv11)
DV 11-R
-8-

Se (DV=10 ou DV=11)ento
DV 0
Seno
DV 11-R
Fim Se
Cont2 Cont2 + 1
Se (DVT = DV) ento
Escreva(Dgito verificador correto)
SC SC + 1
Porc 100 * SCdivCont2
Seno
Escreva(Dgito verificador incorreto)
Sim Se
Caso (3): Escreva (Porcentagem de acertos: Porc %)
Caso (4) Sair do Programa
Seno: Escreva (Opo Invlida)
Fim Escolha
Fim Para
Fim

-9-

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 das
contas 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 de
obter 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 Escolha
foi 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.

- 10 -

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.

- 11 -