Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

quehomem

Cadastro de loja

Recommended Posts

Preciso de ajuda em um algoritmo, basicamente preciso criar um algoritmo de cadastro de sapatos de uma loja.. Já quase acabei ele porém quando mando excluir um cadastro por exemplo, ele apaga todos os cadastros q fiz depois do que mandei excluir. Me ajuda ae.


Algoritmo "Loja de Sapatos"

Var

Modelo, Cor, Marca: vetor [1..50] de caracter
Tamanho: vetor [1..50] de inteiro
Preco: vetor [1..50] de real
x: inteiro
opcao: inteiro

Procedimento Menu
Var
Inicio
escreval (" ******************")
escreval (" * LOJA DE SAPATOS *")
escreval (" ******************")
escreval ("")
escreval ("1 - Cadastrar sapato")
escreval ("2 - Listar sapatos")
escreval ("3 - Editar cadastro")
escreval ("4 - Excluir cadastro")
escreval ("5 - Sair")
escreval ("")
escreva ("Entre com a sua opção: ")
leia (opcao)
escolha opcao
caso 1
cadastrosapato
caso 2
listarsapatos
caso 3
editarsapato
caso 4
excluirsapato
caso 5
sair
outrocaso
Menu
fimescolha
Fimprocedimento

procedimento cadastrosapato
Var

Inicio
escreval ("")
escreval (" *****************")
escreval (" * SAPATO Nº",x, " *")
escreval (" *****************")
escreval ("")
escreva ("Modelo do sapato: ")
leia (Modelo[x])
escreva ("Tamanho do sapato: ")
leia (Tamanho[x])
escreva ("Cor do sapato: ")
leia (Cor[x])
escreva ("Marca do sapato: ")
leia (Marca[x])
escreva ("Preço do sapato: ")
leia (Preco[x])
x <- x + 1
Menu
Fimprocedimento

Procedimento listarsapatos
Var
j: inteiro

Inicio
limpatela
escreval (" ****************")
escreval (" * LISTA DE CADASTROS *")
escreval (" ****************")
para j de 1 ate (x-1) faca
escreval ("Nº de cadastro: ", j)
escreval ("Modelo do sapato: ", Modelo[j])
escreval ("Tamanho do sapato: ", Tamanho[j])
escreval ("Cor do sapato: ", Cor[j])
escreval ("Marca do sapato: ", Marca[j])
escreval ("Preço do sapato: ", Preco[j])
escreval ("")
fimpara

Menu
Fimprocedimento

Procedimento editarsapato

Var
cadastro, j, dado: inteiro

Inicio
escreval ("")
escreval (" *****************")
escreval (" * ALTERAR CADASTRO * ")
escreval (" *****************")
escreval ("")
escreval ("Digite o nº de cadastro do sapato: ")
leia (cadastro)
para j de 1 ate (x-1) faca
se j = cadastro entao
escreval ("Nº de cadastro: ", j)
escreval ("#1# - Modelo do sapato: ", Modelo[j])
escreval ("#2# - Tamanho do sapato: ", Tamanho[j])
escreval ("#3# - Cor do sapato: ", Cor[j])
escreval ("#4# - Marca do sapato: ", Marca[j])
escreval ("#5# - Preço do sapato: ", Preco[j])
escreval ("#6# - Não alterar.")
escreval ("Escolha qual dado quer alterar: ")
leia (dado)
escolha (dado)
caso 1
escreval ("Digite o novo modelo do sapato: ")
leia (Modelo[j])
caso 2
escreval ("Digite o novo tamanho do sapato: ")
leia (Tamanho[j])
caso 3
escreval ("Digite a nova cor do sapato: ")
leia (Cor[j])
caso 4
escreval ("Digite a nova marca do sapato: ")
leia (Marca[j])
caso 5
escreval ("Digite o novo preço do sapato: ")
leia (Preco[j])
caso 6
escreval ("O cadastro não foi alterado.")
outrocaso
Menu
fimescolha
fimse
fimpara
Menu

Fimprocedimento

Procedimento excluirsapato
Var
cadastro, j : inteiro

Inicio
limpatela
escreval (" ****************")
escreval (" * EXCLUIR CADASTRO *")
escreval (" ****************")
escreva ("Entre com o nº de cadastro do sapato a ser excluído: ")
leia (cadastro)

para j de 1 ate (x-1) faca
se j = cadastro entao
x <- j
fimse
fimpara
escreval ("O sapato foi excluido com sucesso.")

Menu
Fimprocedimento

Procedimento sair

Inicio
limpatela
Fimprocedimento


Inicio

x <- 1

Menu

Fimalgoritmo

Compartilhar este post


Link para o post
Compartilhar em outros sites

Você está usando alguma ferramenta para testar o código? Alguns erros de sintaxe apontam que não. Só perguntei isso, porque ajuda bastante utilizar estas ferramentas, como o VisuAlg.

Quanto ao código, eu analisei brevemente as rotinas de excluir e listar, e não percebi nada referente ao seu problema de todas posições excluídas.

Excluir uma variável em Portugol, o que seria?

Desconheço algum comando que destrua determinada variável, por isso utilizo técnicas, como atribuir o valor zero a tais variáveis. Assim, quando peço para listar todas variáveis, utilizo um laço de repetição com condição, para não mostrar variáveis com valor zero.

No seu código, não vejo nenhum método parecido, somente a variável "x" recebendo o valor do cadastro a ser excluído. Nada mais!

para j de 1 ate (x-1) faca
  se j = cadastro entao
   x <- j
  fimse
fimpara
escreval ("O sapato foi excluido com sucesso.")
Procedimento listarsapatos
Var
 j: inteiro
 
Inicio
 limpatela
 escreval (" ****************")
 escreval (" * LISTA DE CADASTROS *")
 escreval (" ****************")
 para j de 1 ate (x-1) faca
  escreval ("Nº de cadastro: ", j)
  escreval ("Modelo do sapato: ", Modelo[j])
  escreval ("Tamanho do sapato: ", Tamanho[j])
  escreval ("Cor do sapato: ", Cor[j])
  escreval ("Marca do sapato: ", Marca[j])
  escreval ("Preço do sapato: ", Preco[j])
  escreval ("")
 fimpara
 
Menu
Fimprocedimento
 

Como vemos, variável "x" recebe o valor de cadastro a ser excluído, depois, se executado a função de listar, o programa irá mostrar todos os valores, até o que era para ser excluído.

Bem, minha conclusão remete a um desconfiança: Foi, realmente, você quem criou este código? Não vejo nada relacionado ao que você falou estar com problema, por isso questiono.

Independente de ter sido você, ou não, procure utilizar um método como eu disse que usaria, lá no terceiro parágrafo.

Estarei aberto para mais discussões e dúvidas. Só precisa responder!

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.