Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Общие вопросы по программированию, компьютерный форум
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 28.06.2016, 16:42   #81
come-on
Участник клуба
 
Регистрация: 21.10.2015
Сообщений: 1,361
По умолчанию

RAFA91 вам вот тут
Цитата:
Вы модель сделайте сначала.
какое слово не понятно?
вам это уже уйму раз сказал, но видать что то в этом вам не понятно, так вы не стесняйтесь укажите и объяснят
come-on вне форума Ответить с цитированием
Старый 28.06.2016, 16:46   #82
RAFA91
Заблокирован
 
Регистрация: 06.02.2011
Сообщений: 1,999
По умолчанию

Ладно на сегодня хватит. Это только 1 процент из того как работает эта

релейная система. Теперь надо выяснить в какой момент должны вызываться

конкретные методы конкретного обьекта ???

программа работает циклически - значит что-то кого-то должно вызывать.
RAFA91 вне форума Ответить с цитированием
Старый 28.06.2016, 16:52   #83
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,831
По умолчанию

Я вам же уже писал как упрощенно работают подобные системы:
1. система работает и контролирует датчики и прочее
2. фиксируется появление поезда в зоне ответственности системы
3. для каждого поезда строится пул возможных маршрутов, опираясь на исходных данных
4. по мере прохождения и изменении ситуации маршруты перестраиваются, если надо
и т.д.
p51x вне форума Ответить с цитированием
Старый 28.06.2016, 16:57   #84
RAFA91
Заблокирован
 
Регистрация: 06.02.2011
Сообщений: 1,999
По умолчанию

1. в качестве датчиков и выступают эти секции. они контролируются всегда

вне зависимости находятся ли они в маршруте или нет.

основные функции секций

- замыкание
- размыкание
- контроль состояния (свободна/занята)
- индикация на мониторе

так вот размыкание происходит при участии соседних секций.

там есть строгий контроль последовательности занятия и освобождения.В свою очередь в секции могут находится стрелки.

стрелки тоже имеют свои методы

- перевод в +
- перевод в -
контроль стрелки.
- индикация на мониторе

стрелку нельзя перевести если секция в которой она находится занята или

замкнута



контролируются всегда

вне зависимости находятся ли они в маршруте или нет.

Последний раз редактировалось RAFA91; 28.06.2016 в 17:01.
RAFA91 вне форума Ответить с цитированием
Старый 28.06.2016, 17:03   #85
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,831
По умолчанию

и? ну упростили вы задачу, вроде что-то в пост даже написали, но какой смысл этого поста?
p51x вне форума Ответить с цитированием
Старый 28.06.2016, 17:09   #86
RAFA91
Заблокирован
 
Регистрация: 06.02.2011
Сообщений: 1,999
По умолчанию

не тот случай что-бы что-то упрощать.

надо в точ точ повторить логику. как тут все просто. только ни один путный

вариант не услышал.

**************

если секция контролируется всегда - то она может контролироваться и вне маршрута.

значит надо вводить индикатор - а участвует ли она в конкретном маршруте.

если она замкнута - то это не значит что она участвует в маршруте.

а если не участвует в маршруте - то и размыкать ее только искуствено.

нештатная ситуация.
RAFA91 вне форума Ответить с цитированием
Старый 28.06.2016, 17:22   #87
evg_m
Старожил
 
Регистрация: 20.04.2008
Сообщений: 5,543
По умолчанию

0. есть поезд которому НАДО обеспечить прохождение. (транзит/въезд/выезд)

1. для него РЕЗЕРВИРУЕТСЯ маршрут (из списка/ в ручном режиме)
заданием ПОСЛЕДОВАТЕЛЬНОСТИ "управляющих" точек прохождения на НЕКАРТЕ станции.
есть и еще особые точки (ВХОДЫ и ВЫХОДЫ станции)

2. управляющие точки КОНТРОЛИРУЮТ (проверяют и управляют) объекты СВОЕЙ ЗОНЫ (светофоры/стрелки/датчики движения(занятости)
возможно в парЕ с последующей точкой. две последовательные точки как правило определяют положение стрелки.

3. оповещают НЕКАРТУ о готовности участка (между двумя точками опять ДВЕ точки это ж-ж-ж неспроста ) к работе в составе маршрута к приему поезда и/или НЕДОСТУПНОСТИ данного участка для прокладки(ЗАНЯТОСТИ другим маршрутом/...)
4. оповещают о завершении работы участка в составе маршрута.
программа — запись алгоритма на языке понятном транслятору

Последний раз редактировалось evg_m; 28.06.2016 в 17:34.
evg_m вне форума Ответить с цитированием
Старый 28.06.2016, 18:16   #88
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,831
По умолчанию

Цитата:
не тот случай что-бы что-то упрощать.
Ну так где в вашей схеме датчик времени, обледенения, скорости ветра, целостности подводящего провода и скорости?
Где контроль скорости подходящего к зоне станции состава и переключения светофора если скорость большая/станци занята?
Где "ручной" датчик, если путеосмоторщик или еще кто-то заметил неполадки?
Где и т.д. ...
p51x вне форума Ответить с цитированием
Старый 29.06.2016, 13:15   #89
RAFA91
Заблокирован
 
Регистрация: 06.02.2011
Сообщений: 1,999
По умолчанию

Значит что мы имеем.
Стрелка это не отьемливый атрибут секции.
Стрелка всегда находится в какой-то секции.
Секции участвуют в каких-то определенных маршрутах, но это не значит что одни
и те же стрелки секции могут участвовать в разных маршрутах.
Может быть такая ситуация как на скрине.
Следовательно стрелка должна знать в каких маршрутах она участвует, и какое при этом она должна занимать положение.

_________________________

вся информация хранится в виде /12 plus/ /56 minus/ /34 minus/ /78 minus/ /45 plus/ /23 plus/ в каком-то файле.
в примитиве как-то так



Код:
class Strelka
{
	string name;              //Название
	string registration;      //В какой секции находится
	string condition;         //Состояние "plus" "minus" "undefined"
	map<string,string> involved; //В каких маршрутах участвует, 
	//и какое при этом положение стрелки
	public:
	Strelka(string name,string registration,string condition,map<string,string> involved)
	{
		this->name = name;
		this->registration = registration;
		this->condition = condition;
		this->involved = involved;
	}
};

map<string,string> get_map(const string &involved)
{
	map<string,string> temp;
	string t1 = "", t2 = "";
	bool l1 = false, l2 = false;
	for (int i=0; i<involved.size(); i++)
	{
		if (involved[i] == '/')
		{
			if (l2)
			{
				temp[t1] = t2;
				t1 = t2 = "";
				l2 = false;
			}
			else l1 = true;
		}
		else if (l1)
		{
			if (involved[i] != ' ') t1 += involved[i];
			else 
			{
				l1 = false;
				l2 = true;
			}
		}
		else if (l2 && involved[i] != ' ') t2 += involved[i];
	}
	return temp;
}

int main() 
{
	map<string,string> temp;
	string involved = "/12 plus/ /56 minus/ /34 minus/ /78 minus/ /45 plus/ /23 plus/";
	temp = 	get_map(involved);
	
	Strelka *str78 = new Strelka("78","78SP","undefined",temp);
	
	
	return 0;
}
Изображения
Тип файла: jpg Безымянный.JPG (45.8 Кб, 125 просмотров)
RAFA91 вне форума Ответить с цитированием
Старый 29.06.2016, 13:21   #90
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,831
По умолчанию

Цитата:
Следовательно стрелка должна знать в каких маршрутах она участвует, и какое при этом она должна занимать положение.
Не следовательно, не должна и ей на это пофиг. Она реагирует на свое переключение.

Вроде же вчера было много обсуждений, а вы опять к своим идеям и мыслям. Раз так, то за этим откланиваюсь. Модель с точки зрения программирования и математики интересная, а вот ваши высеры не очень.

Последний раз редактировалось p51x; 29.06.2016 в 13:25.
p51x вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
как нарисовать сложную фигуру кнопки deniscatch JavaScript, Ajax 8 15.01.2015 21:42
Как сделать сложную замену внутри строки selform Microsoft Office Excel 3 02.11.2012 14:24
Как создать сложную таблицу в делфи? Не_шарю_в_делфи Помощь студентам 0 21.05.2012 16:57
Надо составить сложную-сложную формулу natincom Microsoft Office Excel 4 29.08.2011 09:03