Ir ao conteúdo
  • Cadastre-se

Ajuda em programa de pascal


Raphael Amorim

Posts recomendados

Boa noite, preciso fazer um programa em pascal que: Desenvolva um programa que receba o nome, sexo, idade, rua e bairro de cinco clientes. Em seguida o programa deve solicitar o nome do cliente que desejamos encontrar, se o cliente for encontrado, todos os dados do cliente deve ser exibido, caso contrário, exibir uma mensagem informando que o cliente não foi encontrado.

Porém não consigo fazer com que o programa busque o cliente por nome, somente pela posição dele. Alguem me da uma luz?

Segue abaixo o código:

Program minibancodedados;
Type Cliente=Record
Nome,Rua,Bairro:string[40];
Idade: integer;
Sexo: string;
end;
Var
Cliente1: array [1..5] of Cliente;
I:integer;
opcao: char;


Begin
For I:= 1 to 2 do
Begin
Writeln ('---------------------------');
Writeln ('Digite o nome do cliente');
readln(Cliente1[I].Nome);
Writeln ('Digite a idade do cliente');
readln(Cliente1[I].Idade);
Writeln('Digite o sexo do cliente');
readln (Cliente1[I].Sexo);
Writeln('Digite a rua onde o cliente mora');
readln(Cliente1[I].Rua);
Writeln('Digite o Bairro onde o cliente mora');
readln(Cliente1[I].Bairro);
End;
ClrScr;

opcao:= 'S';
While (opcao = 'S') do
Begin
writeln ('Que Cliente voce deseja localizar?');
readln(I);

If (I > 2) then
Begin
writeln ('Cliente não encontrado, deseja continuar? Pressione S para Sim N para N');
readln(opcao);
End
Else
Writeln(Cliente1[I].Nome);
Writeln(Cliente1[I].Idade, 'anos');
Writeln(Cliente1[I].Sexo);
Writeln(Cliente1[I].Rua);
Writeln(Cliente1[I].Bairro);

End;



End.

Link para o comentário
Compartilhar em outros sites

Program minibancodedados;
Type Cliente=Record
Nome,Rua,Bairro:string[40];
Idade: integer;
Sexo: string;
end;
Var
Cliente1: array [1..5] of Cliente;
I:integer;
opcao: char;
nome:string;
conf:=boolean;


Begin
conf:=false;
For I:= 1 to 2 do
Begin
Writeln ('---------------------------');
Writeln ('Digite o nome do cliente');
readln(Cliente1[I].Nome);
Writeln ('Digite a idade do cliente');
readln(Cliente1[I].Idade);
Writeln('Digite o sexo do cliente');
readln (Cliente1[I].Sexo);
Writeln('Digite a rua onde o cliente mora');
readln(Cliente1[I].Rua);
Writeln('Digite o Bairro onde o cliente mora');
readln(Cliente1[I].Bairro);
End;
ClrScr;

Repeat
Writeln('Informe o nome do usuário');
Readln(nome);
I:=1;
Repeat
If (nome=Cliente1[I].Nome) Then
Begin
conf:=true;
break;
End;
I:=I+1;
Until ((conf:=True)or(I>2));
If (conf=true) Then
Begin
Writeln(Cliente1[I].Nome);
Writeln(Cliente1[I].Idade, 'anos');
Writeln(Cliente1[I].Sexo);
Writeln(Cliente1[I].Rua);
Writeln(Cliente1[I].Bairro);
End
Else
Writeln('Usuário Não Encontrado');


End.

Tenta isso. Cara você tava lendo integer.

Link para o comentário
Compartilhar em outros sites

Estou tentando mas está dando erro, acho que é por causa do 1° repeat que não tem um until. Está dando erro sintatico no END.

Consegui fazer o programa rodar =D está funcionando direitinho! obrigado! Grande ajuda mesmo! Estou vendo agora se coloco ele pra exibir mais de um usuário xD estou agora num jogo sobre o que colocar no Until do 1° repeat para que eu consiga Exibir mais de um usuario sem que dê algum bug.

Link para o comentário
Compartilhar em outros sites

Olá Raphael, ;)

Estou tentando mas está dando erro, acho que é por causa do 1° repeat que não tem um until. Está dando erro sintatico no END.

Consegui fazer o programa rodar =D está funcionando direitinho! obrigado! Grande ajuda mesmo! Estou vendo agora se coloco ele pra exibir mais de um usuário xD estou agora num jogo sobre o que colocar no Until do 1° repeat para que eu consiga Exibir mais de um usuario sem que dê algum bug.

Realmente, você poderá ter mais de um cliente com o mesmo nome e seria bom exibi-los. Vou passar umas dicas..

Você poderia usar um laço for para percorrer todo o vetor (de 1 a 5, nesse caso) de clientes e ir testando pelo nome de cada cliente. Se o nome procurado for igual a de um cliente cadastrado, você exibe os dados. Mas você também precisa notificar caso nenhum cliente seja encontrado. Então, você poderia criar uma variável achou (um Boolean) e colocá-la inicialmente como false e mudar para true caso algum cliente seja encontrado. Feito isso, se você não achar nenhum cliente, você poderá (fora do laço) testar 'se achou' para indicar a mensagem 'Cliente não encontrado' ou não.

Qualquer dúvida é só postar.

Um abraço,

LNW

Link para o comentário
Compartilhar em outros sites

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...