Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- using System;
- using System.Collections.Generic;
- using System.Linq;
- using System.Text;
- using System.Threading.Tasks;
- namespace theoryOfAutomata {
- class Conditions {
- public int f2, f3, y1, y2, y3, y4, y5, y6;
- private int check = 0;
- public Conditions(int f2, int f3, int y1, int y2, int y3, int y4, int y5, int y6) {
- this.f2 = f2;
- this.f3 = f3;
- this.y1 = y1;
- this.y2 = y2;
- this.y3 = y3;
- this.y4 = y4;
- this.y5 = y5;
- this.y6 = y6;
- }
- public void FirstCondition(int f2, int f3, int y1, int y2, int y3, int y4, int y5, int y6) {
- if (check > 7) {
- Console.WriteLine("Обнаружен цикл");
- Console.ReadKey();
- } else check++;
- y1 = 0; y2 = 0; y3 = 0; y4 = 0; y5 = 0; y6 = 0;
- if(f3 == 1) {
- SecondCondition(f2, f3, y1, y2, y3, y4, y5, y6);
- } else {
- Console.WriteLine($"Мы находимся в состояние S0: {y1}{y2}{y3}{y4}{y5}{y6}");
- //
- Console.WriteLine("Обнаружен цикл");
- Console.ReadKey();
- //
- }
- }
- public void SecondCondition(int f2, int f3, int y1, int y2, int y3, int y4, int y5, int y6) {
- if (check > 7) {
- Console.WriteLine("Обнаружен цикл");
- Console.ReadKey();
- } else check++;
- y1 = 0; y2 = 0; y3 = 0; y4 = 0; y5 = 0; y6 = 0;
- if (f2 == 1) {
- y1 = 1; y2 = 1; y4 = 1;
- Console.WriteLine($"Мы находимся в состоянии S1: {y1}{y2}{y3}{y4}{y5}{y6}");
- ThirdCondition(f2, f3, y1, y2, y3, y4, y5, y6);
- } else {
- y2 = 1; y5 = 1;
- Console.WriteLine($"Мы находимся в состоянии S5: {y1}{y2}{y3}{y4}{y5}{y6}");
- y1 = 0; y2 = 0; y3 = 0; y4 = 0; y5 = 0; y6 = 0;
- y2 = 1; y5 = 1;
- Console.WriteLine($"Мы находимся в состоянии S4: {y1}{y2}{y3}{y4}{y5}{y6}");
- FourthCondition(f2, f3, y1, y2, y3, y4, y5, y6);
- }
- }
- public void ThirdCondition(int f2, int f3, int y1, int y2, int y3, int y4, int y5, int y6) {
- if (check > 7) {
- Console.WriteLine("Обнаружен цикл");
- Console.ReadKey();
- } else check++;
- y1 = 0; y2 = 0; y3 = 0; y4 = 0; y5 = 0; y6 = 0;
- if (f3 == 1) {
- y2 = 1; y4 = 1;
- Console.WriteLine($"Мы находимся в состоянии S4: {y1}{y2}{y3}{y4}{y5}{y6}");
- FourthCondition(f2, f3, y1, y2, y3, y4, y5, y6);
- } else {
- y1 = 1; y3 = 1;
- Console.WriteLine($"Мы находимся в состоянии S2: {y1}{y2}{y3}{y4}{y5}{y6}");
- y1 = 0; y2 = 0; y3 = 0; y4 = 0; y5 = 0; y6 = 0;
- y5 = 1; y5 = 6;
- Console.WriteLine($"Мы находимся в состоянии S3: {y1}{y2}{y3}{y4}{y5}{y6}");
- }
- }
- public void FourthCondition(int f2, int f3, int y1, int y2, int y3, int y4, int y5, int y6) {
- if (check > 7) {
- Console.WriteLine("Обнаружен цикл");
- Console.ReadKey();
- } else check++;
- y1 = 0; y2 = 0; y3 = 0; y4 = 0; y5 = 0; y6 = 0;
- if (f2 == 1) {
- y2 = 1; y5 = 1;
- Console.WriteLine($"Мы находимся в состоянии S5: {y1}{y2}{y3}{y4}{y5}{y6}");
- y1 = 0; y2 = 0; y3 = 0; y4 = 0; y5 = 0; y6 = 0;
- y2 = 1; y4 = 1;
- Console.WriteLine($"Мы находимся в состоянии S3: {y1}{y2}{y3}{y4}{y5}{y6}");
- FourthCondition(f2, f3, y1, y2, y3, y4, y5, y6);
- } else {
- y5 = 1; y6 = 1;
- Console.WriteLine($"Мы находимся в состоянии S3: {y1}{y2}{y3}{y4}{y5}{y6}");
- }
- }
- }
- class Program {
- static void Main(string[] args) {
- int getData, y1 = 0, y2 = 0, y3 = 0, y4 = 0, y5 = 0, y6 = 0, f22 = 0, f33 = 0;
- bool[] xS = new bool[4];
- Console.Write("Введите входные сигналы: ");
- getData = Convert.ToInt32(Console.ReadLine());
- for (int i = 3; i >= 0; i--) {
- if(getData % 10 == 0)
- xS[i] = true;
- else xS[i] = false;
- getData /= 10;
- }
- bool f2 = (xS[0] && xS[1] && !xS[2] && !xS[3]) || (xS[1] && xS[2] && xS[3]) || (xS[0] && xS[1] && xS[2]);
- bool f3 = (xS[0] ^ xS[2]) || (xS[1] && xS[3]) || (xS[0] && xS[3]);
- if (f2)
- f22 = 1;
- else f22 = 0;
- if (f3)
- f33 = 1;
- else f33 = 0;
- //cout << "\nf2: " << f2 << "\nf3: " << f3;
- Console.WriteLine($"f2 = {f22}; f3 = {f33}");
- y1 = 0; y2 = 0; y3 = 0; y4 = 0; y5 = 0; y6 = 0;
- Conditions cnds = new Conditions(f22, f33, y1, y2, y3, y4, y5, y6);
- cnds.FirstCondition(f22, f33, y1, y2, y3, y4, y5, y6);
- Console.WriteLine($"Мы находимся в состоянии S0: {y1}{y2}{y3}{y4}{y5}{y6}");
- y1 = 0; y2 = 0; y3 = 0; y4 = 0; y5 = 0; y6 = 0;
- Console.WriteLine($"Мы находимся в состоянии S0: {y1}{y2}{y3}{y4}{y5}{y6}");
- Console.WriteLine("Конец)");
- Console.ReadKey();
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement