Ir ao conteúdo
  • Cadastre-se

Pesquisa dentro de Vetores


Acson

Posts recomendados

E ae pessoas.

Tava tentando exercitar aqui vetores(pesquisa)..

E não ta dando certo...Achei um exemplo aquii no forum só que tava muito complicado...

Vejam...

Program Pzim ;
var
Nome:Array[1..3] of string;
Idade:Array[1..3]of integer;
I:integer;
OP:char;
procura:string;
procura2:integer;

Begin


while (OP <> '3') do
Begin


Case OP of

'1':begin
for i:=1 to 3 do
begin
writeln('Digite o nome');
readln(nome[i]);
writeln('Digite a idade');
readln(idade[i]);
end;
end;

'2':begin
writeln('Digite o nome do cliente que quer encontrar: ');
readln(procura);
For i:=1 to 5 do
begin
if (nome[i]) = Procura then
writeln ('O Cliente Encontrado: ',procura);
if (idade[i])=procura2 then
writeln('Idade: ',procura2);
//writeln(nome[i]);
end;
end;
end;
//end;

writeln('1)Cadastrar 5 Cliente ');
writeln('2)Procurar cliente ');
writeln('3)Sair ');
readln(op);



end;



end.

valeu

Link para o comentário
Compartilhar em outros sites

  • Membro VIP

E ae pessoas.

Tava tentando exercitar aqui vetores(pesquisa)..

E não ta dando certo...Achei um exemplo aquii no forum só que tava muito complicado...

Vejam...

Program Pzim ;

var

Nome:Array[1..3] of string;

Idade:Array[1..3]of integer;

I:integer;

OP:char;

procura:string;

procura2:integer;

Begin

while (OP <> '3') do

Begin

Case OP of

'1':begin

for i:=1 to 3 do

begin

writeln('Digite o nome');

readln(nome);

writeln('Digite a idade');

readln(idade);

end;

end;

'2':begin

writeln('Digite o nome do cliente que quer encontrar: ');

readln(procura);

For i:=1 to 5 do

begin

if (nome) = Procura then

writeln ('O Cliente Encontrado: ',procura);

if (idade)=procura2 then

writeln('Idade: ',procura2);

//writeln(nome);

end;

end;

end;

//end;

writeln('1)Cadastrar 5 Cliente ');

writeln('2)Procurar cliente ');

writeln('3)Sair ');

readln(op);

end;

end.

valeu

Olá.

E.... ???? Aonde você quer chegar?

Em fim, peguei o código, corrigir e fiz alguns comentários:


var
Nome :Array[1..3] of string;
Idade :Array[1..3] of integer;
I :integer;
OP :char;
procura :string;
[COLOR="Red"]procura2 :integer; {pra que serve? onde esta sendo utilizada?????}[/COLOR]

Begin
while (OP <> '3') do
Begin
Case OP of
'1' :begin
for i:=1 to 3 do
begin
writeln('Digite o nome');
readln(nome[i]);
writeln('Digite a idade');
readln(idade[i]);
end;
end;
'2' :begin
writeln('Digite o nome do cliente que quer encontrar: ');
readln(procura);
[COLOR="Red"] (*
POR QUE DE 1 a 5??? existem 3 posições!!!!
For i:=1 to 5 do
*)[/COLOR]
For i:=1 to 3 do
begin
if (nome[i]) = Procura then
begin
[COLOR="Red"] (*
{writeln ('O Cliente Encontrado: ',procura);
writeln ('O Cliente Encontrado: ',nome[i]);
//O mais correto seria exibir o nome do vetor, e nao da busca!
*)[/COLOR]

[COLOR="Red"] (*
Nas procuras, usamos alguma referencia para encontrar
determinada coisa, neste caso usou-se o nome. Da¡ a idade vem
junto!!! ( que idade é relacionada com o nome)
*)[/COLOR]
writeln('O Cliente Encontrado: ');
writeln('NOME : ',nome[i]);
writeln('IDADE: ',idade[i]);
end;

[COLOR="Red"] (*
QUAL O VALOR DE procura2 ???
if (idade[i])=procura2 then
writeln('Idade: ',procura2);
*)[/COLOR]
{//writeln(nome[i]);}
end;
end;
end; {fim case}
writeln('1)Cadastrar 5 Cliente ');
writeln('2)Procurar cliente ');
writeln('3)Sair ');
readln(op);
end;
end.
Program teste_pesquisas;

Espero ter ajudado.

Qualquer coisa é só mandar um port

Abraços

Link para o comentário
Compartilhar em outros sites

É que é o seguinte...

Era pra fazer um programa pra gravar Nomes no vetor, Idade no vetor..entre outras coisas que eu quisesse adicionar...

Mas, só usei Nome e Idade...

O procura2 era pra procurar a idade..mais isso ia ficar sem logica nao era?

O que eu queria era... Quando eu digitasse o nome do individuo ele ja mostrasse o nome e todas a informações relacionadas com idade..(sexo entre outras se eu colocasse no programa)

O lance é: Eu usei dois vetores distintos um para nome e outro para idade e isso está errado não é? Seria necessario usar uma matriz e executar a busca na matriz?

Isso que eu nao consigo fazer :angry:

valeu :D

Link para o comentário
Compartilhar em outros sites

  • Membro VIP

É que é o seguinte...

Era pra fazer um programa pra gravar Nomes no vetor, Idade no vetor..entre outras coisas que eu quisesse adicionar...

Mas, só usei Nome e Idade...

O procura2 era pra procurar a idade..mais isso ia ficar sem logica nao era?

O que eu queria era... Quando eu digitasse o nome do individuo ele ja mostrasse o nome e todas a informações relacionadas com idade..(sexo entre outras se eu colocasse no programa)

O lance é: Eu usei dois vetores distintos um para nome e outro para idade e isso está errado não é? Seria necessario usar uma matriz e executar a busca na matriz?

Isso que eu nao consigo fazer :angry:

valeu :D

Olá

1)

O procura2 era pra procurar a idade..mais isso ia ficar sem logica nao era?

Depende, como comentei,

Nas procuras, usamos alguma referencia para encontrar determinada coisa, neste caso usou-se o nome. Da¡ a idade vem junto!!! (já que idade é relacionada com o nome)
mas você poderia também usar idade para procurar!!! Não para achar uma pessoa em si, mas tipo para fazer um relatório etário...

2)

Eu usei dois vetores distintos um para nome e outro para idade e isso está errado não é?

Não necessariamente errado, mas usando "registro" ficara muito mais organizado. Podem-se considerar como uma (melhor) "boa prática" !!! :)

3)

Seria necessario usar uma matriz e executar a busca na matriz?

Isso que eu nao consigo fazer

Não uma matriz, e sim um registro (record)!!!

No caso, se você for utilizar registros. Poderia ficar mais ou menos assim (comentários no próprio códogo):


var
{Nome :Array[1..3] of string;
Idade :Array[1..3] of integer;}
[COLOR="Red"] pessoas :array[1..3] of record
cpf :string[14]; {xxx.xxx.xxx-xx}
nome :string;
idade :byte; {byte vai de 0 a 255}
tel :string;
sexo :char; {"M" ou "F"}
{etc}
end;[/COLOR]

I :integer;
OP :char;
procura :string;
procura2 :integer; {pra que serve? onde esta sendo utilizada?????}
Program registros;

ou poderia ficar assim tambem


t_pessoas = array[1..3] of record
cpf :string[14]; {xxx.xxx.xxx-xx}
nome :string;
idade :byte; {byte vai de 0 a 255}
tel :string;
sexo :char; {"M" ou "F"}
{etc}
end;[/COLOR]
var
pessoas :[COLOR="Red"]t_pessoas;[/COLOR]
[COLOR="Red"]type

ou ainda mais estruturado (aviadado) ainda:


[COLOR="Red"] t_pessoa = record
cpf :string[14]; {xxx.xxx.xxx-xx}
nome :string;
idade :byte; {byte vai de 0 a 255}
tel :string;
sexo :char; {"M" ou "F"}
{etc}
end;[/COLOR]

t_pessoas2 = [COLOR="Red"]array[1..3] of t_pessoa;[/COLOR]
var
pessoas :[COLOR="Red"]t_pessoas;[/COLOR]
type

Para acessar um campo do registro usa-se ".", veja:

WriteLn('NOME : ',pessoas[2].nome);

Claro que neste caso temos que usar os "[]" para acessar o array, mas lembre-se que são coisas separas!!! Simplesmente estamos juntando duas estruturas!

Qualquer dúvida é só postar!

Abraços

Link para o comentário
Compartilhar em outros sites

É que eu ainda não vi registro no curso..

Só vi até funções e procedimentos, só falta o registro(rss que ironia)

Ai pra min usar assim em registro sem ter pego o assunto fica f****

Você tem algum exemplo ai de busca em procedimentos-funcoes,matriz ou algo assim? Se tiver, pode colar aqui?

valeu =D

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...