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

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

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

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

Ответ
 
Опции темы Поиск в этой теме
Старый 05.03.2013, 13:22   #1
benwar
 
Регистрация: 08.12.2010
Сообщений: 6
Печаль Расчет МТС, есть наброски

Требуется помощ в допиливании проекта C#
в проекте вроде все сделал кроме этого
Есть проект. ( он уже постоен) нужно рассчитать показатель MTS (Most Total Successors) для каждой работы, который показывает полное количество последователей работы (как прямых, так и транхитивных)

п.с. знаю тему для новчиков где нельзя ничо просить)
но я уже не новечек))
набросал код. но невкуриваю как сделать мтс
Вложения
Тип файла: rar 11111111.rar (14.0 Кб, 9 просмотров)

Последний раз редактировалось benwar; 05.03.2013 в 13:37. Причина: добавил код
benwar вне форума Ответить с цитированием
Старый 05.03.2013, 13:58   #2
raxp
Старожил
 
Регистрация: 29.09.2009
Сообщений: 9,713
По умолчанию

OFFTOP >
Цитата:
последователей работы (как прямых, так и транхитивных
а кто или что это - "транхитивные последователи работы"? Культ какой? Не вкуриваю.
Разработки и научно-технические публикации :: Видеоблог :: Твиттер
Radar systems engineer & Software developer of industrial automation
raxp вне форума Ответить с цитированием
Старый 05.03.2013, 14:10   #3
Abstraction
Старожил
 
Аватар для Abstraction
 
Регистрация: 25.10.2011
Сообщений: 3,178
По умолчанию

За код в .doc-файле в архиве надо убивать. Из рогатки. ((C) Бендер)
Код:
        public Activity(string Name, double opt, double pess, double mostlike)
        {
            this.name = Name;

            this.opt = opt;
            this.mostlike = mostlike;
            this.pess = pess;

           this.predecessors = new  List<Activity> (5);

           this.successors = new List<Activity>(5);

           this.mean = (this.opt +4* this.mostlike + this.pess) / 6 ;   //мат ожидание по знакомой нам формуле
           this.sigma = (this.pess -this.opt) / 6;

        this.var = this.sigma + this.sigma; //среднеквадр отклонение.

        this.duration = this.mean;
    }
Н-да... То, что все поля public, доставляет отдельно.
А суммарное число последователей считается так:
Код:
int SuccessorsNumber(){
  return successors.Aggregate<Activity, int>(0, (sum,a) => sum+a.SuccessorsNumber()) + 1;
}
Обратите внимание, что эта функция считает активность собственным последователем. Возможно, Вы захотите вычесть единицу из конечного результата. Если Вам придёт в голову, что для этого достаточно просто убрать "+ 1" в теле метода, подумайте ещё раз.
Также эта функция требует, чтобы граф последователей был ациклическим.

Последний раз редактировалось Abstraction; 05.03.2013 в 14:13.
Abstraction вне форума Ответить с цитированием
Старый 05.03.2013, 14:12   #4
benwar
 
Регистрация: 08.12.2010
Сообщений: 6
По умолчанию

Цитата:
Сообщение от raxp Посмотреть сообщение
OFFTOP >
а кто или что это - "транхитивные последователи работы"? Культ какой? Не вкуриваю.
Не будем обращать внимание на название(так звучало оффициальное название), но в общем нужно посчитать общее число последовательностей каждой из работ.
benwar вне форума Ответить с цитированием
Старый 05.03.2013, 15:12   #5
benwar
 
Регистрация: 08.12.2010
Сообщений: 6
По умолчанию

Цитата:
Сообщение от Abstraction Посмотреть сообщение
За код в .doc-файле в архиве надо убивать. Из рогатки. ((C) Бендер)
Он не влезал) ограничение на символы было
пришлось кудато засунуть
benwar вне форума Ответить с цитированием
Старый 05.03.2013, 15:25   #6
Abstraction
Старожил
 
Аватар для Abstraction
 
Регистрация: 25.10.2011
Сообщений: 3,178
По умолчанию

А сократить не судьба? Вот пример:
Цитата:
У меня есть класс Activity. У всякой Activity могут быть "последователи" (они хранятся в списке successors). Подскажите, как написать метод, подсчитывающий общее число "последователей" для объекта (т.е. последователей, последователей последователей и т.д.)?
Своих идей, к сожалению, в голову что-то не приходит. Спасибо за внимание.
Код:
    class Activity
    {
        // имя работы
        public string name;

        // продолжительность работы
        public double duration;

        //PERT
        public double opt, pess, mostlike;  
        public double mean, var, sigma;

        public int order, p_count;
        // список работ-предшественников
        public List<Activity> predecessors;

        // список работ-последователей
        public List<Activity> successors;


        //
        // расчетные величины
        //

        public double EST, EFT, LFT, LST; //добовляем переменную для расчета резервов 

        public double SLK, FSLK;
        //Далее методы - конструкторы и т.д.
    }
Abstraction вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Анализ детализации МТС Artesik C++ Builder 1 14.06.2012 09:53
МТС Україна - МТС Коннект 3G и Nokia N95 legendary Компьютерное железо 1 27.07.2011 14:32
мтс michavas Помощь студентам 5 10.02.2011 14:05
мтс michavas WordPress и другие CMS 0 08.02.2011 11:31
МТС - коннект misher Софт 10 03.12.2010 00:16