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

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

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 23.02.2015, 19:02   #11
Luuzuk
Форумчанин
 
Аватар для Luuzuk
 
Регистрация: 18.01.2012
Сообщений: 975
По умолчанию

Уважаемый moreman, не существует простого способа заглянуть "под юбку" приглянувшейся программы и узнать что именно она там делает. Для этого можно применить следующие способы:
а) Достать исходный код программы, самостоятельно скомпилировать его и запустить в пошаговом режиме из среды разработки, а встроенным отладчиком этой среды уже смотреть на состояние любых интересующих вас переменных, а также на выполняемые программой действия
б) Если исходный код недоступен, то можно запустить программу с внешним отладчиком, который также позволит пошагово выполнять её, смотреть/менять значения переменных, видеть все выполняемые программой действия. СофтАйс, OllyDbg, etc... Минус такого подхода - надо иметь (глубокие) знания ассемблера и принципов работы процессора. Регистры, стек, память, переходы и т.д. В вашем случае это оптимальный вариант, поэтому я и дал вам этот совет в первом же сообщении
в) Третий вариант - реверс инжиниринг / декомпиляция. Опять же разбираете программу на ассемблерные инструкции, анализируете и по крупицам восстанавливаете логику её поведения на любом доступном языке программирования.

Если в программу изначально не встроена команда (ну или другой способ) подсмотреть процесс вычислений, то других вариантов предложить вам я не могу.

P.S. Но если программа написана под .NET (C# например), то у меня могут быть для вас хорошие новости
Благодарить в репутацию. Проклинать — туда же

Последний раз редактировалось Luuzuk; 23.02.2015 в 19:06. Причина: дописал про .net
Luuzuk вне форума Ответить с цитированием
Старый 24.02.2015, 09:56   #12
moreman
Пользователь
 
Регистрация: 19.02.2015
Сообщений: 10
По умолчанию

Цитата:
Сообщение от Luuzuk Посмотреть сообщение
Уважаемый moreman, не существует простого способа заглянуть "под юбку" приглянувшейся программы и узнать что именно она там делает. Для этого можно применить следующие способы:
а) Достать исходный код программы, самостоятельно скомпилировать его и запустить в пошаговом режиме из среды разработки, а встроенным отладчиком этой среды уже смотреть на состояние любых интересующих вас переменных, а также на выполняемые программой действия
б) Если исходный код недоступен, то можно запустить программу с внешним отладчиком, который также позволит пошагово выполнять её, смотреть/менять значения переменных, видеть все выполняемые программой действия. СофтАйс, OllyDbg, etc... Минус такого подхода - надо иметь (глубокие) знания ассемблера и принципов работы процессора. Регистры, стек, память, переходы и т.д. В вашем случае это оптимальный вариант, поэтому я и дал вам этот совет в первом же сообщении
в) Третий вариант - реверс инжиниринг / декомпиляция. Опять же разбираете программу на ассемблерные инструкции, анализируете и по крупицам восстанавливаете логику её поведения на любом доступном языке программирования.

Если в программу изначально не встроена команда (ну или другой способ) подсмотреть процесс вычислений, то других вариантов предложить вам я не могу.

P.S. Но если программа написана под .NET (C# например), то у меня могут быть для вас хорошие новости
Спасибо за обстоятельный обзор. Мои достижения в программировании ограничиваются составлением программ для микроконтроллеров серии 51. (хотя и довольно неплохо это у меня получается). Наверное, лучше было бы использовать вариант в). Мне кажется, он был бы попроще. Подскажите, пожалуйста, чего мне начинать?
Я бы сам, без этой программки расчёт сделал, но здесь такая система: Препод даёт задание на расчёт двигателя с определёнными параметрами. С помощью данной программы производишь расчёты, вводишь и корректируешь какие-то данные, чтобы получить двигатель с нужными параметрами. Но какие-то, в общем-то незначительные константы программа вводит сама(без вывода на диалоговые окна), например "коэффициент вылета лобовых частей", "припуск на сборку" и.т.п.. То, что это она делает видно из алгоритма программы. На выходе программы получаем соответствующие таблицы с данными двигателя и код для Препода. Он его записывает. После этого начинаешь делать расчёты на бумаге. Соответственно твои расчёты должны совпасть с уже рассчитанными (программой) данными. Но т.к. какие-то константы программа вводила сама, то сделать это проблематично. Расхождения неизбежны. Немного скорректировать двигатель не получится. То, что ты ушел в сторону Препод контролирует по записанному им коду.
Кстати, я нашел алгоритм этой программы с описанием и (вероятно) саму программу на сайте http://vunivere.ru/work15584
Там они хотят денег за скачивание, но если кому интересно, то я могу выслать её по Е-мэйлу.
moreman вне форума Ответить с цитированием
Старый 24.02.2015, 10:05   #13
moreman
Пользователь
 
Регистрация: 19.02.2015
Сообщений: 10
По умолчанию

Цитата:
Сообщение от min@y™ Посмотреть сообщение
это как понимать? пример приведи, чтоль.
если есть алгоритм с формулами, то проще, красивее и быстрее написать новую хорошую прогу с нуля.
Ответы, пожалуйста, см. в #12

Цитата:
Сообщение от p51x Посмотреть сообщение
Ну элементарно ж. Есть формула с параметром в каком-то диапазоне и алгоритм в процессе на основе данных/положения луны на небе выбирает конкретное значение.
Ответы, пожалуйста, см. в #12

Последний раз редактировалось Serge_Bliznykov; 24.02.2015 в 10:49.
moreman вне форума Ответить с цитированием
Старый 24.02.2015, 10:46   #14
min@y™
Цифровой кот
Старожил
 
Аватар для min@y™
 
Регистрация: 29.08.2014
Сообщений: 7,629
По умолчанию

Цитата:
Но какие-то, в общем-то незначительные константы программа вводит сама(без вывода на диалоговые окна), например "коэффициент вылета лобовых частей", "припуск на сборку" и.т.п.. То, что это она делает видно из алгоритма программы.
ну так выведи их по формулам. конечные значения формул-то известны.
Расскажу я вам, дружочки, как выращивать грибочки: нужно в поле утром рано сдвинуть два куска урана...
min@y™ вне форума Ответить с цитированием
Старый 24.02.2015, 14:50   #15
moreman
Пользователь
 
Регистрация: 19.02.2015
Сообщений: 10
По умолчанию

Цитата:
Сообщение от min@y™ Посмотреть сообщение
ну так выведи их по формулам. конечные значения формул-то известны.
Это по формулам не выводятся. Известно, что формулы состоят из каких-то элементов. Некоторые из них мы получаем в результате предыдущих подсчётов с использованием предыдущих формул. Некоторые вводим сами (в диалоговых окнах программы), но при использовании программы не все(около 0,5%). Например, припуск на сборку по высоте паза может быть от 0,1мм до 0,2мм. По ширине так же. При расчёте в программе(это предварительные расчёты) это значение выбирает программа. Какое значение выбрала программа я не знаю. Алгоритма выбора не указано. Это значение влияет на множество как промежуточных результатов так и на выходные параметры двигателя.
При окончательных расчётах на бумаге значение припуска на сборку в формулу я сам ввожу. Но какое значение я должен ввести чтобы выходные параметры двигателя были такие же как предварительно было просчитано с помощью программы?
Подбирать можно очень долго. Если даже выбрать шаг перебора одну десятую этих (двух) параметров, то это будет десять в десятой степени. После каждого нового ввода нужно пересчитать около формул.
moreman вне форума Ответить с цитированием
Старый 24.02.2015, 14:55   #16
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

Если формулы сложные и еще итерационный расчет тогда только пункт б из #11
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 24.02.2015, 15:01   #17
min@y™
Цифровой кот
Старожил
 
Аватар для min@y™
 
Регистрация: 29.08.2014
Сообщений: 7,629
По умолчанию

Цитата:
Алгоритма выбора не указано.
с этого и надо было начинать!
дальше не читал.
Расскажу я вам, дружочки, как выращивать грибочки: нужно в поле утром рано сдвинуть два куска урана...
min@y™ вне форума Ответить с цитированием
Старый 24.02.2015, 15:02   #18
moreman
Пользователь
 
Регистрация: 19.02.2015
Сообщений: 10
По умолчанию

Цитата:
Сообщение от Аватар Посмотреть сообщение
Если формулы сложные и еще итерационный расчет тогда только пункт б из #11
Может подскажете с чего начать? Степ бай степ пож. Если не трудно...
moreman вне форума Ответить с цитированием
Старый 24.02.2015, 15:13   #19
min@y™
Цифровой кот
Старожил
 
Аватар для min@y™
 
Регистрация: 29.08.2014
Сообщений: 7,629
По умолчанию

а набери-ка, для начала, целиком весь расчёт в маткаде и покажи!
а дальше - посмотрим.
Расскажу я вам, дружочки, как выращивать грибочки: нужно в поле утром рано сдвинуть два куска урана...
min@y™ вне форума Ответить с цитированием
Старый 24.02.2015, 15:53   #20
moreman
Пользователь
 
Регистрация: 19.02.2015
Сообщений: 10
По умолчанию

Цитата:
Сообщение от min@y™ Посмотреть сообщение
а набери-ка, для начала, целиком весь расчёт в маткаде и покажи!
а дальше - посмотрим.
Мысль понятна, так можно, конечно, подобрать без проблем. Но вот набрать несколько сотен формул занудно. Я всегда пользовался хорошим инженерным калькулятором(так быстрее). А для особо сложных вычислений использую Maple. Маткадом никогда не пользовался. Если не получится влезть в программу, то буду, конечно, набирать, но только в Maple. Maple, на мой взгляд, гораздо удобней и хлеще чем Маткад.
moreman вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как проверить "работу интернет" через прокси из командной строки IliaIT Свободное общение 16 27.06.2014 10:23
Запуск из макроса сторонней программы с параметрами командной строки strannick Microsoft Office Excel 2 26.05.2013 19:56
Delphi: запуск программы из командной строки с параметрами kaa1977 Помощь студентам 6 22.03.2010 10:03
Как указать в командной строке запуска программы имя файла xmaksimca Общие вопросы Delphi 2 27.12.2009 20:43
Нужно через exe'шник вызвать команду командной строке, в скрытом режиме killerloop Помощь студентам 11 09.07.2009 14:58