Вопрос № 122325: Здравствуйте добрые эксперты, помогите решить задачу очень нужно, вот в понедельник сдавать и у меня осталась только одна, которую не могу решить. ( На Microsoft Visual C++)
Дан массив данных об экспортируемом товаре: наименование товара; ст...Вопрос № 122363: Задание
Задано регулярное выражение r. Входной алфавит ∑.
Написать программу, распознающую строки, соответствующие данному регулярному выражению.
Использовать теории регулярных выражений и конечных автоматов (КА):
1. Для заданн...Вопрос № 122421: Здравствуйте.! Помогите ,пожалуйста решить задачу.Вот условие:
После последовательного ввода с клавиатуры сначала произвольной строки,а потом искомой подстроки,выдать на экран количество вхождений этой подстроки в строку,а также номера всех позиц...Вопрос № 122425: Еще один вопрос - в приложении. Заранее благодарен всем!!!...
Вопрос № 122.325
Здравствуйте добрые эксперты, помогите решить задачу очень нужно, вот в понедельник сдавать и у меня осталась только одна, которую не могу решить. ( На Microsoft Visual C++)
Дан массив данных об экспортируемом товаре: наименование товара; страна, импортирующая товар; объём партии в штуках. Распечатать страны, в которые экспортируется товар заданного наименования, и подсчитать общий объём его экспорта.
-==ОЧЕНЬ БУДУ БЛАГОДАРИН ЗА ПОМОШЬ==-
Отправлен: 09.02.2008, 09:26
Вопрос задал: Dem777 (статус: Посетитель)
Всего ответов: 1 Мини-форум вопроса >>> (сообщений: 0)
Отвечает: Попов А.С.
Здравствуйте, Dem777!
Создайте следующий класс (Insert - New Class):
#include <string>
using namespace std;
class Goods
{
protected:
string name; // имя товара
string country; // страна
int count; // объем экспорта
public:
Goods()
{
name="any";
country="any";
count=0;
};
virtual ~Goods();
virtual int getcnt(void){return this->count; };
virtual void setcnt(int t){this->count=t;};
Ответ отправил: Попов А.С. (статус: 8-ой класс)
Ответ отправлен: 09.02.2008, 14:15 Оценка за ответ: 4 Комментарий оценки: Большое спасибо но у меня не хочет работать вылазит очень огромное кол-во ошибок.
Вопрос № 122.363
Задание
Задано регулярное выражение r. Входной алфавит ∑.
Написать программу, распознающую строки, соответствующие данному регулярному выражению.
Использовать теории регулярных выражений и конечных автоматов (КА):
1. Для заданного регулярного выражения построить соответствующий ему КА;
2. Если автомат, полученный в предыдущем пункте, недетерминированный, то преобразовать его в ДКА;
3. Используя ДКА, написать программу-распознаватель.
Строка соответствует регулярному выражению
r = (b|c)*(a|c)*|ccb,
если она равна ccb, либо если она соответствует рег. выражению
r1 = (b|c)*(a|c)*,
то есть является повторением ноль или более раз символов b или c,
и следующим за ним повторением ноль или более раз символов a или c. (Например "cbcbcbbbcacca".)
Ясно, что строка "ccb" тоже соответствует r1, поэтому r и r1 эквивалентны.
Программа-распознаватель приведена в приложении.
Строка передается при вызове в качестве аргумента. Программа печатает эту строку,
если она соответствует r, и ничего не печатает, если не соответствует.
Автомат имеет три состояния, которые обозначены A, B, FALSE.
(FALSE означает, что обнаружено несоответствие). Граф переходов легко нарисовать по программе, он очень простой.
Приложение:
Ответ отправил: Lang21 (статус: 5-ый класс)
Ответ отправлен: 12.02.2008, 22:40 Оценка за ответ: 5 Комментарий оценки: спасибо огромное!!! супер!!!
Вопрос № 122.421
Здравствуйте.! Помогите ,пожалуйста решить задачу.Вот условие:
После последовательного ввода с клавиатуры сначала произвольной строки,а потом искомой подстроки,выдать на экран количество вхождений этой подстроки в строку,а также номера всех позиций этих входжений,если они есть.
Заранее большое спасибо!
Отвечает: X-men
Здравствуйте, Ковалевская Е.А.!
Вот вам программа. Запускайте на MS VC++. Для решения этой задачи я использовал обычные массивы char (можно было также воспользоваться типом данных string).
Приложение:
Ответ отправил: X-men (статус: Студент)
Ответ отправлен: 09.02.2008, 23:49 Оценка за ответ: 5 Комментарий оценки: Спасибо большое!
Вопрос № 122.425
Еще один вопрос - в приложении. Заранее благодарен всем!!!
Приложение:
Отправлен: 09.02.2008, 23:20
Вопрос задал: Allexandr (статус: Посетитель)
Всего ответов: 1 Мини-форум вопроса >>> (сообщений: 0)
Отвечает: Ross
Здравствуйте, Allexandr!
Проще всего (и элегантнее) в данном случае воспользоваться регулярными выражениями. После этого ваша задача уместится буквально в паре строк кода (см. приложение)
Для этого нужно:
1) материал по регулярным выражениям:
http://phpclub.ru/detail/article/regexp_1
http://phpclub.ru/detail/article/regexp_2
2)Библиотека boost для C++: http://www.boost.org
(можно также еще использовать библиотеку pcre: http://www.pcre.org)
Для компиляции и установки библиотеки понадобится этот файлик:
http://downloads.sourceforge.net/boost/boost-jam-3.1.16-1-ntx86.zip?modtime=1196632824&big_mirror=0
Приложение:
--------- Доступно только то, что видимо (c) Б. Керниган
Ответ отправил: Ross (статус: Студент)
Ответ отправлен: 10.02.2008, 04:44 Оценка за ответ: 5