Witamy na forum PC Format Zapraszamy do REJESTRACJI


Użytkownicy przeglądający ten wątek: 1 gości

Szukanie wzorca dwuwymiarowego

#1
Szukanie wzorca dwuwymiarowego
Siema,
potrzebuję pomocy z wyszukaniem wzorca dwuwymiarowego za pomocą metody naiwnej.

Program wczytuje z plików tekstowych tekst i wzorzec do tablic dwuwymiarowych.
Wczytanie działa poprawnie ale metoda naiwna źle.

Oto kod:
Kod:
#include <vector>    
#include <fstream>  
#include <iostream>
#include<cstring>
#include<cstdio>  

using namespace std;


int main()

{
int i,j;
int x,y;
int a=0,b=0,c=0,d=0,g=0;


    fstream tekst("tekst.txt");
    
if( tekst.good() == true )      
{  
    vector <vector<char> > tablica;      

    string linijka;                  
        
    while(!tekst.eof())                  
    {
        getline(tekst,linijka);        

        vector<char> tymczasowy_vector;
        
        for (int i = 0 ; i<linijka.length() ; ++i)    
            {
                tymczasowy_vector.push_back(linijka[i]);  
            }    
            
        tablica.push_back(tymczasowy_vector);        
    }
  
    tekst.close();      
                        
       for (i = 0 ; i<tablica.size(); ++i)
              
    { a=tablica.size();// liczba wierszy
  
        for ( j = 0 ; j<tablica[i].size(); ++j)  
        {
        b=tablica[i].size();
        
            cout << tablica[i][j];
          
        }
        cout <<endl;
      
    }               cout<<endl<<endl;
        
//----------------------------------------------------------------------------
     fstream tekst2("wzorzec.txt");
    
if( tekst2.good() == true )      
{  
    vector <vector<char> > tablica2;    

    string linijka;                    
        
    while(!tekst2.eof())                
    {
        getline(tekst2,linijka);          

        vector<char> tymczasowy_vector;  
        
            for (int x = 0 ; x<linijka.length() ; ++x)    
            {
                tymczasowy_vector.push_back(linijka[x]);  
            }    
            
        tablica2.push_back(tymczasowy_vector);          
    }
  
    tekst2.close();      

    for ( x = 0 ; x<tablica2.size(); ++x)
              
    {
    c=0;
    c=tablica2.size();
        for ( y = 0 ; y<tablica2[x].size(); ++y)  
        {
        d=tablica2[x].size();
            
            cout << tablica2[x][y];
      
        
        
        }
        cout << "\n";
        
        
    }  
    cout<<endl;

//-------------------------------------------------------------------------------
    
         //cout<<a<<endl; // liczba wierszy tekstu
         //cout<<b<<endl; // liczba kolumn tekstu
         //cout<<c<<endl; //liczba wierszy wzorca
         //cout<<d<<endl; // liczba kolumn wzorca
        
        
        /////////METODA NAIWNA///////////
  
  for ( i = 0 ; i <( a - c ); i ++)
{
   for ( j = 0 ; j <( b- d ); j ++)
   {
      
      for ( x = 0 ; x < c ; x ++)
      {
         for ( y = 0 ; y < d; y ++)
        
         {  
        
        
            if ( tablica [ i + x ][ j + y ]  != tablica2 [ x ][ y ])
            {
               g = 1 ;
               break ;  
            }
         }
         if ( g == 0 )
         {
            cout << "znaleziono: " << ( i + 1 )  << "x" << ( j + 1 );
            break;
         }
      }
  
   }
}  
    
    
    
    
      
cout<<endl;
}
else
{
    cout << "Brak dostepu do wzorca\n\n";
}
}else  
{
    cout << "Brak dostepu do pliku z tekstem\n\n";
}  

cout<<endl;
    
    system("PAUSE");
    return 0;
}
 System operacyjny: windows_seven Przeglądarka: chrome
Programy: Polecane / Nowe / Inne




Podobne wątki (Szukanie wzorca dwuwymiarowego)
Wątek: Autor Odpowiedzi: Wyświetleń: Ostatni post
  [C++] Zwracanie dwóch wartości z funkcji (szukanie w. maksymalnej - tablica) Chudy2000 3 11511 16.06.2016, 08:10
Ostatni post: Szachista
  Szukanie i usuwanie osoby mającej 3 samogłoski w nazwisku i rok.ur parzysty. Dreamer1x6xX 13 2930 24.01.2015, 11:21
Ostatni post: Dreamer1x6xX
  Szukanie elementu podobnego tablica. Dreamer1x6xX 1 4546 20.11.2014, 20:00
Ostatni post: Szachista

Skocz do: