Advertisement
Guest User

Untitled

a guest
Jun 1st, 2016
56
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 5.33 KB | None | 0 0
  1. package talab1;
  2.  
  3. import java.util.Random;
  4. import java.util.Scanner;
  5.  
  6. public class TALab1 {
  7.  
  8. public static void main(String[] args) {
  9. Scanner sc = new Scanner(System.in);
  10. Random rnd = new Random();
  11. byte a = 3; //ограничения
  12. byte w = 4;
  13. byte z = 3;
  14. byte[][] arrSost = {{1, 1, 0}, {2, 1, 2}, {2, 2, 0}}; //инициализация и задание массивов состояний
  15. byte[][] arrAnswer = {{2, 0, 0}, {3, 0, 3}, {2, 2, 2}}; //реакций
  16. System.out.println("Введите цепочку входных символов, не превышающих 2");
  17. String inCep = sc.nextLine(); //формирование входной строки
  18. inCep = inCep.trim();
  19. String [] StringIn = inCep.split("");
  20. int StrIn[] = new int[StringIn.length];
  21. for(int i = 0; i<StringIn.length; i++){
  22. System.out.print(StringIn[i]+"\t");
  23. StrIn[i] = Integer.parseInt(StringIn[i].trim());
  24. }
  25. byte[] Reaction = new byte[StrIn.length]; //реакция
  26. byte[] Jump = new byte[StrIn.length]; //переходы
  27. System.out.println("\nМассив состояний"); //отображение массва состояний
  28. for (byte row = 0; row < arrSost.length; row++) {
  29. for (byte col = 0; col < arrSost[row].length; col++) {
  30. System.out.print(arrSost[row][col] + "\t");
  31. }
  32. System.out.println();
  33. }
  34. System.out.println("Массив реакций"); //отображение массива реакций
  35. for (byte row = 0; row < arrAnswer.length; row++) {
  36. for (byte col = 0; col < arrAnswer[row].length; col++) {
  37. System.out.print(arrAnswer[row][col] + "\t");
  38. }
  39. System.out.println();
  40. }
  41. System.out.println("Входная строка"); //отображение входной строки
  42. for (byte row = 0; row < StrIn.length; row++) {
  43. System.out.print(StrIn[row] + "\t");
  44. }
  45. System.out.println("\nПереходы"); //формирование и отображение переходов
  46. Jump[0] = arrSost[StrIn[0]][0]; //так как начальное состояние не входит в массив
  47. System.out.print(Jump[0] + "\t"); //первый символ формируем вне цикла
  48. for (byte row = 1; row < StrIn.length; row++) {
  49. Jump[row] = arrSost[StrIn[row]][Jump[row - 1]];
  50. System.out.print(Jump[row] + "\t");
  51. }
  52. System.out.println("\nРеакция"); //формирование и отображение реакции
  53. Reaction[0] = arrAnswer[StrIn[0]][0];
  54. System.out.print(Reaction[0] + "\t");
  55. for (byte row = 1; row < StrIn.length; row++) {
  56. Reaction[row] = arrAnswer[StrIn[row]][Jump[row - 1]];
  57. System.out.print(Reaction[row] + "\t");
  58. }
  59. System.out.println("\nАвтомат мура");
  60. byte[] arrWMura = {2, 0, 1};
  61. System.out.print("Массив состояний и ответов:\nW:\t"); //формирование и отображение ответов на опред.состояния
  62. for (byte colW = 0; colW < arrSost.length; colW++) {
  63. System.out.print(arrWMura[colW] + "\t");
  64. }
  65. System.out.print("\nδ:\t"); //формирование и отображение δ
  66. byte[] arrSostMura = new byte[arrSost.length];
  67. for (byte colSost = 0; colSost < arrSost.length; colSost++) {
  68. arrSostMura[colSost] = colSost;
  69. System.out.print(arrSostMura[colSost] + "\t");
  70. }
  71. byte[][] masSost = {{2, 2, 2}, {0, 2, 0}, {1, 1, 2}}; //формирование и отображение массива состояний
  72. for (byte colZ = 0; colZ < z; colZ++) {
  73. System.out.print("\nz" + colZ + ":\t");
  74. for (byte otvSost = 0; otvSost < arrSost.length; otvSost++) {
  75. System.out.print(masSost[colZ][otvSost] + "\t");
  76. }
  77. }
  78. System.out.println("\nВходная строка"); //отображение входной строки
  79. for (byte row = 0; row < StrIn.length; row++) {
  80. System.out.print(StrIn[row] + "\t");
  81. }
  82. System.out.println("\nПереходы"); //формирование и отображение переходов
  83. Jump[0] = (byte) masSost[StrIn[0]][0];
  84. System.out.print(Jump[0] + "\t");
  85. for (byte row = 1; row < StrIn.length; row++) {
  86. Jump[row] = masSost[StrIn[row]][Jump[row - 1]];
  87. System.out.print(Jump[row] + "\t");
  88. }
  89. System.out.println("\nРеакция:"); //формирование и отображение реакции
  90. Reaction[0] = arrWMura[0];
  91. System.out.print(Reaction[0] + "\t");
  92. for (byte row = 1; row < StrIn.length; row++) {
  93. Reaction[row] = arrWMura[Jump[row - 1]];
  94. System.out.print(Reaction[row] + "\t");
  95. }
  96. }
  97. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement