ademosh

Грейбах, заготовка

Oct 29th, 2019
65
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.96 KB | None | 0 0
  1. #include"pch.h"
  2. #include <iostream>
  3. #include <string>
  4. #include <list>
  5. #include <algorithm>
  6. #include <fstream>
  7. using std::string;
  8. using namespace std;
  9. int main()
  10.  
  11. {
  12. char Z[10];
  13. char N[10];
  14. char e = { 'e' };
  15. int qcount = 0;
  16. //Происходит задание грамматики из файла. Размер алфавитов задается фиксированный.
  17. string P[10][10] = { " " };
  18. int inprule[10] = { 0 };
  19. string Pn[10][50] = { " " };
  20. string M[100] = { " " };
  21. int n = 0;
  22. ifstream input("start.txt");
  23. string buf;
  24. getline(input, buf);
  25. for (int i = 0; i < buf.length(); ++i)
  26. {
  27. Z[i] = buf[i];
  28. }
  29. cout << endl << buf << endl;
  30. getline(input, buf);
  31. for (int i = 0; i < buf.length(); ++i)
  32. {
  33. N[i] = buf[i];
  34. n++;
  35. }
  36. cout << endl << n << endl;
  37. cout << endl << buf << endl;
  38. while (!input.eof())
  39. {
  40. getline(input, buf);
  41. cout << buf << endl;
  42. for (int i = 0; i < n; ++i)
  43. {
  44. if (buf[0] == N[i])
  45. {
  46. buf.erase(0, 1);
  47. P[i][inprule[i]] = "";
  48. P[i][inprule[i]] += buf;
  49. inprule[i]++;
  50. break;
  51. }
  52. }
  53. }
  54. cout << endl;
  55. //Выводим заданную грамматику G для удобства наблюдения результатов
  56. cout << "Gram G" << endl;
  57. for (int i = 0; i < n; ++i)
  58. {
  59. cout << N[i] << " ";
  60. for (int j = 0; j < 10; ++j)
  61. {
  62. if (P[i][j] != " ") cout << P[i][j] << " ";
  63. }
  64. cout << endl;
  65. }
  66. cout << "------------------------------" << endl;
  67. for (int i = 0; i < n; ++i)
  68. {
  69. cout << M[i] << "\t";
  70. }
  71. int ukaz = n;
  72. int ukazstart = n;
  73. cout << endl;
  74. for (int i = 0; i < n; ++i)
  75. {
  76.  
  77. }
  78. //Выводим грамматику G' как результат работы программы
  79. cout << "Gramm G'" << endl;
  80. for (int i = 0; i < n; ++i)
  81. {
  82. cout << N[i] << "\t";
  83. for (int j = 0; j < inprule[i]; ++j)
  84. {
  85. if (P[i][j] != " ") cout << P[i][j] << " ";
  86. }
  87. cout << endl;
  88. }
  89. system("pause");
  90. return 0;
  91. }
Add Comment
Please, Sign In to add comment