<html><body>
<p>Luis Motta,<br>
<br>
Ficou muito legal sua implementação usando expressao regular. O professor falou que não precisa fazer busca aproximada mais, entao desconsidere.<br>
<br>
BMH é um algoritmo de busca. A idéia é pesquisar no padrão no sentido da direita para a esquerda, o que torna o algoritmo muito rápido.<br>
<br>
Segue abaixo: <br>
Obs.: Tenho que imprimir a linha que ocorre o padrao.<br>
<br>
procedure BMH (var T: TipoTexto; var n: integer ; var P: TipoPadrao; var m: integer ) ;<br>
{--Pesquisa P[1. .m] em T[1. .n]--}<br>
var i , j , k : Integer ;<br>
d: array[0. .MaxTamAlfabeto] of integer ;<br>
begin<br>
{--Pre-processamento do padrao--}<br>
        for j := 0 to MaxTamAlfabeto do d[ j ] := m;<br>
        for j := 1 to m-j;<br>
        i:=m;<br>
        while i &lt;= n do {--Pesquisa--}<br>
        begin<br>
                k := i ; j := m;<br>
                while (T[k] = P[ j ] ) and ( j &gt;0) do<br>
                begin <br>
                        k:= k-1; <br>
                        j:=j-1; <br>
                end;<br>
                if j = 0 then <br>
                        writeln( ’ Casamento na posicao: ’ ,k+1:3);<br>
                        i := i + d[ord(T[ i ] ) ] ;<br>
        end;<br>
end;<br>
<br>
Vlw <br>
<br>
Diego<br>
<br>
<br>
.============================================.<br>
  Diego Mendes Teixeira   -  diegom@lcc.ufmg.br             <br>
  Desenvolvimento de Sistemas  -  LCC/CENAPAD<br>
  Universidade Federal de Minas Gerais - UFMG   <br>
  Cel: +55(31)8842-9951 - Tel(trab): +55(31)34994910       <br>
'============================================'<br>
<img src="cid:10__=0CBBF881DFCE66E08f9e8a93df@grude.ufmg.br" width="16" height="16" alt="Inativo ocultar detalhes deLuis Motta Campos &lt;luismottacampos@yahoo.co.uk&gt;">Luis Motta Campos &lt;luismottacampos@yahoo.co.uk&gt;<br>
<br>
<br>

<table width="100%" border="0" cellspacing="0" cellpadding="0">
<tr valign="top"><td style="background-image:url(cid:20__=0CBBF881DFCE66E08f9e8a93df@grude.ufmg.br); background-repeat: no-repeat; " width="40%">
<ul>
<ul>
<ul>
<ul><b><font size="2">Luis Motta Campos &lt;luismottacampos@yahoo.co.uk&gt;</font></b><font size="2"> </font><br>
<font size="2">Enviado Por: cascavel-pm-bounces+diegom=lcc.ufmg.br@pm.org</font>
<p><font size="2">25/10/2006 13:02</font>
<table border="1">
<tr valign="top"><td width="168" bgcolor="#FFFFFF"><div align="center"><font size="2">Favor responder a<br>
Cascavel Perl Mongers &lt;cascavel-pm@pm.org&gt;</font></div></td></tr>
</table>
</ul>
</ul>
</ul>
</ul>
</td><td width="60%">
<table width="100%" border="0" cellspacing="0" cellpadding="0">
<tr valign="top"><td width="1%" valign="middle"><img src="cid:30__=0CBBF881DFCE66E08f9e8a93df@grude.ufmg.br" border="0" height="1" width="58" alt=""><br>
<div align="right"><font size="2">Para</font></div></td><td width="100%"><img src="cid:30__=0CBBF881DFCE66E08f9e8a93df@grude.ufmg.br" border="0" height="1" width="1" alt=""><br>
<font size="2">Cascavel Perl Mongers &lt;cascavel-pm@pm.org&gt;</font></td></tr>

<tr valign="top"><td width="1%" valign="middle"><img src="cid:30__=0CBBF881DFCE66E08f9e8a93df@grude.ufmg.br" border="0" height="1" width="58" alt=""><br>
<div align="right"><font size="2">cc</font></div></td><td width="100%"><img src="cid:30__=0CBBF881DFCE66E08f9e8a93df@grude.ufmg.br" border="0" height="1" width="1" alt=""><br>
</td></tr>

<tr valign="top"><td width="1%" valign="middle"><img src="cid:30__=0CBBF881DFCE66E08f9e8a93df@grude.ufmg.br" border="0" height="1" width="58" alt=""><br>
<div align="right"><font size="2">Assunto</font></div></td><td width="100%"><img src="cid:30__=0CBBF881DFCE66E08f9e8a93df@grude.ufmg.br" border="0" height="1" width="1" alt=""><br>
<font size="2">Re: [Cascavel-pm] Manipulação de arquivo</font></td></tr>
</table>

<table border="0" cellspacing="0" cellpadding="0">
<tr valign="top"><td width="58"><img src="cid:30__=0CBBF881DFCE66E08f9e8a93df@grude.ufmg.br" border="0" height="1" width="1" alt=""></td><td width="336"><img src="cid:30__=0CBBF881DFCE66E08f9e8a93df@grude.ufmg.br" border="0" height="1" width="1" alt=""></td></tr>
</table>
</td></tr>
</table>
<br>
<tt>Diego Mendes Teixeira wrote:<br>
&gt; Partes do enunciado do trabalho:<br>
&gt; Os dois algoritmos devem ser implementados em C/C++ utilizando arranjos,<br>
&gt; com vinculações de armazenamento dinâmico em pilha, para o algoritmo<br>
&gt; força bruta, e em heap, para o BMH. Já a implementação em PERL, somente<br>
&gt; o BMH precisa ser contemplado. Mas, além dessa implementação em PERL,<br>
&gt; deve ser feita uma implementação utilizando apenas expressões regulares.<br>
&gt; Ao final, portanto, devem ser geradas quatro implementações. São elas:<br>
&gt; 1. Força Bruta em C/C++ com arranjo dinâmico em pilha;<br>
&gt; 2. BMH em C/CC++ com arranjo dinâmico em heap;<br>
<br>
 &nbsp;Eu poderia usar algumas idéias dos seus programas em C/C++, se você os<br>
mandasse para mim. Isto ajudaria muito.<br>
<br>
&gt; 3. BMH em PERL com arranjo dinâmico em heap;<br>
&gt; 4. Casamento em PERL com uso de expressões regulares<br>
<br>
 &nbsp;O ítem #4 foi o que eu implementei e te enviei há pouco. Alguém por<br>
favor compile aquilo e avise se tem algum erro? Eu digitei direto no<br>
corpo do email, e não tenho compilador perl integrado na minha<br>
ferramenta de email (que saudades do meu Pine...).<br>
<br>
 &nbsp;Uma pergunta muito importante: o que é BMH? Alguém pode me dizer se<br>
existe um nome correto na ciência da computação para isso?<br>
<br>
 &nbsp;Outra coisa: Diego, me parece que o seu programa de busca inexata em<br>
perl não é muito diferente do seu programa de busca exata. O que é uma<br>
busca exata, na sua visão?<br>
<br>
 &nbsp;Eu espero que o seu professor não se incomode com meu estilo.<br>
 &nbsp;Tenho certeza de que ele vai sacar que você copiou código de um<br>
programador muito experiente se você mandar para ele o meu código.<br>
Professores não são bobos, acredite... ;-)<br>
<br>
 &nbsp;Aguardo informações suas, quando puder.<br>
<br>
-- <br>
Luis Motta Campos<br>
Senior System Engineer at Segula.FR<br>
Hobbyist Cooker and Photograph<br>
_______________________________________________<br>
Cascavel-pm mailing list<br>
Cascavel-pm@pm.org<br>
</tt><tt><a href="http://mail.pm.org/mailman/listinfo/cascavel-pm">http://mail.pm.org/mailman/listinfo/cascavel-pm</a></tt><tt><br>
</tt><br>
</body></html>