Buscar

algoritmos-e-programacao-ii-43

Prévia do material em texto

U
n
iv
e
rs
id
a
d
e
 A
b
e
rt
a
 d
o
 B
ra
si
l
84
UNIDADE III
 Algoritmo Pesquisa_Sequencial_Procedimentos;
 Var
 Nomes : conjunto [1..1000] de literal[30];
 Chave : literal[30];
 Ultimo, Qtde_nomes : inteiro;
 //----------------------------------------- 
 Procedimento Entrada_Nomes();
 Var
 i : inteiro;
 Início 
 i := 1;
 Qtde_nomes := 0;
 
 Repita
 escreva	(ꞌEntre	com	o	ꞌ,i,ꞌo.	nome:ꞌ);
 leia(Nomes[i]);
 Se	(Nomes[i]	=	ꞌfimꞌ)	então
 Ultimo := i - 1
 senão
 i := i + 1;
 Ultimo := i;
 Fim_se;
 Até_que	(Nomes[i]	=	ꞌfimꞌ);		
 Fim;
 //-----------------------------------------
 Procedimento Pesquisa_Sequencial(nome : literal[30]);
 Var
 i : inteiro;
 Início 
 i := 1;
 Enquanto(i <= Ultimo) faça
 Se (Nomes[i] = Chave) então
 Qtde_nomes := Qtde_nomes + 1;
 Fim_se;
 i := i + 1;
 Fim_enquanto; 
 
 Se (Qtde_nomes > 0) então
 escreva(ꞌNome:	ꞌ,	Chave,	ꞌ	-	encontrado	ꞌ,		 	 										
									Qtde_nomes,	ꞌ	Vez(s)ꞌ)
 senão
 escreva(ꞌNome:	ꞌ,	Chave,	ꞌ	-	NÃO	encontradoꞌ);
 Fim_se;
 Fim;
 //Algoritmo Principal------------------------ 
 Início
 Entrada_Nomes();
 escreva	(ꞌEntre	com	o	nome	a	ser	pesquisado:ꞌ);	
 leia(Chave);
 Pesquisa_Sequencial(Chave);
 Fim.
Figura 32: Algoritmo – Pesquisa Sequencial – Procedimentos.
85
UNIDADE III
A
lg
o
rit
m
o
s 
e
 P
ro
g
ra
m
a
çã
o
 II
 Program Pesquisa_Sequencial_Procedimentos;
 Var
 Nomes : array [1..1000] of	string[30];
 Chave : string[30];
 Ultimo, Qtde_nomes : integer;
 //----------------------------------------- 
 Procedure Entrada_Nomes();
 Var
 i : integer;
 Begin 
 i := 1;
 Qtde_nomes := 0;
 
 Repeat
 write	(ꞌEntre	com	o	ꞌ,i,ꞌo.	nome:ꞌ);
 read(Nomes[i]);
 if	(Nomes[i]	=	ꞌfimꞌ)	then
 Ultimo := i - 1
 else
 Begin
 i := i + 1;
 Ultimo := i;
 End;
 Until	(Nomes[i]	=	ꞌfimꞌ);		
 End;
 //-----------------------------------------
 Procedure Pesquisa_Sequencial(nome : string[30]);
 Var
 i : integer;
 Begin 
 i := 1;
 While(i <= Ultimo) do
 Begin
 if (Nomes[i] = Chave) then
 Qtde_nomes := Qtde_nomes + 1;
 i := i + 1;
 End; 
 
 if (Qtde_nomes > 0) then
 writeln(ꞌNome:	ꞌ,	Chave,	ꞌ	-	encontrado	ꞌ,	Qtde_nomes,	ꞌ	Vez(s)ꞌ)
 else
 writeln(ꞌNome:	ꞌ,	Chave,	ꞌ	-	NÃO	encontradoꞌ);
 End;
 //Programa Principal------------------------ 
 Begin
 Entrada_Nomes();
 write	(ꞌEntre	com	o	nome	a	ser	pesquisado:ꞌ);	
 readln(Chave);
 Pesquisa_Sequencial(Chave);
 readkey;
 End.
Figura 33: Programa em Pascal – Pesquisa Sequencial – Procedimentos.

Continue navegando