Ir ao conteúdo
  • Cadastre-se

Problema com programa Escolha Caso Visualg


Sergio E. Couto

Posts recomendados

Bom dia tenho um exercicio para entregar hoje na faculdade, bom eu ja fiz um exercecicio escolha-saco que funcionou muito bem mas eu nao me contentei só com esse exercicio e quero entregar um maior.
Eu fiz um programa que contem cadastro de cliente endereço e cadastro de produto
eu uqeria saber como faço para quando chegar no final do menu cadastro cliente apareça a opção desaja sair ou voltar ao menu inicial

Eu ja tentei de varias formas e nao deu certo agora quando você vai no 1 menu poe o sexo do cliente ele carregar o menu principal em baixo.
Nao sei mais o que fazer

var//Menumenu:inteiroretornomenu:caractere//variavel cadastro clientenome:caracterenascimento:caracteresexo:caracterecpf:real//variavel endereçorua:caracterebairro:caracterenumeroc:inteirocep:real//variavel produtoproduto:caracterecodigoproduto:inteiromarca:caracterecodigobarras:inteiroquantidade:inteiroiniciorepitarepita   escreval ("No menu a seguir, digite o número referente a função desejada: ")   escreval   escreval ("1- Cadastra novo Cliente")   escreval ("2- Cadastrar Endereço")   escreval ("3- Cadastrar novo Produto")   escreval ("4- Sair")   escreval   escreval ("Informe a opção desejada")   leia(retornomenu)   se(menu=1) ou (menu=2) ou (menu=3) ou (menu=4) então   escolha(menu)   fimse   caso 1 // cadastrar novo cliente      limpatela      escreval("Cadastramento de Novo Cliente")      escreva ("Nome completo: ")      leia(nome)      escreva ("Data de nascimento do cliente: ")      leia(nascimento)      repita         escreval("Sexo(Masculino ou Feminino):")         leia(sexo)         se (nao ((sexo="m") OU (sexo="masculino") OU (sexo="feminino") OU (sexo="f"))) então            escreval("Seu sexo não foi informado corretamente,Digite Novamente:")         fimse      ate (sexo="m") OU (sexo="f") OU (sexo="Masculino") OU (sexo="Feminino")      fimrepita      repita         escreva("Seu CPF (11 dígitos): ")         leia(cpf)      ate (cpf<=99999999999) E (cpf>=999999999)      fimrepita      escreval("Deseja retornar ao Menu Inicial?")      leia(retornomenu)      caso 2    //Cadastro Endereço         limpatela         escreval("```````````````````````````````````````````````````````````````````````````````")         escreval("                      Cadastro de Endereço                       ")         escreval         escreval("Digite o Endereço do Cliente: ")         leia(rua)         escreval("Digite o Bairro do cliente: ")         leia(bairro)         escreval("Digite o numero da residencia do cliente: ")         leia(numeroc)         escreval("Digite o cep da rua: ")         leia(cep)         Escreval ("Endereço cadastrado com sucesso.")         escreval         escreval("Deseja retornar ao Menu Inicial?")         leia(retornomenu)      caso 3 //Cadastro Produto         limpatela         escreval("```````````````````````````````````````````````````````````````````````````````")         escreval("                      Cadastro de Endereço                       ")         escreval         escreval("Digite o produto a ser Cadastrado: ")         leia(produto)         escreval("Digite um codigo para o produto: ")         leia(codigoproduto)         escreval("Digite a marca do produto: ")         leia(marca)         escreval("Digite o código de barras do produto: ")         leia(codigobarras)         escreval("Quantidade do produto")         leia(quantidade)         escreval("Produto cadastrado com sucesso, Obrigado!")         escreval("Deseja retornar ao Menu Inicial?")         se (menu="s")      fimalgoritmo
Link para o comentário
Compartilhar em outros sites

Aqui, eu modifiquei pra que ele fique fazendo loop e sempre voltando ao menu principal após cada cadastro. Bastou colocar um "repita ate fimrepita" englobando tudo, também havia um "fimse" no lugar errado, depois do comando "escolha", e retirei a parte que requisitava se o usuário deseja voltar ao menu principal, e incluí no lugar um "pausa" após fazer o cadastro, antes de retornar ao menu principal, assim você só sai do programa através do menu principal.

Quando for rodar este programa observe que o forum coloca acento automaticamente na palavra "então" dos comandos condicionais (se blablabla então), portanto retire os acentos antes de rodar o programa....

algoritmo "Cadastro"var//Menumenu:inteiro//retornomenu:caractere//variavel cadastro clientenome:caracterenascimento:caracteresexo:caracterecpf:real//variavel endereçorua:caracterebairro:caracterenumeroc:inteirocep:real//variavel produtoproduto:caracterecodigoproduto:inteiromarca:caracterecodigobarras:inteiroquantidade:inteiroiniciorepita   escreval ("No menu a seguir, digite o número referente a função desejada: ")   escreval   escreval ("1- Cadastra novo Cliente")   escreval ("2- Cadastrar Endereço")   escreval ("3- Cadastrar novo Produto")   escreval ("4- Sair")   escreval   escreval ("Informe a opção desejada")   leia(menu)   se(menu=1) ou (menu=2) ou (menu=3) então      escolha(menu)      caso 1 // cadastrar novo cliente         limpatela         escreval("Cadastramento de Novo Cliente")         escreva ("Nome completo: ")         leia(nome)         escreva ("Data de nascimento do cliente: ")         leia(nascimento)         repita            escreval("Sexo(Masculino ou Feminino):")            leia(sexo)            se (nao ((sexo="m") OU (sexo="masculino") OU (sexo="feminino") OU (sexo="f"))) então               escreval("Seu sexo não foi informado corretamente,Digite Novamente:")            fimse         ate (sexo="m") OU (sexo="f") OU (sexo="Masculino") OU (sexo="Feminino")         fimrepita         repita            escreva("Seu CPF (11 dígitos): ")            leia(cpf)         ate (cpf<=99999999999) E (cpf>=999999999)         fimrepita         escreval ("Cliente cadastrado com sucesso.")         escreval      caso 2    //Cadastro Endereço         limpatela         escreval("```````````````````````````````````````````````````````````````````````````````")         escreval("                      Cadastro de Endereço                       ")         escreval         escreval("Digite o Endereço do Cliente: ")         leia(rua)         escreval("Digite o Bairro do cliente: ")         leia(bairro)         escreval("Digite o numero da residencia do cliente: ")         leia(numeroc)         escreval("Digite o cep da rua: ")         leia(cep)         escreval ("Endereço cadastrado com sucesso.")         escreval      caso 3 //Cadastro Produto         limpatela         escreval("```````````````````````````````````````````````````````````````````````````````")         escreval("                      Cadastro de Endereço                       ")         escreval         escreval("Digite o produto a ser Cadastrado: ")         leia(produto)         escreval("Digite um codigo para o produto: ")         leia(codigoproduto)         escreval("Digite a marca do produto: ")         leia(marca)         escreval("Digite o código de barras do produto: ")         leia(codigobarras)         escreval("Quantidade do produto")         leia(quantidade)         escreval("Produto cadastrado com sucesso.")         escreval      fimescolha      escreval("Pressione F9 para voltar ao menu principal...")      pausa      limpatela   fimseate (menu=4)fimrepitafimalgoritmo

Agora uma coisa a ser observada é que os dados cadastrados não estão sendo salvos em lugar algum, não sei se seu programa deveria apenas abordar a entrada dos dados...

Link para o comentário
Compartilhar em outros sites

Então cara valeu pela ajuda.
Bom nao precisa registrar os dado é so fazer o progrmaa mesmo antes de voce postar eu consegui arrumar umas coisas
Agora estou com um unico problema

No caso 2 ou no menu 2 quando você vai cadastrar o codigo de barras com 13 dígitos ele fica dando um loop - repita infinito mesmo se você digitar os 13 digitos ele fica mostrando codigo invalido.

 

Aqui ta o  codigo que eu modifiquei

var//Menumenu:inteiro//variavel cadastro clientenome:caracterenascimento:caracteresexo:caracterecpf:real//variavel endereçorua:caracterebairro:caracterenumeroc:inteirocep:real//variavel produtoproduto:caracterecodigoproduto:inteiromarca:caracterequantidade:inteirocodigobarras:realiniciorepitaescreval("******************************************************************")escreva("* No menu a seguir, digite o número referente a função desejada. *")escreval("                                                              *")escreval("******************************************************************")escrevalescreval ("1- Cadastra novo Cliente.")escreval ("2- Cadastrar novo Produto.")escreval ("0- Sair.")escrevalescreval ("Informe a opção desejada")leia(menu)escolha menucaso 1 // Cadastrar novo clientelimpatelaescreval("******************************************************************")escreva("*                     Cadastramento de Novo Cliente.             *")escreval("                                                              *")escreval("******************************************************************")//Nome Completo do Clienteescreva("Nome completo: ")leia(nome)escreval//Data de Nascimento do Clienteescreva("Data de nascimento do cliente: ")leia(nascimento)//Sexo do cliente com Repitarepitaescrevalescreva("Sexo(Masculino ou Feminino): ")leia(sexo)se (nao ((sexo="m") OU (sexo="masculino") OU (sexo="feminino") OU (sexo="f"))) entãoescreval("Seu sexo não foi informado corretamente. Digite Novamente.")fimseate (sexo="m") OU (sexo="f") OU (sexo="Masculino") OU (sexo="Feminino")fimrepita//CPF do Cliente com repitarepitaescrevalescreva("Seu CPF (11 dígitos): ")leia(cpf)escreval("CPF inválido. Digite novamente.")ate (cpf<=99999999999) E (cpf>=999999999)fimrepita//Cadastro Endereçolimpatelaescreval("******************************************************************")escreva("*                     Cadastramento endereço do Cliente          *")escreval("                                                              *")escreval("******************************************************************")//Endereço do Clienteescreva("Digite o Endereço do Cliente: ")leia(rua)escreval//Bairro do Clienteescreva("Digite o Bairro do cliente: ")leia(bairro)escreval//Numero da residenciaescreva("Digite o numero da residencia do cliente: ")leia(numeroc)escreval//Cep da ruaescreva("Digite o cep da rua: ")leia(cep)escreval//Endereço cadastradoescreval("Endereço cadastrado com sucesso.")escrevalescreval("Pressione F9 para voltar ao menu principal...")pausalimpatelacaso 2 //Cadastro Produtolimpatelaescreval("******************************************************************")escreva("*                     Cadastrar Novo Produto                     *")escreval("                                                              *")escreval("******************************************************************")//Nome Produtoescreva("Digite o produto a ser Cadastrado: ")leia(produto)escreval//Codigo Produtoescreva("Digite um codigo para o produto: ")leia(codigoproduto)escreval//Marca do Produtoescreva("Digite a marca do produto: ")leia(marca)escreval//Quantidade do Produtoescreva("Quantidade do produto: ")leia(quantidade)escreval//Código de Barras do Produtorepitaescreva("Digite o código de barras do produto (13 Dígitos): ")leia(codigobarras)escreval("Código de barras inválido. Digite novamente.")escrevalate (codigobarras<=9999999999) e (codigobarras>=9999999999999)fimrepitaescreval("Produto cadastrado com sucesso, Obrigado!")escreval("Pressione F9 para voltar ao menu principal...")pausalimpatelaCASO 0 //OPÇÃO ESCOLHA PARA SAIR DO PROGRAMA COM O COMANDO INTERROMPA ABAIXOescreval("Você encerrou o programa.")interrompaoutrocasolimpatelaescreval ("OPÇÃO INVÁLIDA")escrevalescreval ("DIGITE UMA OPÇÃO VALIDA")escrevalfimescolha //TERMINAR O FIM ESCOLHAfimrepitafimalgoritmo
Link para o comentário
Compartilhar em outros sites

Você deu uma olhada no programa que eu modifiquei? Dá uma analisada nele, e tenta entender a lógica que eu usei e aplicar ao seu, eu posso fazer a mudança no seu, mas se eu apenas modificar seu programa você não vai aprender como fazer por conta própria. Pega o programa no meu post (entra no botão "Citar" pra poder copiar sem copiar os número das linhas), põe no visualg (retirando a acentuação das palavras "então") e vê como o programa está funcionando.

 

Uma coisa que eu mudei no seu programa foi exatamente que eu retirei a parte que pergunta se o usuário quer voltar ao menu principal, pois isso é desnecessário, eu o fiz sempre voltar ao menu principal após fazer um cadastro, e o usuário pode finalizar o programa a partir do menu principal se ele desejar,

Link para o comentário
Compartilhar em outros sites

Arquivado

Este tópico foi arquivado e está fechado para 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...