Новичок
Профиль
Группа: Участник
Сообщений: 10
Регистрация: 20.10.2010
Репутация: нет Всего: нет
|
Задание : Написать КА для определения типа числа Дробное и с точкой целое число число с Е Шестнадцатиричное (в форме записи 0x...) Восьмеричное В общем набросал что-то наподобие шаблона, но довести до конца не получается при вводе чиса ругается на type, как не возился, ничего не получается я понимаю, код выглядит немного неуклюже, но мне интересна лишь часть , чтобы ввести число и обработать его заранее спасибо | Код | #include <stdio.h> #include <stdlib.h> #include <iostream> #include <conio.h> #include <locale.h>
using namespace std; int charType (char ch) { if (ch>='0' && ch<='9') return 0; if (ch=='-') return 1; if (ch=='.' || ch==',') return 2; if (ch=='e' || ch=='E') return 3; if (ch=='0') return 4; if (ch=='x') return 5; if (ch=='+') return 6; if (ch>'0') return 7; if (ch=='a' || ch=='b' || ch=='c' || ch=='d' || ch=='e' || ch=='f' || ch=='A' || ch=='B' || ch=='C' || ch=='D' || ch=='E' || ch=='F') return 8; if (ch<'8') return 9; if (ch==0 && ch=='\n') return 10; };
int main()
{ setlocale (LC_ALL, "");
int a[21][11] = { {15, 14, 5, 20, 8, 20, 20, 15, 20, 20, 20}, {1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1}, {3, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20}, {3, 20, 20, 20, 20, 20, 20, 20, 20, 20, 4}, {4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4}, {6, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20}, {6, 20, 20, 20, 20, 20, 20, 20, 20, 20, 7}, {7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7}, {20, 20, 5, 20, 20, 11, 20, 20, 20, 9, 20}, {20, 20, 20, 20, 20, 20, 20, 20, 20, 9, 10}, {10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10}, {12, 20, 20, 20, 20, 20, 20, 20, 12, 20, 20}, {12, 20, 20, 20, 20, 20, 20, 20, 20, 20, 13}, {13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13}, {20, 20, 5, 20, 20, 20, 20, 20, 20, 20, 20}, {15, 20, 17, 20, 20, 20, 20, 20, 20, 20, 20}, {16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16}, {19, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20}, {3, 2, 20, 20, 20, 20, 2, 20, 20, 20, 20}, {19, 20, 20, 18, 20, 20, 20, 20, 20, 20, 20}, {20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20}}; char ch; int state = 0; int type; while (1) { char ch ; cin >> ch; type=charType(ch); state=a[state][type]; switch (state) { case 0 : break; case 1 : cout << "Дробное\n"; return 0; case 2 : break; case 3 : break; case 4 : cout << "Число с Е\n"; return 0; case 5 : break; case 6 : break; case 7 : cout << "Дробное\n;"; return 0; case 8 : break; case 9 : break; case 10 : cout << "восьмеричное\n"; return 0; case 11 : break; case 12 : break; case 13 : cout << "шестнадцатиричное\n"; return 0; case 14 : break; case 15 : break; case 16 : cout << "Целое число\n"; return 0; case 17 : break; case 18 : break; case 19 : break; case 20 : cout << "FAAAAIL"; return 0; } } system ("payse"); }
|
|