obrigado pela ajuda no outro tópico mais refiz todo o programa por causa de uns cmd requeridos pelo professor, na verdade fica até mais fácil de fazer o programa modularizando-o. mas o diabinho não quer funcionar na linha 100: pos =: pos + 1; não entendo porque erro aparece aqui!
program trabalho;
uses CRT;
{ Declara o tipo do registro }
type
TReg = record
cod: integer; { Código do produto (campo chave) }
desc: String[20]; { Descrição do produto }
preco: real; { Preço do produto }
qtd: integer; { Quantidade do produto } {x}
fab: string[20]; { Fabricante do produto }
entra: integer; { Data de inclusão do produto }
end;
var
reg: TReg; { Declara uma variavel composta do tipo do registro }
vet: array[1..100] of TReg; { Declara um vetor do tipo do registro }
opcao: integer; { Opção selecionada }
{ Procedimento para exibir o menu }
procedure Menu;
begin
clrscr;
writeln('Digite sua opcao:');
writeln('1 => Incluir novo produto');
writeln('2 => Editar produto'); {x}
writeln('3 => Excluir produto'); {x}
writeln('4 => Consultar por data (informe as datas) '); {x}
writeln('5 => Conslutar por nome (inf. letra inicial)'); {x}
writeln('6 => Consultar por descrição comum (inf. palavra)'); {x}
writeln('7 => Listar todos produtos ordenados por código'); {x}
writeln('8 => Listar todos produtos em ordem alfabética'); {x}
writeln('9 => Sair');
end;
{ Função que busca a posição do campo chave (código) no vetor de registro.
O resultado da busca será a posição (índice) para o registro encontrado.
Se a chave não existir o resultado será 0 (zero) }
function Buscar(cod: integer): integer;
var
pos: integer; { Posição ou índice do vetor }
begin
for pos := 1 to 100 do
begin
if vet[pos].cod = cod then
begin
// O campo chave (Código) foi encontrado
Buscar := pos; { Atribui a Posição onde encontrou o código }
break; { Usado para forçar a saída de uma estrutura de repetição (while, for, repeat). }
end;
end;
if pos > 100 then
begin
// O campo chave (Código) não foi encontrado
Buscar := 0; { Inicializa Buscar com zero }
end;
end;
{ Procedimento para Incluir um registro no vetor }
Procedure Incluir;
var
pos: integer; { Posição ou índice do vetor }
resp: char; { Resposta }
begin
pos := 1;
repeat
clrscr;
repeat
write('Digite o codigo do produto: ');
readln(reg.cod);
if reg.cod <= 0 then
begin
writeln('Codigo invalido! Digite um numero positivo.');
end;
until reg.cod > 0;
pos := Buscar(reg.cod); { Buscar no vetor um registro com o campo chave (código) digitado }
if pos > 0 then
begin // O produto já existe. Mostra uma mensagem
writeln('Inclusao invalida! Codigo já cadastrado.');
end else
begin
pos := Buscar(0); { Buscar no vetor um registro vazio (considera vazio quando o campo chave for igual a 0) }
if pos = 0 then
begin // O vetor está cheio. Mostra uma mensagem
writeln('Inclusao nao permitida! Vetor lotado.');
end else
begin //
write('Digite a descricao do produto: ');
readln(reg.desc);
write('Digite o preco do produto: ');
readln(reg.preco);
write('Digite a data (aaaammdd) de entrada do produto: ');
readln(reg.entra);
write('Digite a quantidade de produtos incluidos: ');
readln(reg.qtd);
write('Digite o fabricante do produto: ');
readln(reg.fab);
vet[pos] := reg; { Preenche o item do vetor com o conteúdo do registro lido }
pos =: pos + 1;
writeln('Registro incluido!');
end;
end;
write('Outro produto (S/N)? ');
readln(resp);
until UpCase(resp) = 'N';
end;
{ Procedimento para editar um registro do vetor }
Procedure Editar;
var
cog,pos: integer; { Posição ou índice do vetor }
resp: char; { Resposta }
begin
repeat
clrscr;
repeat
write('Digite o codigo do produto para editar: ');
read(cog);
if cog <= 0 then
begin
writeln('Codigo invalido! Digite um numero positivo.');
end;
until cog > 0;
if cog = reg.cod then
begin
write('Cod:',reg.cod, '. Qual o novo codigo do produto: ');
read(reg.cod);
write(reg.desc, '. Qual a nova descricao: ');
readln(reg.desc);
write(reg.preco, '. Qual o novo preco: ');
readln(reg.preco);
write(reg.entra, '. Qual a nova data (aaaammdd) de entrada: ');
readln(reg.entra);
write(reg.qtd, '. Qual a nova quantidade: ');
readln(reg.qtd);
write(reg.fab, '. Qual o novo fabricante: ');
readln(reg.fab);
end else
begin
writeln('Codigo em branco');
end;
write('Editar outro produto (S/N)? ');
readln(resp);
until UpCase(resp) = 'N';
end;
{ Corpo do programa principal }
Begin
repeat
Menu; { Chamada do procedimento Menu }
read(opcao);
clrscr;
case opcao of
1: Incluir; { Chamada do procedimento Incluir }
2: Editar; { Chamada do procedimento Editar }
//inclui aqui demais opções
end;
until opcao = 9;
End.










