Форум программистов, компьютерный форум, киберфорум
C++ Builder
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.85/27: Рейтинг темы: голосов - 27, средняя оценка - 4.85
0 / 0 / 0
Регистрация: 05.05.2013
Сообщений: 3

Выход из обработчика onclick

05.05.2013, 12:51. Показов 5687. Ответов 39
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Добрый день! У меня есть примерно такой код в С++ builder:
C++
1
2
3
4
5
6
7
8
9
10
void __fastcall TForm1::Button1Click(TObject *Sender)
{
  
     while(1)
     {
      //тело цикла
     
     }
  
}
как внутри бесконечного цикла организовать проверку нажатия кнопки на клавиатуре, по результатам которой будет происходить выход из цикла? Заранее спасибо.
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
05.05.2013, 12:51
Ответы с готовыми решениями:

Создание обработчика события Onclick с дополнительными парметрами
Всем привет. Есть дочерний класс от TPanel. И для него потребовалось создать обработчик OnClick с дополнительным параметром. Что-то...

Удалить кнопку из ее же обработчика OnClick
описал свой тип с компонентами button и checkbox type TTest = record check:TCheckBox; btnDel:TButton; ...

Валидация формы из обработчика onclick
Почему не работает даный код? <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Document</title> ...

39
Evg
Эксперт CАвтор FAQ
 Аватар для Evg
21281 / 8305 / 637
Регистрация: 30.03.2009
Сообщений: 22,660
Записей в блоге: 30
05.05.2013, 17:44
Студворк — интернет-сервис помощи студентам
Цитата Сообщение от Avazart Посмотреть сообщение
Evg, Я чет не пойму это к чему это ты ...
Вариант с ProcessMessages - это попытка лёгкого исправления ситуации, содержащая подводные камни. Точно так же, как вариант с Lock/Unlock кажется лёгким, но на поверку оказывается содержащим подводные камни. Если взять пример из поста Анимация ожидания, запустить, во время исполнения таскать мышкой программу за заголовок, то программа подвисает, потому что где-то что-то не учли, а где и что - хз

Твою программу по ссылке запустить не могу - требует rtl170.bpl
0
Эксперт С++
 Аватар для Avazart
8484 / 6151 / 615
Регистрация: 10.12.2010
Сообщений: 28,683
Записей в блоге: 30
05.05.2013, 18:13
Цитата Сообщение от Evg Посмотреть сообщение
Если взять пример из поста Анимация ожидания, запустить, во время исполнения таскать мышкой программу за заголовок, то программа подвисает
Странно у меня вроде не подвисает, т.е программа не падает совсем.

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

Интерфейс конечно может кратковременно не отвечать, но это нормально и ожидаемо..
То что делается с применением Lock/Unlock, имеет тот же эффект что делать эти действия в основном потоке, ибо канва разделяемый ресурс и тут никак иначе.

Из чего следует как и писал MikeSoft, выигрыша в производительности при этом нет никакого.
Единственный смысл уменьшение подвисаний, и возможность чередовать некоторые действия.

Так же как с применением ProcessMessages() чередуются действия выполняемые в цикле с обработкой сообщений клавиатуры ( идр ).

Кстати можно таким же образом использовать TTimer.

Добавлено через 7 минут
Возникает вопрос когда же будет выигрыш при использовании потока ?

-Выигрыш будет, если будут еще какие нибудь вычисления в потоке, время выполнения которых будет значительно превышать время занимаемое действиями требующими синхронизации.
0
Эксперт С++
 Аватар для Avazart
8484 / 6151 / 615
Регистрация: 10.12.2010
Сообщений: 28,683
Записей в блоге: 30
05.05.2013, 18:22
Цитата Сообщение от Evg Посмотреть сообщение
Твою программу по ссылке запустить не могу - требует rtl170.bpl
Вот пересобрал
Вложения
Тип файла: rar TThread Рисование на канве.rar (1.05 Мб, 9 просмотров)
1
Evg
Эксперт CАвтор FAQ
 Аватар для Evg
21281 / 8305 / 637
Регистрация: 30.03.2009
Сообщений: 22,660
Записей в блоге: 30
06.05.2013, 16:22
Цитата Сообщение от Avazart Посмотреть сообщение
Странно у меня вроде не подвисает, т.е программа не падает совсем
Ну ты же сам понимаешь, что программа с неинициализированными данными у кого-то будет работать, у кого-то падать. Если у кого-то программа подвисает (точнее, подвисал счётчик, а не программа), значит программа содержит ошибку. Которая ещё и плохо воспроизводится. Значит в программе что-то не так

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

Цитата Сообщение от Avazart Посмотреть сообщение
Интерфейс конечно может кратковременно не отвечать, но это нормально и ожидаемо..
А вот когда в момент подвисания окно программы нельзя ни свернуть, ни передвинуть - это не нормально

Цитата Сообщение от Avazart Посмотреть сообщение
з чего следует как и писал MikeSoft, выигрыша в производительности при этом нет никакого.
Единственный смысл уменьшение подвисаний, и возможность чередовать некоторые действия
Я вопросы про создание потоков с целью борьбы с заморозкой gui много раз уже на форуме задавал. Почему-то мне все пытаются доказать, что выигрыша в производительности не будет, хотя я этого не жду и вообще об этом не заикаюсь. Может, потому что замораживание программы люди считают чем-то само собой разумеющимся и неизбежным. Я, во всяком случае, считаю, что любое замораживание, или тыканье на кнопку без какой-либо реакции (которая в реальности проявляется только через 5 секунд или через минуту) - это не нормально и говорит о том, что пользовательский интерфейс плохой

Цитата Сообщение от Avazart Посмотреть сообщение
Вот пересобрал
Дома запущу
0
06.05.2013, 16:37

Не по теме:

Ну вот. А я на такую вкусную тему опоздал. :cry:

0
 Аватар для Tarik20
21 / 22 / 5
Регистрация: 14.02.2013
Сообщений: 243
06.05.2013, 19:04
Цитата Сообщение от Yurik7272 Посмотреть сообщение
Добрый день! У меня есть примерно такой код в С++ builder:
C++
1
2
3
4
5
6
7
8
9
10
void __fastcall TForm1::Button1Click(TObject *Sender)
{
  
     while(1)
     {
      //тело цикла
     
     }
  
}
как внутри бесконечного цикла организовать проверку нажатия кнопки на клавиатуре, по результатам которой будет происходить выход из цикла? Заранее спасибо.
C++
1
return;
И без мороки.
0
Эксперт С++
 Аватар для Avazart
8484 / 6151 / 615
Регистрация: 10.12.2010
Сообщений: 28,683
Записей в блоге: 30
06.05.2013, 19:08
Цитата Сообщение от Evg Посмотреть сообщение
Ну ты же сам понимаешь, что программа с неинициализированными данными у кого-то будет работать, у кого-то падать. Если у кого-то программа подвисает (точнее, подвисал счётчик, а не программа), значит программа содержит ошибку. Которая ещё и плохо воспроизводится. Значит в программе что-то не так
Если программа не падает, а все же продолжает отвечать, то это проблема не синхронизации...

И я не уверенно правильно говорить что это вообще проблема вне контекста.
Все зависит от требований к программе...

В данном случае контекст рисования не особо подходит, так как требуется больше "отклика программы"

Но к примеру 5 секунд это вполне нормально, если к примеру поток выигрывает 30 минут при расчетах, а 5 сек тратятся на вывод этих данных, почему нет ?

Не каждые же 5 секунд пользователь дергает окно программы как будто у него мышка сбесилась.

1 минутная задержка это конечно не хорошо и тут возможно стоит пересмотреть алгоритм и требования к программе.

Цитата Сообщение от Evg Посмотреть сообщение
Я вопросы про создание потоков с целью борьбы с заморозкой gui много раз уже на форуме задавал. Почему-то мне все пытаются доказать, что выигрыша в производительности не будет, хотя я этого не жду и вообще об этом не заикаюсь.
Ну опять же зависит от контекста, к примеру рисовать можно ( или скорее всего нужно ) в основном потоке
в событии OnPaint.
Зачем тут поток если нет выигрыша ?

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

Цитата Сообщение от Evg Посмотреть сообщение
Может, потому что замораживание программы люди считают чем-то само собой разумеющимся и неизбежным.
По тому что в определенных задачах GUI отступает на последний план по сравнению общей производительностью.
К примеру серверу он совсем не нужен, лучше пусть лог-файл ведет, что бы синхронизация c GUI не давала проигрыш в производительности.
0
 Аватар для Lelik-pahan
1703 / 899 / 207
Регистрация: 25.11.2009
Сообщений: 1,848
06.05.2013, 19:09
Tarasichok, ты считаешь. что return - это ответ на вопрос
Цитата Сообщение от Tarasichok Посмотреть сообщение
как внутри бесконечного цикла организовать проверку нажатия кнопки на клавиатуре
???
0
Эксперт С++
 Аватар для Avazart
8484 / 6151 / 615
Регистрация: 10.12.2010
Сообщений: 28,683
Записей в блоге: 30
06.05.2013, 19:12
Цитата Сообщение от Tarasichok Посмотреть сообщение
И без мороки.
Цитата Сообщение от Lelik-pahan Посмотреть сообщение
Tarasichok, ты считаешь. что return - это ответ на вопрос
Краткость - сестра дилетанта.
0
Evg
Эксперт CАвтор FAQ
 Аватар для Evg
21281 / 8305 / 637
Регистрация: 30.03.2009
Сообщений: 22,660
Записей в блоге: 30
06.05.2013, 20:06
Цитата Сообщение от Avazart Посмотреть сообщение
И я не уверенно правильно говорить что это вообще проблема вне контекста
Если ты о программе MikeSoft, то его программа был демонстрационный пример, как можно из потока обращаться к VCL-элементу. И эта демонстрация работает не правильно (не так, как автор задумал)

Цитата Сообщение от Avazart Посмотреть сообщение
Но к примеру 5 секунд это вполне нормально, если к примеру поток выигрывает 30 минут при расчетах, а 5 сек тратятся на вывод этих данных, почему нет ?
Я не понимаю, о чём ты говоришь. Если о выигрыше в производительности, которую даёт поток, то в данной теме (и во всех других моих темах) мне ни разу не интересно. Я всегда чётко оговаривал, что поток создаётся ради того, чтобы GUI не тупил на долгих операциях. Вообще такая реакция может говорить о двух вещах. Для этих целей используют не потоки, а что-то другое, все об этом знаю, но молчат как партизаны. Либо люди об этом не задумываются и им пофигу на то, что пользователя такое поведение программы раздражает или, чего доброго, вводит в ступор

Цитата Сообщение от Avazart Посмотреть сообщение
Зачем тут поток если нет выигрыша ?
Выигрыш в том, что программа не тупит. А затраты на это не такие уж и большие

Цитата Сообщение от Avazart Посмотреть сообщение
По тому что в определенных задачах GUI отступает на последний план по сравнению общей производительностью.
К примеру серверу он совсем не нужен, лучше пусть лог-файл ведет, что бы синхронизация c GUI не давала проигрыш в производительности
Вообще-то речь идёт (и шла во всех темах, о которых я упомянул) исключительно о GUI-приложениях и о вполне конкретному требованию к ней - чтобы программа не замораживалась. Серверы без GUI тут вообще не при чём
0
Эксперт С++
 Аватар для Avazart
8484 / 6151 / 615
Регистрация: 10.12.2010
Сообщений: 28,683
Записей в блоге: 30
06.05.2013, 20:13
Ну я как бы стараюсь хоть как-то поддерживать тему ТС :
Цитата Сообщение от Yurik7272 Посмотреть сообщение
как внутри бесконечного цикла организовать проверку нажатия кнопки на клавиатуре, по результатам которой будет происходить выход из цикла? Заранее спасибо.
Ибо не известно что у него делается в цикле
C++
1
2
3
4
5
     while(1)
     {
      //тело цикла
     
     }
Добавлено через 2 минуты
Цитата Сообщение от Evg Посмотреть сообщение
Я всегда чётко оговаривал, что поток создаётся ради того, чтобы GUI не тупил на долгих операциях. Вообще такая реакция может говорить о двух вещах. Для этих целей используют не потоки, а что-то другое, все об этом знаю, но молчат как партизаны. Либо люди об этом не задумываются и им пофигу на то, что пользователя такое поведение программы раздражает или, чего доброго, вводит в ступор
Что-то другое это что ?

Как бы других инструментов нет, да и по сути не нужны, главное правильно распорядится существующими.
0
Evg
Эксперт CАвтор FAQ
 Аватар для Evg
21281 / 8305 / 637
Регистрация: 30.03.2009
Сообщений: 22,660
Записей в блоге: 30
06.05.2013, 21:57
Цитата Сообщение от Avazart Посмотреть сообщение
Ибо не известно что у него делается в цикле
Ну там уже пофигу что делается в цикле. Если там делается много чего, то значит программа не так спроектирована. Во всяком случае я так считаю. С таким вариантом ТС согласился чуть ли не с полуслова, а потому, вероятно, он тоже разделяет мою точку зрения на то, что программа не должна замораживать пользовательский интерфейс

Цитата Сообщение от Avazart Посмотреть сообщение
Что-то другое это что ?
Я не знаю Просто так получилось, что я всю жизнь занимался консольными программами. GUI'вых программ я написал всего две. И при всём том у меня было стойкое мнение, что замороженный интерфейс - это вовсе не фича, а лень или незнание программиста

Цитата Сообщение от Avazart Посмотреть сообщение
главное правильно распорядится существующими
Ну вот об том речь и идёт. В качестве одного из инструментов было предъявлено ProcessMessages. Но тут мы вроде бы с тобой сходимся во мнении, что это не лекарство, а затычка. Пример от MikeSoft я привёл как демонстрацию того, что технически лёгкие способы решения оказываются не такими уж и правильными.
0
Эксперт С++
 Аватар для Avazart
8484 / 6151 / 615
Регистрация: 10.12.2010
Сообщений: 28,683
Записей в блоге: 30
06.05.2013, 22:08
Цитата Сообщение от Evg Посмотреть сообщение
Я не знаю Просто так получилось, что я всю жизнь занимался консольными программами. GUI'вых программ я написал всего две. И при всём том у меня было стойкое мнение, что замороженный интерфейс - это вовсе не фича, а лень или незнание программиста
А чем тут консольки отличаются? Ровным счетом не чем, все так же - пока программа выполняется ты ничего не можешь кроме как убить её насильно ...

Единственно отличие - большее количество и более сложные разделяемые ресурсы.
0
Evg
Эксперт CАвтор FAQ
 Аватар для Evg
21281 / 8305 / 637
Регистрация: 30.03.2009
Сообщений: 22,660
Записей в блоге: 30
06.05.2013, 22:31
Цитата Сообщение от Avazart Посмотреть сообщение
Ровным счетом не чем
Неправда. Консольная программа запускается в условно однозадачном терминале. Т.е. пока программа работает, пользователь от неё больше ничего и не ждёт (потому что пользователю некуда нажать). В то время как графическое окно имеет кнопочки, окно можно перетащить, свернуть-развернуть-максимизировать и т.п. Пока у тебя программа качает данные из инета, ты имеешь возможность залезть в опции, во встроенный help или что-то ещё. А в консольной программе этого всего нет и логика консольной программы всего этого не предусматривает

Добавлено через 13 минут
Посмотрел твой пример. Это те же самые Lock/Unlock, но в таком простейшем случае всё чётко и железно работает. Правда такая программа уже несколько выходит за рамки типового GUI-приложения (т.к. в ней много динамики). Тем не менее, наконец воочию увидел работающую программу с Lock/Unlock. Вариант от MikeSoft по своей сути отличается несильно, но тем не менее глючит. Как вариант, есть какие-то хитрости и тонкости при работе с этими штуками. В своё время у меня так же не получилось надёжно задействовать Lock/Unlock и я просто забил на них, потому что непонятно было, как искать причину проблемы
0
Эксперт С++
 Аватар для Avazart
8484 / 6151 / 615
Регистрация: 10.12.2010
Сообщений: 28,683
Записей в блоге: 30
06.05.2013, 22:45
Консольная программа запускается в условно однозадачном терминале.
Никто не мешает делать многопоточную консоль: с меню, с одновременным выполнением нескольких операций итп.

С другой стороны GUI может оповещать пользователя что необходимо ждать: изменением вида курсора, видом окна итп.

Так что это вопрос предусмотрено / не предусмотрено.

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

- опять же все определятся требованиями к программе.

Добавлено через 8 минут
Посмотрел твой пример. Это те же самые Lock/Unlock
Ну там как я помню еще вариант закоментированый с Synchronyze() за него не буду говорить ибо не уверен в том как он реализован.

А синхронизация с блокированием ресурса в Builder внешне выглядит также. как в Qt или boost.

Но это лишь один из подходов к реализации синхронизации между потоками, так же можно использовать обмен сообщениями, что иногда куда более выгоднее в плане эффективности.
0
Evg
Эксперт CАвтор FAQ
 Аватар для Evg
21281 / 8305 / 637
Регистрация: 30.03.2009
Сообщений: 22,660
Записей в блоге: 30
06.05.2013, 22:50
Цитата Сообщение от Avazart Посмотреть сообщение
Никто не мешает делать многопоточную консоль: с меню, с одновременным выполнением нескольких операций итп
Это совсем другой класс приложений. Это те же самые Gui-приложения, только вместо графики используется текстовая консоль.

Цитата Сообщение от Avazart Посмотреть сообщение
С другой стороны GUI может оповещать пользователя что необходимо ждать: изменением вида курсора, видом окна итп
Проблема не в том, чтобы оповещать или нет, а в том, что у тебя программа никак не будет реагировать на внешние воздействия. Запустил ты свой браузер, он долго скачивает страницу. Переключился на другое приложение, потом вернулся опять к браузеру. А там - белый экран, потому что программа заморозилась. В итоге нет новой страницы, т.к. она ещё не скачалась, но уже и старая не отображается, потому что событие прорисовки позвать некому. Это явно не фича, а недоработка

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

Цитата Сообщение от Avazart Посмотреть сообщение
- опять же все определятся требованиями к программе.
И желанием программиста. Некоторые делают по человечески, а некоторые - как получится.

Добавлено через 1 минуту
Цитата Сообщение от Avazart Посмотреть сообщение
так же можно использовать обмен сообщениями, что иногда куда более выгоднее в плане эффективности
Я у себя так и делал. Поток, поработав, кидает сообщение, главный процесс забирает результат и отображает его.
0
Эксперт С++
 Аватар для Avazart
8484 / 6151 / 615
Регистрация: 10.12.2010
Сообщений: 28,683
Записей в блоге: 30
06.05.2013, 23:10
Цитата Сообщение от Evg Посмотреть сообщение
Это совсем другой класс приложений. Это те же самые Gui-приложения, только вместо графики используется текстовая консоль.
Да тут только разница однопоточная / многопоточная.

Собственно задача многопоточности получить выигрыш во времени и/или перераспределить нагрузку ( что в глобальном смысле одно и тоже)

Цитата Сообщение от Evg Посмотреть сообщение
Проблема не в том, чтобы оповещать или нет, а в том, что у тебя программа никак не будет реагировать на внешние воздействия. Запустил ты свой браузер, он долго скачивает страницу. Переключился на другое приложение, потом вернулся опять к браузеру. А там - белый экран, потому что программа заморозилась. В итоге нет новой страницы, т.к. она ещё не скачалась, но уже и старая не отображается, потому что событие прорисовки позвать некому. Это явно не фича, а недоработка
К браузеру с свои требования ...

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

Цитата Сообщение от Evg Посмотреть сообщение
И желанием программиста. Некоторые делают по человечески, а некоторые - как получится.
Ну я за, то что бы, как платят так и делать ...
Ибо кому нужны неоплачиваемые затраты труда ?
К тому же реализацию многопоточности можно отсрочить до лучших времен, когда логика уже будет хорошо продумана и протестирована.
0
0 / 0 / 0
Регистрация: 05.05.2013
Сообщений: 3
20.06.2013, 12:49  [ТС]
Огромное спасибо всем за помощь, проблема решилась с помощью ProcessMessages, а с многопотоковостью мне пока трудновато.
0
Заблокирован
27.03.2015, 17:01
Цитата Сообщение от Yurik7272 Посмотреть сообщение
как внутри бесконечного цикла организовать проверку нажатия кнопки на клавиатуре, по результатам которой будет происходить выход из цикла? Заранее спасибо.
Я примерно вот так делаю во всех своих проектах.
C++
bool bquit;
char bkey[256];
 
// ...
 
bquit = false;
 
while ( !bquit )
{
    for ( int i = 0; i < 256; i ++ )
        bkey[i] = GetAsyncKeyState(i);
 
    if ( bkey[VK_ESCAPE] == true )
        bquit = true;
}
1
Почетный модератор
12274 / 5340 / 268
Регистрация: 05.04.2011
Сообщений: 14,086
Записей в блоге: 2
27.03.2015, 19:15
maritux, keepitsimple3, еще раз увижу нечто подобное - пойдете отдыхать надолго.

Тема почищена.
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
27.03.2015, 19:15
Помогаю со студенческими работами здесь

<input> вызов onclick-обработчика по нажатию enter
Требуется чтобы когда фокус на кнопке, вызывалась/лись функция/и, привязанная/ые к onclick &lt;input id=&quot;button&quot;...

Программное создание обработчика события OnClick для button
Иметься кнопка, которая создается самим пользователем Код создания кнопки: public void CreateButton() { LinearLayout...

Выход из обработчика события
Подскажите пожалуйста как в С++ (Visual Studio 2008) выйти из обработчика событий. Конкретно: проект Windows Form Apllication, как выйти...

Выход из обработчика прерывания
Задача: По прерыванию (нажатие кнопки) нужно покинуть рабочий цикл и передать управление некой подпрограмме. Обработчик прерывания: ...

Выход из обработчика прерывания
Есть обработчик прерывания, который проверяет состояние кнопки и в зависимости от состояния кнопки переходит в определенный адрес. Как...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
40
Ответ Создать тему
Новые блоги и статьи
http://iceja.net/ математические сервисы
iceja 20.01.2026
Обновила свой сайт http:/ / iceja. net/ , приделала Fast Fourier Transform экстраполяцию сигналов. Однако предсказывает далеко не каждый сигнал (см ограничения http:/ / iceja. net/ fourier/ docs ). Также. . .
http://iceja.net/ сервер решения полиномов
iceja 18.01.2026
Выкатила http:/ / iceja. net/ сервер решения полиномов (находит действительные корни полиномов методом Штурма). На сайте документация по API, но скажу прямо VPS слабенький и 200 000 полиномов. . .
Расчёт переходных процессов в цепи постоянного тока
igorrr37 16.01.2026
/ * Дана цепь постоянного тока с R, L, C, k(ключ), U, E, J. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа, решает её и находит переходные токи и напряжения на элементах схемы. . . .
Восстановить юзерскрипты Greasemonkey из бэкапа браузера
damix 15.01.2026
Если восстановить из бэкапа профиль Firefox после переустановки винды, то список юзерскриптов в Greasemonkey будет пустым. Но восстановить их можно так. Для этого понадобится консольная утилита. . .
Сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11 — это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11 Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
Почему дизайн решает?
Neotwalker 09.01.2026
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru