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

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

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 17.12.2016, 22:07   #91
ura_111
Участник клуба
 
Регистрация: 14.05.2016
Сообщений: 1,793
По умолчанию

Да, я не буду больше вмешиваться в твою работу с программой. Надо и тебе что-нибудь сделать самостоятельно. Но, напоследок, могу дать пару советов по исследованию программы:
1) Перечитай мой пост от 15.12.2016, 16:20.
2) Свяжись с разработчиком программы, с целью чтобы он рассказал о её структуре.
3) Теперь о том, как проследить какой участок кода выполняется в первую очередь, а какой во-вторую... где точка входа, а где точка выхода...

а) Экспериментируй только с копией проекта.
б) Вспомни, что строчка:
Код:
  MessageBox.Show("OwlD Form1.cs 1");
выводит сообщение "OwlD Form1.cs 1" в специальной форме:
13.jpg
Но, что самое удивительное - пока ты не нажмёшь "ОК" - КОД ДАЛЬШЕ ИСПОЛНЯТСЯ НЕ БУДЕТ.
Понимаешь как это можно использовать для изучения программы?...

Сначала разберёмся как кодируется информация:

14.jpg

Запомнив вышеизложенное мной, ты уже можешь сказать, что закодировано в этом "OwlD Program.cs 14" или этом "PictC Program.cs 9"....

Дальше нужно расставить
Код:
MessageBox.Show(".......
везде-везде, где только можно (во всех функциях, после каждой строчки кода,.. и конечно же во всех файлах, и в каждых папках), где это только можно... Но есть небольшая проблема: в некоторых местах нельзя ставить эту строчку... Трудно сказать в каких местах можно, а в каких нет, поэтому даю тебе руководство к действию (на примере чужого кода):
- Открываешь первый попавший файл (пусть будет: OwlDetector\Form1.cs). Ставишь первый закодированный "MessageBox..."
15.jpg
и нажимаешь "построить.....":

16.jpg

ошибка означает, что сюда нельзя ставить "MessageBox...". Перемещаешь его ниже и снова НАЖИМАЕШЬ "пОСТРОИТЬ":

17.jpg

Еще спускаешь ниже и снова "пОСТРОИТЬ": опять выдала ошибку.
Ещё спускаешь - О-о, ошибки нет:

18.jpg

Дальше (по коду) ставишь остальные, меняешь только номера. Не забудь, когда ставишь очередной "MessageBox.Show..." нажимай "Построить", чтобы определить можно ли здесь его ставить):
Код:
........................
MessageBox.Show("OwlD Form1.cs 2");
......................
.......................
MessageBox.Show("OwlD Form1.cs 3");
.......................
MessageBox.Show("OwlD Form1.cs 4");
....................
и т.д.
Что-то вроде такого (напомню: этот код только для примера, у тебя другие тексты кодов):

19.jpg

Напомню, так надо сделать еще по разным папкам и разным файлам (шифрование самой надписи не забыл?)... И компелируешь программу (зеленая стрелка)...

20.jpg

А дальше садишься с листком бумаги (а лучше распечаткой всех кодов) и пишешь какой "MessageBox.Show" выскочил первым, а какой вторым, а какой третьим ... Во время своих наблюдений сопоставляй "выскакивания MessageBox.Show" с работай самой программы (например - программа определила объект, какой MessageBox.Show выскочил? А если рамка убралась - какой MessageBox.Show выскочил) делай везде на бумаге пометки.

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

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

ТЕПЕРЬ ТЫ ВИДИШЬ, ЗАЧЕМ Я ПРОСИЛ ТЕБЯ ПОЗНАКОМИТСЯ С "MessageBox.Show"? ВОТ ДЛЯ ЭТОГО ПУНКТА.
___________________________________ ___________________

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

ТЫ ПОНИМАЕШЬ? В предыдущем пункте ты узнаешь в какой последовательности выполняется код, а здесь - "что выполняется".

Ну всё, удачи.

Последний раз редактировалось ura_111; 17.12.2016 в 22:11.
ura_111 вне форума Ответить с цитированием
Старый 17.12.2016, 23:05   #92
Alex11223
Старожил
 
Аватар для Alex11223
 
Регистрация: 12.01.2011
Сообщений: 19,500
По умолчанию

Цитата:
Сообщение от ura_111 Посмотреть сообщение
Экспериментируй только с копией проекта.
... а у нас еще на 3 курсе про системы контроля версий (Git) рассказали. (ну и многие из тех кто не штаны просиживать пришел естественно и так использовали до этого)


Цитата:
Сообщение от ura_111 Посмотреть сообщение
Но, что самое удивительное - пока ты не нажмёшь "ОК" - КОД ДАЛЬШЕ ИСПОЛНЯТСЯ НЕ БУДЕТ.
Ага, удивительнее некуда.
while(true) {} или Thread.Sleep тоже удивитесь?
Цитата:
Сообщение от ura_111 Посмотреть сообщение
везде-везде, где только можно (во всех функциях, после каждой строчки кода,.. и конечно же во всех файлах, и в каждых папках)
А отладчик у вас уже вышел из моды?
Или Debug.WriteLine
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом.
Alex11223 вне форума Ответить с цитированием
Старый 18.12.2016, 15:33   #93
sdfFssFS
Пользователь
 
Регистрация: 06.11.2016
Сообщений: 40
По умолчанию

Помоги еще чучуть
Изображения
Тип файла: jpg 12.jpg (109.0 Кб, 143 просмотров)
sdfFssFS вне форума Ответить с цитированием
Старый 18.12.2016, 23:36   #94
ura_111
Участник клуба
 
Регистрация: 14.05.2016
Сообщений: 1,793
По умолчанию

Не понятно, что ты имеешь ввиду когда говоришь: "модуль программы"? Функции используемые в программе или классы?
Уточни у преподавателя...
___________________________________ ___________________________________ _______________________________

Да, это похоже на "структуру проекта"...
Только здесь мало - показан только один класс (наверно эти данные только по одному файлу "Form1", а остальные файлы в папке "OwlDetector"?)... Ещё должны быть взаимосвязи между структурными единицами проекта... И ещё, желательно, показано связи с твоих элементов с "внешними окружением".

У тебя есть такое?

1.jpg

Пункты меню (название, расположение) зависят от версии VS, но ключевое слово: "решение".
Или есть ли "Построить граф"?
Или попробуй клацнуть правой кнопкой по этому классу (есть там такое - "показать взаимосвязи внешние / внутренние").
___________________________________ __________

В любом случае - попробуй разные варианты построения...

Последний раз редактировалось ura_111; 19.12.2016 в 00:01.
ura_111 вне форума Ответить с цитированием
Старый 19.12.2016, 18:05   #95
sdfFssFS
Пользователь
 
Регистрация: 06.11.2016
Сообщений: 40
По умолчанию

Вот именно у меня 2012 года и там нету такого я так и не мог найти у себя
sdfFssFS вне форума Ответить с цитированием
Старый 19.12.2016, 18:09   #96
Alex11223
Старожил
 
Аватар для Alex11223
 
Регистрация: 12.01.2011
Сообщений: 19,500
По умолчанию

Цитата:
Сообщение от ura_111 Посмотреть сообщение
Только здесь мало - показан только один класс
А где вы там другие видели?
Или вы классы библиотеки Emgu/Open CV за свои выдавать предлагаете?
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом.
Alex11223 вне форума Ответить с цитированием
Старый 19.12.2016, 18:31   #97
sdfFssFS
Пользователь
 
Регистрация: 06.11.2016
Сообщений: 40
По умолчанию

Я хочу создать диаграмму зависимостей но я не могу найти где она делается в 2012 visual studio
sdfFssFS вне форума Ответить с цитированием
Старый 19.12.2016, 20:08   #98
ura_111
Участник клуба
 
Регистрация: 14.05.2016
Сообщений: 1,793
По умолчанию

Я просто сопоставил "знакомые слова":

0.jpg


Я немного ошибся, когда сказал что это отображения только одного файла "Form1" - после детального наблюдения, оказалась для двух ("Form1"+"Form1.Designer.cs").
Кстате, в коде (вроде) есть пустые функции (без кода), а зачем они нужны?


1.jpg
2.jpg

Последний раз редактировалось ura_111; 19.12.2016 в 20:22.
ura_111 вне форума Ответить с цитированием
Старый 19.12.2016, 20:22   #99
Alex11223
Старожил
 
Аватар для Alex11223
 
Регистрация: 12.01.2011
Сообщений: 19,500
По умолчанию

Лучше б не рисованием в пеинте занимались, а прочитали комментарии и имя файла.

https://social.msdn.microsoft.com/Fo...csharplanguage
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом.
Alex11223 вне форума Ответить с цитированием
Старый 20.12.2016, 18:38   #100
ura_111
Участник клуба
 
Регистрация: 14.05.2016
Сообщений: 1,793
По умолчанию

1.jpg
ura_111 вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Составить программу для построения изображения с использованием 5 различных графических примитивов и 5 различных стилей заполнения Vika2016 Паскаль, Turbo Pascal, PascalABC.NET 2 14.04.2016 00:48
Обнаружение искусственных объектов на изображениях в Matlab Ками Помощь студентам 1 10.05.2013 18:23
Прозрачный фон в изображениях на форме goo C++ Builder 0 20.10.2012 21:39
Методы диффузии в изображениях risya Мультимедиа в Delphi 1 07.06.2009 11:30
Поиск предельно допустимых перемещений объекта вдоль заданного вектора с учетом положения других объектов stюdent Помощь студентам 1 23.12.2008 19:45