Помогите!!Работа со строками...(Borland C++ DOS)
Нужно написать программу для работы с множествами..Пользователе должен определять количество множеств от 2 до 5, и количество символов в каждом множестве. Эту часть программы я написал. Застрял на инициализаторе строки. Например пользователь вводит: (А+В)*С или A\B+C*D или (A+B)*D+C, варианты могут быть разные... Я не знаю как сделать чтобы программа инициализировала строку, и после чего выполнила необходимые операции над массивами.
Простите, телепаты в отпуске, а ваше задание относится к разделу "Сходи туда - незнамо куда, принеси то - незнамо что". Как именно программа должна инициализировать строку? Пустым значением или чем-то конкретным? Какое отношение к этой строке имеет то, что ввел пользователь? Какие необходимые операции над массивами надо выполнить?
Искусство программирования - заставить компьютер делать все то, что вам делать лень.
Для "спасибо" есть кнопка "Спасибо" в виде звездочки внизу под ником автора поста.
Для "спасибо" есть кнопка "Спасибо" в виде звездочки внизу под ником автора поста.
Извените за некоректно заданый вопрос!На форуме пишу первый раз....
Операции над массивами: объединение(аналогия "+", к массиву А добавляются элементы массива В), пересечение(тоисть общие элементы из двух массивов записуются в третий), деление(тоисть А без В, из массива А удаляются общие элементы с В)
По поводу инициализации. Пользователь вводит формулу как я писал выше, а програма должна выполнить опереции над массивами.
Если пользователь вводит (A+B)*C, то програма должна массив А объединить с В и пересечь это все с С.
Операции над массивами: объединение(аналогия "+", к массиву А добавляются элементы массива В), пересечение(тоисть общие элементы из двух массивов записуются в третий), деление(тоисть А без В, из массива А удаляются общие элементы с В)
По поводу инициализации. Пользователь вводит формулу как я писал выше, а програма должна выполнить опереции над массивами.
Если пользователь вводит (A+B)*C, то програма должна массив А объединить с В и пересечь это все с С.
Смотри алгоритм польской записи. Мне его писать лень.
Ты имел введу обратная польская запись? Напиши пожалуйста этот алгоритм. Я в поисковике искал и ничего конкретного не нашел...
Phonix писал(а):Ты имел введу обратная польская запись? Напиши пожалуйста этот алгоритм. Я в поисковике искал и ничего конкретного не нашел...
http://www.interface.ru/home.asp?artId=1492
Вообще-то, в теории множеств это действие называется разность двух множеств.Phonix писал(а):Операции над массивами: ... деление (то есть А без В, из массива А удаляются общие элементы с В)
Спасибо за советы. ВВВ ты прав, я перепутал.
Может у когото еще есть какието идеи по поводу решения задачи? с ОПЗ я врятли разберуся....
Может у когото еще есть какието идеи по поводу решения задачи? с ОПЗ я врятли разберуся....
Написать простенький анализатор, который будет знать порядок выполнения операций и в соответствии с этим порядком заменять операнды. Например,
E-A/(B+C*D) - сначала выполняются действия в скобках, из них первое умножение.
E-A/(B+F), где F=C*D,
потом продолжает выполняться действие в скобках
E-A/G, где G=B+F
и т.д.
E-A/(B+C*D) - сначала выполняются действия в скобках, из них первое умножение.
E-A/(B+F), где F=C*D,
потом продолжает выполняться действие в скобках
E-A/G, где G=B+F
и т.д.
Искусство программирования - заставить компьютер делать все то, что вам делать лень.
Для "спасибо" есть кнопка "Спасибо" в виде звездочки внизу под ником автора поста.
Для "спасибо" есть кнопка "Спасибо" в виде звездочки внизу под ником автора поста.