Algoritmo
{$APPTYPE CONSOLE} uses SysUtils, crt;
const {define uma constante: valor fixo} Nmax = 10;
type {type define um tipo personalizado de dados} {cria o tipo "Produto", com três campos: "Nome", "Preco" e "Q"}
// NomeProduto = string[12]; Str12 = string[12];
Produto = record Nome: Str12; {nome com até 12 caracteres} Preco: real; Q: real; {Quantidade} end; {finaliza a definição do registro}
{cria um tipo que um vetor de Nmax elementos do tipo Produto} Lista_Produtos = array[1..Nmax] of Produto;
var N, K, k2: integer; Op: char; Lista: Lista_Produtos;
procedure LeProduto(var NomeProd: Str12; var PrecoProd, QProd: real); begin repeat write('Digite o nome do produto: '); readln(NomeProd); until NomeProd <> '';
repeat write('Digite o preço do produto: '); readln(PrecoProd); until PrecoProd > 0;
repeat write('Digite a Qdade do produto: '); readln(QProd); until QProd > 0; end; procedure InsereProduto(NomeProd: string; PrecoProd, QProd: real); begin N := N + 1; Lista[N].Nome := NomeProd; Lista[N].Preco := PrecoProd; Lista[N].Q := QProd; end; procedure FixaDados; begin InsereProduto('Chocolate', 4.50, 1); InsereProduto('Mortadela', 2.9, 1); InsereProduto('Leite', 2.10, 1); InsereProduto('Sabao', 5.4, 1); InsereProduto('Goiabada', 4.70, 1); end; function TotalLista: real; var i: integer; soma: real; begin soma := 0; for i := 1 to N do Soma := Soma + Lista[i].Preco * Lista[i].Q; TotalLista := Soma; end; procedure MostraLista; var i: integer; begin clrscr; TextColor(red); //amarelo writeln('>>>>>>>>>>>>>>>>>>>>>> Lista de Compras <<<<<<<<<<<<<<<<<<<<<<<<'); TextColor(LightGray); //cinza claro