
Solução em Pascal do Problema 6
program StringMatching;
const tamMax=100;
type indices=1..tamMax;
segCarac=array[indices] of Char;
var m, n, i, j, numOcor : Integer;
ocorre : Boolean;
frase, palavra : segCarac;
begin
readLn(m);
for i:=1 to m do read(frase[i]);
readLn;
readLn(n);
for i:=1 to n do read(palavra[i]);
readLn;
numOcor:=0;
for i:=1 to m-n+1 do
begin
if frase[i]=palavra[1]
then begin
j:=2;
ocorre:=true;
while (j<=n) and ocorre do
if palavra[j]=frase[i+j-1]
then j:=j+1
else ocorre:=false;
if ocorre
then numOcor:=numOcor+1
end
end;
writeLn(numOcor)
end.
História
da Computação | Listas de
Exercícios | Problemas Resolvidos | macmulti@ime.usp.br