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

Ответить
Phonix
Сообщения: 4
Зарегистрирован: 09 апр 2008, 21:47

09 апр 2008, 22:12

Нужно написать программу для работы с множествами..Пользователе должен определять количество множеств от 2 до 5, и количество символов в каждом множестве. Эту часть программы я написал. Застрял на инициализаторе строки. Например пользователь вводит: (А+В)*С или A\B+C*D или (A+B)*D+C, варианты могут быть разные... Я не знаю как сделать чтобы программа инициализировала строку, и после чего выполнила необходимые операции над массивами.
Хыиуду
Сообщения: 2388
Зарегистрирован: 06 мар 2005, 21:03
Откуда: Москва
Контактная информация:

10 апр 2008, 11:14

Простите, телепаты в отпуске, а ваше задание относится к разделу "Сходи туда - незнамо куда, принеси то - незнамо что". Как именно программа должна инициализировать строку? Пустым значением или чем-то конкретным? Какое отношение к этой строке имеет то, что ввел пользователь? Какие необходимые операции над массивами надо выполнить?
Искусство программирования - заставить компьютер делать все то, что вам делать лень.
Для "спасибо" есть кнопка "Спасибо" в виде звездочки внизу под ником автора поста.
Phonix
Сообщения: 4
Зарегистрирован: 09 апр 2008, 21:47

10 апр 2008, 20:44

Извените за некоректно заданый вопрос!На форуме пишу первый раз....

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

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

10 апр 2008, 21:48

Смотри алгоритм польской записи. Мне его писать лень.
Phonix
Сообщения: 4
Зарегистрирован: 09 апр 2008, 21:47

10 апр 2008, 22:58

Ты имел введу обратная польская запись? Напиши пожалуйста этот алгоритм. Я в поисковике искал и ничего конкретного не нашел...
airyashov
Сообщения: 416
Зарегистрирован: 02 ноя 2007, 10:31

11 апр 2008, 09:05

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

http://www.interface.ru/home.asp?artId=1492
BBB
Сообщения: 1272
Зарегистрирован: 27 дек 2005, 13:37

11 апр 2008, 11:51

Phonix писал(а):Операции над массивами: ... деление (то есть А без В, из массива А удаляются общие элементы с В)
Вообще-то, в теории множеств это действие называется разность двух множеств.
Phonix
Сообщения: 4
Зарегистрирован: 09 апр 2008, 21:47

13 апр 2008, 17:51

Спасибо за советы. ВВВ ты прав, я перепутал.

Может у когото еще есть какието идеи по поводу решения задачи? с ОПЗ я врятли разберуся....
Хыиуду
Сообщения: 2388
Зарегистрирован: 06 мар 2005, 21:03
Откуда: Москва
Контактная информация:

14 апр 2008, 11:15

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