![]() |
|
|
![]()
|
|
| mes |
|
|||
|
любитель ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 7954 Регистрация: 14.1.2006 Репутация: 6 Всего: 250 |
вот в общей функции :
теперь нужно подумать что еще можно "съэкономить" Это сообщение отредактировал(а) mes - 10.11.2010, 16:07 |
|||
|
||||
| mes |
|
|||
|
любитель ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 7954 Регистрация: 14.1.2006 Репутация: 6 Всего: 250 |
вот подправлено немного :
Это сообщение отредактировал(а) mes - 10.11.2010, 16:06 |
|||
|
||||
| Нитонисе |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 917 Регистрация: 5.11.2009 Репутация: 2 Всего: 2 |
Мне вообще-то непонятно - а что вы тут сэкономили то? Закрывая глаза на сложную для восприятия структуру кода можно отметить следующее - суть ее аналогична моей. Вы так же проверяете типы опор и тип нагрузки, запуская те или иные обработчики. Только я не совсем понял одну вещ. Вы проверяете первую опору switch (s2), но не проверяете вторую switch (s2[1]), хотя от этого зависит алгоритм вычислений... Вобщем оформление кода - дело субъективного восприятия. Вы не можете читать мой код, я не могу читать ваш код. Что же касается "красивого" решения вопроса вызывания нужной функции вычисления усилий в зависимости от типов опор и типов нагрузки - смотрю в сторону мультиметодов. Очень интересная тема, надо с ней поподробнее разобраться) |
|||
|
||||
| mes |
|
||||
|
любитель ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 7954 Регистрация: 14.1.2006 Репутация: 6 Всего: 250 |
пока мало чего.. не торопитесь.. я еще не закончил Добавлено через 44 секунды
смотрите внимательно.. проверяются обе.. Добавлено через 4 минуты и 21 секунду возвращаемся к ns_calc_moment и добавляем туда функцию
|
||||
|
|||||
| Нитонисе |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 917 Регистрация: 5.11.2009 Репутация: 2 Всего: 2 |
Не трудитесь) Я уже вижу по вашему стилю, что он для меня неприемлем. Масса малопонятных однобуквенных обозначений, сложные программные констркции. Может вы что-то и сэкономите, но такую цену (сложность восприятия) я платить не готов)) Да и вопрос то был нев экономии, а в "грязном" коде. Сэкономить можно проще - просто вынести расчетные блоки в отдельные функции. Для меня не страшно большое количество кода (пусть и разбросанного по разным функциям), для меня важнее его понятность, эффективная работа, удобная модификация. |
|||
|
||||
| mes |
|
|||
|
любитель ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 7954 Регистрация: 14.1.2006 Репутация: 6 Всего: 250 |
тогда станет :
Добавлено через 3 минуты и 23 секунды чтоб избежать лишнего расчета для rr, придется немножко лишнего кода написать.. |
|||
|
||||
| mes |
|
|||
|
любитель ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 7954 Регистрация: 14.1.2006 Репутация: 6 Всего: 250 |
после поправки :
Это сообщение отредактировал(а) mes - 10.11.2010, 16:51 |
|||
|
||||
| mes |
|
||||
|
любитель ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 7954 Регистрация: 14.1.2006 Репутация: 6 Всего: 250 |
итак у нас получилась вспомогательная функция :
и основная
Добавлено @ 16:49 вот к последнему варианту можете придераться Это сообщение отредактировал(а) mes - 10.11.2010, 16:53 |
||||
|
|||||
| Нитонисе |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 917 Регистрация: 5.11.2009 Репутация: 2 Всего: 2 |
Да я в общем-то уже "придрался" - код не облегчился и стал сложнее, "заковырестее". Я не вникал в правильность реализации отдельно взятых функций (точнее в определнии верного пути к нужному блоку), так как для меня такие программные конструкции не читаемы, жалко времени. Всущности организация кода должна быть понятна вам и совсем не обязательно, чтобы она была понятно кому-то еще, если только вы не работаете в команде. |
|||
|
||||
| mes |
|
|||
|
любитель ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 7954 Регистрация: 14.1.2006 Репутация: 6 Всего: 250 |
да кода стало чуточку больше.. 1. но мы избавились от медленного динамик_каста, 2. автоматизировалась часть по выбору нужной ветви 3. компилтайм проверка, для всех лоадов, о наличии реализации для конкретного потомка (патерн визитер) 4. все функции расчетники выведены из в отдельную область.. (ах да про них забыл.. с учетом последних изменений они должны иметь вид аналогичный : float rrl (size_t len, linear_load& l)); 5. в отличие от мултиметодов, для которых еще чуточку кода добавиться, мы использовали "знание о riget" "заковырестей" он стал для Вас, но зато стал более "сопровождаем" хотя по сути ничего сложного нет, если понять суть на которой он основан Это сообщение отредактировал(а) mes - 10.11.2010, 17:26 |
|||
|
||||
| mes |
|
|||
|
любитель ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 7954 Регистрация: 14.1.2006 Репутация: 6 Всего: 250 |
да кстати в моем выбор функции не до конца верен. поздно заметил, что при других типах нагрузки, для rr моменты не равны.. сейчас времени нет подправлять..позже..
Это сообщение отредактировал(а) mes - 10.11.2010, 18:06 |
|||
|
||||
| mes |
|
|||
|
любитель ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 7954 Регистрация: 14.1.2006 Репутация: 6 Всего: 250 |
http://liveworkspace.org/code/36203ae8fe26...a690733c9408081
вот расчет для линейной нагрузки, для произвольного сочетания двух опор.. Добавлено @ 20:06 вместо цифр (3,4,5) соответсвующий расчет разумеется.. ну а main просто для теста.. ну и для наглядности выложу тут :
Это сообщение отредактировал(а) mes - 10.11.2010, 20:54 |
|||
|
||||
| mes |
|
||||
|
любитель ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 7954 Регистрация: 14.1.2006 Репутация: 6 Всего: 250 |
тогда диспетчер калькулятора будет выглядить так :
Добавлено @ 20:40 или для вашего стиля (с динамик кастом )
P.S. если auto не поддерживается, значит вместо него соответсвующий тип.. оба варианта практически равноправны.. первый чуточку быстрей, а с динамик_кастом чуточку проще.. выбирайте на свой вкус.. если что то осталось непонятное, могу объяснить Это сообщение отредактировал(а) mes - 10.11.2010, 20:53 |
||||
|
|||||
| baldina |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3433 Регистрация: 5.12.2007 Где: Москва Репутация: 1 Всего: 101 |
ребят, тут поглядите
|
|||
|
||||
| Нитонисе |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 917 Регистрация: 5.11.2009 Репутация: 2 Всего: 2 |
||||
|
||||
![]()
|
| Правила форума "С++ Builder" | |
|
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Rrader. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | C++ Builder | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |