Loading presentation...

Present Remotely

Send the link below via email or IM

Copy

Present to your audience

Start remote presentation

  • Invited audience members will follow you as you navigate and present
  • People invited to a presentation do not need a Prezi account
  • This link expires 10 minutes after you close the presentation
  • A maximum of 30 users can follow your presentation
  • Learn more about this feature in our knowledge base article

Do you really want to delete this prezi?

Neither you, nor the coeditors you shared it with will be able to recover it again.

DeleteCancel

Wyszukiwanie wzorca w teście

No description
by

Agata Kukulska

on 3 June 2016

Comments (0)

Please log in to add your comment.

Report abuse

Transcript of Wyszukiwanie wzorca w teście

zdvgdh
Agata Kukulska IIa
Wyszukiwanie wzorca w teście
zdvgdh
tekst podstawowy
wzorzec
kjfd
z d v g d h
k j f d
wzorzec
z d v g d h f g m
k j f d
wzorzec
z d v g d h f g m
k j f d
wzorzec
wzorzec
z d v g d h
k j f d
wzorca nie znaleziono
wzorca nie znaleziono
wzorca nie znaleziono
wzorca nie znaleziono
z d v g d h
z d v g d h
z d v g d h
brak tekstu
hkjfdg
h k j f d g
wzorzec
k j f d
h k j f d g
k j f d
wzorzec
tekst podstawowy
hkjfdg
wzorzec znaleziono
h k j f d g
wzorca nie znaleziono
wzorzec
kjfd
k j f d
wzorzec
wzorca nie znaleziono
h k j f d g
k j f d
wzorzec
wzorca nie znaleziono
brak tekstu

int i=0;
for(int k=0; k<N; k++)

pobieranie z tekstu wyrazów
M<N -- trzeba założyć że łańcuch znaków wzorca jest mniejszy od łańcucha tekstu
zmiennna k i liczba znaków tekstów jest równa zero
if(wzorzec[i] == text[++k]);//jeśli wzorzec ma tyle samo znaków co tekst
{
int temp=k; //zmienna pomocnicza
while(wzorzec[++i] == text[++k]); //porównywanie kolejnych znaków czy wszystkie znaki z tekstu są zgodne z wzorcem powtarzaj do końca znaków wzorca
if(i == M) return k - M +1;//jeśli wzorzec jest równy testowi to zwraca wartość zmiennej ile wzorców znaleziono
//łańcuch znaków wzorca o M znakach
else {k = temp; i=0; } //jeśli nie znaleziono wzorca to powtarza dopóki łańcuch znaków wzoprca jest mniejszy od łańcuch znaków tekstu
}
}
return 0;
}
porównywanie znaków tekstu z wzorcem
funkcja ,,szukaj"
int poz;
char text[] = {"Ala ma koleżankę Martę"};
char wzorzec[]={"Marta"};
if(poz = szukaj (wzorzec, sizeof(wzorzec)-1, text, sizeof(text)-1))
cout<<"Zgodność wystąpiła na pozycij"<<poz;
else cout<<"wzorca nie znaleziono";
getch();
return 0;
}

#include <iostream>
#include <conio.h>

using namespace std;

int szukaj (char wzorzec[100], int M, char text [100], int N)
{
int i=0;
for(int k=0; k<N; k++)
{
if(wzorzec[i] == text[++k]);
{
int temp=k;
while(wzorzec[++i] == text[++k]);
if(i == M) return k - M +1;
else {k = temp; i=0; }
}
}
return 0;
}
int main ()
{
int poz;
char text[100] = {"Ala ma koleżankę Martę"};
char wzorzec[100]={"Marta"};
if(poz = szukaj (wzorzec, sizeof(wzorzec)-1, text, sizeof(text)-1))
cout<<"Zgodność wystąpiła na pozycij"<<poz;
else cout<<"wzorca nie znaleziono";
getch();
return 0;
Full transcript