Advertisement
Guest User

Untitled

a guest
May 27th, 2015
278
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 3.82 KB | None | 0 0
  1. #include <cstdlib>
  2. #include <iostream>
  3. #include <stdlib.h>
  4. #include <stdio.h>
  5. #include <time.h>
  6. #include <windows.h>
  7. #include <locale.h>
  8. #include <iostream>
  9. #include <conio.h>
  10. #include <string>
  11. #include <cstring>
  12.  
  13. using namespace std;
  14.  
  15. int main()
  16. {
  17.     setlocale(0, "");
  18.    
  19.     const int size = 100; //число символов
  20.     int q=0; //начальное состояние
  21.     int index=0; //индекс символа
  22.     int step = 1; //шаг
  23.    
  24.     char x[size];
  25.     char y[size];
  26.     printf("Введите пример в формате: *1x11=*\n");
  27.     gets(x);   
  28.     int length = strlen(x);
  29.    
  30.     for(int j = length; j < size; j++) {x[j] = '*';}
  31.    
  32.     int i=0; //* - первый элемент
  33.     while(q!=9)
  34.     {
  35.         int ava = index;
  36.         switch(q)
  37.         {
  38.             case 0:
  39.                 {
  40.                     if (x[index]=='*') {q=0; x[index]='*'; index++; break;}
  41.                     if (x[index]=='1') {q=0; x[index]='1'; index++; break;}
  42.                     if (x[index]=='x') {q=1; x[index]='x'; index++; break;}
  43.                 }
  44.                 break;
  45.             case 1:
  46.                 {
  47.                     if (x[index]=='1') {q=2; x[index]='a'; index++; break;}
  48.                 }
  49.                 break;
  50.             case 2:
  51.                 {
  52.                     if (x[index]=='1') {q=2; x[index]='1'; index--; break;}
  53.                     if (x[index]=='x') {q=3; x[index]='x'; index--; break;}
  54.                     if (x[index]=='a') {q=2; x[index]='a'; index--; break;}
  55.                     if (x[index]=='=') {q=2; x[index]='='; index--; break;}
  56.                 }
  57.                 break;
  58.             case 3:
  59.                 {
  60.                     if (x[index]=='*') {q=6; x[index]='*'; index++; break;}
  61.                     if (x[index]=='1') {q=4; x[index]='a'; index++; break;}
  62.                     if (x[index]=='a') {q=3; x[index]='a'; index--; break;}
  63.                 }
  64.                 break;
  65.             case 4:
  66.                 {
  67.                     if (x[index]=='*') {q=5; x[index]='1'; index++; break;}
  68.                     if (x[index]=='1') {q=4; x[index]='1'; index++; break;}
  69.                     if (x[index]=='x') {q=4; x[index]='x'; index++; break;}
  70.                     if (x[index]=='a') {q=4; x[index]='a'; index++; break;}
  71.                     if (x[index]=='=') {q=4; x[index]='='; index++; break;}
  72.                 }
  73.                 break;
  74.             case 5:
  75.                 {
  76.                     if (x[index]=='*') {q=2; x[index]='*'; index--; break;}
  77.                 }
  78.                 break;
  79.             case 6:
  80.                 {
  81.                     if (x[index]=='x') {q=7; x[index]='x'; index++; break;}
  82.                     if (x[index]=='a') {q=6; x[index]='1'; index++; break;}
  83.                 }
  84.                 break;
  85.             case 7:
  86.                 {
  87.                     if (x[index]=='1') {q=2; x[index]='a'; index++; break;}
  88.                     if (x[index]=='a') {q=7; x[index]='a'; index++; break;}
  89.                     if (x[index]=='=') {q=8; x[index]='='; index--; break;}
  90.                 }
  91.                 break;
  92.             case 8:
  93.                 {
  94.                     if (x[index]=='x') {q=9; x[index]='x'; index--; break;}
  95.                     if (x[index]=='a') {q=8; x[index]='1'; index--; break;}
  96.                 }
  97.                 break;
  98.             default: printf("Произошла ошибка!\n");
  99.         }
  100.        
  101.         printf("\nШаг %d:\n",step);
  102.         int j=-1;
  103.         do {j++; printf("%c",x[j]);}
  104.         while(!((x[j]=='*') && (x[j+1]=='*')));
  105.         printf("\n");
  106.        
  107.         int d=-1;
  108.         do
  109.         {    d++;
  110.              if (d==ava)
  111.              {
  112.                 y[d]='^';
  113.                 printf("%c",y[d]);
  114.              }
  115.              else
  116.              {
  117.                 y[d]=' ';
  118.                 printf("%c",y[d]);
  119.              }
  120.          }
  121.         while(!((x[d]=='*') && (x[d+1]=='*')));
  122.  
  123.         printf("\n");
  124.         step++;
  125.      }
  126.    
  127.    
  128.     printf("\nИтог: ");
  129.     int j=0;
  130.     while((x[j]!='*') || (x[j+1]!='*')) {printf("%c",x[j]); j++;}
  131.     printf("*");
  132.  
  133.     printf("\n");
  134.     system("pause");
  135.     return 0;
  136. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement