Поиск:

Ответ в темуСоздание новой темы Создание опроса
> запускаем.. и смотрим.. есть только вызов "писать цифры".. 
:(
    Опции темы
polosatij
  Дата 19.7.2005, 17:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1143
Регистрация: 22.2.2004
Где: Stuttgart<-> ;Karlsruhe, Germany

Репутация: нет
Всего: 8





есть такая задача:

представьте себе, мы запускаем нашу програму. программа в свою очередь пишет цифры.
при запуске програмы ПЕРВЫЙ РАЗ первая цифра будет "1".. второй раз, она просто продолжает писать дальше, например первое число уже может быть не "1", а "6".. никогда не известно какая будет последняя цифра (при окончании програмы).

вопрос: как узнать откуда стартовала програма во второй раз? в каком числе smile

можно предлогать любые решения, однако решения "поставить variable в конец программы, допустим на true (чтоб показать её окончание), считаются недействительными. у меня нет конца программы smile есть только вызов "писать цифры"..

надеюсь понятно обьяснил smile


--------------------
PM   Вверх
Earnest
Дата 19.7.2005, 19:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 5962
Регистрация: 17.6.2005
Где: Рязань

Репутация: 7
Всего: 183



Не очень понятно...
В смысле, функцию "писать цифры" изменить нельзя?

Тогда обернуть ее вызов, запоминая в какой-нибудь переменной последнюю цифру... или сразу писать в постоянную память, если почему-то нельзя сделать обработку в конце программы...

Да и вообще, что значит - нет конца программы - конец программы есть всегда, разве что ее terminate'ом убивают.

В общем, чем больше думаю, тем больше мне непонятно, в чем проблема.


--------------------
...
PM   Вверх
Петрович
Дата 19.7.2005, 19:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1000
Регистрация: 2.12.2003
Где: Москва

Репутация: нет
Всего: 55



Я бы даже сказал "Совсем не понятно".

Цитата(polosatij @ 19.7.2005, 18:33)
никогда не известно какая будет последняя цифра (при окончании програмы).

Цитата(polosatij @ 19.7.2005, 18:33)
у меня нет конца программы


И еще по поводу отсутствия конца программы. Ты что, изобрел вечный двигатель? smile


--------------------
Все знать невозможно, но хочется
PM ICQ   Вверх
III.nfo
Дата 19.7.2005, 19:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 39
Регистрация: 18.10.2004

Репутация: 2
Всего: 2



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

polosatij
1. Поясните пожалуйста вашу программу (желательно исходник).
2. Можно делать запоминание следующими методами (на конце должен быть файл, или значение не сохранится)
а) перехват вывода программы (что не очень умно).
б) из функции писать сразу в файл.
в) писать в некий integer последнее значение.
г) при выходе из функции печатания цифр считывать последнее выведенное.
д) скриншот (это в крайнем случае).
Лично я рекомендую б или в.

Это сообщение отредактировал(а) III.nfo - 19.7.2005, 19:43
PM MAIL WWW   Вверх
~FoX~
Дата 20.7.2005, 08:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


НЕ рыжий!!!
****


Профиль
Группа: Участник Клуба
Сообщений: 2819
Регистрация: 8.10.2003
Где: Зеленоград

Репутация: 2
Всего: 68



Цитата(III @ 19.7.2005, 20:40)
Судя по всему, имеется в виду бесконечный цикл

А откуда тогда берется последнее число?

polosatij
Уважаемый поясните задачу, а то совсем не понятно.

Цитата(polosatij @ 19.7.2005, 18:33)
при запуске програмы ПЕРВЫЙ РАЗ первая цифра будет "1".. второй раз, она просто продолжает писать дальше,

Не понятно - дальше - это по порядку или рандомом? И вообще к чему такое условие если надо узнать последнюю цифру?
Каково количество цифр?
По какому алгоритму выбираются цифры?
И самый главный вопрос:............зачем


--------------------
user posted image
…множественность никогда не следует полагать без необходимости…
PM MAIL WWW ICQ Jabber   Вверх
Alex101
Дата 20.7.2005, 10:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник Клуба
Сообщений: 891
Регистрация: 8.4.2002
Где: Москва

Репутация: 1
Всего: 10



Цитата(polosatij @ 19.7.2005, 17:33)
надеюсь понятно обьяснил

Совсем непонятно. Пожалуйста, напишите вопрос еще раз и четко объясните:
По какому закону изменяются числа? (если это random, то тут и думать нечего)
Кто должен определить цифру и как?
Модуль этой же программы? (тогда это все бред)
Сторонняя программа? (Но это помимо определения числа, еще и программная реализация)


--------------------
С уважением, А. Фролов.
PM MAIL ICQ   Вверх
polosatij
Дата 20.7.2005, 17:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1143
Регистрация: 22.2.2004
Где: Stuttgart<-> ;Karlsruhe, Germany

Репутация: нет
Всего: 8



фуууууууууф.. отвечаю по порядку smile

но задачку решил сам... (немного по другому, пришлось декомпилироватъ и врезать..).. но задачка остаётся в силе...


Цитата(Earnest @ 19.7.2005, 19:04)
В смысле, функцию "писать цифры" изменить нельзя?


да.. она неизменима.. предоставляется системой (про цифры я взял ради упрощения..)


Цитата(Earnest @ 19.7.2005, 19:04)
Тогда обернуть ее вызов, запоминая в какой-нибудь переменной последнюю цифру...


програма заканчивая работу стоит, например, на 5.. ты знаешь, что закончилась програма.. но запуская програму заного, как ты скажешь ей, что последнее число у тебя именно "5" ?

у меня один и тот же метод вызывается несколько раз.. он же скажет, что у тебя число "3" было последнее, когда програма зайдет в него (а програма еще не закончиться).. тоже произойдет с числом "4".. и "5".. представь себе бег по кругу.. и на одном участке програма просто плюсует еще один круг.. но как ей узнать, что ето последний?


Цитата(Earnest @ 19.7.2005, 19:04)
Да и вообще, что значит - нет конца программы - конец программы есть всегда, разве что ее terminate'ом убивают.


взято это из за того => никогда не известно, сколько раз програма будет вызвана юзером.. поетому считаем что програма будет выполнена бесконечное число раз..



Цитата
И еще по поводу отсутствия конца программы. Ты что, изобрел вечный двигатель? 



см. чуть выше smile


Цитата(III @ 19.7.2005, 19:40)
1. Поясните пожалуйста вашу программу (желательно исходник).



не могу.. так как
1. это не моё
2. декомпилировать придётся многие участки.. какие именно, мне лень разбираться, т.к. очень много работы там..


Цитата(III @ 19.7.2005, 19:40)
2. Можно делать запоминание следующими методами (на конце должен быть файл, или значение не сохранится)


на каком конце?
представь себе ты бежишь по кругу.. см. чуть выше smile


Цитата(III @ 19.7.2005, 19:40)
б) из функции писать сразу в файл.


а что мне это даст?

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


Цитата(III @ 19.7.2005, 19:40)
в) писать в некий integer последнее значение.


а дальше?

запустишь програму.. как она поймёт, что это именно последнее значение, а не предпоследнее, например?

Цитата
А откуда тогда берется последнее число?


по логике вешей оно существует.. т.к. програма рано или поздно заканчивается.. его можно узнать..
но вызывая програму во второй раз, как мне сказать, что оно именно последнее? у меня "круг".. если я ему скажу:

count > 0 => то это обозначает ещё, что програма один раз заходила в методу..


Цитата
Не понятно - дальше - это по порядку или рандомом? И вообще к чему такое условие если надо узнать последнюю цифру?


нет.. это не рандом.. это +1

Цитата
И самый главный вопрос:............зачем


нужно узнать, запущема ли програма во второй раз, или всё еще работает в первый..

Добавлено @ 17:40
итак.. обьясняю еще раз:

имеется круг. представляем, мы забегаем в этот круг. если оббегаем его - прибавляем единицу.. при пробеге в 5 кругов получаем 5 единиц. при забеге первый раз (мы можем забежать туда первый раз, включаем комп) наш отчёт начинается с чифры "1"..

итак.. на этом кругу наша метода.. она говорит: "пробежал круг => +1".

теперь представим, что програма зашла в круг и прошла 5 раз..
наше число становится равным "5".. мы знаем, что проргамма закончена.. но мы знаем об этом, не компьютер (т.к. нельзя в плаг-ин врезать, где же у неё конец).

мы можем поставить что угодно НО ТОЛЬКО НА КРУГУ.. но вот только, если мы поставим число "5".. как мы узнаем, что это был наш последний круг в предыдущем забеге, а не в этом же?


н-да.. пока объяснял.. вижу, что для этой задачи мало данных.. с такими данными она никак не решается.. smile

ладно.. забудем бредни полосатого... smile


--------------------
PM   Вверх
Akina
Дата 20.7.2005, 17:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Советчик
****


Профиль
Группа: Модератор
Сообщений: 20581
Регистрация: 8.4.2004
Где: Зеленоград

Репутация: 20
Всего: 454



Проблема - сохранение истории работы программы, как я понимаю... при том что сама программа этого не умеет...

Насколь я понял, существует способ сообщить программе, с какого места она должна стартовать - так? тогда обернуть ее неким запускателем-детектором, который будет регистрировать "проходы" и сохранять... в реестре, в файле, да пофиг где... или сохранять контекст программы и вместо запуска восстанавливать ее предыдущее состояние - как это делают, скажем, дебаггеры, или как ОС себя сохраняет при гибернации (как вариант запускать в виртуальной машине - там тоже есть режим сохранения контекста, правда всей ОС, да и с сетевыми коннектами проблемы)...

Для более осмысленных ответов пора бы перестать играть в тайны Мадридского двора и вместо каких-то там абстрактных цифирей рассказать, что таки происходит на самом деле. Не боись - авось не перегреемся...


--------------------
 О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума.

PM MAIL WWW ICQ Jabber   Вверх
Петрович
Дата 20.7.2005, 19:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1000
Регистрация: 2.12.2003
Где: Москва

Репутация: нет
Всего: 55



Уфф. Однако замысловато вы излагаете.
Но, всетаки попробую сформулировать Вашу мысль smile.
Насколько я понял, есть программа без исходников. И есть плагин к ней, написанный Вами.
Их взаимодействие таково: программа, после запуска может N-е число раз вызвать функцию из плагина.
При этом, она будет передавать туда некоторое, монотонно возрастающее значение. Плагин должен сохранить значение, которое было передано в него последним, перед завершением основной программы. Соответственно, при первом после запуска программы вызове плагина, он должен как то использовать именно сохраненное число. Сложность задачи в том, что плагину не сообщают о старте/завершении программы.
Вот как Ваш бред, простите откровенность, понял я.
Если это близко к истине, то сначала задам вопрос о том как реализуется Ваш плагин. Это Dll, или что-то другое? От ответа на этот вопрос зависит и способ решения задачи.



--------------------
Все знать невозможно, но хочется
PM ICQ   Вверх
polosatij
Дата 21.7.2005, 13:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1143
Регистрация: 22.2.2004
Где: Stuttgart<-> ;Karlsruhe, Germany

Репутация: нет
Всего: 8



Цитата
Уфф. Однако замысловато вы излагаете.


думаете? smile



Цитата
Насколько я понял, есть программа без исходников. И есть плагин к ней, написанный Вами.
Их взаимодействие таково: программа, после запуска может N-е число раз вызвать функцию из плагина.
При этом, она будет передавать туда некоторое, монотонно возрастающее значение. Плагин должен сохранить значение, которое было передано в него последним, перед завершением основной программы. Соответственно, при первом после запуска программы вызове плагина, он должен как то использовать именно сохраненное число. Сложность задачи в том, что плагину не сообщают о старте/завершении программы.
Вот как Ваш бред, простите откровенность, понял я.



правильно поняли smile


Цитата
Если это близко к истине, то сначала задам вопрос о том как реализуется Ваш плагин. Это Dll, или что-то другое? От ответа на этот вопрос зависит и способ решения задачи.



это .java, декомпилировать не позволяют условия..


--------------------
PM   Вверх
Петрович
Дата 21.7.2005, 14:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1000
Регистрация: 2.12.2003
Где: Москва

Репутация: нет
Всего: 55



Цитата(polosatij @ 21.7.2005, 14:58)
это .java

Жаль smile. В .java я не силен, точнее полный профан. Я даже не знаю как там стыкуются с плгинами. smile
Тогда, народ правильно предлагал. Можно сделать некий "пускач" который будет запускаться вместо основной прогрнаммы. Он, в свою очередь, будет фиксировать запуск (в простейшем случае например создавать файл) и запускать само приложение и дожидаться его завершения. После завершения приложения он может фиксировать и факт завершения приложения (если надо). Плагин же может использовать информацию оставленную "пускачем" для определения первого вызова после запуска приложения.
В общем что-то в этом роде.
А можно и по другому. Если плагин работает в контексте процесса основной программы, то он может просто загрузить в память Dll-ку (подключить к процессу) а та в свою очередь получит управления в момент выгрузки.
Возможно в .java есть и другие механизмы.
Например вполть до навешивания хука на завершение процесса.


--------------------
Все знать невозможно, но хочется
PM ICQ   Вверх
Дрон
Дата 29.7.2005, 17:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Java-ненавистник :)
****


Профиль
Группа: Участник Клуба
Сообщений: 3179
Регистрация: 29.12.2002
Где: Санкт-Петербург

Репутация: нет
Всего: 93



То, что писал polosatij я вообще не понял, поэтому ориентируюсь на Петровича.

Цитата
При этом, она будет передавать туда некоторое, монотонно возрастающее значение. Плагин должен сохранить значение, которое было передано в него последним, перед завершением основной программы.

Э... Ну так и сохраняем каждое поступившее значение smile
Зачем нам вообще знать о завершении программы?





--------------------
Да. Именно так.
PM   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Алгоритмы"

maxim1000

Форум "Алгоритмы" предназначен для обсуждения вопросов, связанных только с алгоритмами и структурами данных, без привязки к конкретному языку программирования и/или программному продукту.


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, maxim1000.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Алгоритмы | Следующая тема »


 




[ Время генерации скрипта: 0.0584 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.