Ir ao conteúdo
  • Cadastre-se
ET Bilu

Problema com estrutura de repetição - algoritmo de banco

Recommended Posts

Olá pessoal. Eu estou fazendo um trabalho no visualg, e tive a ideia de fazer um algoritmo para simular um banco, com cadastro de cartões, inserção de dinheiro, etc. Fiz a primeira parte, e está dando problema com a estrutura "repita". Queria fazer com que ao usuário escolher se quer continuar cadastrando ou não, caso apertasse não, voltasse ao menu inicial.

 

Aqui está o que eu fiz por enquanto:

escreval(" 1 - Cadastrar cartões")
escreval(" 2 - Consultar cadastro")
escreval(" 3 - Inserir dinheiro na conta")
escreval(" 4 - Sacar dinheiro")
leia(esc)
escolha esc
caso 1
   repita
      limpatela
      cont<-cont+1
      escreva("NOME COMPLETO: ")
      leia(nome[cont])
      escreva("IDADE: ")
      leia(idade[cont])
      escreva("CEP: ")
      leia(cep[cont])
      escreva("CPF: ")
      leia(cpf[cont])
      escreva("TELEFONE: ")
      leia(tel[cont])
      limpatela
      escreval("DADOS CADASTRADOS, o código do cliente ",nome[cont]," é ", cont,".")
      escreval("CADASTRAR MAIS CARTÕES?")
      escreval("1 - SIM")
      escreval("2 - NÃO")
      leia(esc2)
   caso 1
      limpatela
      outrocaso
      escreval("")
      fimescolha
      fimescolha
   ate esc2=2

 

  • Curtir 1

Compartilhar este post


Link para o post
Compartilhar em outros sites

@ET Bilu   seu código está certo, você apenas colocou o fimescolha dentro do repita.  Então
delete esses dois fimescolha e o caso 1 que está dentro do repita, e coloque o fimescolha depois do ate esc2=2.

e para voltar ao menu é preciso colocar isso tudo dentro de um repita; ficaria assim:

Algoritmo "comando repita"
Var
esc,esc2,cont:inteiro
nome:vetor[1..10] de caractere
inicio
  repita
    escreval(" 1 - Cadastrar cartões")
    escreval(" 2 - Consultar cadastro")
    escreval(" 3 - Inserir dinheiro na conta")
    escreval(" 4 - Sacar dinheiro")
    escreval(" 5 - sair")
    leia(esc)
    escolha esc
      caso 1
        repita
          limpatela
          cont<-cont+1
          escreva("NOME COMPLETO: ")
          leia(nome[cont])
          escreva("IDADE: ")
          //leia(idade[cont])
          escreva("CEP: ")
          //leia(cep[cont])
          escreva("CPF: ")
          //leia(cpf[cont])
          escreva("TELEFONE: ")
          //leia(tel[cont])
          limpatela
          escreval("DADOS CADASTRADOS, o código do cliente ",nome[cont]," é ", cont,".")
          escreval("CADASTRAR MAIS CARTÕES?")
          escreval("1 - SIM")
          escreval("2 - NÃO")
          leia(esc2)
          //caso 1
          limpatela
          //outrocaso
          escreval("")
          //fimescolha
          //fimescolha
        ate esc2=2
    fimescolha
  ate esc=5
Fimalgoritmo


 

  • Curtir 2

Compartilhar este post


Link para o post
Compartilhar em outros sites

@devair1010 Fui continuar o algoritmo e encontrei outro problema. Antes ao clicar na opção não, ele redirecionava p tela inicial, agora não mais, simplesmente pula pra proxima escolha.

 

   repita
   escreval(" 1 - Cadastrar cartões")
   escreval(" 2 - Consultar cadastro")
   escreval(" 3 - Inserir dinheiro na conta")
   escreval(" 4 - Sacar dinheiro")
   escreval(" 5 - Sair")
   leia(esc)
   escolha esc
   caso 1
      repita
         limpatela
         cont<-cont+1
         escreva("NOME COMPLETO: ")
         leia(nome[cont])
         escreva("IDADE: ")
         leia(idade[cont])
         escreva("CEP: ")
         leia(cep[cont])
         escreva("CPF: ")
         leia(cpf[cont])
         escreva("TELEFONE: ")
         leia(tel[cont])
         limpatela
         escreval("DADOS CADASTRADOS, o código do cliente ",nome[cont]," é ", cont,".")
         escreval("CADASTRAR MAIS CARTÕES?")
         escreval("1 - SIM")
         escreval("2 - NÃO")
         leia(esc2)

            limpatela

      ate esc2=2
   

caso 2
   repita
      limpatela
      escreva("DIGITE O CÓDIGO DO CLIENTE CADASTRADO: ")
      leia(codigo)
      escreval("NOME: ",nome[codigo])
      escreval("IDADE: ",idade[codigo])
      escreval("CEP: ",cep[codigo])
      escreval("CPF: ",cpf[codigo])
      escreval("TELEFONE: ",tel[codigo])
      escreval("")
      escreval("QUER CONTINUAR?")
      escreval("1-SIM")
      escreval("2-NÃO")
      leia(esc2)


         limpatela

   ate esc2=2


caso 3
repita
   limpatela
   escreva("DIGITE O CÓDIGO DO CLIENTE: ")
   leia(codigo)
   escreva("DIGITE O DINHEIRO A SER INSERIDO: ")
   leia(dinheiro)
   cliente[codigo]<-dinheiro
   escreval("O CLIENTE ",nome[codigo]," RECEBEU ",dinheiro," REAIS EM SUA CONTA.")
   escreva("QUERES COLOCAR MAIS DINHEIRO?")
   escreval("1- SIM")
   escreval("2- NÃO")
   leia(esc2)

      limpatela
   
ate esc2=2
fimescolha



ate esc=5
Fimalgoritmo

 

adicionado 10 minutos depois

Acho que resolvi, tirei o fimescolha.

adicionado 12 minutos depois

Vou excluir esse post, kkkk.

adicionado 12 minutos depois

@ET Bilu

adicionado 12 minutos depois

@devair1010

  • Curtir 1

Compartilhar este post


Link para o post
Compartilhar em outros sites

@devair1010 sim, eu tinha me confundido, até editei e perguntei se posso apagar, p n ficar deselegante, rs.

adicionado 3 minutos depois

n consigo excluir esse post, mas fica aí então pro aprendizado dos outros

  • Curtir 2

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá @ET Bilu. Se possível, poste o seu código completo para analisarmos. Pode ser que em coisas para corrigir/melhor, ex.:

 

 

Em 27/11/2016 às 20:55, ET Bilu disse:

caso 3
repita
   limpatela
   escreva("DIGITE O CÓDIGO DO CLIENTE: ")
   leia(codigo)
   escreva("DIGITE O DINHEIRO A SER INSERIDO: ")
   leia(dinheiro)
   cliente[codigo]<-dinheiro
   escreval("O CLIENTE ",nome[codigo]," RECEBEU ",dinheiro," REAIS EM SUA CONTA.")
   escreva("QUERES COLOCAR MAIS DINHEIRO?")
   escreval("1- SIM")
   escreval("2- NÃO")
   leia(esc2)

      limpatela
   
ate esc2=2

 

Nesse trecho, você "atribui" o valor depositado na conta, em vez de "acrescentar", ou seja, se o cara tiver 1000 e depositar 40, ele fica só com 40 (em vez de 1040).

 

O vetor cliente é onde está armazenando o saldo? Nesse caso, seria recomendado utilizar outra nomenclatura, como por exemplo saldo.

 

No aguardo.

 

  • Curtir 2

Compartilhar este post


Link para o post
Compartilhar em outros sites

@Simon Viegas Oi, eu acabei meu programa e deu certo. Arrumei algumas coisas.

 

Até queria mostrar como eu resolvi alguns problemas básicos, como n ficar mais com saldo negativo, e aparecer saldo insuficiente. e eu inclui outra estrutura de repetiçao, porque eu precisava de duas no trabalho. Inclui um para para mostrar os dez ultimos cadastros. O problema e q o algoritmo inteiro tem ate um design, logo com meu sobrenome e etc. Além de ser um trabalho pronto. N queria postar p n deixar de bandeja. Mas valeu pela dica.

 

 

  • Curtir 2

Compartilhar este post


Link para o post
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora





Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas publicações 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

×