Algoritmo de Cadastro de Produtos utilizando matrizes
Fala galera, tudo beleza? Aqui vai um exemplo bem legal utilizando praticamente todos aprendizados de algoritmos. Se você for professor, este é um exemplo para trabalhos finais de disciplina.
Imagine que você precisa desenvolver um programa para cadastrar produtos em uma loja. Cada produto tem as seguintes informações: nome, preço e quantidade em estoque.
Para isso, crie uma matriz onde cada linha representa um produto e cada coluna representa uma informação desse produto (nome, preço e quantidade em estoque). O programa deve ser capaz de realizar as seguintes operações:
- Cadastrar um novo produto
- Editar informações de um produto existente
- Excluir um produto cadastrado
- Listar todos os produtos cadastrados
- Buscar um produto pelo nome
Lembre-se de validar as entradas do usuário e tratar possíveis erros que possam ocorrer.
Testes:
Aqui estão alguns testes que podem ser realizados para verificar se o programa está funcionando corretamente:
- Cadastre 3 produtos com nome, preço e quantidade em estoque diferentes.
- Edite o preço de um dos produtos cadastrados.
- Exclua um dos produtos cadastrados.
- Liste todos os produtos cadastrados.
- Busque um produto pelo nome e verifique se as informações exibidas estão corretas.
Esses testes devem ajudar a verificar se o programa está funcionando corretamente e a identificar possíveis erros ou falhas que precisam ser corrigidos.
No final do post terá o link com este mesmo exercício para o site giovanidacruz.com.br com sugestões de resposta e explicações em outras linguagens.
Vamos ao código em Pascal / Delphi / Lazarus
{ Criado por Giovani Da Cruz - https://giovanidacruz.com.br
Programa cadastro de Produtos
Exercício bem completo que utiliza praticamente
todos aprendizados de3 algoritmos.
Exemplo de sistema que utiliza:
record - registros;
array de duas dimenções - matriz;
Laços For e repeat - Para e Repita;
Constantes;
Procedimentos auxiliares
Ideal para prova final de disciplina.
}
program cadastro_produtos;
const
MAX_PRODUTOS = 100;
MAX_CARACTERES = 50;
type
TProduto = record
nome: string[MAX_CARACTERES];
preco: real;
quantidade: integer;
end;
TListaProdutos = array [1..MAX_PRODUTOS] of TProduto;
var
listaProdutos: TListaProdutos;
numProdutos, opcao: integer;
procedure cadastrarProduto(var listaProdutos: TListaProdutos; var numProdutos: integer);
var
produto: TProduto;
begin
writeln('CADASTRO DE PRODUTO');
writeln('-------------------');
writeln;
// leitura dos dados do produto
write('Nome: ');
readln(produto.nome);
write('Preco: ');
readln(produto.preco);
write('Quantidade: ');
readln(produto.quantidade);
// adiciona o produto na lista
numProdutos := numProdutos + 1;
listaProdutos[numProdutos] := produto;
writeln;
writeln('Produto cadastrado com sucesso!');
writeln;
end;
procedure exibirProdutos(listaProdutos: TListaProdutos; numProdutos: integer);
var
i: integer;
begin
writeln('LISTA DE PRODUTOS');
writeln('-----------------');
writeln;
// exibe os dados de cada produto cadastrado
for i := 1 to numProdutos do begin
writeln('Nome: ', listaProdutos[i].nome);
writeln('Preco: ', listaProdutos[i].preco:0:2);
writeln('Quantidade: ', listaProdutos[i].quantidade);
writeln;
end;
end;
begin
numProdutos := 0; // inicializa o contador de produtos cadastrados
repeat
// exibe o menu de opções
writeln('MENU DE OPCOES - GIOVANI DA CRUZ');
writeln('--------------');
writeln('1 - Cadastrar produto');
writeln('2 - Exibir lista de produtos');
writeln('0 - Sair');
writeln;
// leitura da opção escolhida
write('Opcao: ');
readln(opcao);
// realiza a operação escolhida pelo usuário
case opcao of
1: cadastrarProduto(listaProdutos, numProdutos);
2: exibirProdutos(listaProdutos, numProdutos);
0: writeln('Saindo...');
else writeln('Opcao invalida!');
end;
writeln;
until opcao = 0;
end. |
{ Criado por Giovani Da Cruz - https://giovanidacruz.com.br
Programa cadastro de Produtos
Exercício bem completo que utiliza praticamente
todos aprendizados de3 algoritmos.
Exemplo de sistema que utiliza:
record - registros;
array de duas dimenções - matriz;
Laços For e repeat - Para e Repita;
Constantes;
Procedimentos auxiliares
Ideal para prova final de disciplina.
}
program cadastro_produtos;
const
MAX_PRODUTOS = 100;
MAX_CARACTERES = 50;
type
TProduto = record
nome: string[MAX_CARACTERES];
preco: real;
quantidade: integer;
end;
TListaProdutos = array [1..MAX_PRODUTOS] of TProduto;
var
listaProdutos: TListaProdutos;
numProdutos, opcao: integer;
procedure cadastrarProduto(var listaProdutos: TListaProdutos; var numProdutos: integer);
var
produto: TProduto;
begin
writeln('CADASTRO DE PRODUTO');
writeln('-------------------');
writeln;
// leitura dos dados do produto
write('Nome: ');
readln(produto.nome);
write('Preco: ');
readln(produto.preco);
write('Quantidade: ');
readln(produto.quantidade);
// adiciona o produto na lista
numProdutos := numProdutos + 1;
listaProdutos[numProdutos] := produto;
writeln;
writeln('Produto cadastrado com sucesso!');
writeln;
end;
procedure exibirProdutos(listaProdutos: TListaProdutos; numProdutos: integer);
var
i: integer;
begin
writeln('LISTA DE PRODUTOS');
writeln('-----------------');
writeln;
// exibe os dados de cada produto cadastrado
for i := 1 to numProdutos do begin
writeln('Nome: ', listaProdutos[i].nome);
writeln('Preco: ', listaProdutos[i].preco:0:2);
writeln('Quantidade: ', listaProdutos[i].quantidade);
writeln;
end;
end;
begin
numProdutos := 0; // inicializa o contador de produtos cadastrados
repeat
// exibe o menu de opções
writeln('MENU DE OPCOES - GIOVANI DA CRUZ');
writeln('--------------');
writeln('1 - Cadastrar produto');
writeln('2 - Exibir lista de produtos');
writeln('0 - Sair');
writeln;
// leitura da opção escolhida
write('Opcao: ');
readln(opcao);
// realiza a operação escolhida pelo usuário
case opcao of
1: cadastrarProduto(listaProdutos, numProdutos);
2: exibirProdutos(listaProdutos, numProdutos);
0: writeln('Saindo...');
else writeln('Opcao invalida!');
end;
writeln;
until opcao = 0;
end.
Testando no Lazarus funcionou muito bem.
Explicação do código
Neste código, foi criado um registro chamado TProduto
com três campos: nome
(string), preco
(real) e quantidade
(integer). Em seguida, foi criado um tipo TListaProdutos
como uma matriz com tamanho máximo de 100 produtos. A variável numProdutos
é utilizada para controlar o número de produtos cadastrados.
A função cadastrarProduto
é responsável por ler os dados de um novo produto e adicioná-lo na lista de produtos cadastrados. Já a função exibirProdutos
percorre a lista de produtos cadastrados e exibe os dados de cada um.
No programa principal, foi criado um menu de opções com as operações disponíveis: cadastrar produto, exibir lista de produtos e sair. Este menu, através do laço de repetição repeat
sempre disponibiliza para o usuário o menu completo após cada ação.
Beleza pessoal?
Neste post vimos um ótimo exemplo de algoritmo em pascal que utiliza matrizes e registros. Muito bom para treinar para as provas finais de semestre.
Dúvidas ou sugestões? Deixe o seu comentário!
Um abraço e até o próximo post! Valeu!
-
Giovani Da Cruz
-
319 views
- 2 comentários
- 16 de maio de 2023
Está gostando do conteúdo? Considere pagar um cafezinho para nossa equipe!
Posts Relacionados - Continue Aprendendo
Conciso ao extremo, excelente e muito útil, parabéns pelo trabalho.
Que bom que está gostando Newton.