Advertisement
Guest User

Untitled

a guest
Mar 20th, 2019
71
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.80 KB | None | 0 0
  1. #include <iostream>
  2. #include <fstream>
  3. #include <string.h>
  4.  
  5. using namespace std;
  6.  
  7. #define max 100002
  8.  
  9. int poz(char ch, char sir[max]){
  10.  
  11. int i;
  12. for(i=0; i<strlen(sir); i++)
  13. if(sir[i] == ch) return i;
  14. return -1;
  15. }
  16.  
  17. int finala(int nrFin, int index, int v[max]){
  18. int i;
  19. for(i=0; i<nrFin; i++)
  20. if(v[i] == index) return 1;
  21. return 0;
  22. }
  23.  
  24. int AFD( char cuv[max], char alphab[max], int init, int nrFin, int *v, int **mat ){
  25. int i, index;
  26. char lit;
  27.  
  28. index = init;
  29. for(i=0; i<strlen(cuv); i++){
  30. lit = cuv[i];
  31. if(strchr(cuv, lit) == 0) return 0;
  32. if(mat[index][poz(lit, alphab)] != -1){
  33. index = mat[index][poz(lit, alphab)];
  34. if(finala(nrFin, index, v) == 1 && cuv[i+1] == '\0') return 1;
  35. }
  36. else return 0;
  37. }
  38.  
  39. return 0;
  40. }
  41.  
  42. int main() {
  43.  
  44. int nrStari, init, nrFin, nrTranz, nrCuv, nrCol;
  45. char alphab[max];
  46.  
  47. ofstream g("cuvinte.txt");
  48. ifstream f("fisier.txt");
  49. f>>nrStari>>init>>nrFin;
  50.  
  51. // cout<<nrStari<<init<<nrFin;
  52.  
  53. int v[nrFin], i, j;
  54. for(i=0; i<nrFin; i++) f>>v[i];
  55.  
  56. f>>alphab;
  57. // cout<<alphab;
  58. f>>nrTranz;
  59.  
  60. nrCol = strlen(alphab);
  61. // cout<<nrCol;
  62.  
  63. int mat[nrStari][nrCol];
  64.  
  65. for(i=0; i<nrStari; i++)
  66. for(j=0; j<nrCol; j++)
  67. mat[i][j] = -1;
  68.  
  69.  
  70. for(i=0; i<nrTranz; i++){
  71. int x, y;
  72. char c;
  73. f>>x>>c>>y;
  74. mat[x][poz(c, alphab)] = y;
  75. }
  76.  
  77. f>>nrCuv;
  78.  
  79. for(i=0; i<nrCuv; i++){
  80. char cuv[max];
  81. f>>cuv;
  82. //lit = cuv[0];
  83. if( AFD(cuv, alphab, init, nrFin, v, mat) == 1) g<<"Cuvantul "<<cuv<<" este acceptat!\n";
  84. else g<<"Cuvantul "<<cuv<<" nu este acceptat!\n";
  85. }
  86.  
  87. return 0;
  88.  
  89. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement