|
|
ru.algorithms- RU.ALGORITHMS ---------------------------------------------------------------- From : Alex Slinkin 2:5004/1.23 02 Nov 2002 23:02:21 To : All Subject : Hужен алгоритм --------------------------------------------------------------------------------
Идея такая:
Есть функциональная схема устройства, т.е. функциональные блоки устройства
соединенные линиями. Каждый блок имеет от 1 до 4-х входов и один выход. Есть
графический интерфейс, который это дело компанует и заносит каждый блок в
массив, каждая ячейка которого состоит из класса:
TFUN=record
name : string; //имя блока
kont_kol : byte; //количество входных линий
i1cir : string[30]; //сигнал, приходящий на вход 1
i2cir : string[30]; //сигнал, приходящий на вход 2
i3cir : string[30]; //сигнал, приходящий на вход 3
i4cir : string[30]; //сигнал, приходящий на вход 1
qcir : string[30]; //сигнал, выдаваемый выходом (на какието входы)
kos : boolean; //переменная для обработки
isp : boolean; //переменная для обработки
nach : boolean; //переменная для обработки
end;
Смысл программы состоит в том, что по этой функциональной схеме строится
блок схема поиска неисправного слока, при условии, что один блок мог выйти
из строя.
С начала ищем блок, вероятность выхода из строя наиболее вероятна, затем
предпологаем, что на его выходе есть сигнал. Это означает что все блоки
формирующие для него сигнал целые. Из оставшихся блоков опять ищем блок,
вероятность выхода из строя которого наибольшая. И.т.д. Если у изначально
рассмотренного блока на выходе нет сигнала, то проверяем все блоки, формирующие
для него сигналы. И также предпологаем, что сигнал будет и не будет и на
основании этого строим блок схему.
Графический интерфейс вывода я придумать не смог, поэтому использовал
транслятор из кода паскаля в блок схему алгоритма этого кода. Т.е. записываю
в текстовичек всякие IF, ELSE, BEGIN, END ... и соответствено текст.
Дак вот сама проблема: никак не могу придумать алгоритм записи этого
текстовичка. При анализе блок схемы от первоначально взятого блока отходит
две ветки, т.е. IF 'исправен ли блок 1' THEN 'да' ELSE 'нет'. Т.е. вот такую
строчку я сформировал. А в случае да строится новая ветка, а за ней еще,
еще, еще. Тоже касается и случая 'нет'.
Процедура заполнения первоначального массива и процедура поиска блока с
наиболее вероятным отказом уже написаны и отлажены, теперь остается написать
процедуру записи в файл информации для построения блок схемы.
Помогите Plz!
Приветствую письма NETMAIL-ом
Alex.
---
* Origin: Hе плюй в колодец - там же никого нет (2:5004/1.23)
Вернуться к списку тем, сортированных по: возрастание даты уменьшение даты тема автор
Архивное /ru.algorithms/27133dc454fa.html, оценка из 5, голосов 10
|