| 15.07.2010, 05:53 | |
|
Ответы с готовыми решениями:
1272
Элементарные программы, для лучшего понимания языка...
Литература для лучшего понимания сути программирования |
| 27.07.2010, 15:42 | |
|
Не по теме: Nameless One, rangerx, из всего сказанного выше, я понял что макросы это целый раздел, и на форуме его вопроссами не выучешь. спасибо всем. я удаляюсь в дебри интернета в поисках книжки или статьи.
0
|
|
| 27.07.2010, 16:02 | ||||||
|
Не по теме: Можешь особо на них не заморачиваться, при разработке программ C/C++ писать макросы (по крайней мере мне) приходится не часто. В принципе, я использую только один макрос, который выводит приглашение для ввода переменной (выводит ее имя) и осуществляет этот ввод. Наиболее полезен он с матрицами и массивами:
2
|
||||||
|
Мат в 32 хода
237 / 172 / 18
Регистрация: 10.09.2009
Сообщений: 1,096
|
|
| 27.07.2010, 16:44 | |
|
и последнее. где можно объявлять макросы?
0
|
|
|
В астрале
8049 / 4806 / 655
Регистрация: 24.06.2010
Сообщений: 10,562
|
||||||
| 27.07.2010, 16:49 [ТС] | ||||||
|
nikkka, Глобально.
1
|
||||||
|
5828 / 3479 / 358
Регистрация: 08.02.2010
Сообщений: 7,448
|
|
| 27.07.2010, 16:52 | |
|
Объявление макроса может быть где угодно, т.к. препроцессор обрабатывает твой исходный код еще до компиляции. После обработки препроцессором уже от самого макроса в твоей программе ничего не останется - препроцессор подставит тело макроса в нужные места.
Другое дело, я где-то слышал, что некоторые компиляторы требуют, чтобы директивы препроцессора начинались с начала строки Добавлено через 1 минуту Таким образом, можно объявить макрос хоть в теле функции main. Однако обычно макросы пишут после директив #include с целью повысить читаемость кода.
1
|
|
|
Мат в 32 хода
237 / 172 / 18
Регистрация: 10.09.2009
Сообщений: 1,096
|
|
| 27.07.2010, 16:59 | |
|
Nameless One, и потом, объявленный в функции макрос, будет локальным как и переменная, так?
0
|
|
|
5828 / 3479 / 358
Регистрация: 08.02.2010
Сообщений: 7,448
|
|||||||||||
| 27.07.2010, 17:06 | |||||||||||
|
Макрос должен быть объявлен выше места своего использования, а вот в каком контексте он объявлен (в контексте функции, блока и т.д.) - не имеет значения. Например, следующая программа содержит ошибки:
1
|
|||||||||||
|
В астрале
8049 / 4806 / 655
Регистрация: 24.06.2010
Сообщений: 10,562
|
|
| 27.07.2010, 18:20 [ТС] | |
|
rangerx, Немного недопонял по макросу foreach. Что конкретно он должен делать?
0
|
|
|
5828 / 3479 / 358
Регистрация: 08.02.2010
Сообщений: 7,448
|
|||||||||||||||||
| 27.07.2010, 18:34 | |||||||||||||||||
|
К примеру, псевдокод:
В STL есть алгоритм (не макрос!) for_each, который вызывает функцию для каждого элемента контейнера:
2
|
|||||||||||||||||
|
В астрале
8049 / 4806 / 655
Регистрация: 24.06.2010
Сообщений: 10,562
|
|
| 27.07.2010, 18:36 [ТС] | |
|
Nameless One, Да. Спасибо. Ща попробую разобраться с работой макроса.
0
|
|
|
5828 / 3479 / 358
Регистрация: 08.02.2010
Сообщений: 7,448
|
||
| 27.07.2010, 18:38 | ||
|
А вот в BOOST foreach реализован уже как макрос:
0
|
||
|
В астрале
8049 / 4806 / 655
Регистрация: 24.06.2010
Сообщений: 10,562
|
||||||
| 27.07.2010, 18:53 [ТС] | ||||||
|
Только такое смог родить... Как foreach реализовать - не понял. Чтобы именно не по элементу массива считывать...
0
|
||||||
|
5828 / 3479 / 358
Регистрация: 08.02.2010
Сообщений: 7,448
|
||||||
| 27.07.2010, 19:02 | ||||||
|
foreach должен не только выводить содержимое на экран. К примеру, твой макрос должен делать и такое:
Размер массива твой макрос должен считать сам. Подсказка: размер статического массива arr можно высчитать по формуле sizeof arr / sizeof *arr (размер всего массива в байтах разделить на размер одного элемента массива в байтах) Добавлено через 1 минуту Я уже видел решение этого макроса на форуме. По-моему, от того, кто эту задачку и задал. Если станет совсем невмоготу, могу дать ссылку Ну или сам товарищ поделится решением.
2
|
||||||
|
476 / 444 / 34
Регистрация: 20.11.2009
Сообщений: 1,293
|
||||||||||||
| 27.07.2010, 19:05 | ||||||||||||
|
Многакода
answer.txt
Других решений не обнаружено
1
|
||||||||||||
|
В астрале
8049 / 4806 / 655
Регистрация: 24.06.2010
Сообщений: 10,562
|
|
| 27.07.2010, 19:14 [ТС] | |
|
Nameless One, Сцылку в студию) А то никакого представления как реализовать сие через макрос
0
|
|
|
5828 / 3479 / 358
Регистрация: 08.02.2010
Сообщений: 7,448
|
||
| 27.07.2010, 19:20 | ||
|
1
|
||
|
В астрале
8049 / 4806 / 655
Регистрация: 24.06.2010
Сообщений: 10,562
|
|
| 27.07.2010, 19:25 [ТС] | |
|
Nameless One, Вот это круто. Спасибо за ссыль!
0
|
|
|
373 / 287 / 97
Регистрация: 17.12.2009
Сообщений: 567
|
|
| 28.07.2010, 06:32 | |
|
никто не против математической задачи? )
вычитал в книжке "Конкретная математика" (Кнут в соавторстве с кем-то), решил минут за 40-60. вот она, Почти как в задаче о ханойской башне - есть три колышка слева A, посередине B и справа C. И есть несколько дисков, количеством n, все разного размера, нанизаны на колышек A пирамидкой. Задача: "Найдите кратчайшую последовательность перекладываний, перемещающих башню из n дисков с левого колышка A на правый колышек C, если прямой обмен дисками между A и C запрещен. (Каждое перекладывание должно производиться через средний колышек B. Больший диск нельзя класть на меньший.)" я написал программу которая выдает нечто вроде: AB CB BC BA BA - это последовательность перекладываний, например AB - значит перекладывание с колышка A на колышек B верхнего в пирамидке (которая на A) диска. Такая форма представления последовательности перекладываний позволяет однозначно определить что и куда перекладывать. предлагаю вам написать аналогичную программу, и привести математические обоснования, а потом и я свою выложу (она коротенькая, 26 строк).
0
|
|
|
701 / 573 / 59
Регистрация: 18.11.2008
Сообщений: 2,147
|
||
| 28.07.2010, 08:04 | ||
|
пара вопросов:
1) на колышек С диски надо сложить тоже пирамидой?
0
|
||
| 28.07.2010, 08:04 | |
|
Набор задачь для тренировки и улучшения понимания программирования Проверить на правильность и закомментировать весь код для лучшего понимания Нужны задачи для тренировки
Нужны задачи для тренировки Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Книги по геймдизайну, левел-дизайну, игровым механикам и проектированию игрового опыта
8Observer8 08.11.2026
Содержание блога | English Version
1. 2003 - 06 - Designing Virtual Worlds (1st Edition)
Автор: Richard A. Bartle | Объем: 768 стр.
Ссылки: Amazon
. . .
|
Родители токсичные абьюзеры по отношению к своим детям ругают их оскорбляют не любят
zorxor 08.11.2026
Жить в атмосфере постоянных оскорблений, критики и холодности со стороны родителей — это тяжелое и болезненное испытание, которое оставляет глубокие эмоциональные раны. Токсичное и абьюзивное. . .
|
Как только я захожу к себе в свою комнату я сразу же с себя снимаю свои трусы. Ответ от Джемени ИИ.
zorxor 08.11.2026
Джемени, как только я захожу к себе в свою комнату я сразу же с себя снимаю свои трусы.
Многие люди, возвращаясь домой, сразу переодеваются в максимально свободную одежду или вовсе предпочитают. . .
|
Паттерн очереди действий/команд (Action / Command Queue). Система очереди действий и кат-сцен с SDL3 Callbacks, cglm и OpenGL
8Observer8 07.11.2026
Содержание блога | English Version
Руководство для начинающих по реализации паттерна очереди действий/ команд (Action / Command Queue) на C++ (C++20) с использованием официального SDL3 Callbacks. . .
|
|
Проверка полного ФИО в типовом справочнике
Maks 07.11.2026
Решение реализовано в конфигурации КА2, на примере справочника "КонтактныеЛицаПартнеров".
Задача:
Запрет инициалов.
Не допускаеть использование сокращений вида "И. И. ", "И. И. ", "И И" и. . .
|
Про "Windows must die!"
kumehtar 04.11.2026
Знаете, чет накатило. . . .
Когда-то это было почти боевым кличем: мол, нормальный человек сидит на DOS, OS/ 2 или Linux, а вот это вот - Must Die. А теперь человек произносит «мастдай» с усмешкой - и. . .
|
Красочные поля с номером страницы svg+background-image
russiannick 04.11.2026
Красочные поля с номером страницы не менее важны чем в эпоху бумажных книг.
Посему спешу представить почтеннейшей публике этот важный инструмент который эти поля и формирует.
В процессе разработки. . .
|
Вступаем в новую фазу генерации favicons, векторную.
russiannick 02.11.2026
Теперь нет нужды скрывать что используется простой svg. Исходный код изображения помещаем в поле и жмем кнопку. Исходник преобразуется в вид корректный для помещения в favicon или в url(). Нажатие. . .
|