Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package talab1;
- import java.util.Random;
- import java.util.Scanner;
- public class TALab1 {
- public static void main(String[] args) {
- Scanner sc = new Scanner(System.in);
- Random rnd = new Random();
- byte a = 3; //ограничения
- byte w = 4;
- byte z = 3;
- byte[][] arrSost = {{1, 1, 0}, {2, 1, 2}, {2, 2, 0}}; //инициализация и задание массивов состояний
- byte[][] arrAnswer = {{2, 0, 0}, {3, 0, 3}, {2, 2, 2}}; //реакций
- System.out.println("Введите цепочку входных символов, не превышающих 2");
- String inCep = sc.nextLine(); //формирование входной строки
- inCep = inCep.trim();
- String [] StringIn = inCep.split("");
- int StrIn[] = new int[StringIn.length];
- for(int i = 0; i<StringIn.length; i++){
- System.out.print(StringIn[i]+"\t");
- StrIn[i] = Integer.parseInt(StringIn[i].trim());
- }
- byte[] Reaction = new byte[StrIn.length]; //реакция
- byte[] Jump = new byte[StrIn.length]; //переходы
- System.out.println("\nМассив состояний"); //отображение массва состояний
- for (byte row = 0; row < arrSost.length; row++) {
- for (byte col = 0; col < arrSost[row].length; col++) {
- System.out.print(arrSost[row][col] + "\t");
- }
- System.out.println();
- }
- System.out.println("Массив реакций"); //отображение массива реакций
- for (byte row = 0; row < arrAnswer.length; row++) {
- for (byte col = 0; col < arrAnswer[row].length; col++) {
- System.out.print(arrAnswer[row][col] + "\t");
- }
- System.out.println();
- }
- System.out.println("Входная строка"); //отображение входной строки
- for (byte row = 0; row < StrIn.length; row++) {
- System.out.print(StrIn[row] + "\t");
- }
- System.out.println("\nПереходы"); //формирование и отображение переходов
- Jump[0] = arrSost[StrIn[0]][0]; //так как начальное состояние не входит в массив
- System.out.print(Jump[0] + "\t"); //первый символ формируем вне цикла
- for (byte row = 1; row < StrIn.length; row++) {
- Jump[row] = arrSost[StrIn[row]][Jump[row - 1]];
- System.out.print(Jump[row] + "\t");
- }
- System.out.println("\nРеакция"); //формирование и отображение реакции
- Reaction[0] = arrAnswer[StrIn[0]][0];
- System.out.print(Reaction[0] + "\t");
- for (byte row = 1; row < StrIn.length; row++) {
- Reaction[row] = arrAnswer[StrIn[row]][Jump[row - 1]];
- System.out.print(Reaction[row] + "\t");
- }
- System.out.println("\nАвтомат мура");
- byte[] arrWMura = {2, 0, 1};
- System.out.print("Массив состояний и ответов:\nW:\t"); //формирование и отображение ответов на опред.состояния
- for (byte colW = 0; colW < arrSost.length; colW++) {
- System.out.print(arrWMura[colW] + "\t");
- }
- System.out.print("\nδ:\t"); //формирование и отображение δ
- byte[] arrSostMura = new byte[arrSost.length];
- for (byte colSost = 0; colSost < arrSost.length; colSost++) {
- arrSostMura[colSost] = colSost;
- System.out.print(arrSostMura[colSost] + "\t");
- }
- byte[][] masSost = {{2, 2, 2}, {0, 2, 0}, {1, 1, 2}}; //формирование и отображение массива состояний
- for (byte colZ = 0; colZ < z; colZ++) {
- System.out.print("\nz" + colZ + ":\t");
- for (byte otvSost = 0; otvSost < arrSost.length; otvSost++) {
- System.out.print(masSost[colZ][otvSost] + "\t");
- }
- }
- System.out.println("\nВходная строка"); //отображение входной строки
- for (byte row = 0; row < StrIn.length; row++) {
- System.out.print(StrIn[row] + "\t");
- }
- System.out.println("\nПереходы"); //формирование и отображение переходов
- Jump[0] = (byte) masSost[StrIn[0]][0];
- System.out.print(Jump[0] + "\t");
- for (byte row = 1; row < StrIn.length; row++) {
- Jump[row] = masSost[StrIn[row]][Jump[row - 1]];
- System.out.print(Jump[row] + "\t");
- }
- System.out.println("\nРеакция:"); //формирование и отображение реакции
- Reaction[0] = arrWMura[0];
- System.out.print(Reaction[0] + "\t");
- for (byte row = 1; row < StrIn.length; row++) {
- Reaction[row] = arrWMura[Jump[row - 1]];
- System.out.print(Reaction[row] + "\t");
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement