Ir para conteúdo
Fórum Script Brasil

Warrior Princess

Membros
  • Total de itens

    1
  • Registro em

  • Última visita

Tudo que Warrior Princess postou

  1. Bom Diaaaa! Criei um cadastro aqui no forum pra ver se alguém consegue me ajudar com um exercício de pilhas na linguagem Pascal, o profº não explicou como se faz e jogou um exercício pra fazer valendo nota .. "1. Tendo as estruturas abaixo, faça um programa PASCAL que contenha um MENU com as seguintes opções: 1-Cadastrar Produtos, 2-Cadastrar Vendas, 3-Listar Vendas por período, 4-Excluir Vendas, 5-Sair; O programa deve ter no mínimo as subrotinas descritas. Poderão ter outras subrotinas porém estas não acrescentarão pontuação. Não use variáveis globais. program ContrVendas; type pProduto = ^NodProduto; pVenda = ^NodVenda; pItem = ^NodItem; NodProduto = record codigo:integer; nome:string[50]; valorunitario:real; ant:pProduto; end; NodVenda = record nro:integer; dataVenda:string[10]; cliente:string[50]; valorTotal:real; item:pItem; ant:pVenda; end; NodItem = record produto:integer; quantidade:integer; valorTotal:real; ant:pItem; end; procedure menu; forward; (1,0 pt) function setProdutos (pTopProd:pProduto):pProduto; forward; (1,0 pt) //cadastra os produtos até ser digitado 'fim' para o nome. O código não poderá repetir na pilha enquanto o programa estiver sendo executado procedure getProdutos (pTopProd:pProduto); foward; (1,0 pt) //lista os produtos da pilha conforme solicitado no cadastro da venda function setVendas (pTopVenda:pVenda):pVenda; forward; (1,0 pt) //cadastra a venda até ser digitado 'fim' na data. A numeração da venda será automático e não poderá existir dois número iguais na Pilha. Após ser informado o cliente será solicitado os itens da venda. O Valor Total será armazenado após inserir todos os itens da venda . procedure getVendas (pTopVenda:pVenda); forward; (1,0 pt) //é solicitado uma data e listado as vendas e itens realizadas nesta data function excVendas (pTopVenda:pVenda):pVenda; forward; (1,0 pt) //é solicitado um número de venda, é mostrado esta venda (e seus itens) e caso confirme é excluído das pilhas, os itens e a venda. function setItens :pItem; forward; (1,0 pt) //cadastra os itens da venda até ser informado '999999' no código do produto. Caso seja informado '0' é mostrado todos os produto da Pilha. Caso seja mostrado um número válido é mostrado a descrição do produto e o valor unitário. Caso não exista mostre a mensagem “Produto Inexistente” e fique solicitando o código do produto até ser digitado um número válido ou 999999. O valor total dos itens deve ser calculado pela quantidade informada multiplicado pelo valor unitário do produto cadastrado. procedure getItens (pTopItem:pItem); forward; (1,0 pt) //mostra todos os itens da Pilha conforme a venda informada. procedure excItens (pTopItem:pItem); forward; (1,0 pt) //apaga todo os nodos da pilha ITENS referente a uma venda procedure sairVendas (pTopVenda: pVenda); forward; (0,5 pt) //Ao escolher a opção SAIR no menu, apaga todos os 'nodos' da memória relativo as vendas. Os itens são excluídos no procedimento “excItens”. procedure sairProdutos (pTopProduto:pProduto); forward; (0,5 pt); //Ao escolher a opção SAIR no menu, apaga todos os 'nodos' da memória relativo aos produtos." Sei que é grande :( Eu comecei assim, mas acho que tá errado isso aí o.O , alguém pode me ajudar?: Menu = record type pProduto = ^NodProduto; pVenda = ^NodVenda; pItem = ^NodItem; NodProduto = record codigo:integer; nome:string[50]; valorunitario:real; ant:pProduto; end; NodVenda = record nro:integer; dataVenda:string[10]; cliente:string[50]; valorTotal:real; item:pItem; ant:pVenda; end; NodItem = record produto:integer; quantidade:integer; valorTotal:real; ant:pItem; end; function setProdutos (pTopProd:pProduto):pProduto; forward; procedure getProdutos (pTopProd:pProduto); foward; function setVendas (pTopVenda:pVenda):pVenda; forward procedure getVendas (pTopVenda:pVenda); forward; function excVendas (pTopVenda:pVenda):pVenda; forward; function setItens :pItem; forward; procedure sairProdutos (pTopProduto:pProduto); forward; procedure excItens (pTopItem:pItem); forward; procedure sairVendas (pTopVenda: pVenda); forward; procedure getItens (pTopItem:pItem); forward; procedure Menu; var opc:byte; p:Pont; begin p:=nil; repeat writeln;writeln; writeln('1-Cadastrar Produto'); writeln('2-Cadastrar Venda'); writeln('3-Listar Vendas por Período'); writeln('4-Excluir Vendas'); writeln('5-Sair'); readln(opc); case opc of 1:p:=Produto(p); 2:Vendas(p); 3:Item(p); 4:p:=Excluir(p); 5:Sair(p); end; until (opc = 5); end; function Produtos(p:Pont):Pont; var prim:Pont; begin prim:=p; new(p); write('Digite o nome do produto: '); readln(p^.nome); while (p^.nome <> 'fim') do begin write('Digite o codigo do produto: '); readln(p^.codigo); write('Digite o valor unitario do produto: '); readln(p^.valorunitario); p^.ant:=prim; prim:=p; new(p); write('Digite o nome: '); readln(p^.nome); end; dispose(p); result:=prim; end;
×
×
  • Criar Novo...