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.