Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <cstdlib>
- #include <iostream>
- #include <stdlib.h>
- #include <stdio.h>
- #include <time.h>
- #include <windows.h>
- #include <locale.h>
- #include <iostream>
- #include <conio.h>
- #include <string>
- #include <cstring>
- using namespace std;
- int main()
- {
- setlocale(0, "");
- const int size = 100; //число символов
- int q=0; //начальное состояние
- int index=0; //индекс символа
- int step = 1; //шаг
- char x[size];
- char y[size];
- printf("Введите пример в формате: *1x11=*\n");
- gets(x);
- int length = strlen(x);
- for(int j = length; j < size; j++) {x[j] = '*';}
- int i=0; //* - первый элемент
- while(q!=9)
- {
- int ava = index;
- switch(q)
- {
- case 0:
- {
- if (x[index]=='*') {q=0; x[index]='*'; index++; break;}
- if (x[index]=='1') {q=0; x[index]='1'; index++; break;}
- if (x[index]=='x') {q=1; x[index]='x'; index++; break;}
- }
- break;
- case 1:
- {
- if (x[index]=='1') {q=2; x[index]='a'; index++; break;}
- }
- break;
- case 2:
- {
- if (x[index]=='1') {q=2; x[index]='1'; index--; break;}
- if (x[index]=='x') {q=3; x[index]='x'; index--; break;}
- if (x[index]=='a') {q=2; x[index]='a'; index--; break;}
- if (x[index]=='=') {q=2; x[index]='='; index--; break;}
- }
- break;
- case 3:
- {
- if (x[index]=='*') {q=6; x[index]='*'; index++; break;}
- if (x[index]=='1') {q=4; x[index]='a'; index++; break;}
- if (x[index]=='a') {q=3; x[index]='a'; index--; break;}
- }
- break;
- case 4:
- {
- if (x[index]=='*') {q=5; x[index]='1'; index++; break;}
- if (x[index]=='1') {q=4; x[index]='1'; index++; break;}
- if (x[index]=='x') {q=4; x[index]='x'; index++; break;}
- if (x[index]=='a') {q=4; x[index]='a'; index++; break;}
- if (x[index]=='=') {q=4; x[index]='='; index++; break;}
- }
- break;
- case 5:
- {
- if (x[index]=='*') {q=2; x[index]='*'; index--; break;}
- }
- break;
- case 6:
- {
- if (x[index]=='x') {q=7; x[index]='x'; index++; break;}
- if (x[index]=='a') {q=6; x[index]='1'; index++; break;}
- }
- break;
- case 7:
- {
- if (x[index]=='1') {q=2; x[index]='a'; index++; break;}
- if (x[index]=='a') {q=7; x[index]='a'; index++; break;}
- if (x[index]=='=') {q=8; x[index]='='; index--; break;}
- }
- break;
- case 8:
- {
- if (x[index]=='x') {q=9; x[index]='x'; index--; break;}
- if (x[index]=='a') {q=8; x[index]='1'; index--; break;}
- }
- break;
- default: printf("Произошла ошибка!\n");
- }
- printf("\nШаг %d:\n",step);
- int j=-1;
- do {j++; printf("%c",x[j]);}
- while(!((x[j]=='*') && (x[j+1]=='*')));
- printf("\n");
- int d=-1;
- do
- { d++;
- if (d==ava)
- {
- y[d]='^';
- printf("%c",y[d]);
- }
- else
- {
- y[d]=' ';
- printf("%c",y[d]);
- }
- }
- while(!((x[d]=='*') && (x[d+1]=='*')));
- printf("\n");
- step++;
- }
- printf("\nИтог: ");
- int j=0;
- while((x[j]!='*') || (x[j+1]!='*')) {printf("%c",x[j]); j++;}
- printf("*");
- printf("\n");
- system("pause");
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement