Já fiz partes do algoritmos e peço ajuda para fazer a próxima parte descrita abaixo.
algoritmo "semnome"
// Registro venda: O usuario irá selecionar esta opção para registrar a venda de
// um produto, ou seja, emitir, uma nota fiscal de venda. Nesse caso, a quantidade
//do produto vendido deverá ser debitada em seu estoque. Ao selecionar esta opção,
//o sistema deverá pedir ao usário que informe o nome do vendedor, o nome do
//cliente e o código do produto vendido. Caso o produto exista, o sistema deve
//solicitar que o usuário digite a quantidade vendida e apresentar o total da venda.
//O sistema deve pedir ainda que o usuário confirme ou cancele a venda. Caso ele confirme,
//a venda deverá ser registrada(poderão ser registradas até vinte vendas) e o
//estoque do produto atualizado. Caso ele cancele, o sistema deve voltar ao menu principal
//sem realizar nenhuma operação.
var
Nome, Codigo, unidademedida, temp : caracter
Produtos: vetor [1..10, 1..3] de caracter
Quantidade: vetor [1..10, 1..3] de real
I, Posicao, Opcao, Ordem: inteiro
quantidade1, valorunitario, estoqueminimo, quantidade2 : real
procedimento EscreverLinha(Simbolo: caracter)
var
J: inteiro
inicio
para J de 1 ate 81 faca
Escreva(Simbolo)
fimpara
Escreval(Simbolo)
fimprocedimento
inicio
repita
EscreverLinha("-")
escreval("Digite umas das opções abaixo")
EscreverLinha("-")
escreval("1-Cadastrar Produto")
escreval("2-Excluir Produto")
escreval("3-Consultar Produto")
escreval("4-Registrar Compra")
escreval("5-Registrar Venda")
escreval("6-Relatório Geral de Estoque")
escreval("7-Relatório de Estoque mínimo")
escreval("8-Relatório Geral de Vendas")
escreval("9-Relatório de Vendas por Vendedor")
escreval("0-Sair")
Escreval("")
escreval("Escolha a opção desejada")
leia(Opcao)
EscreverLinha("-")
escolha Opcao
caso 1
Limpatela
EscreverLinha("-")
Escreval("Cadastramento")
EscreverLinha("-")
//Leitura de dados do novo produto
escreval("Entre com o nome do produto ")
Leia (Nome)
escreval("")
escreval("Código do produto : ")
Leia(Codigo)
Escreval("Unidade de medida : ")
Leia(UnidadeMedida)
Escreval("Quantidade em estoque: ")
Leia(Quantidade1)
Escreval("Estoque mínimo : ")
Leia(EstoqueMinimo)
Escreval("Valor Unitário : ")
Leia(Valorunitario)
//Busca por um produto com mesmo nome
Posicao := 0
para I de 1 ate 10 faca
se Nome = Produtos[I, 1] entao
Posicao := I
interrompa
fimse
fimpara
se Posicao = 0 entao
//Busca por uma posição vazia
para I de 1 ate 10 faca
se Produtos[I, 1] = "" entao
Posicao := I
interrompa
fimse
fimpara
//Cadastra o contato
se Posicao <> 0 entao
Produtos[Posicao, 1] := Nome
Produtos[Posicao, 2] := Codigo
Produtos[Posicao, 3] := Unidademedida
Quantidade[Posicao, 1] := Quantidade1
Quantidade[Posicao, 2] := Estoqueminimo
Quantidade[Posicao, 3] := Valorunitario
Escreval("Cadastro realizado com sucesso!")
senao
Escreval("Memória cheia. Exclua um contato para liberar espaço!")
fimse
senao
Escreval("Produto já cadastrado!")
fimse
caso 2
Limpatela
EscreverLinha("-")
Escreval("Excluir produto")
EscreverLinha("-")
//Solicite o nome do produto a ser excluido
Escreva("O nome do produto: ")
Leia(nome)
//Busca por produto do mesmo nome
Posicao := 0
para I de 1 ate 10 faca
se nome = produtos[I, 1] entao
Posicao := I
interrompa
fimse
fimpara
se Posicao <> 0 entao
//Limpa a posição do produto
produtos[Posicao, 1] := ""
produtos[Posicao, 2] := ""
Escreval("Produto apagado com sucesso!")
senao
Escreval("Contato inexistente!")
fimse
caso 3
Limpatela
EscreverLinha("-")
Escreval("Consulta")
EscreverLinha("-")
//Solicite o nome do produto a exibir
Escreva("Digite o Código do produto: ")
Leia(codigo)
//Busca um contato com o mesmo nome
Posicao := 0
para I de 1 ate 10 faca
se Nome = Produtos[I, 1] entao
Posicao := I
interrompa
fimse
fimpara
se Posicao <> 0 entao
//Mostra o produto
Escreval("Nome: ", Produtos[Posicao, 1])
Escreval("Código: ", Produtos[Posicao, 2])
Escreval("Unidade de Medida: ", Produtos[Posicao, 3])
Escreval("Quantidade em Estoque: ", Quantidade[Posicao, 1])
Escreval("Estoque Mínimo: ", Quantidade[Posicao, 2])
Escreval("Valor Unitário: ", Quantidade[Posicao, 3])
senao
Escreval("Produto inexistente!")
fimse
caso 4
Limpatela
EscreverLinha("-")
Escreval("Registro Compra")
EscreverLinha("-")
//Solicite o nome do produto a exibir
Escreva("Digite o Código do produto: ")
Leia(codigo)
//Busca um contato com o mesmo nome
para I de 1 ate 10 faca
se Nome = Produtos[I, 1] entao
Posicao := I
interrompa
fimse
fimpara
Escreval("Quantidade em Estoque: ", Quantidade[Posicao, 1])
Escreval("Digite a quantidade em estoque acima: ")
Leia(Quantidade2)
Escreval("Digite a quantidade a ser comprada: ")
Leia(Quantidade1)
Quantidade1 := Quantidade2 + Quantidade1
Escreval("O Saldo atual do produto em estoque é de: ", Quantidade1 ," Unidades ")
caso 5
caso 6
Limpatela
EscreverLinha("-")
Escreval("Listagem")
EscreverLinha("-")
//Mostrar todos os produtos
Escreva("| NOME |":
Escreva(" CÓDIGO |":9)
Escreva(" UNI. DE MEDIDA |":18)
Escreva(" ESTOQUE ATUAL |":16)
Escreva(" ESTOQUE MÍNIMO |":17)
Escreva(" PREÇO UNITÁRIO |": 20)
EscreverLinha("-")
para I de 1 ate 10 faca
se Produtos[I, 1] <> "" entao
Escreva(Produtos[I, 1]:10)
Escreva(Produtos[I, 2]:12)
Escreva(Produtos[I, 3]:13)
Escreva(Quantidade[I, 1]:
Escreva(Quantidade[I, 2]:15)
Escreva(Quantidade[I, 3]:15)
fimse
fimpara
caso 7
caso 8
caso 0
Escreval("Sair do programa")
outrocaso
Escreval("Opção inválida!")
fimescolha
EscreverLinha("-")
Escreva("<pressione a tecla enter para continuar>")
Leia(Temp)
Limpatela
ate Opcao = 0
fimalgoritmo