![]() |
|
|
![]()
|
|
| polosatij |
|
|||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1143 Регистрация: 22.2.2004 Где: Stuttgart<-> ;Karlsruhe, Germany Репутация: нет Всего: 8 |
есть такая задача: представьте себе, мы запускаем нашу програму. программа в свою очередь пишет цифры. при запуске програмы ПЕРВЫЙ РАЗ первая цифра будет "1".. второй раз, она просто продолжает писать дальше, например первое число уже может быть не "1", а "6".. никогда не известно какая будет последняя цифра (при окончании програмы). вопрос: как узнать откуда стартовала програма во второй раз? в каком числе можно предлогать любые решения, однако решения "поставить variable в конец программы, допустим на true (чтоб показать её окончание), считаются недействительными. у меня нет конца программы надеюсь понятно обьяснил |
|||
|
||||
| Earnest |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 5962 Регистрация: 17.6.2005 Где: Рязань Репутация: 7 Всего: 183 |
Не очень понятно...
В смысле, функцию "писать цифры" изменить нельзя? Тогда обернуть ее вызов, запоминая в какой-нибудь переменной последнюю цифру... или сразу писать в постоянную память, если почему-то нельзя сделать обработку в конце программы... Да и вообще, что значит - нет конца программы - конец программы есть всегда, разве что ее terminate'ом убивают. В общем, чем больше думаю, тем больше мне непонятно, в чем проблема. -------------------- ... |
|||
|
||||
| Петрович |
|
||||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1000 Регистрация: 2.12.2003 Где: Москва Репутация: нет Всего: 55 |
Я бы даже сказал "Совсем не понятно".
И еще по поводу отсутствия конца программы. Ты что, изобрел вечный двигатель? -------------------- Все знать невозможно, но хочется |
||||
|
|||||
| III.nfo |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 39 Регистрация: 18.10.2004 Репутация: 2 Всего: 2 |
Петрович
Судя по всему, имеется в виду бесконечный цикл, однако смысл подлинно бесконечного цикла не совсем понятен (разве что машину грузить, чтобы не расслаблялась). polosatij 1. Поясните пожалуйста вашу программу (желательно исходник). 2. Можно делать запоминание следующими методами (на конце должен быть файл, или значение не сохранится) а) перехват вывода программы (что не очень умно). б) из функции писать сразу в файл. в) писать в некий integer последнее значение. г) при выходе из функции печатания цифр считывать последнее выведенное. д) скриншот (это в крайнем случае). Лично я рекомендую б или в. Это сообщение отредактировал(а) III.nfo - 19.7.2005, 19:43 |
|||
|
||||
| ~FoX~ |
|
||||
![]() НЕ рыжий!!! ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2819 Регистрация: 8.10.2003 Где: Зеленоград Репутация: 2 Всего: 68 |
А откуда тогда берется последнее число? polosatij Уважаемый поясните задачу, а то совсем не понятно.
Не понятно - дальше - это по порядку или рандомом? И вообще к чему такое условие если надо узнать последнюю цифру? Каково количество цифр? По какому алгоритму выбираются цифры? И самый главный вопрос:............зачем |
||||
|
|||||
| Alex101 |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 891 Регистрация: 8.4.2002 Где: Москва Репутация: 1 Всего: 10 |
Совсем непонятно. Пожалуйста, напишите вопрос еще раз и четко объясните: По какому закону изменяются числа? (если это random, то тут и думать нечего) Кто должен определить цифру и как? Модуль этой же программы? (тогда это все бред) Сторонняя программа? (Но это помимо определения числа, еще и программная реализация) -------------------- С уважением, А. Фролов. |
|||
|
||||
| polosatij |
|
||||||||||||||||||||||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1143 Регистрация: 22.2.2004 Где: Stuttgart<-> ;Karlsruhe, Germany Репутация: нет Всего: 8 |
фуууууууууф.. отвечаю по порядку
но задачку решил сам... (немного по другому, пришлось декомпилироватъ и врезать..).. но задачка остаётся в силе...
да.. она неизменима.. предоставляется системой (про цифры я взял ради упрощения..)
програма заканчивая работу стоит, например, на 5.. ты знаешь, что закончилась програма.. но запуская програму заного, как ты скажешь ей, что последнее число у тебя именно "5" ? у меня один и тот же метод вызывается несколько раз.. он же скажет, что у тебя число "3" было последнее, когда програма зайдет в него (а програма еще не закончиться).. тоже произойдет с числом "4".. и "5".. представь себе бег по кругу.. и на одном участке програма просто плюсует еще один круг.. но как ей узнать, что ето последний?
взято это из за того => никогда не известно, сколько раз програма будет вызвана юзером.. поетому считаем что програма будет выполнена бесконечное число раз..
см. чуть выше
не могу.. так как 1. это не моё 2. декомпилировать придётся многие участки.. какие именно, мне лень разбираться, т.к. очень много работы там..
на каком конце? представь себе ты бежишь по кругу.. см. чуть выше
а что мне это даст? в следуюший раз, когда ты запустишь программу.. она зайдет в тот же самый круг.. а как ты узнаешь, что она перестала работать, и начала работать во второй раз?
а дальше? запустишь програму.. как она поймёт, что это именно последнее значение, а не предпоследнее, например?
по логике вешей оно существует.. т.к. програма рано или поздно заканчивается.. его можно узнать.. но вызывая програму во второй раз, как мне сказать, что оно именно последнее? у меня "круг".. если я ему скажу: count > 0 => то это обозначает ещё, что програма один раз заходила в методу..
нет.. это не рандом.. это +1
нужно узнать, запущема ли програма во второй раз, или всё еще работает в первый.. Добавлено @ 17:40 итак.. обьясняю еще раз: имеется круг. представляем, мы забегаем в этот круг. если оббегаем его - прибавляем единицу.. при пробеге в 5 кругов получаем 5 единиц. при забеге первый раз (мы можем забежать туда первый раз, включаем комп) наш отчёт начинается с чифры "1".. итак.. на этом кругу наша метода.. она говорит: "пробежал круг => +1". теперь представим, что програма зашла в круг и прошла 5 раз.. наше число становится равным "5".. мы знаем, что проргамма закончена.. но мы знаем об этом, не компьютер (т.к. нельзя в плаг-ин врезать, где же у неё конец). мы можем поставить что угодно НО ТОЛЬКО НА КРУГУ.. но вот только, если мы поставим число "5".. как мы узнаем, что это был наш последний круг в предыдущем забеге, а не в этом же? н-да.. пока объяснял.. вижу, что для этой задачи мало данных.. с такими данными она никак не решается.. ладно.. забудем бредни полосатого... |
||||||||||||||||||||||
|
|||||||||||||||||||||||
| Akina |
|
|||
|
Советчик ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 20581 Регистрация: 8.4.2004 Где: Зеленоград Репутация: 20 Всего: 454 |
Проблема - сохранение истории работы программы, как я понимаю... при том что сама программа этого не умеет...
Насколь я понял, существует способ сообщить программе, с какого места она должна стартовать - так? тогда обернуть ее неким запускателем-детектором, который будет регистрировать "проходы" и сохранять... в реестре, в файле, да пофиг где... или сохранять контекст программы и вместо запуска восстанавливать ее предыдущее состояние - как это делают, скажем, дебаггеры, или как ОС себя сохраняет при гибернации (как вариант запускать в виртуальной машине - там тоже есть режим сохранения контекста, правда всей ОС, да и с сетевыми коннектами проблемы)... Для более осмысленных ответов пора бы перестать играть в тайны Мадридского двора и вместо каких-то там абстрактных цифирей рассказать, что таки происходит на самом деле. Не боись - авось не перегреемся... -------------------- О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума. |
|||
|
||||
| Петрович |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1000 Регистрация: 2.12.2003 Где: Москва Репутация: нет Всего: 55 |
Уфф. Однако замысловато вы излагаете.
Но, всетаки попробую сформулировать Вашу мысль Насколько я понял, есть программа без исходников. И есть плагин к ней, написанный Вами. Их взаимодействие таково: программа, после запуска может N-е число раз вызвать функцию из плагина. При этом, она будет передавать туда некоторое, монотонно возрастающее значение. Плагин должен сохранить значение, которое было передано в него последним, перед завершением основной программы. Соответственно, при первом после запуска программы вызове плагина, он должен как то использовать именно сохраненное число. Сложность задачи в том, что плагину не сообщают о старте/завершении программы. Вот как Ваш бред, простите откровенность, понял я. Если это близко к истине, то сначала задам вопрос о том как реализуется Ваш плагин. Это Dll, или что-то другое? От ответа на этот вопрос зависит и способ решения задачи. -------------------- Все знать невозможно, но хочется |
|||
|
||||
| polosatij |
|
||||||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1143 Регистрация: 22.2.2004 Где: Stuttgart<-> ;Karlsruhe, Germany Репутация: нет Всего: 8 |
думаете?
правильно поняли
это .java, декомпилировать не позволяют условия.. |
||||||
|
|||||||
| Петрович |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1000 Регистрация: 2.12.2003 Где: Москва Репутация: нет Всего: 55 |
Жаль Тогда, народ правильно предлагал. Можно сделать некий "пускач" который будет запускаться вместо основной прогрнаммы. Он, в свою очередь, будет фиксировать запуск (в простейшем случае например создавать файл) и запускать само приложение и дожидаться его завершения. После завершения приложения он может фиксировать и факт завершения приложения (если надо). Плагин же может использовать информацию оставленную "пускачем" для определения первого вызова после запуска приложения. В общем что-то в этом роде. А можно и по другому. Если плагин работает в контексте процесса основной программы, то он может просто загрузить в память Dll-ку (подключить к процессу) а та в свою очередь получит управления в момент выгрузки. Возможно в .java есть и другие механизмы. Например вполть до навешивания хука на завершение процесса. -------------------- Все знать невозможно, но хочется |
|||
|
||||
| Дрон |
|
|||
![]() Java-ненавистник :) ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 3179 Регистрация: 29.12.2002 Где: Санкт-Петербург Репутация: нет Всего: 93 |
То, что писал polosatij я вообще не понял, поэтому ориентируюсь на Петровича.
Э... Ну так и сохраняем каждое поступившее значение Зачем нам вообще знать о завершении программы? -------------------- Да. Именно так. |
|||
|
||||
![]()
|
| Правила форума "Алгоритмы" | |
|
|
Форум "Алгоритмы" предназначен для обсуждения вопросов, связанных только с алгоритмами и структурами данных, без привязки к конкретному языку программирования и/или программному продукту.
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, maxim1000. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Алгоритмы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |