Foto de Eli A.
Eli há 1 ano
Enviada pelo
Site

Esse código em portugol estaria correto dessa maneira?

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

Lógica de programação
4 respostas
Professor Flávio F.
Identidade verificada
  • CPF verificado
  • E-mail verificado
Respondeu há 1 ano
Contatar Flávio

Bom dia, Eli !

Acredito que este fórum não seja o mais adequado para essa sua demanda.

Sugiro que você faça seu pedido em forma de tarefa. Assim, os professores desta área poderão te oferecer um serviço completo por um preço justo. Está é a famosa relação "ganha x ganha". Todos ficarão satisfeitos.

Saúde e Sucesso para você!

Um professor já respondeu

Envie você também uma dúvida grátis
Ver resposta
Tutoria com IA
Converse com a Minerva IA e aprenda, tire dúvidas e resolva exercícios
Professor Eduardo S.
Respondeu há 1 ano
Contatar Eduardo
sugiro que abra uma tarefa para este tipo de questão.

Um professor já respondeu

Envie você também uma dúvida grátis
Ver resposta
Professor Jhonni S.
Identidade verificada
  • CPF verificado
  • E-mail verificado
Respondeu há 1 ano
Contatar Jhonni

funcao cadastroProduto(var nomes: vetor[100] de caractere, var precos: vetor[100] de real, var quantidades: vetor[100] de inteiro, var totalProdutos: inteiro)
    var nomeProduto: caractere
    var precoProduto: real
    var quantidadeProduto: inteiro

    escreva("Digite o nome do produto: ")
    leia(nomeProduto)
    escreva("Digite o preço unitário do produto: ")
    leia(precoProduto)
    escreva("Digite a quantidade em estoque do produto: ")
    leia(quantidadeProduto)

    // Armazena os dados no vetor de produtos
    nomes[totalProdutos] <- nomeProduto
    precos[totalProdutos] <- precoProduto
    quantidades[totalProdutos] <- quantidadeProduto

    totalProdutos <- totalProdutos + 1

fim funcao

funcao consultaEstoque(var nomes: vetor[100] de caractere, var quantidades: vetor[100] de inteiro, totalProdutos: inteiro)
    var nomeProdutoConsulta: caractere
    var encontrado: logico <- falso

    escreva("Digite o nome do produto para consulta de estoque: ")
    leia(nomeProdutoConsulta)

    // Procura o produto no vetor de produtos
    para i de 0 ate totalProdutos - 1 faca
        se nomes[i] = nomeProdutoConsulta entao
            escreva("Quantidade em estoque de ", nomeProdutoConsulta, ": ", quantidades[i])
            encontrado <- verdadeiro
            interrompa
    fimpara

    se nao encontrado entao
        escreva("Produto não encontrado no estoque.")
    fimse
fim funcao

funcao atualizacaoEstoque(var nomes: vetor[100] de caractere, var quantidades: vetor[100] de inteiro, totalProdutos: inteiro)
    var nomeProdutoAtualizacao: caractere
    var quantidadeAtualizacao: inteiro
    var encontrado: logico <- falso

    escreva("Digite o nome do produto para atualização de estoque: ")
    leia(nomeProdutoAtualizacao)

    // Procura o produto no vetor de produtos
    para i de 0 ate totalProdutos - 1 faca
        se nomes[i] = nomeProdutoAtualizacao entao
            escreva("Digite a quantidade a ser adicionada/subtraída do estoque: ")
            leia(quantidadeAtualizacao)

            // Atualiza o estoque
            quantidades[i] <- quantidades[i] + quantidadeAtualizacao

            escreva("Estoque atualizado para ", nomeProdutoAtualizacao, ": ", quantidades[i])
            encontrado <- verdadeiro
            interrompa
        fimse
    fimpara

    se nao encontrado entao
        escreva("Produto não encontrado no estoque.")
    fimse
fim funcao

funcao listagemProdutos(var nomes: vetor[100] de caractere, var precos: vetor[100] de real, var quantidades: vetor[100] de inteiro, totalProdutos: inteiro)
    escreva("Listagem de Produtos:")

    // Exibe os dados de cada produto
    para i de 0 ate totalProdutos - 1 faca
        escreva("Nome: ", nomes[i])
        escreva("Preço Unitário: ", precos[i])
        escreva("Quantidade em Estoque: ", quantidades[i])
        escreva("------------------------")
    fimpara
fim funcao

// Programa Principal
var
    nomesProdutos: vetor[100] de caractere
    precosProdutos: vetor[100] de real
    quantidadesProdutos: vetor[100] de inteiro
    totalProdutos: inteiro <- 0
    opcao: inteiro

repita
    escreva("Menu:")
    escreva("1 - Cadastro de Produto")
    escreva("2 - Consulta de Estoque")
    escreva("3 - Atualização de Estoque")
    escreva("4 - Listagem de Produtos")
    escreva("0 - Sair")
    escreva("Escolha uma opção: ")
    leia(opcao)

    escolha opcao
        caso 1
            cadastroProduto(nomesProdutos, precosProdutos, quantidadesProdutos, totalProdutos)
        caso 2
            consultaEstoque(nomesProdutos, quantidadesProdutos, totalProdutos)
        caso 3
            atualizacaoEstoque(nomesProdutos, quantidadesProdutos, totalProdutos)
        caso 4
            listagemProdutos(nomesProdutos, precosProdutos, quantidadesProdutos, totalProdutos)
        caso 0
            // Sair do programa
        outrocaso
            escreva("Opção inválida. Tente novamente.")
    fimescolha
ate opcao = 0

Um professor já respondeu

Envie você também uma dúvida grátis
Ver resposta
Professor Vinícius B.
Identidade verificada
  • CPF verificado
  • E-mail verificado
Respondeu há 7 meses
Contatar Vinícius
  • Inicialização de Variáveis: A variável produtosCadastrados deve ser inicializada em zero antes de ser utilizada para contar produtos cadastrados.

  • Tratamento de Produtos Cadastrados: A lógica para verificar se algum produto foi cadastrado pode ser melhorada. Em vez de usar uma variável booleana (produtosCadastradosOuNao), você pode verificar o número de produtos cadastrados diretamente.

  • Exibição de Resultados: Ao listar produtos ou ao consultar o estoque, você deve garantir que as mensagens sejam informativas.

  • Limpeza de Tela: A função limpaTela não é uma função padrão em muitas implementações de Portugol. Você pode remover essa chamada ou substituir por uma instrução que simplesmente organize a saída.

  • Retorno de Funções: As funções devem ter uma lógica clara para retornar valores. Certifique-se de que todas as saídas estejam sendo tratadas corretamente.

 

Algoritmo "ProdutosEletronicos"

Var
   nomesProdutos : vetor [1..2] de caracter
   precosProdutos : vetor [1..2] de real
   estoqueProdutos : vetor [1..2] de inteiro
   opcao, resultado, produtosCadastrados : inteiro

funcao cadastrarProduto (): inteiro
var
   contador : inteiro
   resposta : caracter
inicio
   resposta <- "s"
   produtosCadastrados <- 0
   contador <- 1
   enquanto (resposta = "s") e (contador <= 2) faca
      se (nomesProdutos[contador] = "") 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])
         produtosCadastrados <- produtosCadastrados + 1
         escreval ("Produto cadastrado com sucesso!")
         escreval ("Quer cadastrar outro produto? S/N")
         leia(resposta)
         contador <- contador + 1
      senao
         escreval("Não há mais espaços disponíveis.")
         resposta <- "n"
      fimse
   fimEnquanto
   retorne produtosCadastrados
fimFuncao

funcao consultarEstoque(): inteiro
var
   contador : inteiro
   nome : 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
   escreval("Produto não encontrado.")
   retorne -1 // Indicador de produto não encontrado
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 adicionar? A/R")
         leia(resposta)
         escreval("Quanto?")
         leia(quantidade)
         se resposta = "a" entao
            estoqueProdutos[contador] <- estoqueProdutos[contador] + quantidade
            escreval("A quantidade adicionada é:", quantidade)
         senao
            se resposta = "r" entao
               se estoqueProdutos[contador] >= quantidade entao
                  estoqueProdutos[contador] <- estoqueProdutos[contador] - quantidade
                  escreval("A quantidade retirada é:", quantidade)
               senao
                  escreval("Estoque insuficiente!")
               fimse
            fimse
         retorne estoqueProdutos[contador]
      fimse
   fimPara
   escreval("Produto não encontrado.")
   retorne -1 // Indicador de produto não encontrado
fimFuncao

funcao listarProduto(): inteiro
var
   contador : inteiro
inicio
   escreval("Produtos cadastrados:")
   para contador <- 1 ate 2 faca
      se nomesProdutos[contador] <> "" entao
         escreval("Nome:", nomesProdutos[contador])
         escreval("Preço:", precosProdutos[contador])
         escreval("Estoque:", estoqueProdutos[contador])
      fimse
   fimPara
   retorne 0 // Indicador de listagem completa
fimFuncao

Inicio
   produtosCadastrados <- 0
   repita
      escreval()
      escreval("*********************************")
      escreval(" Loja de produtos eletrônicos")
      escreval("*********************************")
      escreval(" Escolha uma opção:")
      escreval (" 1 - Cadastrar produtos ")
      escreval (" 2 - Consultar Estoque ")
      escreval (" 3 - Atualizar Estoque ")
      escreval (" 4 - Listar Produtos ")
      escreval (" 0 - Sair ")
      leia(opcao)
      se opcao = 1 entao
         resultado <- cadastrarProduto()
         escreval("Produtos Cadastrados:", resultado)
      senao
         se opcao = 2 entao
            se produtosCadastrados = 0 entao
               escreval("Cadastre um produto primeiro.")
            senao
               resultado <- consultarEstoque()
               se resultado <> -1 entao
                  escreval("Estoque do produto:", resultado)
               fimse
            fimse
         senao
            se opcao = 3 entao
               if produtosCadastrados = 0 then
                  escreval("Cadastre um produto primeiro.")
               senao
                  resultado <- atualizarEstoque()
               fimse
            senao
               se opcao = 4 entao
                  if produtosCadastrados = 0 then
                     escreval("Nenhum produto cadastrado.")
                  senao
                     listarProduto()
                  fimse
               fimse
         fimse
      fimse
   ate (opcao = 0)
Fimalgoritmo

Um professor já respondeu

Envie você também uma dúvida grátis
Ver resposta
Minerva IA
do Profes
Respostas na hora
100% no WhatsApp
Envie suas dúvidas pelo App. Baixe agora
Prefere professores para aulas particulares ou resolução de atividades?
Aulas particulares
Encontre um professor para combinar e agendar aulas particulares Buscar professor
Tarefas
Envie sua atividade, anexe os arquivos e receba ofertas dos professores Enviar tarefa