DilyaraL

курсовая3семестр

Dec 21st, 2018
113
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 4.16 KB | None | 0 0
  1. #include <iostream>
  2. #include <fstream>
  3. using namespace std;
  4.  
  5. int f1(int a)
  6. {
  7. if (a == 0)
  8. return 1;
  9. else
  10. if (a == 1)
  11. return 0;
  12. else
  13. if (a == 2)
  14. return 3;
  15. else
  16. if (a == 3)
  17. return 2;
  18. else
  19. if (a == 4)
  20. return 6;
  21. else
  22. if (a == 5)
  23. return 9;
  24. else
  25. if (a == 6)
  26. return 7;
  27. else
  28. if (a == 7)
  29. return 8;
  30. else
  31. if (a == 8)
  32. return 5;
  33. else return 4;
  34. }
  35.  
  36. int f2(int a)
  37. {
  38. if (a == 0)
  39. return 5;
  40. else
  41. if (a == 1)
  42. return 2;
  43. else
  44. if (a == 2)
  45. return 6;
  46. else
  47. if (a == 3)
  48. return 1;
  49. else
  50. if (a == 4)
  51. return 7;
  52. else
  53. if (a == 5)
  54. return 3;
  55. else
  56. if (a == 6)
  57. return 9;
  58. else
  59. if (a == 7)
  60. return 4;
  61. else
  62. if (a == 8)
  63. return 8;
  64. else return 0;
  65. }
  66.  
  67. int f3(int a)
  68. {
  69. if (a == 0)
  70. return 2;
  71. else
  72. if (a == 1)
  73. return 3;
  74. else
  75. if (a == 2)
  76. return 4;
  77. else
  78. if (a == 3)
  79. return 7;
  80. else
  81. if (a == 4)
  82. return 8;
  83. else
  84. if (a == 5)
  85. return 9;
  86. else
  87. if (a == 6)
  88. return 1;
  89. else
  90. if (a == 7)
  91. return 5;
  92. else
  93. if (a == 8)
  94. return 6;
  95. else return 9;
  96. }
  97.  
  98. char p4(int a)
  99. {
  100. if (a == 0)
  101. return 'и';
  102. else
  103. if (a == 1)
  104. return 'л';
  105. else
  106. if (a == 2)
  107. return 'и';
  108. else
  109. if (a == 3)
  110. return 'и';
  111. else
  112. if (a == 4)
  113. return 'л';
  114. else
  115. if (a == 5)
  116. return 'л';
  117. else
  118. if (a == 6)
  119. return 'л';
  120. else
  121. if (a == 7)
  122. return 'и';
  123. else
  124. if (a == 8)
  125. return 'и';
  126. else return 'л';
  127. }
  128.  
  129. char p5(int a)
  130. {
  131. if (a == 0)
  132. return 'л';
  133. else
  134. if (a == 1)
  135. return 'и';
  136. else
  137. if (a == 2)
  138. return 'и';
  139. else
  140. if (a == 3)
  141. return 'л';
  142. else
  143. if (a == 4)
  144. return 'л';
  145. else
  146. if (a == 5)
  147. return 'л';
  148. else
  149. if (a == 6)
  150. return 'л';
  151. else
  152. if (a == 7)
  153. return 'л';
  154. else
  155. if (a == 8)
  156. return 'и';
  157. else return 'и';
  158. }
  159.  
  160. bool read(ifstream &f, int **a, int L)
  161. {
  162. bool t = true;
  163. int k, b;
  164. for (int i = 1; i <= L&&t; i++)
  165. {
  166. f >> b;
  167. if (b == 3)
  168. {
  169. f >> k;// считываем номер команды
  170. if(k>0||k<L)
  171. for (int j = 1; j <= 2; j++)
  172. f >> a[k][j];
  173. else { cout << "Не может быть команды с таким номером" << k << endl; t = false; }
  174. }
  175. else
  176. if(b==4)
  177. {
  178. f >> k;// считываем номер команды
  179. if (k>0 || k<L)
  180. for (int j = 1; j <= 3; j++)
  181. f >> a[k][j];
  182. else { cout << "Не может быть команды с таким номером" << k << endl; t = false; }
  183. }
  184. }
  185. return t;
  186. }
  187.  
  188. int main()
  189. {
  190. ifstream in("Text.txt");
  191. setlocale(LC_ALL, "Russian");
  192. int a, L, b;
  193. //cout << "Введите а " << endl;
  194. in >> a;
  195. if (a < 0 || a>9)
  196. cout << "Неверные входные данные а " << endl;
  197. //cout << "Введите количество команд L " << endl;
  198. in >> L;
  199.  
  200. int** M = new int*[L];
  201. for (int i = 1; i <= L; i++)
  202. M[i] = new int[3];
  203. for (int i = 1; i <= L; i++)
  204. for (int j = 1; j <= 3; j++)
  205. M[i][j] = -1;
  206. if (read(in, M, L))
  207. {
  208. int i = 1;
  209. int k = 0;///для зацикливания
  210. while (i != 0 && 3 * L>k)
  211. {
  212. switch (M[i][1])//номер функции
  213. {
  214. case 1: a = f1(a); i = M[i][2]; break;
  215. case 2: a = f2(a); i = M[i][2]; break;
  216. case 3: a = f3(a); i = M[i][2]; break;
  217. case 4: if (p4(a) == 'и') i = M[i][2];
  218. else i = M[i][3]; break;
  219. case 5: if (p4(a) == 'и') i = M[i][2];
  220. else i = M[i][3]; break;
  221. }
  222. k++;
  223. }
  224. if (3 * L>k)
  225. cout << "Конечный результат " << a << endl;
  226. else cout << "Зациклился" << endl;
  227. }
  228. else cout << "Ошибка входных данных" << endl;
  229.  
  230. system("pause");
  231. return 0;
  232. }
Advertisement
Add Comment
Please, Sign In to add comment