Ir ao conteúdo
  • Comunicados

    • Gabriel Torres

      Seja um moderador do Clube do Hardware!   12-02-2016

      Prezados membros do Clube do Hardware, Está aberto o processo de seleção de novos moderadores para diversos setores ou áreas do Clube do Hardware. Os requisitos são:   Pelo menos 500 posts e um ano de cadastro; Boa frequência de participação; Ser respeitoso, cordial e educado com os demais membros; Ter bom nível de português; Ter razoável conhecimento da área em que pretende atuar; Saber trabalhar em equipe (com os moderadores, coordenadores e administradores).   Os interessados deverão enviar uma mensagem privada para o usuário @Equipe Clube do Hardware com o título "Candidato a moderador". A mensagem deverá conter respostas às perguntas abaixo:   Qual o seu nome completo? Qual sua data de nascimento? Qual sua formação/profissão? Já atuou como moderador em algo outro fórum, se sim, qual? De forma sucinta, explique o porquê de querer ser moderador do fórum e conte-nos um pouco sobre você.   OBS: Não se trata de função remunerada. Todos que fazem parte do staff são voluntários.
    • DiF

      Poste seus códigos corretamente!   21-05-2016

      Prezados membros do Fórum do Clube do Hardware, O Fórum oferece um recurso chamado CODE, onde o ícone no painel do editor é  <>     O uso deste recurso é  imprescindível para uma melhor leitura, manter a organização, diferenciar de texto comum e principalmente evitar que os compiladores e IDEs acusem erro ao colar um código copiado daqui. Portanto convido-lhes para ler as instruções de como usar este recurso CODE neste tópico:  
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
  • Autor do tópico
  • @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

    Editado por ET Bilu
    ajeitando o escolha e repita
    • Curtir 1

    Compartilhar este post


    Link para o post
    Compartilhar em outros sites

    @ET Bilu    parece que você colocou o fimescolha dentro do repita nos casos 1 2 e 3, remova-os  para que funcione certo.

    Editado por devair1010
    • Curtir 2

    Compartilhar este post


    Link para o post
    Compartilhar em outros sites
  • Autor do tópico
  • @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
  • Autor do tópico
  • @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.

     

     

    Editado por ET Bilu
    • 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






    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

    ×