Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Need For Speed World Site > Программирование > Visual C++

Автор: Juvenile 20.12.2006 - 16:16
Консольные приложения => как сделать сортировку массива. И шаблонов! И еще как сделать динамический список в динамическом списке?

Автор: Zloy Lex 20.12.2006 - 23:29
[/QUOTE]2Juvenile
Найди сайт с алгоритмами и посмотри алгоритмы сортировок. Это раз.
А во-вторых читай книги и доки по С/C++. Либо подробнее пиши что не получается. smile.gif

Цитата
сортировку массива. И шаблонов!

дык а этого вообще мне не понять. Что значить "сортировка шаблонов"? Это как?

Автор: Juvenile 23.12.2006 - 14:11
2Zloy Lex
Создаешь шаблон класса <template class Conteiner>
Контейнер в который можно записать любой тип
И этот тип надо сортировать!

Автор: Zloy Lex 23.12.2006 - 16:30
2Juvenile
сортируеться не тип, а переменные типа.
и абсолютно никакой разницы какого типа переменные ты сортируешь. алгоритм остается тотже. описаний алгоритмов в инете полно.

Шаблоны всего-навсего позволяют использовать функцию либо класс для разных типов.
Почитай о шаблонах больше. Хорошая книга Бьяра Страуструпа "Язык программирования C++".

Автор: Juvenile 23.12.2006 - 23:12
2Zloy Lex
А ты хорошо С++ знаешь? Я то только учусь =)

Автор: Zloy Lex 23.12.2006 - 23:36
2Juvenile
ну может не идеально, но достаточно smile.gif вообще я на нем пишу как правило.
а если возникают вопросы, то нахожу ответы wink.gif

Автор: Juvenile 28.12.2006 - 14:23
2Zloy Lex
Не знаешь в нете никаких ссылок?

Автор: Zloy Lex 28.12.2006 - 15:58
2Juvenile
а что тебя интересует?

ЗЫ google.com.ua wink.gif

Автор: Juvenile 29.12.2006 - 17:08
2Zloy Lex
Меня интересуют письменные материалы по С++

Автор: GF7GTR 17.04.2009 - 15:59
подскажите пожалуйста в чем проблема, у меня не появляются любые слова которые в коде программы, могу вводить цифры и буквы и все работает, но ни одно слово не выводится, хоть по инглиш хоть по русски, вот результат возведения числа в степень, а слова не вывелись
[фото более недоступно]
пару дней назад была win7075, все ок было, а ща 7077, мож все из-за винды или можно что то настроить?
P.S. я только учусь в С++ smile.gif

   Добавлено спустя 11 минут 22 секунды:
не выводятся даже цифры, короче не работает cout

Автор: CamaroSS 17.04.2009 - 16:30
2Juvenile
в MSDN куча справочной инфы, если понимаешь английский.

Автор: K1llM@n 17.04.2009 - 18:24
2GF7GTR
Код в студию.

Автор: GF7GTR 17.04.2009 - 19:50
2K1llM@n
все, теперь заработало, просто я тут сам запутался с этими версиями rolleyes.gif , в одном есть windows.h, т.е. с ansitooem в другом надо через cout, просто дома Express версии а в универе полная (ее блин не дают)

Автор: LNV 25.09.2010 - 12:24
Вопрос следующего плана:
Для динамически создающихся визуальных элементов требуется задать уникальный nID. Есть ли готовая функция под генерацию этого уникального nID? Если нет, то есть ли функция, возвращающая максимальный на данный момент имеющийся nID?

   Добавлено спустя 1 час 26 минут 5 секунд:
Есть альтернативное решение, но оно также требует совета:
Вместо обращения к динамическим элементам по ID, я могу хранить в массиве ссылки на них (один хрен пришлось бы хранить массив ID-шек). Однако, так как создаются элементы Cedit и CCOmboBox, придётся создавать массив указателей на CWnd, т.к на базовый класс. В таком случае при проходе массива CWnd стоит задача распознавания класса лежащего внутри элемента. Я так подозреваю, что нужно использовать IsKindOf(), но пока не раскурил эту функцию.

Автор: CamaroSS 25.09.2010 - 15:19
2LNV а hWnd в качестве ID не сгодится?

Автор: LNV 25.09.2010 - 17:56
2CamaroSS
Можно и этот вариант рассмотреть. Пока реализовал с CWnd.
Сейчас проблема стоит самая задротская — прикрутить обработчики к этим динамически создающимся контролам. Тут даже гугл не помогает.
В принципе, можно сохранять из них всех данные разом при закрытии окна, но хотелось бы, конечно, каждый в отдельности обрабатывать при из изменении.

Автор: CamaroSS 25.09.2010 - 22:01
2LNV нифтыкаю, что ты имел в виду. Какая задача-то?
Перерисовать? Допустим, что-то изменилось —> изменили содержимое окна напрямую через контекст устройства, либо изменение каких-то параметров гипотетического окна, вызов Invalidate() —> по этому поводу автоматически вызывается OnPaint, который на основе параметров заполняет контекст. Invalidate нужен для обновления отдельно взятого окна.
Сохранить некие данные. Контролы у тебя ж не рандомные? Это наверняка отдельный класс, в котором можно прописать нужные функции.
Короче, я чего-то недопонял.

Автор: LNV 26.09.2010 - 00:12
2CamaroSS
Да, недопонял, или я не так выразился.
В самом общем описании надо генерировать EditBox или ComboBox (в зависимости от ситуации) и производить сохранение введённых данных (выбранных полей) в некоторую структуру (массив), которая потом сохранится в файл и т.д.
Можно, как я писал, при закрытии окна сбросить данные сразу изо всех созданных элементов в массив значений, а можно при изменении каждого EditBox или ComboBox вносить новые данные в соответствующий элемент массива.
Хотелось бы второй способ рассмотреть. Нужно как-то прикручивать к динамически созданным элементам такие события как OnKillFocus или OnChange и т.д.
В Делфи, я знаю, у любого визуального элемента есть поле, например OnChange, которое хранить либо NULL, либо указатель на функцию-обработчик сообщения. Таким образом эту функцию-обработчик можно «прикрутить на ходу» к элементу. Как в VC сделать, я пока не знаю.
   Добавлено спустя 2 минуты 1 секунду:
Цитата (CamaroSS @ 25.09.2010 — 23:01)
Контролы у тебя ж не рандомные? Это наверняка отдельный класс, в котором можно прописать нужные функции.

Хм.. рандомные. Стандартные EditBox или ComboBox у которых ничего не задано... Предлагаешь создать пару новых классов из этих и переопределить обработчики? rolleyes.gif

Автор: CamaroSS 26.09.2010 - 09:56
2LNV вот оно чё, Михалыч! В таком случае нужно для главного окна сделать обработчик сообщения http://msdn.microsoft.com/en-us/library/ms647591%28VS.85%29.aspx, проверять wParam на предмет http://msdn.microsoft.com/en-us/library/bb761676%28VS.85%29.aspx и айди контрола, и забирать данные у контрола в нужный массив. И не надо ничего никуда прикручивать.
Вот как-то так.

Автор: K1llM@n 26.09.2010 - 10:08
Если хочешь заменить обработчик, то сначала получи на него ссылку (что-то вроде GetWindowProc). Затем заведи свою процедуру обработки нужных сообщений, приходящих на форму. В конце не забудь вызвать стандартный обработчик, чтобы элементы корректно продолжали работать.

Автор: LNV 26.09.2010 - 11:47
2CamaroSS
Ага... ясненько, будем пробовать. В принципе уже реализовал сохранение всего разом, однако и это опробую. Вчера пытался поворошить упомянутую тобой процедуру, но, как написано в msdn по поводу WPARAM: «а.. в каждом случае этот тип данных имеет конкретный смысл и хранит конкретные данные», поэтому, как говорится, не срослось, потому что проверял, наверное, не то, что нужно.
Цитата (K1llM@n @ 26.09.2010 — 11:08)
сначала получи на него ссылку (что-то вроде GetWindowProc)

Ага, вот как это делается. Спасибо smile.gif
Цитата (K1llM@n @ 26.09.2010 — 11:08)
Вконце не забудь вызвать стандартный обработчик, чтобы элементы корректно продолжали работать.

само собой wink.gif

Автор: Smertokog 7.10.2010 - 20:43
Кто хорошо разбирается в С++ ?
просто у нас уже 4 лабороторка, а там такие задания нереальные biggrin.gif (даже нехочу думать, что будет в 9 eyecrazy.gif скажут давайте Super Mаrio Final делайте)
предыдущая лабороторка уже трудноватая была. А нам там особенно не объясняют подробно, поетому туговато с заданиями. и учебник даже непомогает...

Есть задания, где нужно прокоментировать каждую строчку в коде...
Если есть кто, кому ето удаётся, аж отскакивает от зубов, немогли бы вы помочь? eyecrazy.gif

Автор: Shehrozs 7.10.2010 - 21:18
2Smertokog
Ну скинь в личку, попробую)

Автор: LNV 7.10.2010 - 21:26
Не по теме:
2Smertokog
Если задания небольшие, то самому хорошо бы это задние выполнить. Долго и нудно, но лабы — они все такие biggrin.gif
Заодно моск запоминает всё методом многократного повторения.
Но вообще-то комментить каждую строку — это критинизм крайней стадии. Стандарт — один комментарий на 5-7 строк. Если подробнее, то моск начинает плавится (знаем, плавали). Так что такие задания не оБобряю smile.gif

Автор: Smertokog 7.11.2010 - 13:39
Не по теме:
2LNV
Понимаю  biggrin.gif



   Добавлено спустя большой промежуток времени:
Может есть такая програмка, куда вводишь код, а она выдаёт блок схему етого кода??? rolleyes.gif

Автор: LNV 23.07.2011 - 15:29
2Smertokog
В своё время задавался этим вопросом и скажу тебе — пиши лучше сам. Времени потратишь меньше biggrin.gif
Универсальной такой проги нет, это рас. Зависимость от языка, сложность конструкций.... ну, что я буду тут рассказывать. Короче, лучше самому. wink.gif

   Добавлено спустя большой промежуток времени:
Проблема такая:

Код:
Скрытый текст:
Без темы

Результат:
8
4
1SNhЁ[

То есть выводит не 4 символа в соответствии с типом данных, а 6, соответственно, курсор чтения файла уже не на том месте и всё идёт в разнос. Как исправить?

Автор: K1llM@n 23.07.2011 - 16:47
Погоди, а кто сказал, что там будет 4 байта? Никогда так не создавай структуру. Если имеется массив символов, то обнуляй его при создании вручную, т.к. он может не заканчиваться нуль-символом, поэтому выводится всякий бред.

Автор: LNV 23.07.2011 - 17:02
2K1llM@n
Тьфу, обнуление.... спасибо) Я совсем забыл, что СИшка лишних телодвижений не производит.
Пошёл дальше раскуривать структуру аудиофайла NFSRT.

Автор: K1llM@n 23.07.2011 - 17:08
http://www.extractor.ru/articles/electronic_arts_audio_file_formats_description/ раскуриваешь?) Если нужно произвести компрессию/декомпрессию, то проще воспользоваться утилитой Sound eXchanger от EA.

Need For Speed World Site 2003 - 2024
https://www.nfsko.ru/forum