Форум программистов, компьютерный форум CyberForum.ru
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
 
fkty
1 / 1 / 0
Регистрация: 06.01.2013
Сообщений: 265
#1

Построить конечный автомат из вещественных чисел в 16-речной системе счисления - C++

06.12.2013, 12:54. Просмотров 1024. Ответов 16
Метки нет (Все метки)

Здравствуйте,помогите разобраться с алгоритмом.нужно построить конечный автомат из вещественных чисел с целой и/или дробной частью в 16-речной системе счисления.Например возможные числа:A01.BC 0101 .EEE и т.д
А действие:десятичное значение.
я построила диаграмму переходов и таблицу переходов,а как это действие реализовать?(помогите написать таблицу переходов с действиями).
0
Миниатюры
Построить конечный автомат из вещественных чисел в 16-речной системе счисления  
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
06.12.2013, 12:54
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Построить конечный автомат из вещественных чисел в 16-речной системе счисления (C++):

Конечный автомат. Построить транслитератор - C++
Построить транслитеротор: кириллица->латиница, а также конечный автомат, осуществляющий обратную транслитерацию: латиница->кириллица в...

Конечный автомат - C++
Нужно написать программу работы данного автомата.

Конечный автомат - C++
Всем доброго времени суток! Я в программировании кое-что понимаю, но именно что "кое-что". По болезни пропустил недели две, препод по проге...

Конечный автомат - C++
Доброго времени суток! Помогите, пожалуйста, разобрать задачу. Дано условие: C*C(aa)b(a)*(aa|ab) Для этого нужно написать задачу на...

Конечный автомат - C++
Здравствуйте! Возникли проблемы с задачей: дан набор правил q0 -> aq1, q1 -> bq2, q1 -> q2, q1 -> cq2, q2 -> aq3 и др. Нужно написать...

Конечный автомат - C++
Задание типа нахождения кратчайшей последовательности вставок и удалений одного символа превращающий данную цепочку x в такую же данную y,...

16
fkty
1 / 1 / 0
Регистрация: 06.01.2013
Сообщений: 265
07.12.2013, 21:31  [ТС] #2
никто не сможет помочь?
0
fkty
1 / 1 / 0
Регистрация: 06.01.2013
Сообщений: 265
17.12.2013, 17:02  [ТС] #3
вот диаграмма переходов,но не могу доделать таблицу переходов с действиями...проблема с переводом в десятичное значение дробной части
0
Миниатюры
Построить конечный автомат из вещественных чисел в 16-речной системе счисления  
fishec
119 / 119 / 30
Регистрация: 07.09.2013
Сообщений: 338
17.12.2013, 17:18 #4
Для дробной части что-то такое.
C++
1
2
3
4
5
6
7
float poryadok=1.0;
float result=0.0;
Цикл для каждой очередной цифры x дробного числа
{
poryadok/=16.0;
result+=x*poryadok;
}
Например число 0.123(в 16-чной) равно 1/16 + 2/256 + 3/4096
0
fkty
1 / 1 / 0
Регистрация: 06.01.2013
Сообщений: 265
17.12.2013, 17:30  [ТС] #5
fishec, а почему в примере порядок увеличивается?у вас же он всегда 16
0
fishec
119 / 119 / 30
Регистрация: 07.09.2013
Сообщений: 338
17.12.2013, 17:46 #6
fkty, в примере порядок делится на 16 каждый раз.
C++
1
poryadok/=16.0;
Эта запись означает
C++
1
poryadok=poryadok/16.0;
0
fkty
1 / 1 / 0
Регистрация: 06.01.2013
Сообщений: 265
17.12.2013, 18:19  [ТС] #7
а как тогда заполнится моя таблица?

Добавлено через 17 минут
и как еще написать функцию на корректность ввода,с цифрами понятно,а с буквами?
C++
1
2
3
4
int is_digit(char c)
{
  return '0'<=c && c <='9';
}
0
fishec
119 / 119 / 30
Регистрация: 07.09.2013
Сообщений: 338
17.12.2013, 18:22 #8
C++
1
2
3
4
bool is_letter(char c)
{
  return 'A'<=c && c <='F';
}
0
fkty
1 / 1 / 0
Регистрация: 06.01.2013
Сообщений: 265
17.12.2013, 18:23  [ТС] #9
но там же может быть как цифра,так и буква....и как программа поймет,что А это 10,В это 11...
0
fishec
119 / 119 / 30
Регистрация: 07.09.2013
Сообщений: 338
17.12.2013, 18:34 #10
Нужно перевести символ (char C) в число n . Если это цифра, то число равно n=C-'0';
Если это буква, то n=C-'A'+10;
0
fkty
1 / 1 / 0
Регистрация: 06.01.2013
Сообщений: 265
17.12.2013, 18:42  [ТС] #11
так?
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
int is_digit(char c)
{
  return '0'<=c && c <='9';
}
 
int digit (char c)
{ return int (c-'0');
}
 
bool is_letter(char c)
{
  return 'A'<=c && c <='F';
}
 
bool letter (char c)
{
return bool (c-'A'+10);
}
0
fishec
119 / 119 / 30
Регистрация: 07.09.2013
Сообщений: 338
17.12.2013, 18:44 #12
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
bool is_digit(char c)
{
  return '0'<=c && c <='9';
}
 
int digit (char c)
{ return c-'0';
}
 
bool is_letter(char c)
{
  return 'A'<=c && c <='F';
}
 
int letter (char c)
{
return c-'A'+10;
}
0
fkty
1 / 1 / 0
Регистрация: 06.01.2013
Сообщений: 265
17.12.2013, 18:46  [ТС] #13
спасибо,а как все же будет моя таблица выглядеть?
0
fishec
119 / 119 / 30
Регистрация: 07.09.2013
Сообщений: 338
17.12.2013, 18:55 #14
Я сомневаюсь в правильности автомата. Число может начинаться с точки? Вроде .12ABC ?

Добавлено через 1 минуту
Кроме того в состояниях q2 q3 q4 происходит одно и то же
0
fkty
1 / 1 / 0
Регистрация: 06.01.2013
Сообщений: 265
17.12.2013, 18:57  [ТС] #15
да,число может начинаться с точки,оно же вещественное,например .EEE и такие тоже могут быть F.
сама диаграмма правильная
0
17.12.2013, 18:57
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
17.12.2013, 18:57
Привет! Вот еще темы с ответами:

Детерминированный конечный автомат - C++
Всем привет,у меня такая проблема: Написал в билдере код,но не получается запустить в VS 10,никак не могу понять в чем же проблема. И кому...

Вычислить сумму двух длинных бинарных чисел, используя сложение чисел в двоичной системе счисления - C++
Задано положительное и отрицательное число в двоичной системе.Составить программу вычисления суммы этих чисел, используя сложения чисел в...

Конечный автомат для строк - C++
Конечный автомат для строк используя switch. Помогите пожалуйста...

Как организовать на си++ недетерминированый конечный автомат? - C++
Доброго времени суток. Подскажите пожалуйста как организовать на си++ не детерминированый конечный автомат, с теорией знаком, на практике...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
15
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru