Esse código em portugol estaria correto dessa maneira?

Lógica de programação

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

Foto de Eli A.
Eli perguntou há 8 meses

Sabe a resposta?

Ganhe 10 pts por resposta de qualidade
Responder dúvida
3 respostas
2
votos
2 usuários votaram nessa resposta como útil.
Professor Flávio F.
Identidade verificada
  • CPF verificado
  • E-mail verificado
Respondeu há 8 meses

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ê!

Envie uma dúvida gratuitamente

Envie sua primeira dúvida gratuitamente aqui no Tira-dúvidas Profes. Nossos professores particulares estão aqui para te ajudar.

0
votos
Nenhum usuário votou nessa resposta como útil.
Professor Eduardo S.
Identidade verificada
  • CPF verificado
  • E-mail verificado
Respondeu há 7 meses
sugiro que abra uma tarefa para este tipo de questão.
0
votos
Nenhum usuário votou nessa resposta como útil.
Professor Jhonni S.
Identidade verificada
  • CPF verificado
  • E-mail verificado
Respondeu há 3 meses

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

Está precisando de Aulas Particulares?

Aqui no Profes você encontra os melhores professores particulares, presenciais ou online, para aulas de qualquer assunto!

Professores particulares de Lógica de programação

+ Ver todos
Encontre professor particular para te ajudar nos estudos
R$ 60 / h
Flávio F.
Rio de Janeiro / RJ
Flávio F.
4,3 (3 avaliações)
Horas de aulas particulares ministradas 3 horas de aula
Tarefas resolvidas 6 tarefas resolvidas
Identidade verificada
  • CPF verificado
  • E-mail verificado
1ª hora grátis
MBA: Gestão Empresarial (FGV - FUNDAÇÃO GETÚLIO VARGAS)
Professor de engenharia, administração, gestão empresarial (marketing), teologia e inglês. Ministra aulas dinâmicas, de acordo com o perfil do aluno.
R$ 70 / h
Vinícius B.
Santo André / SP
Vinícius B.
5,0 (13 avaliações)
Horas de aulas particulares ministradas 21 horas de aula
Tarefas resolvidas 5 tarefas resolvidas
Identidade verificada
  • CPF verificado
  • E-mail verificado
1ª hora grátis
Lógica de programação - Orientação a Objetos Lógica de programação - Aulas De Informática Lógica de programação - Visual studio
MBA: Business Intelligence (Faculdade Descomplica)
Te ensino a programar. Professor de programação, com 5 anos de atuação em .net, sql, entity framework, scrum etc.
R$ 75 / h
Danilo L.
Campina Grande / PB
Danilo L.
4,9 (18 avaliações)
Horas de aulas particulares ministradas 27 horas de aula
Tarefas resolvidas 1 tarefa resolvida
Identidade verificada
  • CPF verificado
  • E-mail verificado
1ª hora grátis
Lógica de programação - Básico ao Avançado
Graduação: Engenharia da Computação (IFPB - Campus Campina Grande )
Desenvolvedor web full stack. Acompanhamento particular em excel/vba, python, c/c++, java, selenium e js!
Envie uma tarefa, lista de exercícios, atividade ou projeto
  • Você define o prazo
  • Professores fazem propostas e você escolhe o melhor
  • Interação com o professor por chat
  • Se não gostar da resolução, reembolsamos
Enviar Tarefa

Envie uma dúvida gratuitamente

Envie sua primeira dúvida gratuitamente aqui no Tira-dúvidas Profes. Nossos professores particulares estão aqui para te ajudar.

Encontre um professor e combine aulas particulares Presenciais ou Online