|
119 / 84 / 42
Регистрация: 14.12.2015
Сообщений: 945
|
||||||
Различные данные при автоматическом выполнении программы и при пошаговом22.05.2019, 09:18. Показов 1640. Ответов 17
Метки нет (Все метки)
Здравствуйте. Есть небольшой кусок кода. Если выполнять программу в пошаговом режиме то массивы имеют различные значения. Если выполнять просто через F5, то массивы имеют одинаковые значения. В чем может быть проблема?
0
|
||||||
| 22.05.2019, 09:18 | |
|
Ответы с готовыми решениями:
17
Пропуск строк кода при пошаговом выполнении программы Ошибка при пошаговом выполнении программы. Enternal Error EVA-1425
|
|
964 / 582 / 268
Регистрация: 20.12.2016
Сообщений: 1,506
|
||||||
| 22.05.2019, 12:05 | ||||||
0
|
||||||
|
964 / 582 / 268
Регистрация: 20.12.2016
Сообщений: 1,506
|
||||||
| 22.05.2019, 12:25 | ||||||
|
Элд Хасп, Синтаксис позволяет писать по разному, главное инициализоровать переменную перед первым использованием. А остальное дело вкуса. Лично я бы писал так:
0
|
||||||
|
Модератор
|
|||||||
| 22.05.2019, 12:36 | |||||||
Random в каждом вызове метода. Перенос инициализации из метода Input в метод Main концептуально ничего не решает. Только переносит место возникновения ошибки из одного метода в другой.Да, в данном случае, Вы вызываете метод Main один раз и поэтому ошибка не возникает, но это частный случай. В целом такой подход не исправляет ошибку, а использует особенность работы частного алгоритма вызова метода.Так же здесь нарушается независимость методов. Переменная rnd - это статическая переменная уровня класса. Используется она только в методе Input. Так с какой стати метод Main лезет туда? Это его совершено не касается!Если уж так хочется инициализировать поле не напрямую, а в методе, то делать это надо в статическом конструкторе. Но, на мой взгляд, это избыточно.
0
|
|||||||
|
119 / 84 / 42
Регистрация: 14.12.2015
Сообщений: 945
|
||||||
| 22.05.2019, 14:51 [ТС] | ||||||
|
Элд Хасп, Я Вашу мысль правильно понял, что вот эту строку стоит просто прописать в классе где находится метод Input, т.е. просто сделать как поле типа static?
0
|
||||||
|
119 / 84 / 42
Регистрация: 14.12.2015
Сообщений: 945
|
|
| 22.05.2019, 20:00 [ТС] | |
|
Элд Хасп, а можно пожалуйста расшифровать ГСЧ?
0
|
|
|
1123 / 794 / 219
Регистрация: 15.08.2010
Сообщений: 2,185
|
|
| 22.05.2019, 20:06 | |
|
1
|
|
|
119 / 84 / 42
Регистрация: 14.12.2015
Сообщений: 945
|
|||||||
| 18.06.2019, 10:14 [ТС] | |||||||
0
|
|||||||
|
6691 / 4102 / 1607
Регистрация: 09.05.2015
Сообщений: 9,574
|
||
| 18.06.2019, 10:29 | ||
|
0
|
||
|
17823 / 12973 / 3382
Регистрация: 17.09.2011
Сообщений: 21,261
|
||
| 18.06.2019, 10:33 | ||
|
1
|
||
|
Модератор
|
||
| 18.06.2019, 12:18 | ||
Random обходится дорого, чего согласно документации надо избегать https://docs.microsoft.com/ru-... antiations. Поэтому, если нет опасности конфликтов из-за многопоточности, то самый простой вариант - это статическое поле для чтения.В Вашем примере если статические поля rnd в разных классах будут инициализированы одновременно (по-моему, в пределах ~20мс), то они будут выдавать одинаковые последовательности. Насколько это вероятно, и насколько это может отрицательно повлиять на работу приложения надо разбираться отдельно в каждом конкретном случае. В зависимости от предъявляемых в конкретном приложении требований к ГСЧ: многопоточность, очень частые вызовы (чаще чем справляется один экземпляр ГСЧ), гарантия разной инициализации в разных типах и т.д, - надо создавать и разные реализации ГСЧ. Статическое поле в типе обеспечивает случайные числа для каждого экземпляра типа, даже если они создаются последовательно за очень короткое время. Но может создать коллизии при его использовании в многопоточном приложении.
1
|
||
|
6691 / 4102 / 1607
Регистрация: 09.05.2015
Сообщений: 9,574
|
|||
| 18.06.2019, 12:36 | |||
|
https://docs.microsoft.com/ru-... readSafety
1
|
|||
|
Модератор
|
||
| 18.06.2019, 12:44 | ||
|
Не знал об этом. Думал просто могут быть какие-то исключения если обращения к экземпляру будет единовременно.
0
|
||
| 18.06.2019, 12:44 | |
|
Помогаю со студенческими работами здесь
18
Как сохранить данные в ОЗУ которые при выполнении программы изменяются в компонентах? Различные результаты при выполнении цикла Что будет выведено на экран при выполнении следующей программы при n = 5 ? При передачи указателя на объект vector в качестве параметра при выполнении программы происходит ошибк сегметирования Постепенное выполнение программы/зависание программы при выполнении Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Символьное дифференцирование
igorrr37 13.02.2026
/ *
Логарифм записывается как: (x-2)log(x^2+2) - означает логарифм (x^2+2) по основанию (x-2).
Унарный минус обозначается как !
в-строка - входное арифметическое выражение в инфиксной(обычной). . .
|
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
|
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу,
и светлой Луне.
В мире
покоя нет
и люди
не могут жить в тишине.
А жить им немного лет.
|
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила»
«Время-Деньги»
«Деньги -Пуля»
|
|
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога
Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
|
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога
Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
|
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL3_image
8Observer8 10.02.2026
Содержание блога
Библиотека SDL3_image содержит инструменты для расширенной работы с изображениями. Пошагово создадим проект для загрузки изображения формата PNG с альфа-каналом (с прозрачным. . .
|
Установка Qt-версии Lazarus IDE в Debian Trixie Xfce
volvo 10.02.2026
В общем, достали меня глюки IDE Лазаруса, собранной с использованием набора виджетов Gtk2 (конкретно: если набирать текст в редакторе и вызвать подсказку через Ctrl+Space, то после закрытия окошка. . .
|