Então, tentei fazer um programa de "cadastro" e busca, onde primeiro tem um menu com as opções do usuario, até aqui tudo bem, mas ao escolhe a opções 1 ou 2 o programa esta exibindo o menu novamente, como se tivesse um comando de repetição, e não executa nenhum dos IF's.
program Menu;
uses crt;
type registro = record
nome: String;
idade:Integer;
telefone: String;
cidade: String;
end;
var cliente: array [1..4] of registro;
opcao, indice, i: Integer;
nomecliente: String;
achou: Boolean;
indicebusca: Integer;
begin
indice := 1;
opcao := 0;
while (opcao <> 3) do
begin
writeln('--- Cadastro de clientes ---');
writeln(' ');
Write('[1] Cadastrar Cliente');
writeln(' ');
Write('[2] Consultar Cliente');
writeln(' ');
Writeln('[3] Sair');
read(opcao);
end;
if (opcao = 1) then
begin
begin
writeln('--- cadastro de clientes ---');
writeln(' ');
write('>> Digite o nome do cliente: ');
readln(cliente[indice].nome);
write('>> Digite a idade do cliente: ');
readln(cliente[indice].idade);
write('>> Digite o telefone do cliente: ');
readln(cliente[indice].telefone);
write('>> Digite a cidade do cliente: ');
readln(cliente[indice].cidade);
indice := indice+1;
end;
end;
if (opcao = 2) then
begin
clrscr;
achou := false;
write('--- Busca de clientes ---');
writeln(' ');
write('>> Digite o nome do cliente');
readln(nomecliente);
for i := 1 to indice do
begin
if (nomecliente = cliente[i].nome) then
begin
achou := true;
indicebusca := i;
end;
end;
if achou = true then
begin
write(cliente[indicebusca].nome);
write(cliente[indicebusca].idade);
write(cliente[indicebusca].telefone);
write(cliente[indicebusca].cidade);
end
else
Begin
write('>> Cliente não cadastrado');
end;
end;
end.