Advertisement
Guest User

Untitled

a guest
Mar 21st, 2019
60
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.07 KB | None | 0 0
  1. #include<iostream>
  2. using namespace std;
  3.  
  4. bool match(int * A, int elementistrato, int * b, int nb){
  5. int k=0;
  6. bool match=false;
  7. for (int i=0; i<elementistrato && !match; i++){
  8. if (A[i] == b[k]){
  9. k++;
  10. if(k==nb)
  11. match = true;
  12. }
  13. else
  14. k=0;
  15. }
  16. return match;
  17. }
  18.  
  19. main()
  20. {
  21. int X[400], n_ele, nP, P[20];
  22. cin>> n_ele;
  23. for(int i=0; i<n_ele; i++) //R1: (0<=i<=n) && (se viene trovato un match tra A[0 ... 1] e b[0 ... k] la variabile match viene cambiata in true se non viene trovato un match si imposta k = 0)
  24. cin >> X[i];
  25. int lim1,lim2,lim3;
  26. cin>> lim1>>lim2>>lim3;
  27. cin >> nP;
  28. for(int i=0; i<nP; i++)
  29. cin>>P[i];
  30. cout<<"start"<<endl;
  31. // da fare
  32. int elementistrato = lim2*lim3;
  33. int stratip = n_ele/(elementistrato);
  34. int n_eleultimostrato = n_ele%(elementistrato);
  35. bool esisteMatch = false;
  36. int i;
  37. if (stratip<=lim1) {
  38. stratip = lim1;
  39. for (i=0; i<stratip && !esisteMatch; i++){ //R2: (0<=i<=stratip) && (viene invocata la funzione match cerca se ci sono pattern che creano un match tra gli array X[] e P[])
  40. esisteMatch = match(X+i*(elementistrato),elementistrato,P,nP);
  41. }
  42. if (esisteMatch)
  43. cout << "Lo strato "<<i-1<<" di T contiene un match" << endl;
  44.  
  45. else
  46. cout << "Nessun match trovato" << endl;;
  47. }
  48. else
  49. cout <<"Nessun match trovato" << endl;
  50. cout<<"end"<<endl;
  51. }
  52. /*
  53. Prova di correttezza di R2:
  54.  
  55. Condizione di entrata: se i = 0 allora 0<=i<=stratip viene poi invocata la funzione match che ritorna un booleano true o false a seconda se trova un match o meno
  56. Condizione di permanenza: fino a che i è maggiore di 0 e minore di stratip il ciclo continuerà a richiamare la funzione match per la ricerca del match
  57. Condizione di uscita: i=stratip è la condizione per uscire dal ciclo e la funzione match non verrà più richiamata
  58. */
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement