Você foi designado para criar um programa em portugol que ajude uma loja a gerenciar seu estoque de produtos eletrônicos. A loja possui um catálogo de produtos, cada um representado por um vetor de registro com as seguintes informações:
Nome do produto (string)
Preço unitário (real)
Quantidade em estoque (inteiro)
Sua tarefa é escrever um programa que realize as seguintes operações através de funções:
Cadastro de Produto: Crie uma função que permita ao usuário cadastrar um novo produto, informando o nome, preço unitário e quantidade em estoque. Os dados devem ser armazenados no vetor de produtos.
Consulta de Estoque: Crie uma função que permita ao usuário consultar o estoque de um produto específico, informando o nome do produto. A função deve retornar a quantidade em estoque desse produto.
Atualização de Estoque: Crie uma função que permita ao usuário atualizar o estoque de um produto existente, informando o nome do produto e a quantidade a ser adicionada ou subtraída do estoque.
Listagem de Produtos: Crie uma função que liste todos os produtos cadastrados, exibindo o nome, preço unitário e quantidade em estoque de cada um.
Código que fiz para essa questão :
Algoritmo "ProdutosEletronicos"
Var
nomesProdutos : vetor [1..2] de caracter
precosProdutos : vetor [1..2] de real
estoqueProdutos : vetor [1..2] de inteiro
produtosCadastradosOuNao : logico
opcao, resultado, produtosCadastrados : inteiro
funcao cadastrarProduto (): inteiro
var
contador, lugaresOcupados : inteiro
resposta, s : caracter
inicio
resposta <- "s"
contador <-1
enquanto (resposta = "s") e (contador <= 2) faca
se (nomesProdutos[contador] = "") e (precosProdutos[contador] = 0) e (estoqueProdutos[contador] = 0) entao
escreval("Informe o nome do produto")
leia(nomesProdutos[contador])
escreval ("Informe o preço do produto")
leia(precosProdutos[contador])
escreval ("Informe a quantidade em estoque")
leia(estoqueProdutos[contador])
escreval ("Produto Cadastrado com sucesso")
produtosCadastrados <- produtosCadastrados + 1
produtosCadastradosOuNao <- falso
escreval (" Quer cadastrar outro produto? S/N")
leia(resposta)
se resposta = "s" entao
contador <- contador + 1
senao
escreval ("Cadastro de produtos concluído.")
fimSe
senao
lugaresOcupados <- lugaresOcupados+1
se lugaresOcupados = 2 entao
escreval("Não há mais espaços disponíveis")
fimSe
contador <- contador + 1
// Avance para o próximo lugar
fimse
fimEnquanto
retorne produtosCadastrados
fimFuncao
funcao consultarEstoque(): inteiro
var
contador : inteiro
nome ,x: caracter
inicio
escreval("Informe o nome do produto que gostaria de consultar")
leia(nome)
para contador <- 1 ate 2 faca
se nome = nomesProdutos[contador] entao
retorne (estoqueProdutos[contador])
fimse
fimPara
fimFuncao
funcao atualizarEstoque(): inteiro
var
contador, quantidade : inteiro
resposta, nome : caracter
inicio
escreval("Informe o nome do produto que gostaria de adicionar ou retirar")
leia(nome)
para contador <- 1 ate 2 faca
se nome = nomesProdutos[contador] entao
escreval (" Gostaria de retirar ou adiconar? A/R")
leia(resposta)
escreval (" Quanto?")
leia(quantidade)
se resposta = "a" entao
estoqueProdutos[contador]<- estoqueProdutos[contador]+quantidade
escreval(" A quantidade adicionada é :", quantidade)
escreva (" O novo estoque é :")
retorne estoqueProdutos[contador]
senao
se resposta = "r" entao
se (estoqueProdutos [contador] > quantidade) entao
estoqueProdutos [contador] <- estoqueProdutos[contador]-quantidade
escreval(" A quantidade retirada é :", quantidade)
escreva (" O novo estoque é:")
retorne estoqueProdutos[contador]
senao
se (estoqueProdutos [contador] = quantidade) entao
estoqueProdutos[contador]<- estoqueProdutos[contador]-quantidade
nomesProdutos[contador]<- ""
precosProdutos[contador]<- 0
escreval (" O produto foi removido, pois não tem mais estoque")
produtosCadastrados<- produtosCadastrados-1
retorne estoqueProdutos[contador]
senao
escreval ("Tentativa inválida!")
escreva("produtos retirados :")
retorne 0
fimse
fimse
fimSE
fimSe
fimSe
fimPara
fimFuncao
funcao listarProduto(): inteiro
var
contador, produtosCadastrados : inteiro
inicio
escreval (" Produtos cadastrados :")
para contador <- 1 ate 2 faca
se (nomesProdutos[contador]<> "") e (precosProdutos[contador]<> 0) e (estoqueProdutos[contador]<> 0) entao
escreval ("Nome :", nomesProdutos[contador])
escreval( "Preço :", precosProdutos[contador])
escreval ("Estoque :", estoqueProdutos[contador] )
produtosCadastrados <- produtosCadastrados+1
escreval()
fimSe
fimPara
escreva ("Produtos listados :")
retorne produtosCadastrados
fimfuncao
Inicio
produtosCadastradosOuNao <- verdadeiro
repita
escreval()
escreval("*********************************")
escreval(" Loja de produtos eletrônicos")
escreval("*********************************")
escreval(" Escolha uma opção:")
escreval (" 1 - Cadastrar produtos ")
escreval (" 2 - consultarEstoque ")
escreval (" 3 - Atualizar estoque ")
escreval (" 4 - Listar Produtos ")
escreval (" 0 - Sair ")
leia(opcao)
limpaTela
se opcao = 1 entao
resultado <- cadastrarProduto()
escreval("Produtos Cadastrados :", resultado)
senao
se opcao = 2 entao
se produtosCadastradosOuNao entao
escreva(" Produtos cadastrados :",produtosCadastrados)
escreval(" Cadastre um produto primeiro")
senao
resultado <- consultarEstoque()
escreval("estoque do produto :",resultado)
fimSe
senao
se opcao = 3 entao
se produtosCadastradosOuNao entao
escreva(" Produtos cadastrados :", produtosCadastrados)
senao
resultado <- atualizarEstoque()
escreval(resultado)
fimse
senao
se opcao = 4 entao
se produtosCadastradosOuNao entao
escreva(" Produtos cadastrados :", produtosCadastrados)
senao
escreval(listarProduto)
fimSe
fimSE
fimSE
fimSe
fimSe
ate (opcao = 0)
Fimalgoritmo