Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

16_II / проверка входного текста

.cpp
Скачиваний:
19
Добавлен:
10.02.2015
Размер:
1.2 Кб
Скачать
#include <iostream.h>
#include <fstream.h>
void main ()
{
	ifstream f("push.txt");
	bool r;
	char x;
	int q=-2;
	r=true;
	while (!f.eof()&&r&&(q!=10))
	{
		f>>x;
		switch (q)
		{
		case -2: if (x=='?') q=-1; else r=false; break;
		case -1: if (x=='e') q=0; else r=false; break;
		case 0: if (x=='(') q=1; else r=false; break;
		case 1: if (x=='c') q=2; else r=false; break;
		case 2: 
			switch (x)
			{
			case ':':  q=6; break;
			case '.':  q=3; break;
			case ',':  q=1; break;
			default: r=false; break; 
			}
			break;
		case 3: if (x=='.') q=4; else r=false; break;
		case 4: if (x=='c') q=5; else r=false; break;
		case 5: 
			switch (x) {
			case ':':  q=6; break;
			case '.':  q=1; break;
			default: r=false; break;
			}
			break;
		case 6: if (x=='s') q=7; else r=false; break;
		case 7: 
			switch (x)
			{
			case ')':  q=10; break;
			case ';':  q=1; break;
			case '/':  q=8; break;
			default: r=false; break; 
			} 
			break;
		case 8:if (x=='s') q=9; else r=false; break;
		case 9:if (x==')') q=10; else r=false; break;
		default: r=false;  break;}}
	if (q==10) cout<<"text pravilnii"<<endl;
	else cout<<"text error"<<endl;}