Страница 1 из 1

Помогите!!Работа со строками...(Borland C++ DOS)

Добавлено: 09 апр 2008, 22:12
Phonix
Нужно написать программу для работы с множествами..Пользователе должен определять количество множеств от 2 до 5, и количество символов в каждом множестве. Эту часть программы я написал. Застрял на инициализаторе строки. Например пользователь вводит: (А+В)*С или A\B+C*D или (A+B)*D+C, варианты могут быть разные... Я не знаю как сделать чтобы программа инициализировала строку, и после чего выполнила необходимые операции над массивами.

Re: Помогите!!Работа со строками...(Borland C++ DOS)

Добавлено: 10 апр 2008, 11:14
Хыиуду
Простите, телепаты в отпуске, а ваше задание относится к разделу "Сходи туда - незнамо куда, принеси то - незнамо что". Как именно программа должна инициализировать строку? Пустым значением или чем-то конкретным? Какое отношение к этой строке имеет то, что ввел пользователь? Какие необходимые операции над массивами надо выполнить?

Re: Помогите!!Работа со строками...(Borland C++ DOS)

Добавлено: 10 апр 2008, 20:44
Phonix
Извените за некоректно заданый вопрос!На форуме пишу первый раз....

Операции над массивами: объединение(аналогия "+", к массиву А добавляются элементы массива В), пересечение(тоисть общие элементы из двух массивов записуются в третий), деление(тоисть А без В, из массива А удаляются общие элементы с В)

По поводу инициализации. Пользователь вводит формулу как я писал выше, а програма должна выполнить опереции над массивами.
Если пользователь вводит (A+B)*C, то програма должна массив А объединить с В и пересечь это все с С.

Re: Помогите!!Работа со строками...(Borland C++ DOS)

Добавлено: 10 апр 2008, 21:48
drummer
Смотри алгоритм польской записи. Мне его писать лень.

Re: Помогите!!Работа со строками...(Borland C++ DOS)

Добавлено: 10 апр 2008, 22:58
Phonix
Ты имел введу обратная польская запись? Напиши пожалуйста этот алгоритм. Я в поисковике искал и ничего конкретного не нашел...

Re: Помогите!!Работа со строками...(Borland C++ DOS)

Добавлено: 11 апр 2008, 09:05
airyashov
Phonix писал(а):Ты имел введу обратная польская запись? Напиши пожалуйста этот алгоритм. Я в поисковике искал и ничего конкретного не нашел...

http://www.interface.ru/home.asp?artId=1492

Re: Помогите!!Работа со строками...(Borland C++ DOS)

Добавлено: 11 апр 2008, 11:51
BBB
Phonix писал(а):Операции над массивами: ... деление (то есть А без В, из массива А удаляются общие элементы с В)
Вообще-то, в теории множеств это действие называется разность двух множеств.

Re: Помогите!!Работа со строками...(Borland C++ DOS)

Добавлено: 13 апр 2008, 17:51
Phonix
Спасибо за советы. ВВВ ты прав, я перепутал.

Может у когото еще есть какието идеи по поводу решения задачи? с ОПЗ я врятли разберуся....

Re: Помогите!!Работа со строками...(Borland C++ DOS)

Добавлено: 14 апр 2008, 11:15
Хыиуду
Написать простенький анализатор, который будет знать порядок выполнения операций и в соответствии с этим порядком заменять операнды. Например,
E-A/(B+C*D) - сначала выполняются действия в скобках, из них первое умножение.
E-A/(B+F), где F=C*D,
потом продолжает выполняться действие в скобках
E-A/G, где G=B+F
и т.д.