1.По заданной формуле построить граф. Пронумеровать вершины и дуги (произвольно). 2. Описать граф матрицей смежности (если есть связь м-ду i и j вершинами –1, если нет –0 ), дугами ( № дуги и вершины, которые она соединяет), спецификацией (№ вершины – операция, выполняемая в данной вершине), полными путями (номера вершин от входа до выхода). 3. Построить матрицу соответствия номеров вершин номерам функциональных устройств, выделив при этом устройство с минимальным коэффициентом (использовать заданную табл. характ. функц. устр.) 4. вектор назначения (номера используемых функц. устройств по матрице соответствия) 5. вектор реализации (время за которое выполняется операция выбранными функциональными устройствами, использовать вектор назначения и табл. характ. функц. устройств) 6. представить граф в виде функциональной схемы (№ вершин заменить номерами функц. устройств) 7. по полным путям просчитать время, выбрать максимальное.
В моей проге готово первые 2 пункта. Выполнено в виде консольного приложения на C++ Builder 6. Формула считывается из файла задания в формате txt. Все матрицы и таблицы выводятся на черный экран. Граф строится в виде emf файла (метафайл Windows) и сохраняется в текущий каталог. Проверял на некоторых других произвольных формулах: линии графа могут накладываться друг на друга, в зависимости от порядка операций. Думаю это несложно исправить. Дело в том что, двоичное дерево я не использовал. Программа выполнена в такой последовательности: 1 По алгоритму, описанному выше получил обратную польскую запись формулы. 2 По польской записи получил список дуг и спецификацию 3 Под списку дуг получил матрицу смежности 4 По списку дуг и спецификации получил полные пути 5 По списку дуг и спецификации построил граф. Проверял на некоторых других произвольных формулах: линии графа могут накладываться друг на друга, в зависимости от порядка операций. Думаю это несложно исправить. Дело в том что, двоичное дерево я не использовал. Построение графа происходило в такой последовательности: начинал с операций ввода(х1,х2..х10) и разместил их по порядку номеров в задании. Из за этого возможны наложения линий(если сначала выполняется умножение х5*х7, а потом сложение полученного произведения с х6. Но в моем случае(задание написано выше) работает корректно. Текст программы получился очень запутанным. На сколько я понимаю самое сложное сделано. Но тем не менее, не могу понять, что нужно делать дальше начиная с 3-го пункта. Могу выложить то, что получилось. Но лучше сначала выложите какой - нибудь любой отчет с исходным заданием. Я в ближайшее время доделаю свою программу до конца и выложу все в готовом виде.
Добавлено (26.12.2009, 14:03) --------------------------------------------- Почему в таблице характеристик нет операции деления?
lativ, Ты написал, что выложил материал свой на сайт, но в разделе: файлы/ПОИТ/АВС находится только один материал: Конспект по предмету "Архитектура вычислительных систем" Пишется, что еще есть два, но их скачать нет возможности (хотя доступ для скачивания имеется), при попытке зайти непостредствено на адрес http://do.ucoz.net/load/26-1-0-475 все равно выкидывает и скачать ничего кроме этого конспекта не возможно. Пришли, если не трудно. Евгений.
Сообщение отредактировал Him - Четверг, 07.01.2010, 20:57
Просившим отправить по почте, только что отправил. Пробовал скачивать по ссылке, получилось. Возможно дело в том, что недостаточно прав на скачивание файлов из архива. Условия получения прав писались как-то на этом форуме. Но, возможно, причина в другом. Думаю стоит обратиться к администрации форума. И еще вопрос, извиняюсь, что не по теме, может у кого по "Культурологии" 13-й вариант контрольной работы был, про Египет. Очень надо, а то теперь с академическими задолженностями не допускают к сессии. ICQ 390-148-640