Ir ao conteúdo
  • Cadastre-se

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


Posts recomendados

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
Link para o comentário
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
Link para o comentário
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
Link para o comentário
Compartilhar em outros sites

  • Membro VIP

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
Link para o comentário
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
Link para o comentário
Compartilhar em outros sites

Visitante
Este tópico está impedido de receber 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...