Опубликовано

Вышло 2-е издание книги Льва Лурье “Петербург Достоевского Исторический путеводитель.”

Петербург Достоевского

Путеводитель знакомит читателя с Петербургом Достоевского: историческими районами города, где с 1837-го по 1881 годы жил писатель и где проживали герои почти всех его романов. Путеводитель состоит из 5 маршрутов, каждый их которых рассчитан на 2-3 часовую пешеходную экскурсию. Во втором издании учтена новейшая литература, приводится краткая библиография, добавлены описания новых памятных мест.

Путеводитель знакомит читателя с Петербургом Достоевского. Это не один, а два города: столица Российской империи между 1837 и 1881 годами, когда здесь жил писатель, город, удивительно хорошо сохранившийся (в отличие от диккенсовского Лондона, Парижа Гюго или Москвы Толстого), и пространство, созданное воображением писателя, где жили его герои.

Одна из особенностей творчества Достоевского – необычайно точная топографическая привязка его романов. Писатель мысленно расселял героев по конкретным зданиям, отправлял их в бесконечные блуждания по вполне определенным, реально существующим улицам.

Путеводитель состоит из 5 маршрутов, каждый из которых рассчитан на 2-3-часовую пешеходную экскурсию.

Об авторе

Лев Лурье – историк и журналист. В 1989 г. основал первую в новой России Петербургскую классическую гимназию (школа № 610), где и по сей день преподает историю. Четырежды лауреат конкурса «Золотое перо» и обладатель Гран-при «Журналист года» этого конкурса. В 2006-2009 гг. возглавлял Дирекцию документального вещания ТРК «Петербург – Пятый канал», вел авторские передачи «Культурный слой» и «Живая история». Прошлое, о котором в телепередачах, книгах и статьях повествует Лев Лурье, населяют не памятники, а живые люди. Их можно уважать или, напротив, осуждать, но к ним нельзя оставаться равнодушными.

Книгу можно купить в нашем интернет-магазине.

Опубликовано

Представляем 3-е издание книги “Алгоритмы. Руководство по разработке”

Алгоритмы. Руководство по разработке. 3-е изд.

В издательстве “БХВ” вышло третье издание бестселлера Стивена Скиены: “Алгоритмы. Руководство по разработке. 3-е изд.“.

Книга является наиболее полным руководством по разработке эффективных алгоритмов. Первая часть книги содержит практические рекомендации по разработке алгоритмов: приводятся основные понятия, дается анализ алгоритмов, рассматриваются типы структур данных, основные алгоритмы сортировки, операции обхода графов и алгоритмы для работы со взвешенными графами, примеры использования комбинаторного поиска, эвристических методов и динамического программирования. Вторая часть книги содержит обширный список литературы и каталог из 75 наиболее распространенных алгоритмических задач, для которых перечислены существующие программные реализации.

В третьем издании расширен набор рандомизированных алгоритмов, алгоритмов хеширования, аппроксимации и квантовых вычислений. Добавлено более 100 новых задач, даны ссылки к реализациям на C, C++ и Java.

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

Наиболее полное руководство по разработке эффективных алгоритмов

Расширенное и обновленное третье издание классического бестселлера продолжает раскрывать «загадку» разработки алгоритмов и анализа их эффективности. Книга является основным учебником для курсов по разработке алгоритмов, пособием для самоподготовки к собеседованиям, сохраняя при этом свой статус главного практического справочника по алгоритмам для программистов, исследователей и студентов.

Первая часть представляет собой общее введение в технические приемы разработки и анализа компьютерных алгоритмов.

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

Новое в третьем издании

• Расширенный набор рандомизированных алгоритмов, хеширования, алгоритмов «разделяй и властвуй», аппроксимации и квантовых вычислений.
• Онлайн-поддержка для преподавателей, включающая слайды и видеоуроки.
• Полноцветные иллюстрации и код, наглядно разъясняющие сложные концепции
• Новые «истории из жизни», рассказывающие об опыте работы с реальными приложениями.
• Более 100 новых задач, включая задачи по программированию от LeetCode и Hackerrank.
• Актуальные ссылки к лучшим реализациям на языках C, C++ и Java.

От автора

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

  • Каталог алгоритмических задач. Не так-то просто узнать, что уже известно о стоящей перед вами задаче. Именно поэтому в книге имеется каталог 75 наиболее важных задач, часто возникающих в реальной жизни.
  • Истории из жизни. Чтобы продемонстрировать, как алгоритмические задачи возникают в реальной жизни, в материал книги включены неприукрашенные истории, описывающие мой опыт по решению практических задач.
  • Онлайновый компонент. На моем веб-сайте (www.algorist.com) в полном объеме представлены конспекты лекций, а также Wiki-энциклопедия решений задач. Этот веб-сайт был обновлен совместно с книгой.

На веб-сайте автора www.algorist.com в полном объеме представлены конспекты лекций, а также Wiki-энциклопедия решений задач. Этот веб-сайт был обновлен совместно с книгой.

Преподаватели смогут загрузить здесь полный набор лекционных слайдов для проведения занятий по материалам книги. Кроме того, выложены аудио- и видеолекции с использованием этих слайдов для преподавания полного курса продолжительностью в один семестр.

Оригинальная книга: “The Algorithm Design Manual (Texts in Computer Science)” 3rd ed. 2020 Editionby Steven S. Skiena (Author)

Отзывы

Это руководство — мой абсолютный фаворит для подготовки к собеседованию. Больше, чем любая другая книга, она помогла мне понять, насколько поразительно распространены… проблемы с графами — они должны быть частью набора инструментов каждого работающего программиста. В книге также рассматриваются основные структуры данных и алгоритмы сортировки, что является приятным бонусом, а простые и понятные картинки облегчают запоминание.
Стив Йегге, публикация «Get that Job at Google»

Эта книга сохраняет за собой звание лучшего и наиболее полного практического руководства по алгоритмам … Каждый программист должен ее прочитать и держать под рукой. … Это лучшая инвестиция…, которую может сделать программист.
Гарольд Тимблби, журнал «Times Higher Education»

Замечательно открыть книгу на любой странице и обнаружить интересный алгоритм. Это единственный учебник, который я храню со студенческих лет!
Кори Барт, Делавэрский университет

Steven_Skiena

Стивен Соль Скиена — ученый-компьютерщик и заслуженный профессор компьютерных наук в Университете Стоуни-Брук, директор Института искусственного интеллекта в Стоуни-Брук. Автор нескольких популярных книг в области алгоритмов, программирования и математики. Его книга Алгоритмы. Руководство по разработке (The Algorithm Design Manual) широко используется в качестве учебника по алгоритмам и для подготовки к собеседованию в технической индустрии.  В 2001 году Скиена была награждена премией IEEE Computer Science and Engineering для студентов-преподавателей «За выдающийся вклад в высшее образование в области алгоритмов и дискретной математики, а также за влиятельные учебники и программное обеспечение» (Источник: Википедия).

Книгу можно купить в нашем интернет-магазине.

Предисловие…………………………………………………………………………………………… 17

Читателю…………………………………………………………………………………………………………………………………….. 17

Преподавателю………………………………………………………………………………………………………………………….. 19

Благодарности…………………………………………………………………………………………………………………………… 20

Ограничение ответственности………………………………………………………………………………………………….. 21

Часть I. Практическая разработка алгоритмов…………………. 23

Глава 1. Введение в разработку алгоритмов…………………………………………… 25

1.1. Оптимизация маршрута робота………………………………………………………………………………………… 26

1.2. Задача календарного планирования………………………………………………………………………………… 30

1.3. Обоснование правильности алгоритмов…………………………………………………………………………… 33

1.3.1. Задачи и свойства…………………………………………………………………………………………………….. 34

1.3.2. Представление алгоритмов……………………………………………………………………………………… 35

1.3.3. Демонстрация неправильности алгоритма……………………………………………………………. 35

Остановка для размышлений:  «Жадные» кинозвезды?……………………………………………………. 37

1.3.4. Индукция и рекурсия………………………………………………………………………………………………… 38

Остановка для размышлений:  Правильность инкрементных алгоритмов……………………… 39

1.4. Моделирование задачи………………………………………………………………………………………………………. 40

1.4.1. Комбинаторные объекты…………………………………………………………………………………………. 41

1.4.2. Рекурсивные объекты……………………………………………………………………………………………….. 42

1.5. Доказательство от противного………………………………………………………………………………………….. 44

1.6. Истории из жизни………………………………………………………………………………………………………………… 45

1.7. История из жизни. Моделирование проблемы ясновидения…………………………………………… 45

1.8. Прикидка……………………………………………………………………………………………………………………………… 49

Замечания к главе………………………………………………………………………………………………………………………. 50

1.9. Упражнения…………………………………………………………………………………………………………………………. 50

Поиск контрпримеров………………………………………………………………………………………………………… 50

Доказательство правильности………………………………………………………………………………………….. 51

Математическая индукция………………………………………………………………………………………………… 52

Приблизительные подсчеты………………………………………………………………………………………………. 52

Проекты по реализации……………………………………………………………………………………………………… 53

Задачи, предлагаемые на собеседовании………………………………………………………………………… 53

LeetCode………………………………………………………………………………………………………………………………. 54

HackerRank…………………………………………………………………………………………………………………………. 54

Задачи по программированию………………………………………………………………………………………….. 54

Глава 2. Анализ алгоритмов…………………………………………………………………… 55

2.1. Модель вычислений RAM………………………………………………………………………………………………….. 55

2.1.1. Анализ сложности наилучшего, наихудшего и среднего случая………………………… 56

2.2. Асимптотические («Big Oh») обозначения………………………………………………………………………… 58

Остановка для размышлений:  Возвращение к определениям…………………………………………. 61

Остановка для размышлений:  Квадраты…………………………………………………………………………… 61

2.3. Скорость роста и отношения доминирования………………………………………………………………….. 61

2.3.1. Отношения доминирования……………………………………………………………………………………… 63

2.4. Работа с асимптотическими обозначениями……………………………………………………………………. 64

2.4.1. Сложение функций……………………………………………………………………………………………………. 64

2.4.2. Умножение функций…………………………………………………………………………………………………. 64

Остановка для размышлений:  Транзитивность………………………………………………………………… 65

2.5. Оценка эффективности……………………………………………………………………………………………………….. 65

2.5.1. Сортировка методом выбора…………………………………………………………………………………… 65

Доказываем временную сложность Θ-большое…………………………………………………….. 66

2.5.2. Сортировка вставками……………………………………………………………………………………………… 67

Доказываем временную сложность Θ-большое…………………………………………………….. 68

2.5.3. Сравнение строк……………………………………………………………………………………………………….. 68

Доказываем время исполнения по Θ-большое………………………………………………………. 69

2.5.4. Умножение матриц…………………………………………………………………………………………………… 70

2.6. Суммирование…………………………………………………………………………………………………………………….. 71

Остановка для размышлений:  Формулы факториала………………………………………………………. 72

2.7. Логарифмы и их применение……………………………………………………………………………………………… 73

2.7.1. Логарифмы и двоичный поиск…………………………………………………………………………………. 73

2.7.2. Логарифмы и деревья……………………………………………………………………………………………….. 74

2.7.3. Логарифмы и биты……………………………………………………………………………………………………. 74

2.7.4. Логарифмы и умножение…………………………………………………………………………………………. 75

2.7.5. Быстрое возведение в степень…………………………………………………………………………………. 75

2.7.6. Логарифмы и сложение……………………………………………………………………………………………. 76

2.7.7. Логарифмы и система уголовного судопроизводства…………………………………………… 76

2.8. Свойства логарифмов…………………………………………………………………………………………………………. 77

Остановка для размышлений:  Важно ли деление точно пополам………………………………….. 79

2.9. История из жизни. Загадка пирамид…………………………………………………………………………………. 79

2.10. Анализ высшего уровня (*)………………………………………………………………………………………………. 82

2.10.1. Малораспространенные функции……………………………………………………………………….. 83

2.10.2. Пределы и отношения доминирования……………………………………………………………….. 84

Замечания к главе………………………………………………………………………………………………………………………. 85

2.11. Упражнения……………………………………………………………………………………………………………………….. 86

Анализ программ………………………………………………………………………………………………………………. 86

Упражнения по асимптотическим обозначениям………………………………………………………….. 87

Суммирование…………………………………………………………………………………………………………………… 92

Логарифмы………………………………………………………………………………………………………………………… 93

Задачи, предлагаемые на собеседовании………………………………………………………………………. 93

LeetCode…………………………………………………………………………………………………………………………….. 94

HackerRank……………………………………………………………………………………………………………………….. 94

Задачи по программированию………………………………………………………………………………………… 94

Глава 3. Структуры данных…………………………………………………………………… 95

3.1. Смежные и связные структуры данных…………………………………………………………………………….. 95

3.1.1. Массивы…………………………………………………………………………………………………………………….. 96

3.1.2. Указатели и связные структуры данных………………………………………………………………… 97

Поиск элемента в связном списке……………………………………………………………………………. 98

Вставка элемента в связный список……………………………………………………………………….. 99

Удаление элемента из связного списка………………………………………………………………….. 99

3.1.3. Сравнение……………………………………………………………………………………………………………….. 100

3.2. Стеки и очереди………………………………………………………………………………………………………………… 101

3.3. Словари……………………………………………………………………………………………………………………………… 102

Остановка для размышлений:  Сравнение реализаций словаря (I)……………………………….. 103

Остановка для размышлений:  Сравнение реализаций словаря (II)……………………………… 105

3.4. Двоичные деревья поиска………………………………………………………………………………………………… 108

3.4.1. Реализация двоичных деревьев…………………………………………………………………………….. 108

Поиск в дереве………………………………………………………………………………………………………… 109

Поиск наименьшего и наибольшего элементов дерева………………………………………. 110

Обход дерева………………………………………………………………………………………………………….. 110

Вставка элементов в дерево………………………………………………………………………………….. 111

Удаление элемента из дерева……………………………………………………………………………….. 112

3.4.2. Эффективность двоичных деревьев поиска………………………………………………………….. 112

3.4.3. Сбалансированные деревья поиска……………………………………………………………………… 113

Остановка для размышлений:  Использование сбалансированных деревьев поиска….. 114

3.5. Очереди с приоритетами………………………………………………………………………………………………….. 115

Остановка для размышлений:  Построение базовых очередей с приоритетами………….. 115

3.6. История из жизни. Триангуляция…………………………………………………………………………………….. 117

3.7. Хеширование…………………………………………………………………………………………………………………….. 121

3.7.1. Коллизии…………………………………………………………………………………………………………………. 121

3.7.2. Выявление дубликатов с помощью хеширования……………………………………………….. 123

3.7.3. Прочие приемы хеширования……………………………………………………………………………….. 125

3.7.4. Каноникализация……………………………………………………………………………………………………. 125

3.7.5. Уплотнение……………………………………………………………………………………………………………… 126

3.8. Специализированные структуры данных………………………………………………………………………. 126

3.9. История из жизни. Геном человека………………………………………………………………………………….. 127

Замечания к главе……………………………………………………………………………………………………………………. 131

3.10. Упражнения…………………………………………………………………………………………………………………….. 131

Стеки, очереди и списки…………………………………………………………………………………………………. 131

Элементарные структуры данных………………………………………………………………………………… 132

Деревья и другие словарные структуры………………………………………………………………………. 132

Применение древовидных структур……………………………………………………………………………… 134

Задачи по реализации……………………………………………………………………………………………………. 135

Задачи, предлагаемые на собеседовании……………………………………………………………………. 136

LeetCode………………………………………………………………………………………………………………………….. 137

HackerRank……………………………………………………………………………………………………………………… 137

Задачи по программированию……………………………………………………………………………………… 137

Глава 4. Сортировка и поиск……………………………………………………………….. 138

4.1. Применение сортировки…………………………………………………………………………………………………… 138

Остановка для размышлений:  Поиск пересечения множеств………………………………………… 141

Остановка для размышлений:  Использование хеша для решения задач……………………… 142

4.2. Практические аспекты сортировки…………………………………………………………………………………. 143

4.3. Пирамидальная сортировка…………………………………………………………………………………………….. 145

4.3.1. Пирамиды………………………………………………………………………………………………………………… 146

Остановка для размышлений:  Поиск в пирамиде…………………………………………………………… 148

4.3.2. Создание пирамиды……………………………………………………………………………………………….. 148

4.3.3. Наименьший элемент пирамиды…………………………………………………………………………… 149

4.3.4. Быстрый способ создания пирамиды (*)……………………………………………………………… 151

Остановка для размышлений:  Расположение элемента в пирамиде…………………………….. 153

4.3.5. Сортировка вставками…………………………………………………………………………………………… 154

4.4. История из жизни. Билет на самолет………………………………………………………………………………. 155

4.5. Сортировка слиянием. Метод «разделяй и властвуй»…………………………………………………… 158

4.6. Быстрая сортировка. Рандомизированная версия…………………………………………………………. 160

4.6.1. Интуиция: ожидаемое время исполнения алгоритма быстрой сортировки………. 163

4.6.2. Рандомизированные алгоритмы……………………………………………………………………………. 164

Остановка для размышлений:  Болты и гайки…………………………………………………………………. 166

4.6.3. Действительно ли алгоритм быстрой сортировки работает быстро?……………….. 167

4.7. Сортировка распределением. Метод блочной сортировки………………………………………….. 167

4.7.1. Нижние пределы для сортировки………………………………………………………………………….. 168

4.8. История из жизни. Скиена в суде…………………………………………………………………………………….. 170

Замечания к главе……………………………………………………………………………………………………………………. 172

4.9. Упражнения……………………………………………………………………………………………………………………….. 172

Применение сортировки: сортировка чисел………………………………………………………………….. 172

Применение сортировки: интервалы и множества………………………………………………………… 174

Пирамиды………………………………………………………………………………………………………………………….. 175

Быстрая сортировка…………………………………………………………………………………………………………. 175

Сортировка слиянием………………………………………………………………………………………………………. 176

Другие алгоритмы сортировки……………………………………………………………………………………….. 177

Нижние пределы………………………………………………………………………………………………………………. 178

Поиск…………………………………………………………………………………………………………………………………. 178

Задачи по реализации……………………………………………………………………………………………………… 178

Задачи, предлагаемые на собеседовании……………………………………………………………………… 179

LeetCode……………………………………………………………………………………………………………………………. 179

HackerRank……………………………………………………………………………………………………………………….. 180

Задачи по программированию……………………………………………………………………………………….. 180

Глава 5. Метод «разделяй и властвуй»…………………………………………………. 181

5.1. Двоичный поиск и связанные с ним алгоритмы……………………………………………………………… 181

5.1.1. Частота вхождения элемента………………………………………………………………………………… 182

5.1.2. Односторонний двоичный поиск…………………………………………………………………………… 183

5.1.3. Корни числа……………………………………………………………………………………………………………. 184

5.2. История из жизни. Поиск «бага в баге»…………………………………………………………………………… 184

5.3. Рекуррентные соотношения…………………………………………………………………………………………….. 186

5.3.1. Рекуррентные соотношения метода «разделяй и властвуй»………………………………. 187

5.4. Решение рекуррентных соотношений типа «разделяй и властвуй» (*)……………………….. 188

5.5. Быстрое умножение………………………………………………………………………………………………………….. 190

5.6. Поиск наибольшего поддиапазона и ближайшей пары………………………………………………… 192

5.7. Параллельные алгоритмы……………………………………………………………………………………………….. 194

5.7.1. Параллелизм на уровне данных……………………………………………………………………………. 194

5.7.2. Подводные камни параллелизма………………………………………………………………………….. 195

5.8. История из жизни. «Торопиться в никуда»……………………………………………………………………… 196

5.9. Свертка (*)…………………………………………………………………………………………………………………………. 197

5.9.1. Применение свертки……………………………………………………………………………………………….. 198

5.9.2. Быстрое полиномиальное умножение (**)…………………………………………………………… 199

Замечания к главе……………………………………………………………………………………………………………………. 202

5.10. Упражнения…………………………………………………………………………………………………………………….. 202

Двоичный поиск……………………………………………………………………………………………………………… 202

Алгоритмы типа «разделяй и властвуй»………………………………………………………………………. 203

Рекуррентные соотношения…………………………………………………………………………………………… 203

LeetCode………………………………………………………………………………………………………………………….. 204

HackerRank……………………………………………………………………………………………………………………… 204

Задачи по программированию……………………………………………………………………………………… 205

Глава 6. Хеширование и рандомизированные алгоритмы……………………. 206

Остановка для размышлений:  Город быстрой сортировки…………………………………………… 207

6.1. Обзор теории вероятностей……………………………………………………………………………………………… 207

6.1.1. Теория вероятностей………………………………………………………………………………………………. 207

6.1.2. Составные события и независимость……………………………………………………………………. 209

6.1.3. Условная вероятность……………………………………………………………………………………………. 210

6.1.4. Распределения вероятностей…………………………………………………………………………………. 211

6.1.5. Среднее и дисперсия………………………………………………………………………………………………. 212

6.1.6. Броски монет…………………………………………………………………………………………………………… 212

Остановка для размышлений:  Случайный обход графа……………………………………………….. 213

6.2. Задача мячиков и контейнеров………………………………………………………………………………………… 214

6.2.1. Задача о собирании купонов………………………………………………………………………………… 216

Остановка для размышлений:  Время покрытия для Kn………………………………………………….. 216

6.3. Почему хеширование является рандомизированным алгоритмом?…………………………….. 217

6.4. Фильтры Блума…………………………………………………………………………………………………………………. 218

6.5. Парадокс дня рождения и идеальное хеширование………………………………………………………. 220

6.6. Метод минимальных хеш-кодов……………………………………………………………………………………… 222

Остановка для размышлений:  Приблизительная оценка численности популяции……… 224

6.7. Эффективный поиск подстроки в строке…………………………………………………………………………. 225

6.8. Тестирование чисел на простоту…………………………………………………………………………………….. 226

6.9. История из жизни. Как я дал Кнуту свой средний инициал………………………………………….. 228

6.10. Откуда берутся случайные числа?……………………………………………………………………………….. 229

Замечания к главе……………………………………………………………………………………………………………………. 230

6.11. Упражнения…………………………………………………………………………………………………………………….. 230

Вероятность…………………………………………………………………………………………………………………….. 230

Хеширование…………………………………………………………………………………………………………………… 231

Рандомизированные алгоритмы……………………………………………………………………………………. 231

LeetCode………………………………………………………………………………………………………………………….. 232

HackerRank……………………………………………………………………………………………………………………… 232

Задачи по программированию……………………………………………………………………………………… 232

Глава 7. Обход графов………………………………………………………………………….. 233

7.1. Разновидности графов………………………………………………………………………………………………………. 234

7.1.1. Граф дружеских отношений………………………………………………………………………………….. 237

7.2. Структуры данных для графов………………………………………………………………………………………… 240

7.3. История из жизни. Жертва закона Мура………………………………………………………………………… 244

7.4. История из жизни. Создание графа…………………………………………………………………………………. 248

7.5. Обход графа………………………………………………………………………………………………………………………. 250

7.6. Обход в ширину………………………………………………………………………………………………………………… 251

7.6.1. Применение обхода………………………………………………………………………………………………… 254

7.6.2. Поиск путей…………………………………………………………………………………………………………….. 255

7.7. Применение обхода в ширину…………………………………………………………………………………………. 256

7.7.1. Компоненты связности…………………………………………………………………………………………… 256

7.7.2. Раскраска графов двумя цветами………………………………………………………………………….. 257

7.8. Обход в глубину………………………………………………………………………………………………………………… 259

7.9. Применение обхода в глубину…………………………………………………………………………………………. 263

7.9.1. Поиск циклов…………………………………………………………………………………………………………… 263

7.9.2. Шарниры графа………………………………………………………………………………………………………. 264

7.10. Обход в глубину ориентированных графов…………………………………………………………………. 268

7.10.1. Топологическая сортировка………………………………………………………………………………… 270

7.10.2. Сильно связные компоненты……………………………………………………………………………….. 272

Замечания к главе……………………………………………………………………………………………………………………. 274

7.11. Упражнения…………………………………………………………………………………………………………………….. 275

Алгоритмы для эмуляции графов………………………………………………………………………………….. 275

Обход графов………………………………………………………………………………………………………………….. 276

Приложения…………………………………………………………………………………………………………………….. 277

Разработка алгоритмов…………………………………………………………………………………………………. 278

Ориентированные графы……………………………………………………………………………………………….. 280

Шарниры графа……………………………………………………………………………………………………………… 281

Задачи, предлагаемые на собеседовании……………………………………………………………………. 282

LeetCode………………………………………………………………………………………………………………………….. 282

HackerRank…………………………………………………………………………………………………………………….. 282

Задачи по программированию……………………………………………………………………………………… 282

Глава 8. Алгоритмы для работы со взвешенными графами………………….. 283

8.1. Минимальные остовные деревья…………………………………………………………………………………….. 284

8.1.1. Алгоритм Прима……………………………………………………………………………………………………… 285

8.1.2. Алгоритм Крускала………………………………………………………………………………………………… 288

8.1.3. Структура данных непересекающихся множеств……………………………………………….. 290

8.1.4. Разновидности остовных деревьев……………………………………………………………………….. 293

8.2. История из жизни. И всё на свете — только сети……………………………………………………………. 295

8.3. Поиск кратчайшего пути………………………………………………………………………………………………….. 298

8.3.1. Алгоритм Дейкстры………………………………………………………………………………………………… 299

Остановка для размышлений:  Кратчайший путь с учетом веса вершин……………………… 302

8.3.2. Кратчайшие пути между всеми парами вершин………………………………………………….. 302

8.3.3. Транзитивное замыкание……………………………………………………………………………………….. 304

8.4. История из жизни. Печатаем с помощью номеронабирателя……………………………………….. 305

8.5. Потоки в сетях и паросочетание в двудольных графах………………………………………………… 309

8.5.1. Паросочетание в двудольном графе…………………………………………………………………….. 310

8.5.2. Вычисление потоков в сети……………………………………………………………………………………. 311

8.6. Произвольный минимальный разрез……………………………………………………………………………….. 315

8.7. Разрабатывайте не алгоритмы, а графы…………………………………………………………………………. 316

Остановка для размышлений:  Нить Ариадны………………………………………………………………… 317

Остановка для размышлений:  Упорядочивание последовательности…………………………. 317

Остановка для размышлений:  Размещение прямоугольников по корзинам…………………. 318

Остановка для размышлений:  Конфликт имен файлов………………………………………………….. 318

Остановка для размышлений:  Разделение текста…………………………………………………………… 318

Замечания к главе……………………………………………………………………………………………………………………. 319

8.8. Упражнения……………………………………………………………………………………………………………………….. 319

Алгоритмы для эмуляции графов……………………………………………………………………………………. 319

Минимальные остовные деревья…………………………………………………………………………………….. 319

Поиск-объединение………………………………………………………………………………………………………….. 321

Поиск кратчайшего пути…………………………………………………………………………………………………. 321

Потоки в сети и паросочетание………………………………………………………………………………………. 323

LeetCode……………………………………………………………………………………………………………………………. 323

HackerRank……………………………………………………………………………………………………………………….. 323

Задачи по программированию……………………………………………………………………………………….. 323

Глава 9. Комбинаторный поиск…………………………………………………………… 324

9.1. Перебор с возвратом…………………………………………………………………………………………………………. 324

9.2. Примеры перебора с возвратом………………………………………………………………………………………. 327

9.2.1. Генерирование всех подмножеств………………………………………………………………………… 327

9.2.2. Генерирование всех перестановок……………………………………………………………………….. 329

9.2.3. Генерирование всех путей в графе……………………………………………………………………….. 330

9.3. Отсечение вариантов поиска…………………………………………………………………………………………… 332

9.4. Судоку……………………………………………………………………………………………………………………………….. 333

9.5. История из жизни. Покрытие шахматной доски…………………………………………………………….. 339

9.6. Поиск методом «лучший-первый»…………………………………………………………………………………… 342

9.7. Эвристический алгоритм А*……………………………………………………………………………………………. 345

Замечания к главе……………………………………………………………………………………………………………………. 347

9.8. Упражнения……………………………………………………………………………………………………………………….. 347

Перестановки……………………………………………………………………………………………………………………. 347

Перебор с возвратом………………………………………………………………………………………………………… 348

Игры и головоломки…………………………………………………………………………………………………………. 349

Комбинаторная оптимизация………………………………………………………………………………………….. 350

Задачи, предлагаемые на собеседовании……………………………………………………………………… 350

LeetCode……………………………………………………………………………………………………………………………. 351

HackerRank……………………………………………………………………………………………………………………….. 351

Задачи по программированию……………………………………………………………………………………….. 351

Глава 10. Динамическое программирование………………………………………… 352

10.1. Кэширование и вычисления…………………………………………………………………………………………… 353

10.1.1. Генерирование чисел Фибоначчи методом рекурсии…………………………………….. 353

10.1.2. Генерирование чисел Фибоначчи посредством кэширования……………………….. 354

10.1.3. Генерирование чисел Фибоначчи посредством динамического программирования       356

10.1.4. Биномиальные коэффициенты…………………………………………………………………………… 358

10.2. Поиск приблизительно совпадающих строк………………………………………………………………… 360

10.2.1. Применение рекурсии для вычисления расстояния редактирования…………….. 361

10.2.2. Применение динамического программирования для вычисления
расстояния редактирования………………………………………………………………………………………….. 362

10.2.3. Восстановление пути…………………………………………………………………………………………. 364

10.2.4. Разновидности расстояния редактирования……………………………………………………. 366

10.3. Самая длинная возрастающая подпоследовательность…………………………………………….. 370

10.4. История из жизни. Сжатие текста для штрихкодов……………………………………………………… 372

10.5. Неупорядоченное разбиение или сумма подмножества…………………………………………….. 376

10.6. История из жизни: Баланс мощностей………………………………………………………………………….. 378

10.7. Задача упорядоченного разбиения………………………………………………………………………………. 381

10.8. Синтаксический разбор………………………………………………………………………………………………….. 384

Остановка для размышлений:  Экономичный синтаксический разбор……………………… 386

10.9. Ограничения динамического программирования: задача коммивояжера………………… 387

10.9.1. Вопрос правильности алгоритмов динамического программирования………… 388

10.9.2. Эффективность алгоритмов динамического программирования……………………. 389

10.10. История из жизни. Динамическое программирование и язык Prolog………………………… 390

Замечания к главе……………………………………………………………………………………………………………………. 393

10.11. Упражнения…………………………………………………………………………………………………………………… 394

Простые рекуррентные соотношения…………………………………………………………………………. 394

Расстояние редактирования………………………………………………………………………………………… 394

«Жадные» алгоритмы…………………………………………………………………………………………………… 396

Числовые задачи…………………………………………………………………………………………………………… 397

Задачи на графы…………………………………………………………………………………………………………… 399

Задачи по разработке………………………………………………………………………………………………….. 399

Задачи, предлагаемые на собеседовании………………………………………………………………….. 402

LeetCode………………………………………………………………………………………………………………………… 402

HackerRank…………………………………………………………………………………………………………………… 402

Задачи по программированию……………………………………………………………………………………. 402

Глава 11. NP-полнота…………………………………………………………………………… 403

11.1. Сведение задач……………………………………………………………………………………………………………….. 403

11.1.1. Ключевая идея…………………………………………………………………………………………………….. 404

11.1.2. Задачи разрешимости………………………………………………………………………………………… 405

11.2. Сведение для создания новых алгоритмов…………………………………………………………………… 406

11.2.1. Поиск ближайшей пары……………………………………………………………………………………… 406

11.2.2. Максимальная возрастающая подпоследовательность…………………………………. 407

11.2.3. Наименьшее общее кратное………………………………………………………………………………. 408

11.2.4. Выпуклая оболочка (*)………………………………………………………………………………………. 409

11.3. Простые примеры сведения сложных задач………………………………………………………………… 410

11.3.1. Гамильтонов цикл……………………………………………………………………………………………….. 410

11.3.2. Независимое множество и вершинное покрытие……………………………………………… 412

Остановка для размышлений:  Сложность общей задачи календарного планирования 413

11.3.3. Задача о клике…………………………………………………………………………………………………….. 415

11.4. Задача выполнимости булевых формул………………………………………………………………………. 416

11.4.1. Задача выполнимости в 3-конъюнктивной нормальной форме
(задача 3-SAT)…………………………………………………………………………………………………………………. 417

11.5. Нестандартные сведения задачи SAT…………………………………………………………………………… 419

11.5.1. Вершинное покрытие………………………………………………………………………………………….. 419

11.5.2. Целочисленное программирование…………………………………………………………………… 421

11.6. Искусство доказательства сложности………………………………………………………………………….. 423

11.7. История из жизни. Наперегонки со временем………………………………………………………………. 425

11.8. История из жизни. Полный провал………………………………………………………………………………… 427

11.9. Сравнение классов сложности P и NP…………………………………………………………………………… 430

11.9.1. Верификация решения и поиск решения…………………………………………………………… 430

11.9.2. Классы сложности P и NP………………………………………………………………………………….. 431

11.9.3. Почему задача выполнимости является сложной?…………………………………………. 432

11.9.4. NP-сложность по сравнению с NP-полнотой……………………………………………………. 432

Замечания к главе……………………………………………………………………………………………………………………. 433

11.10. Упражнения…………………………………………………………………………………………………………………… 434

Преобразования и выполнимость……………………………………………………………………………….. 434

Базовые сведения………………………………………………………………………………………………………….. 435

Нестандартные сведения…………………………………………………………………………………………….. 437

Алгоритмы для решения частных случаев задач……………………………………………………… 438

P или NP?……………………………………………………………………………………………………………………….. 439

LeetCode………………………………………………………………………………………………………………………… 439

HackerRank…………………………………………………………………………………………………………………… 439

Задачи по программированию……………………………………………………………………………………. 439

Глава 12. Решение сложных задач……………………………………………………….. 440

12.1. Аппроксимирующие алгоритмы……………………………………………………………………………………. 440

12.2. Аппроксимация вершинного покрытия…………………………………………………………………………. 441

Остановка для размышлений:  Вершинное покрытие в остатке…………………………………. 443

12.2.1. Рандомизированный эвристический алгоритм вершинного покрытия…………. 444

12.3. Задача коммивояжера в евклидовом пространстве…………………………………………………….. 445

12.3.1. Эвристический алгоритм Кристофидеса………………………………………………………….. 446

12.4. Когда среднее достаточно хорошее……………………………………………………………………………… 448

12.4.1. Задача максимальной k-SAT……………………………………………………………………………… 448

12.4.2. Максимальный бесконтурный подграф……………………………………………………………. 449

12.5. Задача о покрытии множества………………………………………………………………………………………. 449

12.6. Эвристические методы поиска………………………………………………………………………………………. 451

12.6.1. Произвольная выборка……………………………………………………………………………………….. 452

Остановка для размышлений:  Выбор пары…………………………………………………………………. 454

12.6.2. Локальный поиск………………………………………………………………………………………………… 455

12.6.3. Имитация отжига………………………………………………………………………………………………… 459

Реализация…………………………………………………………………………………………………………… 462

12.6.4. Применение метода имитации отжига………………………………………………………………. 463

Задача максимального разреза…………………………………………………………………………. 463

Независимое множество…………………………………………………………………………………….. 463

Размещение компонентов на печатной плате………………………………………………….. 464

12.7. История из жизни. Только это не радио………………………………………………………………………… 465

12.8. История из жизни. Отжиг массивов……………………………………………………………………………….. 468

12.9. Генетические алгоритмы и другие эвристические методы поиска…………………………….. 471

12.9.1. Генетические алгоритмы……………………………………………………………………………………. 471

12.10. Квантовые вычисления………………………………………………………………………………………………… 472

12.10.1. Свойства «квантовых» компьютеров………………………………………………………………. 473

12.10.2. Алгоритм Гровера для поиска в базе данных………………………………………………… 475

Решение задачи о выполнимости…………………………………………………………………….. 475

12.10.3. Более быстрое «преобразование Фурье»……………………………………………………….. 476

12.10.4. Алгоритм Шора для разложения целых чисел на множители……………………… 477

12.10.5. Перспективы квантовых вычислений……………………………………………………………… 479

Замечания к главе……………………………………………………………………………………………………………………. 481

12.11. Упражнения…………………………………………………………………………………………………………………… 482

Частные случаи сложных задач…………………………………………………………………………………. 482

Аппроксимирующие алгоритмы…………………………………………………………………………………. 482

Комбинаторная оптимизация……………………………………………………………………………………… 483

«Квантовые» вычисления…………………………………………………………………………………………….. 484

LeetCode………………………………………………………………………………………………………………………… 484

HackerRank…………………………………………………………………………………………………………………… 484

Задачи по программированию……………………………………………………………………………………. 484

Глава 13. Как разрабатывать алгоритмы?……………………………………………. 485

13.1. Список вопросов для разработчика алгоритмов…………………………………………………………. 486

13.2. Подготовка к собеседованию в технологических компаниях…………………………………….. 489

Часть II. Каталог алгоритмических задач…………………………. 493

Глава 14. Описание каталога……………………………………………………………….. 495

14.1. Предостережения……………………………………………………………………………………………………………. 496

Глава 15. Структуры данных……………………………………………………………….. 497

15.1. Словари……………………………………………………………………………………………………………………………. 497

15.2. Очереди с приоритетами………………………………………………………………………………………………… 503

15.3. Суффиксные деревья и массивы…………………………………………………………………………………….. 507

15.4. Графы………………………………………………………………………………………………………………………………. 511

15.5. Множества………………………………………………………………………………………………………………………. 515

15.6. Kd-деревья……………………………………………………………………………………………………………………….. 519

Глава 16. Численные задачи………………………………………………………………… 525

16.1. Решение системы линейных уравнений………………………………………………………………………… 526

16.2. Уменьшение ширины ленты матрицы…………………………………………………………………………… 530

16.3. Умножение матриц…………………………………………………………………………………………………………. 532

16.4. Определители и перманенты…………………………………………………………………………………………. 535

16.5. Условная и безусловная оптимизация………………………………………………………………………….. 538

16.6. Линейное программирование………………………………………………………………………………………… 542

16.7. Генерирование случайных чисел………………………………………………………………………………….. 547

16.8. Разложение на множители и проверка чисел на простоту…………………………………………. 552

16.9. Арифметика произвольной точности……………………………………………………………………………. 555

16.10. Задача о рюкзаке………………………………………………………………………………………………………….. 560

16.11. Дискретное преобразование Фурье…………………………………………………………………………….. 565

Глава 17. Комбинаторные задачи…………………………………………………………. 569

17.1. Сортировка……………………………………………………………………………………………………………………… 570

17.2. Поиск………………………………………………………………………………………………………………………………… 575

17.3. Поиск медианы и выбор элементов……………………………………………………………………………….. 579

17.4. Генерирование перестановок………………………………………………………………………………………… 582

17.5. Генерирование подмножеств…………………………………………………………………………………………. 587

17.6. Генерирование разбиений……………………………………………………………………………………………… 590

17.7. Генерирование графов……………………………………………………………………………………………………. 595

17.8. Календарные вычисления……………………………………………………………………………………………… 599

17.9. Календарное планирование………………………………………………………………………………………….. 601

17.10. Выполнимость………………………………………………………………………………………………………………. 605

Глава 18. Задачи на графах c полиномиальным временем исполнения… 609

18.1. Компоненты связности…………………………………………………………………………………………………… 610

18.2. Топологическая сортировка………………………………………………………………………………………….. 613

18.3. Минимальные остовные деревья…………………………………………………………………………………… 617

18.4. Поиск кратчайшего пути………………………………………………………………………………………………… 622

18.5. Транзитивное замыкание и транзитивная редукция……………………………………………………. 627

18.6. Паросочетание………………………………………………………………………………………………………………… 630

18.7. Задача поиска эйлерова цикла и задача китайского почтальона…………………………….. 634

18.8. Реберная и вершинная связность…………………………………………………………………………………… 637

18.9. Потоки в сети…………………………………………………………………………………………………………………… 641

18.10. Рисование графов………………………………………………………………………………………………………….. 644

18.11. Рисование деревьев………………………………………………………………………………………………………. 649

18.12. Планарность………………………………………………………………………………………………………………….. 652

Глава 19. NP-сложные задачи на графах………………………………………………. 655

19.1. Задача о клике………………………………………………………………………………………………………………… 655

19.2. Независимое множество…………………………………………………………………………………………………. 658

19.3. Вершинное покрытие……………………………………………………………………………………………………… 661

19.4. Задача коммивояжера……………………………………………………………………………………………………. 664

19.5. Гамильтонов цикл…………………………………………………………………………………………………………… 668

19.6. Разбиение графов……………………………………………………………………………………………………………. 672

19.7. Вершинная раскраска…………………………………………………………………………………………………….. 675

19.8. Реберная раскраска………………………………………………………………………………………………………… 679

19.9. Изоморфизм графов………………………………………………………………………………………………………… 680

19.10. Дерево Штейнера………………………………………………………………………………………………………….. 685

19.11. Разрывающее множество ребер или вершин……………………………………………………………… 689

Глава 20. Вычислительная геометрия…………………………………………………… 693

20.1. Элементарные задачи вычислительной геометрии…………………………………………………….. 693

20.2. Выпуклая оболочка………………………………………………………………………………………………………… 698

20.3. Триангуляция………………………………………………………………………………………………………………….. 702

20.4. Диаграммы Вороного…………………………………………………………………………………………………….. 706

20.5. Поиск ближайшей точки………………………………………………………………………………………………… 709

20.6. Поиск в области………………………………………………………………………………………………………………. 713

20.7. Местоположение точки………………………………………………………………………………………………….. 716

20.8. Выявление пересечений…………………………………………………………………………………………………. 720

20.9. Разложение по контейнерам………………………………………………………………………………………….. 724

20.10. Преобразование к срединной оси……………………………………………………………………………….. 728

20.11. Разбиение многоугольника на части…………………………………………………………………………… 731

20.12. Упрощение многоугольников………………………………………………………………………………………. 734

20.13. Выявление сходства фигур………………………………………………………………………………………….. 737

20.14. Планирование перемещений……………………………………………………………………………………….. 740

20.15. Конфигурации прямых…………………………………………………………………………………………………. 744

20.16. Сумма Минковского……………………………………………………………………………………………………… 747

Глава 21. Множества и строки……………………………………………………………… 750

21.1. Поиск покрытия множества……………………………………………………………………………………………. 750

21.2. Задача укладки множества……………………………………………………………………………………………. 755

21.3. Сравнение строк……………………………………………………………………………………………………………… 758

21.4. Нечеткое сравнение строк……………………………………………………………………………………………… 761

21.5. Сжатие текста…………………………………………………………………………………………………………………. 766

21.6. Криптография………………………………………………………………………………………………………………….. 770

21.7. Минимизация конечного автомата……………………………………………………………………………….. 776

21.8. Максимальная общая подстрока………………………………………………………………………………….. 779

21.9. Поиск минимальной общей надстроки…………………………………………………………………………. 782

Глава 22. Ресурсы………………………………………………………………………………… 786

22.1. Программные системы……………………………………………………………………………………………………. 786

22.1.1. Библиотека LEDA………………………………………………………………………………………………. 786

22.1.2. Библиотека CGAL………………………………………………………………………………………………. 787

22.1.3. Библиотека Boost……………………………………………………………………………………………….. 787

22.1.4. Библиотека Netlib……………………………………………………………………………………………….. 788

22.1.5. Коллекция алгоритмов ассоциации ACM………………………………………………………… 788

22.1.6. Сайты GitHub и SourceForge………………………………………………………………………………. 788

22.1.7. Система Stanford GraphBase……………………………………………………………………………… 789

22.1.8. Пакет Combinatorica…………………………………………………………………………………………… 789

22.1.9. Программы из книг……………………………………………………………………………………………… 789

Книга «Programming Challenges»……………………………………………………………………….. 790

Книга «Combinatorial Algorithms for Computers and Calculators»…………………… 790

Книга «Computational Geometry in C»………………………………………………………………. 790

Книга «Algorithms in C++»………………………………………………………………………………….. 790

Книга «Discrete Optimization Algorithms in Pascal»…………………………………………… 791

22.2. Источники данных………………………………………………………………………………………………………….. 791

22.3. Библиографические ресурсы…………………………………………………………………………………………. 791

22.4. Профессиональные консалтинговые услуги………………………………………………………………… 792

Глава 23. Список литературы………………………………………………………………. 793

Приложение. Описание электронного архива………………………………………. 838

Предметный указатель…………………………………………………………………………. 839

Опубликовано

Создай хит на Хабре!

Хит на Хабр

Представляем книгу Антона Полякова “Хит на Хабр“.

Книга рассматривает малоисследованный аспект технического писательства и продвижения: ведение технического блога. Автор книги Антон Поляков, много лет отдавший сайту «Хабр», на многочисленных примерах пошагово раскрывает секреты мастерства и помогает освоить ведение информативного и рентабельного технического блога во всех деталях. При этом невозможно переоценить влияние сообщества читателей как на восприятие контента, публикуемого в блоге, так и на развитие имиджа автора или компании, которым блог принадлежит. Поэтому за основу для книги было взято сообщество «Хабр» с его обширной аудиторией, исключительным тематическим разнообразием, бескомпромиссными интеллектуальными дискуссиями, а также уникальными системами «кармы» и «рейтинга», практически не оставляющими шанса откровенно бросовым или бездумно проплаченным материалам.

Хабр — это не просто крупнейшая площадка техноблогов на русском языке, это ещё и уникальное коммьюнити. Аудитория Хабра живая, вдумчивая, готовая вступать в дискуссию и делиться опытом, это интеллектуалы-технари, в особенности – элита сферы ИТ. К такой аудитории нужен особый подход и, к сожалению, нередко компании не могут найти путь к читателям, упираются в коммерческую составляющую своих контент-планов и теряют нить диалога. Эта книга — история о том, как не заблудиться и не заблуждаться на Хабре, выстраивать основательную и надёжную стратегию ведения блога…
Виктория Гонгина, ведущий специалист Хабра по работе с пользователями

Книга Антона — это возможность научится писать хорошо для IT-сообщества в целом. Это способ научиться писать успешно на Хабр. Это способ хакнуть свои страхи и преодолеть писательский ступор. Все это за счет стройной практической методики и за счет статистики по Хабру с ценными выводами и с ценными инсайтами. Плюс, книга содержит прекрасные волшебные пендели, поэтому стоит взять ее на вооружение.
Кирилл Анастасин, дизайнер, художник, продюсер презентаций и ИТ-конференций

Об авторе

Антон Поляков

Антон Поляков — экс-главред сайта 3DNews, легендарный, яркий, профессиональный автор и представитель «старой гвардии» крупнейшего русскоязычного IT-сообщества «Хабр». Создатель продвинутых корпоративных курсов, раскрывающих секреты написания технических и маркетинговых текстов, спикер, консультант, руководитель контент-студии «IT-Content.pro» .

Книгу можно купить в нашем интернет-магазине.

ГЛАВА 1. Семь вещей, которые Habr дает автору. 9

Прокачка софт-скиллов. 9

Личный бренд. 11

Систематизация знаний. 12

Обкатка идей, сбор критики и советов. 13

Реализация базовой потребности делиться и самореализация. 14

Поиск близких по духу коллег. 14

10 статей спустя. 15

ГЛАВА 2. Что мешает начать писать…… 17

Синдром самозванца. 17

В чем проблема у айтишников?. 18

Как избавиться от синдрома самозванца?. 19

Понабегут хейтеры и заминусуют…… 21

ГЛАВА 3. Habr в цифрах и ролях. 27

Типы аккаунтов. 27

Механизм кармы. 28

Чего и сколько публикуется на Habr…… 30

Статистика по хитам. 35

ГЛАВА 4. Где брать хитовые темы и как с ними работать?. 38

Хитовые жанры. 40

Социальное. 41

Разоблачение. 42

Расследование. 44

DIY.. 45

Наболевшее. 45

Как это устроено…… 46

Личный опыт. 46

Гиковское и хардкор. 47

Чего ждут на Хабре…… 48

Как оценить предварительный интерес к теме
или направлению?. 49

Откуда брать темы?. 50

Внутренняя и внешняя аналитика. 51

Собственная экспертиза. 51

Социальные аспекты. 51

Опенсорсные проекты. 52

Реальные кейсы. 52

Переводы. 52

Хобби, связанные с технологиями. 53

Расшифровки своих докладов. 53

Конференции и митапы. 54

Ваше мнение по очередному новостному событию.. 55

Откуда берутся хиты?. 55

Драйв-лист. 57

Второй способ поиска тем, с которого надо начинать. 61

А есть какие-то гениальные техники?. 62

Еще раз про выбор лучших тем. 63

Зачем занимать свою нишу?. 65

Байка про зарядки. 66

Главная ошибка при выборе темы,
или на чем надо сосредоточиться?. 68

Что делать, если мое направление непопулярно?. 71

Если я не суперкрут…… 72

Не экспертом единым. 74

Specialist 74

Cross trainer 74

Survivor 76

The called. 78

Подведем итоги. 79

А вдруг мою тему перехватят?. 80

ГЛАВА 5. Работа с текстом.. 81

  1. Изучение информационного поля. 82
  2. Определение главного. 84

Байка про контрафактные HDD.. 84

  1. Выбор формата. 88

Проблема интервью.. 89

  1. Рабочий заголовок. 91
  2. Структура. 94

Энциклопедический формат. 95

Обзор. 96

Кейсы. 97

Байка. 98

Разделы, подзаголовки и их правильное оформление. 100

6-7. Работа над текстом: с чего начать и каким языком

6-7. Работа над текстом: с чего начать и каким языком говорить с читателем?  102

Онлайновые сервисы проверки текста. 107

  1. Сокращение и вычитка. 109

Финальные аккорды. 111

Дать полежать. 111

Произвести вычитку. 112

Написать лид. 112

Уточнить заголовок. 112

Популярные вопросы по текстам. 113

Какого объема должен быть текст?. 113

Насколько глубоко раскрывать тему?. 113

Сколько времени может занять написание поста?. 114

Что можно сделать чтобы писать быстрее?. 114

ГЛАВА 6. Работа с изображениями. 115

Иллюстрация. 117

Технический рецепт хорошего фото. 117

Свет. 118

Композиция. 118

Цвета. 119

Насыщенность. 120

Уровни. 120

Кривые. 122

JPG или PNG?. 124

Рисунки. 125

Бесплатное ПО.. 127

Онлайновые сервисы. 128

Съемка людей. 131

Авторские права и источники бесплатных изображений. 132

ГЛАВА 7. Аналитика и юзабилити текстов. 137

Как читают тексты в Интернете?. 137

Как и зачем правильно оформлять посты?. 140

ГЛАВА 8. Подача. 148

Формирование заголовков. 149

Основные проблемы заголовков. 153

Двусоставные заголовки. 155

Лид. 155

Картинка для привлечения внимания (КДПВ) 158

Техническая сторона публикации постов на Хабре. 164

ГЛАВА 9. Чего не стоит делать на Хабре…… 168

Как подстелить соломки…… 176

Если что-то пошло не так…… 177

ГЛАВА 10. Когда лучше публиковать…… 179

ГЛАВА 11. Зачем компаниям вести блог на Хабре…… 187

Кто «живет» на Хабре?. 188

Сколько это стоит?. 191

Зачем компании ведут блоги?. 193

Топ компаний и примеры успеха. 197

Как завести корпоративный блог на Хабре?. 203

А если не на Хабре?. 205

ГЛАВА 12. Кто и как ведет блоги компаний?. 208

Фрилансеры и авторы с Хабра. 208

Как работать с фрилансерами?. 211

Шаблон брифа на подготовку контента. 213

Когда все пошло не так…… 215

Внутрикорпоративная редакция. 216

Контент-студии и агентства. 219

ГЛАВА 13. Как компании писать про себя и свои продукты…… 224

О чем писать в блоге?. 224

Кейсы. 224

Экскурсия по офису. 226

Продукты компании. 229

Анонсы мероприятий. 229

Другие варианты публикаций. 233

Как мотивировать сотрудников писать на Хабр?. 233

Несколько советов. 236

ГЛАВА 14. Основные ошибки в ведении
корпоративных блогов. 238

ГЛАВА 15. Работа с комментариями. 244

Еще пара практических советов. 247

Хайпанем немножечко. 247

Модерация. 250

ГЛАВА 16. Блоги на Medium, iXBT, VC, Яндекс.Дзен,
Пикабу и
YouTube. 254

Medium.. 254

iXBT.Live. 255

VC…    257

Яндекс.Дзен. 258

Пикабу. 261

YouTube. 262

Про деньги: программы поддержки авторов. 263

Habr 264

iXBT.Live. 264

Яндекс.Дзен. 266

Другие площадки с монетизацией. 267

Краткие итоги. 268

ГЛАВА 17. Разбор хитов 2021. 269

  1. «Самый беззащитный — уже не Сапсан.
    Всё оказалось куда хуже…». 269

Про что пост…… 270

Почему хит?. 270

  1. «Собеседование в Яндекс: театр абсурда :/». 272

Про что пост…… 272

Почему стал хитом?. 273

  1. «Трояны и бэкдоры в кнопочных мобильных телефонах российской розницы» 273

Про что пост…… 273

Почему стал хитом?. 273

  1. «Переписка со спамерами: избранное». 274

Про что пост… 274

Почему стал хитом?. 274

  1. «FizzBuzz по-сениорски». 274

Про что пост… 275

Почему стал хитом?. 275

  1. «Мой компьютер на логических микросхемах». 275

Про что пост… 275

Почему стал хитом?. 276

  1. «Необычный дуалбут: ноутбук с “двойным дном”». 276

Про что пост…… 277

Почему стал хитом?. 277

ПРИЛОЖЕНИЕ 1. Словарик специфических терминов
и принятых в среде блогеров сокращений. 278

ПРИЛОЖЕНИЕ 2. QR-коды ссылок. 283

Опубликовано

Представляем “Самоучитель КОМПАС-3D V20”

Самоучитель КОМПАС-3D V20

В нашем издательстве опубликован “Самоучитель КОМПАС-3D V20” Анатолия Герасимова.

Самоучитель позволяет в короткие сроки освоить систему КОМПАС-3D V20. Даны инструкции по оптимальной настройке программы, предложены способы построения геометрических объектов, создания моделей деталей и сборок, оформления конструкторской документации с помощью редактора КОМПАС-График. Рассматриваются создание и редактирование чертежей, в том числе, сборочных чертежей и спецификаций, принципы конструирования и моделирования в КОМПАС-3D, создание сложных объектов. Представлены способы обеспечения точности построения. Изучается проектирование листовых деталей. Особое внимание уделено использованию библиотек, модулей и приложений системы. Подробно рассматривается поверхностное моделирование и методы создания поверхностей. Большое количество примеров и иллюстраций позволит быстро изучить программу и освоить возможности версии 20. На сайте издательства находятся примеры чертежей, эскизы и 3D-модели.

Для широкого круга пользователей

ИДЕЯ — ТРЕХМЕРНАЯ МОДЕЛЬ — КОНСТРУКТОРСКАЯ ДОКУМЕНТАЦИЯ

  • Подробное описание настраиваемого интерфейса
  • Правильная настройка системы КОМПАС-3D
  • Создание, оформление и редактирование чертежей
  • Основы 3D-моделирования в КОМПАС-3D
  • Объектное моделирование
  • Специальные возможности проектирования
  • Эффективное использование модулей, библиотек и приложений системы
  • Поверхностное моделирование и способы создания поверхностей

Герасимов Анатолий Александрович

Герасимов Анатолий Александрович, ведущий инженер-конструктор ОАО «Концерн Океанприбор», автор 10 патентов и изобретений. Имеет многолетний опыт разработки приборов различного назначения. Является сертифицированным преподавателем и автором многочисленных книг по работе в системе КОМПАС-3D.

Книгу можно купить в нашем интернет-магазине.

Оглавление

Введение. Назначение, структура и особенности книги…………………………. 18

Общие сведения о САПР КОМПАС-3D……………………………………………………………………………………. 18

Особенности системы КОМПАС-3D V20………………………………………………………………………………… 19

Требования к аппаратным средствам……………………………………………………………………………………… 20

Состав инсталляционного пакета КОМПАС-3D…………………………………………………………………….. 21

Создание основных документов………………………………………………………………………………………………. 23

Структура книги………………………………………………………………………………………………………………………… 24

Условные обозначения и сокращения, принятые в книге………………………………………………………. 25

От автора……………………………………………………………………………………………………………………………………. 26

Часть I. 2D-конструирование и проектирование……………….. 27

Урок 1. Основы проектирования……………………………………………………………. 29

Основы компьютерной графики……………………………………………………………………………………………….. 29

Система координат КОМПАС-График……………………………………………………………………………………. 29

Единицы измерения……………………………………………………………………………………………………………………. 31

Единая система конструкторской документации…………………………………………………………………… 31

Урок 2. Система КОМПАС-3D V20………………………………………………………… 33

Запуск системы КОМПАС-3D V20…………………………………………………………………………………………… 33

Стартовая страница системы КОМПАС-3D V20……………………………………………………………………. 33

Строка меню Стартовой страницы……………………………………………………………………………………….. 34

Пункт Файл…………………………………………………………………………………………………………………………. 34

Пункт Настройка……………………………………………………………………………………………………………….. 35

Пункт Приложения…………………………………………………………………………………………………………….. 37

Пункт Справка……………………………………………………………………………………………………………………. 37

Окно Открыть…………………………………………………………………………………………………………………… 38

Раздел Создать…………………………………………………………………………………………………………………. 39

Окно с советами…………………………………………………………………………………………………………………………. 39

Справка………………………………………………………………………………………………………………………………………. 39

Новые возможности текущей версии……………………………………………………………………………………….. 40

Учебное пособие Азбука КОМПАС-График…………………………………………………………………………… 40

Учебное пособие Азбука КОМПАС-3D…………………………………………………………………………………… 41

Приемы работы в КОМПАС-График……………………………………………………………………………………….. 42

Приемы работы КОМПАС-3D………………………………………………………………………………………………….. 42

Спецификация: вопросы и ответы……………………………………………………………………………………………. 42

КОМПАС в Интернете……………………………………………………………………………………………………………….. 42

Настройка интерфейса……………………………………………………………………………………………………………… 43

Поиск по командам……………………………………………………………………………………………………………………. 43

Урок 3. Интерфейс системы КОМПАС-График……………………………………… 44

Строка Главного меню………………………………………………………………………………………………………………. 45

Инструментальная область………………………………………………………………………………………………………. 49

Панель Системная……………………………………………………………………………………………………………… 50

Панель инструментов Черчение……………………………………………………………………………………………….. 50

Панель инструментов Геометрия…………………………………………………………………………………….. 50

Панель инструментов Правка…………………………………………………………………………………………… 51

Панель инструментов Размеры…………………………………………………………………………………………. 52

Панель инструментов Обозначения………………………………………………………………………………….. 52

Панель инструментов Ограничения………………………………………………………………………………….. 52

Панель инструментов Диагностика…………………………………………………………………………………. 54

Панель инструментов Виды………………………………………………………………………………………………. 54

Панель инструментов Вставки и макроэлементы………………………………………………………….. 54

Панель инструментов Управление……………………………………………………………………………………. 54

Панель Стандартные изделия………………………………………………………………………………………………….. 55

Панель Быстрого доступа……………………………………………………………………………………………………….. 55

Группа Привязки………………………………………………………………………………………………………………… 56

Группа кнопок параметрического режима……………………………………………………………………… 56

Кнопка Сетка…………………………………………………………………………………………………………………….. 56

Кнопка СК 0 (Локальная система координат)………………………………………………………………… 57

Кнопка Ортогональное черчение………………………………………………………………………………………. 57

Кнопка Округление…………………………………………………………………………………………………………….. 57

Шаг перемещения курсора………………………………………………………………………………………………… 57

Кнопка Увеличить масштаб рамкой……………………………………………………………………………….. 57

Текущий масштаб………………………………………………………………………………………………………………. 58

Текущее состояние…………………………………………………………………………………………………………….. 58

Перестроить………………………………………………………………………………………………………………………. 58

Копировать свойства……………………………………………………………………………………………………….. 58

Панель управления……………………………………………………………………………………………………………… 58

Дерево чертежа…………………………………………………………………………………………………………………………. 59

Кнопка Отображение панелей…………………………………………………………………………………………………. 59

Фрагменты………………………………………………………………………………………………………………………………….. 59

Урок 4. Настройки параметров и интерфейса системы КОМПАС-3D V20 61

Настройка параметров системы КОМПАС из Строки Главного меню………………………………… 61

Общие настройки системы на вкладке Система…………………………………………………………….. 62

Окно системы……………………………………………………………………………………………………………………………… 67

Вкладки документов………………………………………………………………………………………………………….. 67

Создание новых окон…………………………………………………………………………………………………………. 68

Настройка Инструментальной области…………………………………………………………………………………. 69

Изменение вертикального размера…………………………………………………………………………………… 69

Изменение горизонтального размера……………………………………………………………………………….. 70

Изменение положения команды/панели…………………………………………………………………………… 70

Перенос панелей в графическую область………………………………………………………………………… 70

Настройка интерфейса……………………………………………………………………………………………………………… 71

Добавление команды…………………………………………………………………………………………………………. 72

Удаление команды…………………………………………………………………………………………………………….. 73

Создание пользовательской панели…………………………………………………………………………………. 73

Изменение списка набора инструментальных панелей…………………………………………………. 73

Создание пользовательского набора……………………………………………………………………………….. 74

Добавление имеющейся панели в набор………………………………………………………………………….. 75

Настройка Панели управления………………………………………………………………………………………………….. 75

Настройка интерфейса……………………………………………………………………………………………………………… 76

Урок 5. Геометрические объекты КОМПАС-График (начало)……………….. 80

Состав геометрических объектов в КОМПАС-График…………………………………………………………… 80

Команда Отрезок………………………………………………………………………………………………………………………. 80

Способы ввода числовых параметров объектов…………………………………………………………………….. 82

Построение отрезка вводом параметров в предопределенном порядке……………………….. 83

Ввод значений параметров в поля……………………………………………………………………………………. 84

Ввод выражений…………………………………………………………………………………………………………………. 84

Передача параметров между командами………………………………………………………………………… 85

Герметический калькулятор……………………………………………………………………………………………… 86

Команды группы Отрезок………………………………………………………………………………………………………… 86

Команда Параллельный отрезок………………………………………………………………………………………. 86

Команда Перпендикулярный отрезок………………………………………………………………………………. 87

Команды группы Окружность…………………………………………………………………………………………………. 88

Команда Окружность……………………………………………………………………………………………………….. 88

Команда Окружность по трем точкам…………………………………………………………………………… 89

Команда Автолиния…………………………………………………………………………………………………………………… 90

Способы построения первого отрезка……………………………………………………………………………… 91

Способы построения последующих отрезков…………………………………………………………………. 92

Способы построения первой дуги…………………………………………………………………………………….. 92

Способы построения последующих дуг………………………………………………………………………….. 93

Команда Запомнить состояние……………………………………………………………………………………………….. 94

Урок 6. Геометрические объекты КОМПАС-График (продолжение)……… 95

Команды группы Прямоугольник……………………………………………………………………………………………… 95

Прямоугольник по двум точкам (по двум вершинам)……………………………………………………… 95

Прямоугольник по центру и вершине……………………………………………………………………………….. 97

Многоугольник по вписанной окружности……………………………………………………………………… 97

Команды группы Дуга……………………………………………………………………………………………………………….. 98

Построение дуги по двум точкам……………………………………………………………………………………… 98

Построение дуги по двум точкам……………………………………………………………………………………. 100

Построение дуги по трем точкам……………………………………………………………………………………. 100

Построение дуги по двум точкам и углу раствора……………………………………………………….. 101

Построение дуги, касательной к кривой………………………………………………………………………… 101

Команды группы Эллипс…………………………………………………………………………………………………………. 102

Эллипс………………………………………………………………………………………………………………………………. 103

Эллипс по диагонали габаритного прямоугольника……………………………………………………. 104

Эллипс по центру и вершине габаритного прямоугольника……………………………………….. 104

Эллипс по центру, середине стороны и вершине описанного параллелограмма……… 104

Эллипс по трем вершинам параллелограмма……………………………………………………………….. 105

Команды группы Вспомогательная прямая………………………………………………………………………….. 105

Построение прямой через две точки………………………………………………………………………………. 106

Построение параллельной прямой…………………………………………………………………………………. 106

Построение биссектрисы угла………………………………………………………………………………………… 107

Команды группы Точка…………………………………………………………………………………………………………… 107

Построение точки…………………………………………………………………………………………………………….. 108

Построение точки по кривой…………………………………………………………………………………………… 108

Построение точки на заданном расстоянии………………………………………………………………….. 109

Команды группы Сплайн по точкам……………………………………………………………………………………… 109

Построение сплайна по точкам………………………………………………………………………………………. 110

Кривая Безье…………………………………………………………………………………………………………………….. 111

Построение ломаной кривой…………………………………………………………………………………………… 111

Команды группы Фаска………………………………………………………………………………………………………….. 112

Построение фасок на многоугольниках…………………………………………………………………………. 112

Команды группы Скругление………………………………………………………………………………………………….. 113

Создание условного пересечения усекаемых объектов……………………………………………….. 113

Урок 7. Создание сложных объектов……………………………………………………. 114

Команда Собрать контур………………………………………………………………………………………………………. 114

Команда Эквидистанта…………………………………………………………………………………………………………. 115

Команда Мультилиния……………………………………………………………………………………………………………. 116

Команды группы Штриховка………………………………………………………………………………………………… 119

Команда Штриховка………………………………………………………………………………………………………………. 119

Команда Заливка……………………………………………………………………………………………………………………… 120

Дополнительные способы задания границ штриховок и заливок………………………………………. 121

Построение ломаной……………………………………………………………………………………………………….. 122

Сборка контура………………………………………………………………………………………………………………… 122

Команда Объект по образцу………………………………………………………………………………………………….. 122

Команда Коническая кривая…………………………………………………………………………………………………… 123

Урок 8. Способы обеспечения точности построения…………………………….. 125

Клавиатурные привязки………………………………………………………………………………………………………….. 125

Изменение формы курсора……………………………………………………………………………………………………… 127

Глобальные привязки………………………………………………………………………………………………………………. 127

Локальные привязки………………………………………………………………………………………………………………… 130

Геометрический калькулятор…………………………………………………………………………………………………. 131

Установка курсора в начало координат……………………………………………………………………………….. 133

Координатная сетка………………………………………………………………………………………………………………… 134

Урок 9. Выделение объектов чертежа…………………………………………………… 137

Способы выделения объектов на чертеже…………………………………………………………………………….. 137

Выделение объектов мышью………………………………………………………………………………………………….. 137

Контекстное меню…………………………………………………………………………………………………………………… 138

Контекстная панель………………………………………………………………………………………………………………… 138

Выделение объектов с помощью команд………………………………………………………………………………. 139

Команда Прежний список………………………………………………………………………………………………. 139

Команда Выделить рамкой…………………………………………………………………………………………….. 139

Команда Выделить секущей рамкой……………………………………………………………………………… 140

Команда Выделить секущей ломаной……………………………………………………………………………. 140

Команда Выделить объекты слоя указанием……………………………………………………………….. 140

Команда Выделить по свойствам………………………………………………………………………………….. 140

Команда Инвертировать выделение……………………………………………………………………………… 142

Команда Выделить все……………………………………………………………………………………………………. 142

Команда Копировать свойства…………………………………………………………………………………………….. 142

Перебор объектов…………………………………………………………………………………………………………………….. 142

Урок 10. Редактирование объектов чертежа…………………………………………. 144

Редактирование объектов с помощью мыши………………………………………………………………………… 144

Перемещение объектов мышью………………………………………………………………………………………. 144

Копирование объектов мышью………………………………………………………………………………………. 145

Редактирование объектов с помощью характерных точек………………………………………………….. 145

Команды изменения масштаба изображения……………………………………………………………………….. 147

Явное задание масштаба отображения…………………………………………………………………………. 147

Изменение масштаба отображения рамкой…………………………………………………………………… 147

Плавное изменение масштаба………………………………………………………………………………………… 148

Сдвиг изображения………………………………………………………………………………………………………….. 148

Переход к предыдущему или последующему масштабу отображения……………………… 149

Обновление изображения………………………………………………………………………………………………… 149

Управление отображением документа в окне………………………………………………………………………. 149

Команды панели инструментов Правка………………………………………………………………………………… 149

Команды кнопки Удаление частей объекта…………………………………………………………………………. 150

Команда Усечь кривую…………………………………………………………………………………………………….. 150

Команда Усечь кривую двумя точками………………………………………………………………………….. 151

Команды кнопки Удлинить до ближайшего объекта…………………………………………………………. 151

Команда Удлинить до ближайшего объекта……………………………………………………………….. 151

Команда Выровнять по границе…………………………………………………………………………………….. 152

Удаление и удлинение группы объектов……………………………………………………………………….. 152

Команды группы Разбить кривую…………………………………………………………………………………………. 152

Команда Разбить кривую на две части…………………………………………………………………………. 152

Команда Разбить кривую на N частей………………………………………………………………………….. 153

Урок 11. Основные приемы редактирования……………………………………….. 154

Команды группы Переместить по координатам………………………………………………………………… 154

Команда Переместить по координатам………………………………………………………………………. 154

Команда Сдвиг по углу и расстоянию……………………………………………………………………………. 156

Команда Повернуть………………………………………………………………………………………………………………… 156

Команда Масштабирование………………………………………………………………………………………………….. 158

Команда Зеркально отразить………………………………………………………………………………………………… 159

Запоминание параметров для команд Сдвиг, Поворот и Симметрия……………………………….. 160

Команды группы Копия………………………………………………………………………………………………………….. 161

Команда Копия указанием………………………………………………………………………………………………. 161

Команда Копия по кривой………………………………………………………………………………………………. 162

Команда Копия по окружности…………………………………………………………………………………….. 164

Команда Копия по сетке…………………………………………………………………………………………………. 165

Команда Копия по концентрической сетке…………………………………………………………………… 168

Команды группы Деформация перемещением………………………………………………………………………. 170

Команда Деформация перемещением…………………………………………………………………………….. 171

Команда Деформация поворотом………………………………………………………………………………….. 172

Команда Деформация масштабированием…………………………………………………………………… 172

Команда Преобразовать в сплайн…………………………………………………………………………………………. 173

Команда Очистить область………………………………………………………………………………………………….. 174

Урок 12. Построение размеров……………………………………………………………… 175

Понятие о взаимозаменяемости……………………………………………………………………………………………… 175

Основные типы размеров………………………………………………………………………………………………………… 175

Команда Линейный размер……………………………………………………………………………………………………… 177

Приемы работы с размерами………………………………………………………………………………………………….. 180

Диалоговое окно КЛАСС ДОПУСКА……………………………………………………………………………… 180

Секция Дополнительные параметры……………………………………………………………………………… 181

Редактирование размерной надписи……………………………………………………………………………… 183

Таблица для ввода надписей………………………………………………………………………………………….. 184

Дополнительная панель параметров……………………………………………………………………………… 185

Ввод текста……………………………………………………………………………………………………………………….. 186

Редактирование размеров……………………………………………………………………………………………….. 189

Команды группы Линейный размер……………………………………………………………………………………….. 189

Линейный размер от общей базы……………………………………………………………………………………. 189

Линейный цепной размер………………………………………………………………………………………………… 190

Линейный размер от отрезка до точки…………………………………………………………………………… 191

Линейный размер с общей размерной линией………………………………………………………………. 191

Линейный размер с обрывом…………………………………………………………………………………………… 192

Диаметральный размер…………………………………………………………………………………………………………… 193

Команды группы Радиальный размер……………………………………………………………………………………. 194

Радиальный размер с изломом……………………………………………………………………………………….. 196

Команды группы Угловой размер………………………………………………………………………………………….. 196

Простой угловой размер………………………………………………………………………………………………….. 196

Угловой размер от общей базы………………………………………………………………………………………. 198

Цепной угловой размер……………………………………………………………………………………………………. 199

Угловой размер с обрывом……………………………………………………………………………………………… 200

Команда Выровнять размерные линии………………………………………………………………………………….. 200

Команда Размер дуги окружности………………………………………………………………………………………… 201

Команда Авторазмер………………………………………………………………………………………………………………. 203

Урок 13. Ввод текста и технологических обозначений…………………………. 204

Команда Надпись…………………………………………………………………………………………………………………….. 204

Команда Шероховатость………………………………………………………………………………………………………. 207

Команда База…………………………………………………………………………………………………………………………… 210

Команда Допуск формы………………………………………………………………………………………………………….. 211

Формирование таблицы допуска……………………………………………………………………………………. 211

Редактирование объектов оформления………………………………………………………………………….. 212

Добавление ответвления…………………………………………………………………………………………………. 213

Команда Волнистая линия………………………………………………………………………………………………………. 213

Команда Линия-выноска…………………………………………………………………………………………………………. 214

Операции с ответвлениями линии-выноски…………………………………………………………………… 216

Команда Автоосевая………………………………………………………………………………………………………………. 216

Создание осевой линии……………………………………………………………………………………………………. 216

Создание обозначений центра для нескольких объектов…………………………………………….. 217

Группа команд Обозначение центра……………………………………………………………………………………… 217

Круговая сетка центров………………………………………………………………………………………………….. 218

Линейная сетка центров…………………………………………………………………………………………………. 220

Команда Таблица…………………………………………………………………………………………………………………….. 221

Урок 14. Создание и оформление чертежа…………………………………………….. 223

Структура Дерева чертежа……………………………………………………………………………………………………. 223

Обозначения в Дереве чертежа……………………………………………………………………………………………… 224

Структура Дерева чертежа Вал редуктора…………………………………………………………………………… 225

Состояние Видов……………………………………………………………………………………………………………………… 226

Поиск объектов чертежа…………………………………………………………………………………………………………. 227

Порядок создания простого вида…………………………………………………………………………………………… 228

Масштаб вида………………………………………………………………………………………………………………………….. 230

Команда Разрыв вида……………………………………………………………………………………………………………… 230

Управление видимостью участков линии разрыва………………………………………………………. 231

Автоматическое создание разрыва в ассоциативном виде………………………………………….. 231

Слои чертежа…………………………………………………………………………………………………………………………… 232

Ввод знака неуказанной шероховатости………………………………………………………………………………. 234

Ввод технических требований чертежа………………………………………………………………………………… 235

Заполнение основной надписи……………………………………………………………………………………………….. 236

Библиотека Материалы и Сортаменты……………………………………………………………………………….. 239

Настройка параметров первого листа…………………………………………………………………………………… 241

Урок 15. Создание сборочного чертежа и спецификации……………………… 244

Разработка сборочного чертежа Редуктор………………………………………………………………………….. 244

Техническое задание……………………………………………………………………………………………………….. 244

Первый этап. Требования к прибору……………………………………………………………………………… 244

Второй этап. Компоновка прибора………………………………………………………………………………… 245

Третий этап. Разработка основного вида редуктора……………………………………………………. 245

Четвертый этап. Окончательное оформление чертежа………………………………………………… 246

Команда Линия разреза/сечения…………………………………………………………………………………………….. 247

Изменение положения вершин при редактировании…………………………………………………….. 249

Команда Обозначение позиций……………………………………………………………………………………….. 249

Команда Выровнять полки выносок………………………………………………………………………………. 250

Создание спецификации сборочного чертежа……………………………………………………………………… 251

Режим Спецификация………………………………………………………………………………………………………. 251

Строка меню в режиме создания спецификации…………………………………………………………… 252

Инструментальная панель в режиме создания спецификации…………………………………….. 254

Создание спецификации, не связанной с чертежом……………………………………………………………… 255

Редактирование текстовой части……………………………………………………………………………………. 259

Вставка и удаление резервных строк…………………………………………………………………………….. 260

Создание раздела спецификации в файле сборочного чертежа…………………………………………. 261

Создание спецификации, связанной с чертежом…………………………………………………………………… 263

Формирование спецификации на основе данных из сборочного чертежа…………………. 263

Просмотр объектов спецификации…………………………………………………………………………………. 265

Создание спецификации по документу………………………………………………………………………….. 266

Настройка спецификации……………………………………………………………………………………………………….. 266

Сохранение спецификации в формате Excel…………………………………………………………………………. 267

Урок 16. Печать документа………………………………………………………………….. 269

Печать из Главного окна программы……………………………………………………………………………………… 269

Режим предварительного просмотра…………………………………………………………………………………….. 269

Интерфейс окна предварительного просмотра…………………………………………………………………….. 271

Настройка предварительного просмотра……………………………………………………………………………… 273

Панель Параметры просмотра……………………………………………………………………………………………… 275

Ручная установка масштаба листа………………………………………………………………………………………… 276

Автоподгонка масштаба листов…………………………………………………………………………………………….. 276

Размещение листов документов на поле вывода………………………………………………………………….. 277

Печать документов………………………………………………………………………………………………………………….. 277

Урок 17. Настройка параметров системы в режиме Чертеж………………… 278

Настройка параметров на вкладке Система………………………………………………………………………… 278

Настройка параметров печати……………………………………………………………………………………….. 278

Настройка параметров Графического редактора……………………………………………………….. 280

Настройка параметров на вкладке Новые документы………………………………………………………… 288

Настройка обозначений для машиностроения…………………………………………………………………….. 300

Настройка параметров чертежа на вкладке Текущий чертеж…………………………………………… 304

Часть II. Твердотельное моделирование…………………………….. 309

Урок 18. Режим Деталь………………………………………………………………………… 311

Интерфейс системы в режиме Деталь……………………………………………………………………………………. 311

Строка Главного меню……………………………………………………………………………………………………………… 312

Инструментальная область…………………………………………………………………………………………………….. 314

Панель Системная…………………………………………………………………………………………………………… 315

Панель управления………………………………………………………………………………………………………………….. 319

Дерево модели………………………………………………………………………………………………………………………….. 319

Отображение Дерева модели…………………………………………………………………………………………… 320

Панель Параметры…………………………………………………………………………………………………………………. 321

Урок 19. Способы построения моделей………………………………………………… 322

Системы координат…………………………………………………………………………………………………………………. 322

Построение модели………………………………………………………………………………………………………………….. 324

Система координат для 3D-моделей……………………………………………………………………………………… 324

Объекты модели……………………………………………………………………………………………………………………….. 325

Ориентация модели…………………………………………………………………………………………………………………. 326

Управление ориентацией в графической области………………………………………………………… 326

Выбор стандартной ориентации……………………………………………………………………………………. 326

Панель Параметры: Ориентация вида………………………………………………………………………….. 327

Типы отображения моделей……………………………………………………………………………………………………. 328

Основные требования к эскизам…………………………………………………………………………………………….. 328

Режим Эскиз……………………………………………………………………………………………………………………………… 329

Построение элемента выдавливания……………………………………………………………………………………… 330

Построение плоской модели…………………………………………………………………………………………… 334

Построение модели операцией вращения……………………………………………………………………………… 336

Построение модели методом перемещения Эскиза по траектории…………………………………….. 338

Построение модели методом перемещения по сечениям……………………………………………………… 341

Приемы работы при построении моделей…………………………………………………………………………….. 345

Новое в операциях выдавливания………………………………………………………………………………….. 347

Группа кнопок Вырезать выдавливанием…………………………………………………………………………….. 348

Команда Сечение……………………………………………………………………………………………………………………… 350

Отсечение поверхностью………………………………………………………………………………………………… 351

Отсечение по эскизу…………………………………………………………………………………………………………. 351

Команда Разрезать…………………………………………………………………………………………………………………. 352

Режим сечения модели…………………………………………………………………………………………………………….. 354

Режимы работы с моделью……………………………………………………………………………………………………… 355

Урок 20. Применение вспомогательной геометрии в режиме 3D…………… 357

Команды группы Ось………………………………………………………………………………………………………………. 357

Ось через две точки………………………………………………………………………………………………………….. 358

Ось на пересечении двух плоскостей…………………………………………………………………………….. 358

Ось конической поверхности………………………………………………………………………………………….. 359

Ось через ребро………………………………………………………………………………………………………………… 359

Ось через точку по направлению……………………………………………………………………………………. 359

Группа команд построения плоскостей………………………………………………………………………………… 360

Смещенная плоскость……………………………………………………………………………………………………… 361

Плоскость через три точки………………………………………………………………………………………………. 361

Нормальная плоскость……………………………………………………………………………………………………. 362

Касательная плоскость……………………………………………………………………………………………………. 364

Плоскость под углом……………………………………………………………………………………………………….. 365

Плоскость через ребро и точку……………………………………………………………………………………….. 366

Плоскость через плоскую кривую………………………………………………………………………………….. 366

Плоскость через точку параллельно другой плоскости………………………………………………. 366

Плоскость через точку перпендикулярно ребру…………………………………………………………… 367

Плоскость, касательная к грани в точке………………………………………………………………………… 367

Плоскость через ребро параллельно/перпендикулярно ребру……………………………………. 367

Плоскость через ребро параллельно/перпендикулярно грани……………………………………. 368

Средняя плоскость…………………………………………………………………………………………………………… 368

Построение вектора…………………………………………………………………………………………………………………. 369

Вектор через две точки……………………………………………………………………………………………………. 370

Вектор по углу в плоскости СК………………………………………………………………………………………. 370

Вектор по оси СК……………………………………………………………………………………………………………… 371

Вектор по координатам…………………………………………………………………………………………………… 371

Вектор по двум углам сферической СК…………………………………………………………………………. 371

Вектор по ребру или плоской кривой…………………………………………………………………………….. 372

Вектор по оси конуса или перпендикулярно плоскости………………………………………………. 372

Вектор, перпендикулярный грани в указанной точке…………………………………………………… 372

Базисный вектор в точке кривой…………………………………………………………………………………….. 372

Вектор, перпендикулярный плоскости экрана……………………………………………………………… 372

Группа команд Точка по координатам…………………………………………………………………………………. 373

Точка по координатам…………………………………………………………………………………………………….. 373

Точка переносом………………………………………………………………………………………………………………. 374

Построение точки на пересечении объектов…………………………………………………………………. 375

Построение точки на кривой…………………………………………………………………………………………… 375

Построение точки на поверхности…………………………………………………………………………………. 376

Построение точки в центре объекта……………………………………………………………………………….. 377

Построение проекции точки на поверхность………………………………………………………………… 377

Группа команд Контрольная точка………………………………………………………………………………………. 378

Команда Контрольная точка…………………………………………………………………………………………. 378

Команда Присоединительная точка……………………………………………………………………………… 379

Использование функционала команды Точка……………………………………………………………………….. 380

Команда Локальная система координат………………………………………………………………………………. 380

Урок 21. Редактирование элементов тел……………………………………………….. 383

Команда Фаска………………………………………………………………………………………………………………………… 383

Команда Скругление………………………………………………………………………………………………………………… 384

Скругления с переменным радиусом……………………………………………………………………………… 385

Остановка скругления……………………………………………………………………………………………………… 386

Команда Полное скругление……………………………………………………………………………………………………. 387

Команда Ребро жесткости……………………………………………………………………………………………………. 388

Команда Уклон…………………………………………………………………………………………………………………………. 390

Команда Оболочка…………………………………………………………………………………………………………………… 390

Команда Изменить положение………………………………………………………………………………………………. 392

Команда Масштабировать……………………………………………………………………………………………………. 393

Команда Придать толщину……………………………………………………………………………………………………. 394

Группа команд Отверстие простое……………………………………………………………………………………… 394

Дополнительные параметры…………………………………………………………………………………………… 397

Команда Булева операция………………………………………………………………………………………………………. 398

Команда Добавить деталь-заготовку…………………………………………………………………………………… 399

Создание массивов элементов………………………………………………………………………………………………… 401

Команда Массив по сетке………………………………………………………………………………………………. 402

Команда Массив по концентрической сетке………………………………………………………………… 404

Команда Массив вдоль кривой……………………………………………………………………………………….. 405

Команда Массив по точкам……………………………………………………………………………………………. 406

Команда Массив по таблице………………………………………………………………………………………….. 407

Команда Зеркальный массив…………………………………………………………………………………………… 408

Урок 22. Пространственные кривые…………………………………………………….. 409

Команды группы Отрезок по координатам…………………………………………………………………………. 409

Команда Отрезок по координатам……………………………………………………………………………….. 409

Команда Отрезок по длине и углу в плоскости…………………………………………………………….. 410

Группа команд Дуга по трем точкам……………………………………………………………………………………. 411

Команда Дуга по трем точкам……………………………………………………………………………………….. 411

Команда Дуга по центру и радиусу………………………………………………………………………………… 411

Команда Дуга по двум точкам с направлением…………………………………………………………….. 413

Команда Дуга с касанием к кривой…………………………………………………………………………………. 413

Команда Ломаная……………………………………………………………………………………………………………………. 413

Группа команд Сплайн……………………………………………………………………………………………………………. 414

Команда Сплайн по точкам……………………………………………………………………………………………………. 414

Сопряжение сплайна с объектами………………………………………………………………………………….. 415

Режимы построения сплайна………………………………………………………………………………………….. 416

Команда Сплайн по полюсам………………………………………………………………………………………………….. 416

Команда Сплайн по объектам……………………………………………………………………………………………….. 417

Команда Скругление кривых…………………………………………………………………………………………………… 418

Команда Соединение кривых………………………………………………………………………………………………….. 418

Команда Усечение кривой………………………………………………………………………………………………………. 419

Команда Эквидистанта кривой…………………………………………………………………………………………….. 420

Команда Контур……………………………………………………………………………………………………………………… 422

Команда Спираль цилиндрическая………………………………………………………………………………………… 422

Урок 23. Приемы работы в моделях……………………………………………………… 426

Выбор объектов……………………………………………………………………………………………………………………….. 426

Выбор объектов с помощью команд………………………………………………………………………………. 426

Выделение модели рамкой……………………………………………………………………………………………… 427

Выделение и указание объектов…………………………………………………………………………………….. 428

Выбор объектов в графической области……………………………………………………………………….. 428

Фильтры объектов……………………………………………………………………………………………………………………. 429

Дерево модели………………………………………………………………………………………………………………………….. 430

Отображение истории построения в Дереве модели…………………………………………………….. 430

Приемы работы с объектами в Дереве модели………………………………………………………………. 431

Структурное представление Дерева модели…………………………………………………………………. 433

Настройка свойств модели……………………………………………………………………………………………………… 434

Настройка свойств модели из Дерева модели……………………………………………………………….. 435

Диагностика модели………………………………………………………………………………………………………………… 438

Информация об объекте…………………………………………………………………………………………………… 439

Измерения…………………………………………………………………………………………………………………………………. 440

Расстояние и угол…………………………………………………………………………………………………………….. 440

Длина ребра……………………………………………………………………………………………………………………… 441

Площадь……………………………………………………………………………………………………………………………. 441

Взаимное отклонение двух поверхностей……………………………………………………………………… 441

МЦХ модели……………………………………………………………………………………………………………………… 442

Создание объекта измерений………………………………………………………………………………………….. 443

Создание текстур…………………………………………………………………………………………………………………….. 443

Настройка текстур…………………………………………………………………………………………………………… 443

Текстурирование объектов……………………………………………………………………………………………… 444

Требования к пользовательскому изображению…………………………………………………………… 444

Создание текстуры…………………………………………………………………………………………………………… 445

Урок 24. Ассоциативные виды…………………………………………………………….. 448

Создание стандартных видов на чертеже…………………………………………………………………………….. 449

Создание произвольного вида………………………………………………………………………………………………… 452

Проекционный вид…………………………………………………………………………………………………………………… 453

Создание разреза/сечения………………………………………………………………………………………………………. 453

Создание местного разреза…………………………………………………………………………………………………….. 455

Создание вида по стрелке……………………………………………………………………………………………………….. 456

Создание местного вида………………………………………………………………………………………………………….. 457

Создание выносного элемента……………………………………………………………………………………………….. 458

Состояние видов и управление ими……………………………………………………………………………………….. 458

Настройка ассоциативных видов…………………………………………………………………………………………… 460

Урок 25. Режим Сборка (3D)…………………………………………………………………. 462

Интерфейс системы в режиме Сборка……………………………………………………………………………………. 462

Строка Главного меню в режиме Сборка……………………………………………………………………….. 462

Инструментальная область……………………………………………………………………………………………. 462

Инструментальная панель Сборка…………………………………………………………………………………. 464

Инструментальная панель Управление………………………………………………………………………….. 466

Инструментальная панель Твердотельное моделирование…………………………………………. 466

Компоненты сборки…………………………………………………………………………………………………………………. 467

Способы создания модели сборки…………………………………………………………………………………………. 468

Создание сборки “снизу вверх”………………………………………………………………………………………. 469

Создание подсборки Ось с колесами……………………………………………………………………………… 469

Создание подсборки Плата со стойкой………………………………………………………………………… 475

Создание массива в сборке……………………………………………………………………………………………… 477

Создание компонента “на месте”……………………………………………………………………………………. 477

Создание сборки Редуктор…………………………………………………………………………………………………….. 479

Создание сборки “сверху вниз”………………………………………………………………………………………………. 480

Редактирование компонентов…………………………………………………………………………………………………. 481

Сложность работы с большими сборками…………………………………………………………………………….. 481

Преобразование объектов Сборки…………………………………………………………………………………………. 482

Выбор типа загрузки компонента…………………………………………………………………………………… 482

Выбор типа загрузки Сборки………………………………………………………………………………………….. 484

Преобразование деталей…………………………………………………………………………………………………. 485

Команда Объединить в подсборку…………………………………………………………………………………. 486

Редактирование компонентов…………………………………………………………………………………………. 486

Режим упрощенного отображения модели……………………………………………………………………. 487

Создание чертежа компонента из модели сборки………………………………………………………………… 487

Создание чертежа модели сборки………………………………………………………………………………………….. 487

Режим изоляции……………………………………………………………………………………………………………………….. 488

Панель Состав изделия…………………………………………………………………………………………………………… 488

Панель Группы компонентов………………………………………………………………………………………………….. 489

Удаление истории построения модели………………………………………………………………………………….. 490

Урок 26. Специальные возможности проектирования 3D-моделей………. 491

Создание массивов в сборке…………………………………………………………………………………………………… 491

Команда Зеркальное отражение компонентов…………………………………………………………………….. 491

Геометрический массив…………………………………………………………………………………………………………… 492

Массив операций…………………………………………………………………………………………………………………….. 493

Массив произвольных объектов…………………………………………………………………………………………….. 493

Команда Массив по образцу…………………………………………………………………………………………………… 493

Массив отверстий с резьбой и осью………………………………………………………………………………………. 494

Разрушение массива………………………………………………………………………………………………………………… 495

Многотельное моделирование……………………………………………………………………………………………….. 495

Трехмерный макроэлемент…………………………………………………………………………………………………….. 497

Создание трехмерного макроэлемента………………………………………………………………………….. 497

Объединение объектов в макроэлемент…………………………………………………………………………. 498

Редактирование макроэлемента…………………………………………………………………………………….. 498

Разрушение макроэлемента……………………………………………………………………………………………. 498

Проверка пересечений компонентов……………………………………………………………………………………… 498

Разнесение компонентов сборки…………………………………………………………………………………………….. 500

Создание исполнений……………………………………………………………………………………………………………… 501

Создание исполнений в Дереве исполнений Модели……………………………………………………. 501

Создание исполнения в Менеджере документа……………………………………………………………. 503

Удаление исполнения………………………………………………………………………………………………………. 504

Режим пересчета размеров модели………………………………………………………………………………………… 504

Системные пересчеты……………………………………………………………………………………………………… 504

Управление пересчетом…………………………………………………………………………………………………… 505

Режим пересчета размеров……………………………………………………………………………………………… 506

Создание пользовательского пересчета………………………………………………………………………… 507

Пересчет размеров в сборке……………………………………………………………………………………………. 507

Макеты компонентов………………………………………………………………………………………………………………. 508

Замена компонента макетом…………………………………………………………………………………………… 508

Операции с макетами………………………………………………………………………………………………………. 509

Компоновочная геометрия……………………………………………………………………………………………………… 509

Создание компоновочной геометрии “на месте”…………………………………………………………… 509

Преобразование объектов в компоновочную геометрию…………………………………………….. 510

Преобразование компонента в компоновочную геометрию………………………………………… 510

Технологическая сборка…………………………………………………………………………………………………………. 510

Вставка импортного компонента в сборку……………………………………………………………………………. 510

Вставка компонента в сборку из Проводника………………………………………………………………………. 510

Урок 27. Настройка параметров системы для режимов Эскиз и Сборка… 512

Настройка параметров Редактора моделей…………………………………………………………………………. 512

Настройка параметров на вкладке Новые документы………………………………………………………… 519

Настройка параметров пункта Деталь………………………………………………………………………….. 519

Настройка параметров пункта Сборка…………………………………………………………………………. 524

Урок 28. Ввод 3D-обозначений……………………………………………………………… 525

Панель инструментов Размеры………………………………………………………………………………………………. 525

Команда Линейный размер……………………………………………………………………………………………… 526

Команда Угловой размер………………………………………………………………………………………………… 529

Команда Диаметральный размер…………………………………………………………………………………… 530

Команда Радиальный размер………………………………………………………………………………………….. 532

Размер дуги окружности………………………………………………………………………………………………….. 533

Производные размеры……………………………………………………………………………………………………… 533

Редактирование производного размера…………………………………………………………………………. 534

Режим отображения размера операции…………………………………………………………………………. 535

Панель инструментов Обозначения………………………………………………………………………………………… 535

Команда Шероховатость………………………………………………………………………………………………. 535

Команда База…………………………………………………………………………………………………………………… 537

Команда Допуск формы…………………………………………………………………………………………………… 538

Редактирование объектов оформления………………………………………………………………………….. 539

Добавление ответвления…………………………………………………………………………………………………. 539

Команда Линия-выноска………………………………………………………………………………………………….. 539

Команда Обозначение позиций……………………………………………………………………………………….. 541

Команда Условное обозначение резьбы…………………………………………………………………………. 542

Группа команд Знак клеймения……………………………………………………………………………………….. 544

Команда Осевая линия…………………………………………………………………………………………………….. 544

Настройка параметров элементов оформления……………………………………………………………………. 544

Подготовка электронной модели изделия……………………………………………………………………………… 546

Урок 29. Библиотеки и приложения системы……………………………………….. 548

Команда Конфигуратор…………………………………………………………………………………………………………. 548

Добавление в конфигурацию приложений и библиотек………………………………………………………. 550

Отключение библиотеки…………………………………………………………………………………………………………. 551

Приложение Сервисные инструменты………………………………………………………………………………….. 552

Приложение Проверка документа…………………………………………………………………………………………. 553

Библиотека конструктивных элементов………………………………………………………………………………… 554

Приложение Рецензент документов КОМПАС-3D……………………………………………………………….. 556

Библиотека Материалы и Сортаменты для КОМПАС……………………………………………………….. 557

Библиотека Стандартные Изделия……………………………………………………………………………………….. 560

Вставка элемента из Библиотеки в режиме Чертеж…………………………………………………………… 564

Вставка стандартного изделия……………………………………………………………………………………….. 564

Вставка конструктивного элемента……………………………………………………………………………….. 567

Вставка крепежного соединения…………………………………………………………………………………….. 568

Вставка элемента из Библиотеки в режиме 3D…………………………………………………………………….. 569

Вставка стандартного изделия……………………………………………………………………………………….. 569

Вставка конструктивного элемента……………………………………………………………………………….. 574

Библиотеки системы для работы в режиме 3D……………………………………………………………………… 576

Часть III. Листовое моделирование……………………………………… 579

Урок 30. Режим Листовая деталь…………………………………………………………. 581

Основные параметры листовой детали…………………………………………………………………………………. 581

Панель инструментов Элементы листового тела………………………………………………………………… 581

Переменные листового тела……………………………………………………………………………………………………. 584

Настройка параметров листового тела…………………………………………………………………………………. 584

Построение листовой детали на основе замкнутого эскиза………………………………………………… 586

Построение листовой детали на основе разомкнутого эскиза……………………………………………. 587

Команда Пластина………………………………………………………………………………………………………………….. 590

Команды группы Сгиб…………………………………………………………………………………………………………….. 590

Команда Сгиб…………………………………………………………………………………………………………………… 590

Общие параметры сгибов……………………………………………………………………………………………………….. 594

Ширина сгиба…………………………………………………………………………………………………………………… 594

Размещение сгиба…………………………………………………………………………………………………………….. 594

Направление отсчета и способы задания угла…………………………………………………………….. 594

Длина продолжения сгиба………………………………………………………………………………………………. 594

Команда Сгиб по линии…………………………………………………………………………………………………………… 595

Команда Сгиб по эскизу………………………………………………………………………………………………………….. 596

Команда Подсечка…………………………………………………………………………………………………………………… 597

Освобождение сгиба………………………………………………………………………………………………………… 598

Освобождение угла………………………………………………………………………………………………………….. 600

Команда Развернуть……………………………………………………………………………………………………………….. 600

Настройка параметров развертки………………………………………………………………………………….. 601

Группа команд Разогнуть………………………………………………………………………………………………………. 602

Команда Замыкание углов………………………………………………………………………………………………………. 603

Группа команд Вырез в листовом теле…………………………………………………………………………………. 604

Группа команд Скругление……………………………………………………………………………………………………… 606

Команда Ребро усиления…………………………………………………………………………………………………………. 606

Группа команд Открытая штамповка…………………………………………………………………………………. 608

Команда Открытая штамповка……………………………………………………………………………………………. 609

Команда Закрытая штамповка……………………………………………………………………………………………… 610

Команда Жалюзи……………………………………………………………………………………………………………………… 611

Команда Буртик………………………………………………………………………………………………………………………. 613

Массив элементов листового тела…………………………………………………………………………………………. 616

Команда Обечайка…………………………………………………………………………………………………………………… 617

Сгибание/разгибание обечайки……………………………………………………………………………………… 619

Развертка обечайки………………………………………………………………………………………………………….. 620

Команда Линейчатая обечайка……………………………………………………………………………………………… 620

Команда Отбортовка…………………………………………………………………………………………………………….. 621

Команда Штамповка телом………………………………………………………………………………………………….. 621

Команда Преобразование в листовое тело………………………………………………………………………….. 623

Часть IV. Поверхностное моделирование………………………….. 625

Урок 31. Способы создания поверхностей……………………………………………. 627

Основные операции создания поверхностей………………………………………………………………………… 627

Панель инструментов Поверхности………………………………………………………………………………………. 628

Команда Поверхность выдавливания……………………………………………………………………………………. 629

Команда Поверхность вращения……………………………………………………………………………………………. 630

Команда Поверхность по траектории…………………………………………………………………………………. 631

Команда Поверхность по сечениям……………………………………………………………………………………….. 632

Команда Поверхность по сети кривых…………………………………………………………………………………. 633

Команда Поверхность по сети точек……………………………………………………………………………………. 635

Команда Поверхность по пласту точек……………………………………………………………………………….. 636

Команда Линейчатая поверхность……………………………………………………………………………………….. 638

Команда Поверхность конического сечения………………………………………………………………………….. 639

Команда Заплатка…………………………………………………………………………………………………………………… 642

Команда Эквидистанта поверхности…………………………………………………………………………………… 642

Команда Поверхность соединения…………………………………………………………………………………………. 643

Команда Усечение поверхности…………………………………………………………………………………………….. 645

Команда Продление поверхности………………………………………………………………………………………….. 646

Команда Сшивка поверхностей…………………………………………………………………………………………….. 646

Команда Удалить грани…………………………………………………………………………………………………………. 646

Команда Придать толщину……………………………………………………………………………………………………. 647

Команда Разбиение поверхности…………………………………………………………………………………………… 648

Режим Сплайновая форма……………………………………………………………………………………………………….. 649

Импортированные поверхности…………………………………………………………………………………………….. 649

Приложение. Описание электронного архива………………………………………. 651

Список литературы………………………………………………………………………………. 652

Предметный указатель…………………………………………………………………………. 653

Опубликовано

Вышло второе издание книги “Разработка приложений на Swift и SwiftUI с нуля.”

Разработка приложений на Swift и SwiftUI с нуля. 2-е издание

Вышла в свет книга Александра Казанского “Разработка приложений на Swift и SwiftUI с нуля. 2-е издание“.

Рассмотрены принципы протокольно-ориентированного и функционального программирования на языке Swift 5.5 для операционных систем macOS, iOS и iPadOS. Подробно описана среда разработки Xcode 13.1 и SwiftUI. Приведены приемы проектирования и разработки программ для macOS с использованием фреймворка Cocoa, мобильных приложений с помощью фреймворка Cocoa Touch, описаны принципы создания проектов с интерфейсом Storyboard. Главы содержат упражнения с решениями и примеры кода для начинающих программистов. Во втором издании описано создание проектов в редакторе Interface Builder и подробно рассмотрены новые возможности Swift 5.5.

Для программистов

Вы узнаете, как:

  • программировать на языке Swift;
  • создавать приложения в среде разработки Xcode;
  • использовать технологию SwiftUI;
  • создавать проекты с помощью Storyboard и Interface Builder;
  • разрабатывать приложения для iOS с применением фреймворка Cocoa Touch.

Казанский Александр АнатольевичКазанский Александр Анатольевич, кандидат технических наук, доцент. Более 30 лет работает преподавателем, читает лекции по программированию на C#, VB и других языках. Автор 7 книг, посвященных программированию, дискретной математике, а также использованию macOS и приложений Apple.

Книгу можно купить в нашем интернет-магазине.

Введение………………………………………………………………………………………………….. 8

Часть I. Программирование на Swift 5.5………………………………… 13

Глава 1. Среда разработки Xcode 13.1. Первые приложения на Swift 5.5 и SwiftUI            14

1.1. macOS Big Sur, Xcode 13 и Swift 5.5…………………………………………………………………………………… 14

1.2. Консольные приложения Playground для iOS…………………………………………………………………… 18

1.3. Консольные приложения Playground для macOS…………………………………………………………….. 26

1.4. Консольные приложения в режиме project с шаблоном Command Line Tool……………….. 27

1.5. Написание кода на REPL Swift………………………………………………………………………………………….. 32

1.6. Программирование на Swift 5.5 в режиме online………………………………………………………………. 34

1.7. Программирование на языке С++ в среде Xcode……………………………………………………………… 35

1.8. Создание проекта (project) для iOS c интерфейсом SwiftUI…………………………………………….. 39

1.9. Разработка на SwiftUI приложения для банковских операций………………………………………. 44

Глава 2. Основы программирования на языке Swift………………………………. 49

2.1. Переменные и константы……………………………………………………………………………………………………. 49

2.2. Стандартные числовые функции………………………………………………………………………………………. 55

2.3. Арифметические операции и операции сравнения………………………………………………………….. 58

2.4. Построение арифметических выражений и преобразование числовых данных………….. 61

2.5. Упражнения на рассмотренный материал……………………………………………………………………….. 64

2.6. Логические операции………………………………………………………………………………………………………….. 64

2.7. Упражнения на рассмотренный материал……………………………………………………………………….. 65

Упражнение № 1…………………………………………………………………………………………………………… 65

Упражнение № 2…………………………………………………………………………………………………………… 66

Упражнение № 3…………………………………………………………………………………………………………… 66

2.8. Создание собственных пользовательских операций………………………………………………………. 66

2.9. Работа с символьными константами и переменными String и Character………………………. 68

2.10. Опциональные (Optional) типы данных и nil…………………………………………………………………. 71

Глава 3. Функции языка Swift и их возможности…………………………………… 74

3.1. Функции, не имеющие параметров и возвращаемого значения……………………………………… 75

3.2. Функции без параметров и с одним возвращаемым значением……………………………………… 76

3.3. Функции c несколькими входными параметрами и одним возвращаемым значением…. 77

3.4. Локальные параметры функции………………………………………………………………………………………… 78

3.5. Метки и имена параметров функции…………………………………………………………………………………. 79

3.6. Функции c несколькими входными параметрами и несколькими возвращаемыми значениями    81

3.7. Функции с переменным числом параметров (Variadic function)…………………………………….. 82

3.8. Параметры типа in-out (входные-выходные)……………………………………………………………………. 82

3.9. Упражнения на рассмотренный материал……………………………………………………………………….. 83

Упражнение № 1…………………………………………………………………………………………………………… 83

Упражнение № 2…………………………………………………………………………………………………………… 83

Упражнение № 3…………………………………………………………………………………………………………… 84

Упражнение № 4…………………………………………………………………………………………………………… 84

3.10. Способы работы с параметрами in-out, не приводящие к побочным эффектам…………. 84

3.11. Перегрузка функций………………………………………………………………………………………………………….. 86

3.12. Вложенные функции…………………………………………………………………………………………………………. 87

3.13. Функции, возвращающие другие функции……………………………………………………………………… 88

3.14. Замыкания (Closures)………………………………………………………………………………………………………… 90

3.15. Замыкающие выражения (Closure expressions)……………………………………………………………….. 93

3.16. Захват значений замыкания из контекста и запрет их изменений……………………………….. 95

3.17. Использование переменной в качестве функции……………………………………………………………. 96

3.18. Каррирование функций (Currying functions)…………………………………………………………………… 96

3.19. Универсальные функции (Generic functions)…………………………………………………………………… 98

Глава 4. Управление потоком (Control Flow). Перечисления………………… 101

4.1. Условный оператор if……………………………………………………………………………………………………….. 101

4.2. Конструкция условного оператора if…else…………………………………………………………………….. 103

4.3. Упражнения на рассмотренный материал……………………………………………………………………… 105

Упражнение № 1………………………………………………………………………………………………………… 105

Упражнение № 2………………………………………………………………………………………………………… 105

Упражнение № 3………………………………………………………………………………………………………… 105

Упражнение № 4………………………………………………………………………………………………………… 105

Упражнение № 5………………………………………………………………………………………………………… 105

4.4. Условный оператор switch……………………………………………………………………………………………….. 105

4.5. Упражнение на рассмотренный материал……………………………………………………………………… 108

4.6. Циклы…………………………………………………………………………………………………………………………………. 108

4.6.1. Циклы for _ in……………………………………………………………………………………………………. 109

4.6.2. Циклы forEach………………………………………………………………………………………………….. 112

4.6.3. Циклы while………………………………………………………………………………………………………. 114

4.6.4. Циклы repeat…while…………………………………………………………………………………………. 115

4.7. Кортежи (Tuples)……………………………………………………………………………………………………………….. 116

4.8. Перечисления (Enumeration)……………………………………………………………………………………………. 118

4.9. Диапазоны (Range)……………………………………………………………………………………………………………. 122

Глава 5. Коллекции……………………………………………………………………………… 125

5.1. Одномерные массивы……………………………………………………………………………………………………….. 125

5.2. Сортировка одномерных массивов…………………………………………………………………………………. 128

5.3. Двумерные массивы………………………………………………………………………………………………………….. 129

5.4. Словари (Dictionaries)……………………………………………………………………………………………………….. 134

5.5. Множества (Sets)……………………………………………………………………………………………………………….. 138

Глава 6. Классы и структуры……………………………………………………………….. 144

6.1. Синтаксис и семантика классов и структур…………………………………………………………………… 146

6.2. Сохраняемые и ленивые сохраняемые свойства……………………………………………………………. 148

6.3. Вычисляемые свойства…………………………………………………………………………………………………….. 149

6.4. Наблюдатели свойств………………………………………………………………………………………………………. 151

6.5. Инициализаторы……………………………………………………………………………………………………………….. 153

6.6. Методы класса………………………………………………………………………………………………………………….. 156

6.7. Сабскрипты (Subscripts)……………………………………………………………………………………………………. 160

6.8. Наследование (Inheritance)………………………………………………………………………………………………. 164

6.9. Создание класса для решения матричной задачи…………………………………………………………. 173

6.10. Структуры (Structs)…………………………………………………………………………………………………………. 177

6.11. Мутирующие методы структур…………………………………………………………………………………….. 181

6.12. Расширения (Extensions)…………………………………………………………………………………………………. 183

6.13. Контроль доступа…………………………………………………………………………………………………………… 185

6.14. Типы значений и ссылочные типы………………………………………………………………………………… 186

6.15. Автоматический подсчет ссылок (ARC)……………………………………………………………………….. 190

6.16. Сильные, слабые и не учитываемые (Unowned) ссылки……………………………………………… 191

6.17. Метод Copy-On-Write (COW)…………………………………………………………………………………………. 194

Глава 7. Функциональное программирование на Swift………………………… 197

7.1. Простые математические функции………………………………………………………………………………….. 203

7.2. Функции высшего порядка……………………………………………………………………………………………….. 206

7.3. Рекурсии…………………………………………………………………………………………………………………………….. 207

7.4. Упражнения на рассмотренный материал……………………………………………………………………… 215

Упражнение № 1………………………………………………………………………………………………………… 215

Упражнение № 2………………………………………………………………………………………………………… 215

7.5. Функциональные программы, использующие вместо циклов рекурсии……………………… 216

Пример 7.5.1. Поиск простых чисел…………………………………………………………………………. 216

Пример 7.5.2. Разложение положительного целого числа
на простые множители………………………………………………………………………………………………. 217

Пример 7.5.3. Построение таблиц…………………………………………………………………………….. 217

Пример 7.5.4. Преобразование типа массива………………………………………………………….. 218

7.6. Библиотечные функции для работы с одномерными массивами…………………………………. 219

7.6.1. Метод map()………………………………………………………………………………………………………. 220

7.6.2. Метод reduce()………………………………………………………………………………………………….. 220

7.6.3. Метод filter()…………………………………………………………………………………………………….. 221

7.6.4. Метод reversed()……………………………………………………………………………………………….. 222

7.6.5. Метод enumerated()………………………………………………………………………………………….. 222

7.6.6. Метод zip()………………………………………………………………………………………………………… 222

7.6.7. Метод contains()……………………………………………………………………………………………….. 223

7.7. Упражнения на рассмотренный материал……………………………………………………………………… 223

Упражнение № 1………………………………………………………………………………………………………… 223

Упражнение № 2………………………………………………………………………………………………………… 223

Упражнение № 3………………………………………………………………………………………………………… 223

7.8. Функциональные программы для вычисления векторных операций…………………………… 223

7.8.1. Векторные операции……………………………………………………………………………………….. 224

7.8.2. Примеры функциональных программ для работы с векторами………………….. 224

Сумма векторов……………………………………………………………………………………………….. 224

Умножение вектора на скаляр………………………………………………………………………… 225

Скалярное произведение векторов…………………………………………………………………. 226

Длина вектора………………………………………………………………………………………………….. 226

7.9. Упражнения на рассмотренный материал……………………………………………………………………… 226

Упражнение № 1………………………………………………………………………………………………………… 226

Упражнение № 2………………………………………………………………………………………………………… 226

Упражнение № 3………………………………………………………………………………………………………… 227

Упражнение № 4………………………………………………………………………………………………………… 227

7.10. Использование методов функционального программирования при решении задач с массивами             227

7.11. Упражнения на рассмотренный материал…………………………………………………………………… 230

Упражнение № 1………………………………………………………………………………………………………… 230

Упражнение № 2………………………………………………………………………………………………………… 230

Упражнение № 3………………………………………………………………………………………………………… 230

7.12. Использование функционального программирования для работы
со сложными типами данных………………………………………………………………………………………… 231

Глава 8. Протокольно-ориентированное программирование на Swift…… 233

8.1. Протоколы стандартной библиотеки Swift…………………………………………………………………….. 234

8.2. Требования, которые можно задавать в протоколе………………………………………………………. 237

8.3. Объявление свойств в протоколе…………………………………………………………………………………….. 238

8.4. Объявление методов в протоколе……………………………………………………………………………………. 242

8.5. Наследование протоколов……………………………………………………………………………………………….. 243

8.6. Композиция протоколов…………………………………………………………………………………………………… 244

8.7. Делегирование (Delegation)………………………………………………………………………………………………. 245

8.8. Протокол как тип………………………………………………………………………………………………………………. 247

8.9. Расширение протокола…………………………………………………………………………………………………….. 248

8.10. Полиморфизм, основанный на протоколе…………………………………………………………………….. 249

8.11. Использование в протоколах ассоциированных типов………………………………………………. 251

8.12. Разработка приложения с использованием протоколов……………………………………………… 253

Глава 9. Новые методы в версии Swift 5.5. Параллелизм………………………. 263

9.1. Асинхронные функции async/await…………………………………………………………………………………. 265

9.2. Акторы……………………………………………………………………………………………………………………………….. 271

9.3. Изменение протокола Codable………………………………………………………………………………………… 277

9.4. Преобразование типов и ключевое слово lazy……………………………………………………………….. 278

9.5. Асинхронное связывание свойств let (async binding let)………………………………………………… 278

Часть II. Технологии разработки приложений
в среде Xсode 11.2 и 13.1………………………………………………………………… 283

Глава 10. Создание проектов в редакторе Interface Builder
на основе интерфейса Storyboard…………………………………………………………. 284

10.1. Краткая историческая справка……………………………………………………………………………………… 284

10.2. Интерфейс Xcode 13.1…………………………………………………………………………………………………….. 285

10.3. Навигатор проекта Xcode 13.1………………………………………………………………………………………. 290

10.4. Создание проекта для iOS с использованием Interface Builder…………………………………… 291

10.5. Создание проекта для iOS без написания кода……………………………………………………………. 298

10.6. Создание проекта обработки матрицы для iOS…………………………………………………………… 302

10.7. Создание игры для iOS: бросание игральной кости…………………………………………………….. 305

10.8. Создание проекта обработки матрицы для macOS…………………………………………………….. 307

10.9. Создание проекта определения цифр числа для macOS…………………………………………….. 308

10.10. Создание проекта приведения матрицы к верхней треугольной для macOS………….. 310

10.11. Создание проекта для macOS без написания кода……………………………………………………. 314

Глава 11. Технология SwiftUI……………………………………………………………….. 316

11.1. Обновление системы macOS и Xcode……………………………………………………………………………. 317

11.2. Ключевые понятия SwiftUI…………………………………………………………………………………………….. 320

11.3. Начало работы с использованием интерфейса SwiftUI………………………………………………. 322

11.4. Создание представлений строк (Row View). Добавление в проект новых файлов……. 338

11.5. Создание интерактивных приложений SwiftUI……………………………………………………………. 345

11.6. Использование формы, содержащей представления, кнопку и слайдер……………………. 353

11.7. Ввод данных с холста или из симулятора……………………………………………………………………. 354

11.8. Настройка изображений для проекта SwiftUI……………………………………………………………… 357

11.9. Переключение между изображениями с помощью элемента Toggle…………………………. 360

11.10. Использование вертикальных стеков при создании проектов для iOS,
содержащих изображения и текст……………………………………………………………………………….. 362

11.11. Использование в SwiftUI стеков VStack, HStack и ZStack………………………………………….. 365

11.12. Проект с использованием географической карты (MapView), изображения и текста 368

11.13. Использование структуры ForEach для создания представлений…………………………… 375

11.14. Cкроллинг представлений……………………………………………………………………………………………. 378

11.15. Добавление и удаление представлений с помощью модификатора transition(). Библиотека модификаторов   380

11.16. Интерактивный переход между представлениями…………………………………………………….. 383

11.17. Создание пользовательских модальных представлений………………………………………….. 384

11.18. Графические средства SwiftUI…………………………………………………………………………………….. 386

11.19. Создание проекта SwiftUI для реализации анимации………………………………………………. 389

11.20. Использование на SwiftUI декларативных функций…………………………………………………. 393

Приложение. Решения упражнений и ответы……………………………………….. 400

Упражнения 2.5………………………………………………………………………………………………………………………… 400

Упражнения 2.7………………………………………………………………………………………………………………………… 401

Упражнения 3.9………………………………………………………………………………………………………………………… 401

Упражнения 4.3………………………………………………………………………………………………………………………… 403

Упражнение 4.5………………………………………………………………………………………………………………………… 406

Упражнения 7.4………………………………………………………………………………………………………………………… 407

Упражнения 7.7………………………………………………………………………………………………………………………… 409

Упражнения 7.9………………………………………………………………………………………………………………………… 410

Упражнения 7.11……………………………………………………………………………………………………………………… 412

Предметный указатель…………………………………………………………………………. 413

 

 

Опубликовано

Опубликована книга “Создание сайта, его SEO-продвижение и монетизация. Самоучитель”

Создание сайта, его SEO-продвижение и монетизация. Самоучитель

В нашем издательстве вышла книга Владимира Молочкоыв “Создание сайта, его SEO-продвижение и монетизация. Самоучитель“.

Подробно рассмотрено создание сайта с использованием CMS WordPress: выбор хостинга, подключение домена, установка шаблонов и плагинов. Рассказано о наполнении сайта контентом, о поисковой (SEO) оптимизации, подключении аналитических сервисов Яндекса и Google. Даны советы по бесплатному и коммерческому продвижению сайта в социальных сетях «ВКонтакте», «Одноклассники», Instagram, Facebook, Twitter а также в Telegram. Описано создание подписок и почтовых рассылок для посетителей сайта. Приводятся практические рекомендации по монетизации, рассматриваются инструменты для получения дохода с помощью сайта или личного блога.

Для начинающих веб-мастеров и разработчиков

Шаг за шагом к успешному сайту

  • Cоздание сайтов c использованием WordPress
  • Самостоятельный запуск блога или многостраничника
  • Оформление сайта и наполнение его контентом
  • Полезные плагины
  • Аудит работы сайта
  • Инструменты Google и Яндекса для веб-мастера
  • Создание рассылок и подписок
  • Продвижение сайта в социальных сетях
  • Эффективные способы монетизации

Молочков Владимир ПетровичВладимир Петрович Молочков — кандидат педагогических наук, преподаватель высшей квалификационной категории Политехнического колледжа Новгородского госуниверситета им. Ярослава Мудрого. Автор 18 книг по компьютерной тематике и более 200 статей в СМИ.

Книгу можно купить в нашем интернет-магазине.

Оглавление

Предисловие…………………………………………………………………………………………… 11

История WordPress……………………………………………………………………………………………………………………… 12

Когда WоrdPress погубит HTML?…………………………………………………………………………………………….. 13

От издательства…………………………………………………………………………………………………………………………. 13

Часть I. Создание сайта в WordPress
и размещение его на хостинге……………………………………………….. 15

Глава 1. Установка WordPress на хостинг……………………………………………… 16

Основные понятия, связанные с WordPress………………………………………………………………………………. 16

Плюсы WordPress……………………………………………………………………………………………………………….. 16

Тема WordPress…………………………………………………………………………………………………………………… 16

Плагин…………………………………………………………………………………………………………………………………. 17

Хостинг……………………………………………………………………………………………………………………………….. 17

Виртуальный хостинг………………………………………………………………………………………………………… 17

Хостинг WordPress……………………………………………………………………………………………………………… 17

Домен…………………………………………………………………………………………………………………………………… 17

Как на практике разместить сайт на хостинге в Сети?………………………………………………………….. 18

Знакомство с консолью (панелью администратора)……………………………………………………………… 21

Базовые настройки WordPress после установки……………………………………………………………………… 23

Общие………………………………………………………………………………………………………………………………….. 23

Написание…………………………………………………………………………………………………………………………… 24

Чтение………………………………………………………………………………………………………………………………….. 24

Обсуждение………………………………………………………………………………………………………………………… 25

Медиафайлы………………………………………………………………………………………………………………………. 26

Постоянные ссылки……………………………………………………………………………………………………………. 26

Приватность (настройка конфиденциальности)……………………………………………………………… 27

Специальные настройки WordPress………………………………………………………………………………………….. 29

Заменяем кириллицу латиницей (организуем транслит)……………………………………………….. 29

Плагин Cyr to Lat enhanced………………………………………………………………………………………. 29

Плагин Rus-To-Lat……………………………………………………………………………………………………… 30

Делаем ссылки короткими: плагин Bring Back the Get Shortlink Button……………………….. 30

Протокол SSH…………………………………………………………………………………………………………………….. 31

Глава 2. Выбор и установка темы WordPress для сайта…………………………. 32

Способ 1. Установка темы через поиск……………………………………………………………………………………. 32

Способ 2. Устанавливаем тему из ZIP-архива………………………………………………………………………… 33

На что обратить внимание при выборе темы WordPress?………………………………………………………. 34

Никто не любит медленные веб-сайты…………………………………………………………………………….. 34

Валидность шаблона…………………………………………………………………………………………………………. 35

Валидатор validator.w3.org……………………………………………………………………………………… 36

Валидатор jigsaw.w3.org/css-validator……………………………………………………………………. 36

Адаптивность шаблона……………………………………………………………………………………………………… 37

Убираем из шаблона рекламную фразу «Сайт работает на WordPress» или аналогичную. 38

Используем редактор тем………………………………………………………………………………………………….. 38

Вывод копирайта (указателя ваших авторских прав)……………………………………………………. 39

Используем плагин Remove «Powered by WordPress»…………………………………………………….. 40

Редактируем нижний колонтитул с помощью плагина Remove Footer Credit……………… 41

Редактируем PHP-код в WordPress с помощью плагина Code Snippets…………………………. 42

Законно ли убирать копирайты WordPress из подвала?…………………………………………………. 43

Проверка темы плагином Theme Authenticity Checker……………………………………………………………. 44

Организуем скачивание архивов с сайта по паролю……………………………………………………………… 46

Кнопки соцсетей для сайта WordPress……………………………………………………………………………………… 50

Глава 3. Практический пример создания сайта на WordPress………………… 52

Важные настройки WP после установки сайта на хостинг…………………………………………………… 53

Общие настройки……………………………………………………………………………………………………………….. 53

Постоянные ссылки……………………………………………………………………………………………………………. 53

Латинизация ссылок: плагин Cyr to Lat enhanced…………………………………………………………… 54

Установка темы для сайта………………………………………………………………………………………………………… 54

Основное……………………………………………………………………………………………………………………………… 55

Макет…………………………………………………………………………………………………………………………………… 55

Цвета……………………………………………………………………………………………………………………………………. 55

Разное………………………………………………………………………………………………………………………………….. 57

Настройка виджетов………………………………………………………………………………………………………………….. 57

Создание страниц сайта……………………………………………………………………………………………………………. 59

Настройка меню: плагин Простая сортировка страниц……………………………………………………… 61

Установка формы Контакты: плагин Contact Form by BestWebSoft……………………………………. 61

Создание рубрик (категорий)……………………………………………………………………………………………………. 62

Сокращение длины интернет-адресов записей………………………………………………………………………. 64

Удаление лишних записей, присутствующих в теме по умолчанию……………………………………. 65

Удаление лишних тем, присутствующих в консоли……………………………………………………………….. 65

Создание гиперссылок………………………………………………………………………………………………………………. 66

Создание ссылки на файл…………………………………………………………………………………………………………. 66

Установка на сайт счетчика……………………………………………………………………………………………………… 68

Вставка на сайт баннера…………………………………………………………………………………………………………… 71

Соглашение об обработке персональных данных…………………………………………………………………. 72

Создание шапки сайта………………………………………………………………………………………………………………. 76

Редактируем файл robots.txt……………………………………………………………………………………………………… 78

Создание карты сайта: плагин XML Sitemaps…………………………………………………………………………. 80

Создание страницы с картой сайта: плагин WP DS Blog Map………………………………………………. 81

Добавляем на сайт кнопки соцсетей: плагин Яндекс Поделиться………………………………………… 82

Создаем свой граватар……………………………………………………………………………………………………………… 83

Глава 4. Оформление вида сайта и наполнение его контентом………………. 86

Фавикон………………………………………………………………………………………………………………………………………. 86

Логотип……………………………………………………………………………………………………………………………………….. 88

Установка фона сайта……………………………………………………………………………………………………………….. 90

Получение сертификата безопасности SSL…………………………………………………………………………….. 91

Чем отличается бесплатный SSL-сертификат от платного?………………………………………….. 91

Пример установки сертификата на хостинге TimeWEB…………………………………………………. 91

Пример установки сертификата на хостинге SprintHost………………………………………………… 96

Шаг 1. Установка SSL………………………………………………………………………………………………. 96

Шаг 2. Замена протокола HTTP на HTTPS…………………………………………………………….. 97

Шаг 3. Перенаправление на HTTPS………………………………………………………………………… 98

Шаг 4. Для очень больших сайтов…………………………………………………………………………… 99

Установка меню «Хлебные крошки»: плагин Flexy Breadcrumb…………………………………………. 101

Создание эффекта «лайтбокс» для изображения: плагин Simple Lightbox…………………………. 105

Создание кнопки………………………………………………………………………………………………………………………. 108

Создаем кнопку «Наверх»: плагин WPFront Scroll Top……………………………………………………….. 109

Ссылка на сайте на номер телефона, Skype и отправку СМС…………………………………………….. 110

Список основных мероприятий по обслуживанию веб-проекта…………………………………………. 111

Глава 5. Полезные плагины и приемы работы с сайтом………………………. 112

Защита текста на сайте от копирования: плагин WP-CopyProtect……………………………………… 112

Защита изображений на сайте: плагин водяного знака Image Watermark…………………………. 113

Делаем оглавление: плагин Table of Contents Plus………………………………………………………………. 116

Защита сайта от взлома: плагин Limit Login Attempts………………………………………………………….. 117

Исключаем спам на своем сайте: плагин Akismet Spam Protection……………………………………… 118

Публикуем на сайте видео………………………………………………………………………………………………………. 121

Вариант 1: берем видео с YouTube………………………………………………………………………………… 121

Способ 1: используем блок HTML………………………………………………………………………… 121

Способ 2: используем блок YouTube……………………………………………………………………. 123

Вариант 2: выкладываем на сайт свое видео………………………………………………………………… 124

Публикуем на сайте звуковые файлы…………………………………………………………………………………….. 125

Способ 1: используем блок Аудио…………………………………………………………………………………. 125

Способ 2: используем виджеты………………………………………………………………………………………. 125

Публикуем на сайте неуникальный контент…………………………………………………………………………. 126

Создаем на сайте опрос: плагин WP-Polls…………………………………………………………………………….. 127

Шаг 1: выводим опрос на страницу……………………………………………………………………………….. 127

Шаг 2: помещаем опрос в сайдбар…………………………………………………………………………………. 129

Создание галереи: плагин Slider, Gallery, and Carousel by MetaSlider………………………………. 130

Добавление смайликов……………………………………………………………………………………………………………. 133

Организуем скачивание с сайта предназначенных для этого материалов………………………… 134

Оценка звездочками рейтинга статьи: плагин Rate My Post………………………………………………… 136

Режим заглушки на сайте WordPress: плагин WP Maintenance Mode…………………………………. 137

Часть II. Анализ работы и продвижение сайта………………… 139

Глава 6. Организуем продвижение сайта……………………………………………… 140

Подготовка к созданию семантического ядра сайта……………………………………………………………. 141

Установка программы «Магадан»…………………………………………………………………………………. 141

Сбор ключевых фраз в «Магадане»……………………………………………………………………………….. 144

Работа с экспортным файлом в таблицах Google…………………………………………………………. 147

Кластеризация ключевых фраз………………………………………………………………………………………. 148

Создание контент-плана…………………………………………………………………………………………………………. 153

Советы по SEO-оптимизации сайта WordPress……………………………………………………………………… 157

Глава 7. Как написать SEO-статью?…………………………………………………….. 160

Настройка SEO-плагина Yoast SEO……………………………………………………………………………………….. 160

Проверяем SEO-заголовок……………………………………………………………………………………………….. 165

Проверяем метаописание………………………………………………………………………………………………… 165

Пишем SEO-статью для сайта………………………………………………………………………………………………… 165

Требования к SEO-тексту………………………………………………………………………………………………… 165

Пример написания SEO-статьи……………………………………………………………………………………….. 166

Уникальность текста на сайте………………………………………………………………………………………………… 171

Проверка релевантности страниц………………………………………………………………………………………….. 174

Перелинковка…………………………………………………………………………………………………………………………… 176

Правильность HTML-кода……………………………………………………………………………………………………… 177

Советы по попаданию сайта в топ выдачи поисковых систем……………………………………………. 178

Показатели раскрученности сайта: PR, ТИЦ и ИКС……………………………………………………………. 178

Глава 8. Сервисы Яндекса для веб-мастера………………………………………….. 180

О сервисе Яндекс.Вебмастер………………………………………………………………………………………………….. 180

Шаг 1: подключаем сайт к Яндекс.Вебмастеру……………………………………………………………. 181

Шаг 2: добавляем в Яндекс.Вебмастер карту сайта (Sitemap)……………………………………. 184

Работаем с Яндекс.Метрикой…………………………………………………………………………………………………. 185

Установка на сайт поисковой формы от Яндекса………………………………………………………………… 188

Плагин «турбо-страницы» для WordPress……………………………………………………………………………… 193

Привязка Яндекс.Метрики к Яндекс.Вебмастеру…………………………………………………………………. 198

Ускорение индексирования сайта вручную………………………………………………………………………….. 200

Добавление на сайт географической карты с Яндекса………………………………………………………… 202

Глава 9. Сервисы Google для веб-мастера…………………………………………….. 205

Добавление сайта в Google Search Console………………………………………………………………………….. 205

Шаг 1: подтверждаем право владения сайтом……………………………………………………………… 205

Шаг 2: отправляем в Google Search Console файл Sitemap………………………………………….. 207

Подключение Google Аналитики……………………………………………………………………………………………. 209

Шаг 1: создание аккаунта……………………………………………………………………………………………….. 209

Шаг 2: настройка ресурса………………………………………………………………………………………………. 210

Шаг 3: информация о компании……………………………………………………………………………………… 211

Шаг 4: настройка потока данных…………………………………………………………………………………… 212

Шаг 5: проверка работы Google Аналитики………………………………………………………………….. 214

Подключение поиска от Google………………………………………………………………………………………………. 214

Ускорение загрузки мобильных страниц сайта: плагин AMP……………………………………………… 217

Ускорение индексации Google вручную………………………………………………………………………………… 219

Добавление на сайт географической карты от Google…………………………………………………………. 220

Проверка кроссбраузерности сайта………………………………………………………………………………………. 223

Проверка оптимизации сайта для мобильных устройств……………………………………………………. 223

Адаптивность сайта…………………………………………………………………………………………………………. 223

Скорость сайта…………………………………………………………………………………………………………………. 224

Глава 10. Анализ работы сайта…………………………………………………………….. 225

Посещаемость сайта……………………………………………………………………………………………………………….. 225

Аналитический сервис Яндекс.Метрика……………………………………………………………………………….. 225

Аналитический сервис Google Аналитика…………………………………………………………………………….. 226

Как узнать целевую аудиторию по Яндекс.Метрике?…………………………………………………………. 228

Веб-визор от Яндекс.Метрики………………………………………………………………………………………………… 230

Карты Яндекс.Метрики…………………………………………………………………………………………………………… 232

Отчет о посещаемости сайта в реальном времени на Google Аналитике…………………………… 234

Как узнать целевую аудиторию в Google Аналитике?…………………………………………………………. 235

Анализ поведения пользователя на сайте в Google Аналитике…………………………………………… 236

Проверка и оптимизация скорости загрузки сайта………………………………………………………………. 237

Ускорение загрузки сайта: плагин WP-Optimize…………………………………………………………………… 238

Оптимизация графики: плагин WebP Express………………………………………………………………………… 242

Адаптивность сайта………………………………………………………………………………………………………………… 244

Анализ сайта по сервису be1.ru……………………………………………………………………………………………… 246

Глава 11. Создание рассылок и подписок…………………………………………….. 249

Создание на хостинге доменной почты…………………………………………………………………………………. 249

Работа с сервисом SendPulse…………………………………………………………………………………………………… 253

Регистрация в сервисе SendPulse…………………………………………………………………………………….. 253

Создание формы подписки на рассылку……………………………………………………………………….. 253

Создание рассылки писем……………………………………………………………………………………………….. 260

Создание Push-рассылки…………………………………………………………………………………………………. 265

Часть III. Продвижение сайта через соцсети……………………. 273

Глава 12. Продвижение сайта на YouTube……………………………………………. 274

Создаем канал………………………………………………………………………………………………………………………….. 274

Оформляем вид канала……………………………………………………………………………………………………………. 274

Выполняем настройку канала………………………………………………………………………………………………… 278

Прямая трансляция на YouTube…………………………………………………………………………………………….. 282

Загрузка видео на YouTube…………………………………………………………………………………………………….. 283

Редактирование загруженного видео…………………………………………………………………………………….. 286

Команда Обрезать…………………………………………………………………………………………………………… 287

Другие операции………………………………………………………………………………………………………………. 288

Удаление своего видео…………………………………………………………………………………………………….. 288

Анализ каналов конкурентов………………………………………………………………………………………………….. 289

Анализ своего канала……………………………………………………………………………………………………………… 294

Информер YouTube на вашем сайте………………………………………………………………………………………. 295

Делаем интродукцию для видео…………………………………………………………………………………………….. 298

Глава 13. Видеоредактор Camtasia Studio……………………………………………… 303

Первое знакомство с программой…………………………………………………………………………………………… 303

Пример записи видеоурока…………………………………………………………………………………………………….. 306

Сохранение готового фильма…………………………………………………………………………………………………. 309

Полезные приемы работы и команды……………………………………………………………………………………. 311

Разделение аудио и видео……………………………………………………………………………………………….. 311

Объединение двух видео в одно……………………………………………………………………………………… 312

Вырезание фрагмента видео…………………………………………………………………………………………… 312

Добавление надписи в видео…………………………………………………………………………………………… 313

Масштабирование…………………………………………………………………………………………………………… 313

Добавление к видео своего водяного знака…………………………………………………………………… 313

Сохранение видео для его последующей загрузки на YouTube………………………………………….. 314

Рисование экранных примитивов…………………………………………………………………………………………… 315

Глава 14. Соцсети ВКонтакте и Instagram……………………………………………. 317

Продвижение сайта через сообщество ВКонтакте………………………………………………………………. 317

Создание сообщества ВКонтакте…………………………………………………………………………………… 317

Наполнение и продвижение сообщества……………………………………………………………………….. 323

Хештеги ВКонтакте…………………………………………………………………………………………………………. 324

Пример написания поста о новой статье на сайте……………………………………………………….. 325

Способы «раскрутки» сообщества…………………………………………………………………………………. 327

Делаем информер для сайта о своем сообществе ВКонтакте……………………………………… 328

Платное продвижение сообщества через рекламу……………………………………………………….. 330

Рассылки подписчикам ВКонтакте через приложение Senler……………………………………… 333

Продвижение сайта через Instagram……………………………………………………………………………………… 340

Добавление фото или видео в Instagram с компьютера……………………………………………….. 341

Загрузка фото………………………………………………………………………………………………………….. 341

Загрузка видео………………………………………………………………………………………………………… 343

Требования к видеофайлам в Instagram…………………………………………………………………………. 345

Как и что публиковать?…………………………………………………………………………………………………… 345

Продвижение в Instagram………………………………………………………………………………………………… 345

Виджет Instagram у вас на сайте……………………………………………………………………………………. 349

Глава 15. Соцсети Facebook и Twitter…………………………………………………… 353

Продвижение сайта через Facebook………………………………………………………………………………………. 353

Создание и настройка личного профиля на Facebook…………………………………………………. 353

Создание и настройка страницы……………………………………………………………………………………. 355

Создание и настройка группы………………………………………………………………………………………… 357

Что публиковать на Facebook?……………………………………………………………………………………….. 360

Создание публикации на Facebook………………………………………………………………………………… 360

Публикация в профиле……………………………………………………………………………………………. 360

Редактирование публикации, размещенной на Facebook…………………………………… 361

Публикация на странице………………………………………………………………………………………… 363

Публикация в группе………………………………………………………………………………………………. 364

Продвижение страницы и группы…………………………………………………………………………………… 365

Работа с Twitter………………………………………………………………………………………………………………………… 367

Создание постов на Twitter……………………………………………………………………………………………… 369

Ставим виджет Twitter на свой сайт……………………………………………………………………………….. 369

Глава 16. Соцсети Одноклассники и Мой мир и мессенджер Telegram… 373

Социальная сеть Одноклассники…………………………………………………………………………………………… 373

Создание группы……………………………………………………………………………………………………………… 374

Создание публикаций (постов) в группе………………………………………………………………………… 377

Продвижение группы……………………………………………………………………………………………………….. 379

Виджет вашей группы в Одноклассниках……………………………………………………………………… 380

Монетизация в Одноклассниках…………………………………………………………………………………….. 381

Донаты…………………………………………………………………………………………………………………….. 381

Платный контент…………………………………………………………………………………………………….. 384

Платный доступ………………………………………………………………………………………………………. 384

Социальная сеть Мой мир………………………………………………………………………………………………………. 385

Настройка профиля…………………………………………………………………………………………………………. 385

Создание группы……………………………………………………………………………………………………………… 387

Создание публикации……………………………………………………………………………………………………… 389

Мессенджер Telegram……………………………………………………………………………………………………………… 389

Создание и настройка профиля………………………………………………………………………………………. 389

Создание канала в Telegram……………………………………………………………………………………………. 391

Публикация постов………………………………………………………………………………………………………….. 392

Глава 17. Приемы продвижения сайта в различных соцсетях………………. 394

Настройка социальных метатегов…………………………………………………………………………………………. 394

Создание социального замка………………………………………………………………………………………………….. 394

Создание на сайте кнопок перехода на ваш аккаунт (или вашу группу) в соцсети………….. 400

Сервис SMM Planner………………………………………………………………………………………………………………… 403

Автопостинг в соцсети через сервис SMM Planer…………………………………………………………………. 408

Бесплатный автопостинг ВКонтакте: плагин VK Poster Group…………………………………………… 411

Для справки: накрутка в соцсетях………………………………………………………………………………………….. 418

Создание аккаунта в TikTok для бота vtope bot……………………………………………………………. 422

Глава 18. Монетизация сайта на рекламе от Contema, teasernet
и Admitad……………………………………………………………………………………………… 427

Контекстная реклама от сервиса Contema.ru……………………………………………………………………….. 427

Тизерная реклама от сервиса teasernet………………………………………………………………………………….. 432

Партнерский маркетинг на рекламе от Admitad…………………………………………………………………… 439

Партнерская ссылка deeplink…………………………………………………………………………………………………. 445

Глава 19. Сервисы AdSense, Glopart, BestChange и др…………………………… 449

Партнерская программа AdSense от компании Google………………………………………………………… 449

Создание аккаунта AdSense……………………………………………………………………………………………. 449

Размещение объявлений AdSense……………………………………………………………………………………. 450

Связываем аккаунт AdSense с сайтом WordPress: плагин Site Kit……………………………….. 457

Возможные проблемы……………………………………………………………………………………………………… 461

Сервис Glopart………………………………………………………………………………………………………………………….. 462

Шаг 1: создаем на сайте страницу товара или услуги…………………………………………………. 462

Шаг 2: подключаем сервис для приема оплаты на сайте…………………………………………….. 463

Страница с предложением рекламодателям…………………………………………………………………………. 470

По поводу открытых ссылок для рекламодателя…………………………………………………………. 471

Сервис BestChange…………………………………………………………………………………………………………………… 472

Сервис Miralinks……………………………………………………………………………………………………………………….. 474

Глава 20. Платное продвижение сайта в поисковиках…………………………. 478

Сервис Miralinks……………………………………………………………………………………………………………………….. 478

Сервис WebEffector…………………………………………………………………………………………………………………. 483

Глава 21. Полезные советы и сервисы………………………………………………….. 489

Бесплатные картинки и видео для сайта……………………………………………………………………………….. 489

Создание фавикона………………………………………………………………………………………………………………….. 490

Плагин Mammoth .docx converter……………………………………………………………………………………………. 490

Бесплатные значки для сайта…………………………………………………………………………………………………. 493

Скриншоты страниц вашего сайта………………………………………………………………………………………… 493

Определители цвета………………………………………………………………………………………………………………… 495

ColorZilla……………………………………………………………………………………………………………………………. 495

Colors Lite………………………………………………………………………………………………………………………….. 497

Quick HTML Color Picker…………………………………………………………………………………………………. 497

Подбор сочетаний цветов на сайте………………………………………………………………………………………… 498

WhatFont — определитель шрифта……………………………………………………………………………………….. 499

Работа со шрифтами……………………………………………………………………………………………………………….. 499

Использование мастера надписи……………………………………………………………………………………………. 500

Логотип для сайта……………………………………………………………………………………………………………………. 503

Обложка книги…………………………………………………………………………………………………………………………. 504

Загрузка в WordPress PDF-файлов………………………………………………………………………………………….. 506

Предметный указатель…………………………………………………………………………. 509

 

Опубликовано

Вышла книга “Взлом. Приемы, трюки и секреты хакеров. Версия 2.0”

Взлом. Приемы, трюки и секреты хакеров. Версия 2.0

В нашем издательстве опубликован пятый сборник из серии “Библиотека журнала “Хакер”:  “Взлом. Приемы, трюки и секреты хакеров. Версия 2.0“.

В сборнике избранных статей из журнала «Хакер» описана технология инжекта шелл-кода в память KeePass с обходом антивирусов, атака ShadowCoerce на Active Directory, разобраны проблемы heap allocation и эксплуатация хипа уязвимого SOAP-сервера на Linux. Рассказыва-ется о способах взлома протекторов Themida, Obsidium, .NET Reactor, Java-приложений с по-мощью dirtyJOE, программ fat binary для macOS с поддержкой нескольких архитектур. Даны примеры обхода Raw Security и написания DDoS-утилиты для Windows, взлома компьютер-ной игры и написания для нее трейнера на языке C++. Описаны приемы тестирования прото-колов динамической маршрутизации OSPF и EIGRP, а также протокола DTP. Подробно рас-смотрена уязвимость Log4Shell и приведены примеры ее эксплуатации.

Для читателей, интересующихся информационной безопасностью

Вы узнаете:

• как обходить антивирусы;
• как работает новейшая атака на Active Directory;
• как работать фаззером и искать «дыры» в софте;
• как использовать проблемы heap allocation и эксплуатировать хип уязвимого SOAP-сервера на Linux;
• как взламывать популярные протекторы: Themida, Obsidium, .NET Reactor;
• как взламывать защищенные программы для macOS;
• как тестировать безопасность сетевых протоколов;
• как написать DDoS-утилиту для Windows;
• как вскрыть компьютерную игру и написать трейнер для нее;
• как устроена и используется на практике нашумевшая уязвимость

Эта книга посвящена взлому и защите от него. В книге собраны самые лучшие, самые интересные статьи из легендарного журнала «Хакер», описывающие практические приемы хакерства и защиты информационных систем. Авторы представленных в сборнике материалов — истинные профессионалы, неутомимые исследователи, опытнейшие эксперты в сфере информационной безопасности и поиска уязвимостей.

Авторы

Авторы

snovvcrash, AYSerkov, MBK, Necreas1ng, yuriy.nelkmen, neeko, Вячеслав Москвин, Марсель Шагиев, Мария Нефёдова, Иван aLLy Комиссаров

«Хакер» — легендарный журнал об информационной безопасности, издающийся с 1999 года. На протяжении 20 лет на страницах «Хакера» публикуются интересные статьи об операционных системах, программах, сетях, гаджетах и компьютерном «железе». На сайте «Хакера» ежедневно появляются знаковые новости из мира компьютерных технологий, мануалы по кодингу и взлому, гайды по новым эксплойтам, подборки хакерского софта и обзоры веб-сервисов. Среди авторов журнала —  авторитетные эксперты по кибербезопасности и IT-специалисты.

Книгу можно купить в нашем интернет-магазине.

Предисловие. 7

Вызов мастеру ключей. Инжектим шелл-код в память KeePass,
обойдя антивирус. 10

Предыстория. 10

Потушить AV.. 11

Получить сессию C2. 13

Перепаять инструмент. 14

Классическая инъекция шелл-кода. 14

Введение в D/Invoke. 20

DynamicAPIInvoke без D/Invoke. 21

DynamicAPIInvoke с помощью D/Invoke. 27

Зачем системные вызовы?. 33

GetSyscallStub с помощью D/Invoke. 35

Модификация KeeThief 42

Подготовка. 42

Апгрейд функции ReadProcessMemory. 43

Время для теста! 46

Выводы. 47

ShadowCoerce. Как работает новая атака на Active Directory. 48

PetitPotam и PrinterBug. 48

Что такое VSS. 49

Стенд. 49

Как работает ShadowCoerce. 50

Эксплуатация. 53

Выводы. 56

Круче кучи! Разбираем в подробностях проблемы heap allocation. 58

Основы GDB. 58

Структура чанков. 59

Арена. 60

Флаги. 61

Bins 61

Тестовая программа. 63

Практика. 63

Fast bin Dup. 69

Что еще почитать про кучу. 73

WinAFL на практике. Учимся работать фаззером
и искать дыры в софте. 74

Требования к функции. 75

Компиляция WinAFL. 75

Поиск подходящей цели для фаззинга. 76

Поиск функции для фаззинга внутри программы. 77

Аргументы WinAFL, подводные камни. 84

Прокачка WinAFL — добавляем словарь. 85

Особенности WinAFL. 86

Побочные эффекты. 86

 

Дебаг-режим. 86

Эмуляция работы WinAFL. 86

Стабильность. 87

Набор входных файлов. 87

Отучаем программу ругаться. 87

Неядерный реактор. Взламываем протектор .NET Reactor. 88

Фемида дремлет. Как работает обход защиты Themida. 95

Сны Фемиды. Ломаем виртуальную машину Themida. 102

Грязный Джо. Взламываем Java-приложения с помощью dirtyJOE. 110

Obsidium fatality. Обходим триальную защиту популярного протектора. 122

В итоге. 129

 

Липосакция для fat binary. Ломаем программу для macOS
с поддержкой нескольких архитектур. 130

Немного теории. 130

Intel 132

ARM   134

Патчим плагин. 136

Разборки на куче. Эксплуатируем хип уязвимого SOAP-сервера
на Linux. 138

Реверс-инжиниринг. 139

handleCommand. 139

parseArray. 144

executeCommand. 148

deleteNote. 150

editNote. 151

newNote. 152

show.. 154

Итоги реверса. 154

Анализируем примитивы. 154

UAF (show после delete) 154

Heap overflow.. 155

Неочевидный UAF и tcachebins 156

Собираем эксплоит. 159

Запускаем эксплоит. 160

Выводы. 160

Routing nightmare. Как пентестить протоколы динамической
маршрутизации OSPF и EIGRP. 164

Проблематика, импакт и вооружение. 164

Протокол OSPF. 164

Протокол EIGRP. 166

Импакт. 167

Вооружение с FRRouting. 168

Настройка FRRouting. 168

Виртуальная лаборатория. 169

Инъекция маршрутов и перехват трафика в домене OSPF. 171

Инъекция маршрутов и переполнение таблицы маршрутизации в домене EIGRP. 173

Меры предотвращения атак на домены маршрутизации. 176

Выводы. 177

Разруливаем DTP. Как взломать протокол DTP
и совершить побег в другую сеть VLAN.. 178

Как это работает. 178

Уязвимость. 180

Виртуальная лаборатория. 181

Кастомная эксплуатация уязвимости ++без использования++ Yersinia. 182

Эксплуатация. 185

Побег в другую сеть VLAN.. 187

Защита. 189

Вывод. 189

DDoS с усилением. Обходим Raw Security
и пишем DDoS-утилиту для Windows 190

Ищем уязвимые серверы. 193

Разработка. 194

Функция выбора интерфейса, из которого будут поступать пакеты. 195

Функции формирования UDP-пакета. 196

Формирование пакета. 200

Отправка пакета. 200

Заключение. 201

Чит своими руками. Вскрываем компьютерную игру
и пишем трейнер на C++. 202

Выбор игры. 202

Поиск значений. 202

Что такое статический адрес. 205

Поиск показателей здоровья. 206

Поиск статического адреса для индикатора здоровья. 210

Поиск значения числа патронов. 213

Поиск статического адреса для ammo. 213

Проверка полученного статического адреса. 218

Проверка для HP. 218

Проверка для ammo. 219

Как будет выглядеть наш указатель в C++. 220

Написание трейнера. 220

Injector 221

DLL. 222

Модуль обратных вызовов. 229

Модуль работы с памятью.. 229

Проверка работоспособности. 232

Выводы. 232

Log4HELL! Разбираем Log4Shell во всех подробностях. 233

Log4Shell 233

Патчи для патчей. 234

Майнеры, DDoS и вымогатели. 235

Защита. 237

Списки уязвимых. 237

Как работает уязвимость. 238

Как нашли уязвимость. 238

Стенд. 240

build.gradle. 240

src/main/java/logger/Test.java. 240

build.gradle. 241

Детали уязвимости. 242

RCE через Log4j 250

Эксплуатация Log4j в Spring Boot RCE на Java версии выше 8u19. 251

Не RCE единым. 253

Манипуляции с пейлоадом и обходы WAF. 256

Патчи и их обходы. 259

Выводы. 264

«Хакер»: безопасность, разработка, DevOps 265

Предметный указатель. 269

Опубликовано

Представляем новую книгу: “В стране смельчаков. Татарская сказка”

В стране смельчаков. Татарская сказка

Это сказка о юноше, которому пришлось стать смелым, чтобы спасти целый город и свою любимую. Известный татарский писатель Ахмет Файзи сочинил ее на основе татарских сказок и легенд. Данир совсем не хотел становиться воином, ему больше нравилось слушать пение птиц, играть на дудочке и любоваться лебедями. И однажды его отец, славный охотник Азат Мерген решил, что пора Даниру становиться настоящим батыром, и отправил сына в далекое и опасное путешествие.

Книгу можно купить в нашем интернет-магазине.

 

Об авторе

Ахмет Файзи

Ахмет Файзи  — известный татарский писатель, лауреат Государственной премии им. Г. Тукая — написал эту сказку на основе татарских народных сказаний и  легенд.

О художнике

Гульнара-Фаляхова

Гульнара Фаляхова  представляет молодое поколение художников Башкирии. Ее работы, пронизанные духом тюркской культуры, украшают российские и зарубежные галереи.

Опубликовано

Представляем мастер-класс Евгении Тучкевич: Adobe Illustrator CC 2022!

Adobe Illustrator CC 2022. Мастер-класс Евгении Тучкевич

В нашем издательстве вышла книга “Adobe Illustrator CC 2022. Мастер-класс Евгении Тучкевич“.

В основу книги положена эффективная методика обучения дизайнеров, опробованная в учебных аудиториях. Последовательно в виде уроков рассмотрены основные инструменты, технологии и приемы построения для различных проектов в программе Adobe Illustrator на примере версии CС 2022. Особое внимание уделено созданию графики и техникам рисования в программе. Рассмотрены вопросы подготовки графики для Web или печати, в том числе прозрачных объектов. Описаны многочисленные способы трансформации объектов, использование графических стилей, кистей, узорных заливок, символов, эффектов и  многое другое. Учебные файлы, созданные специально для курса, размещены на сайте издательства.

Для широкого круга пользователей

НОВОЕ ИЗДАНИЕ ПОПУЛЯРНОЙ КНИГИ ТЕПЕРЬ В ЦВЕТЕ!

Книга будет полезна:

  • начинающим пользователям как понятное, пошаговое руководство для быстрого изучения программы;
  • дизайнерам как набор готовых решений;
  • преподавателям как сборник превосходных методических материалов;
  • профессиональным пользователям как справочник по работе в программе.

Книгу можно купить в нашем интернет-магазине.

Содержание

ПРЕДИСЛОВИЕ 11
Введение. ОСНОВЫ КОМПЬЮТЕРНОЙ ГРАФИКИ 13
Типы компьютерной графики 14
Характеристики растрового изображения, или
Что нужно знать, создавая и сохраняя файл 15
Пиксел 15
Разрешение изображения 16
Сглаживание (anti-alias) 16
Цветовые модели 17
Модель RGB 17
Модель CMYK 19
Модель HSB 20
Как выбрать цвет в Illustrator? 20
Диалоговое окно Color Picker (Подборщик цвета) … 20
Палитра Color (Цвет) 21
Палитра Swatches (Образцы) 22Урок 1. ИНТЕРФЕЙС ПРОГРАММЫ 23
Интерфейс 24
Работа с быстрыми («горячими») клавишами 26
Палитры 26
Функциональные клавиши 27
Перестройка палитр 27
Выбор и скрытие палитры 29
Панель инструментов 29
Определение инструмента 31
Выбор инструмента 31
Режимы отображения 32
Способы изменения масштаба просмотра 32
Дополнительные средства изменения масштаба 34
Быстрое перемещение по изображению 35
Работа с несколькими монтажными областями
в одном документе 35
Artboard (Монтажная область) 35
Режимы просмотра графических объектов 35Урок 2. ПОСТРОЕНИЕ ПРИМИТИВОВ. ВЫРАВНИВАНИЕ. ГРУППИРОВКА 37
Построение примитивов 38
Инструменты Rectangle (Прямоугольник),
Rounded Rectangle (Скругленный прямоугольник),
Ellipse (Эллипс) 38
Инструмент Polygon (Полигон) 40
Инструмент Star (Звезда) 41
Группа инструментов незамкнутых линий 42
Выделение объектов 44
Инструменты выделения объектов 45
Команды главного меню Select (Выделение) 46
Команды подменю Select | Same
(Выделение | Подобно) 47
Присвоение цвета объектам 48
Атрибуты объектов 48
Изменение цвета атрибутов 49
Проект «Улитка» 49
Порядок следования объектов 51
Проект «Забавные животные». 51
Обводка объекта. Палитра Stroke (Обводка) 53
Создание обводок с переменной шириной 54
Сохранение профилей ширины 55
Группировка объектов 56
Работа с элементами группы 56
Выравнивание объектов.
Палитра Align (Выравнивание) 57Урок 3. ЦВЕТ И РАСКРАШИВАНИЕ 61
Цветовая модель документа 62
Заливка и обводка объектов 62
Палитра Swatches (Образцы) 63
Сохранение образца в палитре 64
Библиотеки образцов 65
Типы образцов 66
Градиент 68
Палитра Gradient (Градиент) 68
Кнопка Edit Gradient (Редактировать градиент). Инструмент Gradient (Градиент) 71
Цветовые группы 76
Создание и редактирование цветовой группы 76Урок 4. ВСПОМОГАТЕЛЬНЫЕ ЭЛЕМЕНТЫ ИНТЕРФЕЙСА 79
О вспомогательных элементах интерфейса 80
Краткий обзор монтажной области 80
Границы и габариты выделенного объекта 81
Rulers (Линейки) 81
Grid (Сетка) 82
Guides (Направляющие) 83
Smart Guides (Умные направляющие) 84
Проект «Создание упаковки» 85Урок 5. ТРАНСФОРМАЦИЯ ОБЪЕКТОВ 89
Преобразование объекта инструментом Selection
(Выделение) 90
Перемещение объектов 91
Команда Move (Перемещение) 91
Перемещение при помощи палитр Properties
(Свойства) и Transform (Трансформация) 92
Масштабирование объектов 93
Команда Scale (Масштабирование) 93
Масштабирование при помощи палитр
Properties (Свойства), Transform (Трансформация)… 94 Инструмент Scale (Масштабирование) 94
Поворот объектов 94
Команда Rotate (Поворот) 94
Поворот при помощи палитр
Properties (Свойства), Transform (Трансформация)… 95 Инструмент Rotate (Поворот) 95
Отражение объектов 96
Команда Reflect (Отражение) 96
Отражение при помощи палитр Properties
(Свойства),Transform (Трансформация) 96
Инструмент Reflect (Отражение) 97
Наклон объектов 98
Команда Shear (Наклон) 98
Инструмент Shear (Наклон) 98
Применение нескольких преобразований
одновременно 99
Команда Transform Each
(Трансформировать каждый) 99
Инструмент Free Transform
(Свободная трансформация) 100
Повтор трансформации 102
Проект «Дом vs замок» 103
Инструмент Puppet Warp
(Марионеточная деформация) 105
Проект «Осьминожка» 106Урок 6. ЭФФЕКТЫ ТРАНСФОРМАЦИИ 107
Эффекты искажения и трансформации 108
Эффект Free Distort (Свободная деформация) 108
Эффект Pucker & Bloat (Втягивание и раздутие) 109
Эффект Roughen (Огрубление) 110
Эффект Tweak (Трепать) 111
Эффект Twist (Скручивание) 112
Эффект Zig Zag (Зигзаг) 112
Эффект Transform (Трансформировать) 113
Проект «Цветы в вазе» 114
Проект «Визитка» 116Урок 7. СОЗДАНИЕ СЛОЖНЫХ ФОРМ ИЗ ПРОСТЫХ 119
Палитра Pathfinder (Обработка контуров) 120
Проект «Пиктограмма» 122
Голова 123
Тело 124
Инструмент Shaper (Мастер фигур) 127
Инструмент Shape Builder (Создание форм) 128
Проект «Рыбка» 128

Урок 8. РАБОТА С КРИВЫМИ БЕЗЬЕ 131
Создание прямолинейных контуров пером 132
Создание криволинейных сегментов пером 133
Основные элементы кривых 134
Типы опорных точек 136
Редактирование контуров 136
Инструменты для работы с контурами 136
Создание угловых точек в процессе
построения кривых 138
Упражнение «Цветок» 139
Упражнение «Сердце за две опорные точки» 140
Создание векторного объекта по контуру
растрового изображения 141
Использование операций редактирования
опорных точек 142
Операции с опорными точками 143
Выравнивание опорных точек 143
Преобразование обводок в составные контуры 144
Создание дополнительного контура с отступом 145
Удаление мусора командой Clean Up (Вычистить) 146
Разрезание объектов и контуров 146
Соединение двух открытых контуров 147
Задания для самостоятельной работы 148

Урок 9. ГРАДИЕНТНАЯ СЕТКА 149
Что такое градиентная сетка? 150
Способы создания сеточного объекта 151
Создание сеточного объекта при помощи инструмента Mesh (Сетка) 151
Использование команды Create Gradient Mesh
(Создать градиентную сетку) 152
Киборг из градиентной сетки 153

Урок 10. РИСОВАНИЕ ПО СИЛУЭТУ 157
Техники рисования в программе 158
Стандартная техника 158
Рисование по силуэту 159
Проект «Гриб» 161
Создание силуэта по эскизу 161
Рисование деталей внутри силуэта 162
Работа с цветом 163
Детали в иллюстрации 164
Задний план 164

Урок 11. БЫСТРАЯ ЗАЛИВКА 167
Рисование с использованием Live Paint
(Быстрая заливка) 168
Создание группы быстрой заливки. 168
Ограничения возможностей быстрой заливки 169
Редактирование группы быстрой заливки 169
Раскрашивание с помощью инструмента
Live Paint Bucket (Ведро быстрой заливки) 170
Замыкание зазоров 171
Разбор или отмена группы с быстрой заливкой 171
Проект «Витраж» 171

Урок 12. ТРАССИРОВКА ИЗОБРАЖЕНИЙ 175
Инструмент Image Trace (Трассировка изображения) 176
Примеры использования 177
Наборы предустановленных параметров 179
Настройка других параметров инструмента
Image Trace (Быстрая трассировка) 181

Урок 13. ИНФОГРАФИКА. ПОСТРОЕНИЕ В ПЕРСПЕКТИВЕ 185

Инфографика 186
Базовые принципы перспективного рисования 187
Perspective Grid (Сетка перспективы) 189
Построение объектов в перспективе 191
Добавление объектов в перспективу 193
Добавление текста и символов в перспективу 193
Проект «Вертолетная площадка» 193

Урок 14. РАБОТА С ТЕКСТОМ 197
Создание текста 198
Способы создания текста 199
Палитры форматирования текста 201
Инструмент Area Type (Текст в области) 204
Текст по контуру 208
Преобразование текста в кривые 209
Специальные символы. Палитра Glyphs (Глифы) 210
Наследование текста. 210
Стили символов и абзацев 211
Инструмент Touch Type Tool (Изменение текста) 212
Типы шрифтов 212
Команды меню Type (Текст) 214

Урок 15. СЛОИ. МАСКИ ОТСЕЧЕНИЯ 215
Палитра Layers (Слои) 216
Преимущества работы со слоями 216
Основные функции палитры Layers (Слои) 217
Clipping Mask (Маска отсечения) 220
Векторная маска отсечения 220
Текстовая маска отсечения 221
Создание обтравочного контура 223

Урок 16. СТИЛИ И ЭФФЕКТЫ 225
Атрибуты оформления 226
Палитра Appearance (Оформление) 226
Палитра Layers (Слои) 229
Палитра Graphic Styles (Графические стили) 231
Проект «Road» (Дорога) 231
Работа с эффектами. Меню Effect (Эффект) 233
Об эффектах 233
Эффекты 3D (Classic) (объемное изображение) 234
Эффекты 3D and Materials
(объемное изображение и материалы) 238
Сводка по эффектам 241

Урок 17. ИМПОРТ И ЭКСПОРТ 243
Импорт в Adobe Illustrator 244
Импорт текста 244
Импорт векторных изображений 244
Импорт растровых изображений 246
Экспорт из Adobe Illustrator 250
Использование нескольких монтажных областей
при различных размерах вывода 252

Урок 18. УЗОРНАЯ ЗАЛИВКА 253
Особенности работы с узорами 254
Изменение стандартных узоров 255
Создание заказного узора 256
Создание узора «кирпичная кладка» 257
Библиотеки узоров 258

Урок 19. КИСТИ 261
Кисти 262
Типы кистей 262
Палитра Вrushes (Кисти) 263
Растровые изображения в кистях 264
Параметры кистей 264
Проект «Дикая яблоня» 275
Рисование яблони 275
Яблоня в цвету 276

Урок 20. СИМВОЛЫ 281
Палитра Symbols (Символы) 282
Создание символа 282
Замена образца символа 283
Отмена связи с символом 283
Инструменты работы с символами 283
Создание наборов символов 284
Перемещение символов в наборе 285
Уплотнение и разброс символов в наборе 285
Изменение размера символов в наборе 285
Поворот символов 285
Изменение цвета 286
Изменение прозрачности 286
Присвоение стиля 287
Быстрое редактирование символа в палитре 287
Библиотеки символов 288

Урок 21. РАБОТА С ПРОЗРАЧНОСТЬЮ 290
О прозрачности 291
Палитра Transparency (Прозрачность) 292
Создание прозрачности 294
Подготовка к печати объектов с прозрачностью 294
Сведения об обработке прозрачности 294
Команда Flatten Transparency
(Сведение прозрачности) 295
Пример 1. Векторные объекты с режимами смешивания 296
Пример 2. Векторные объекты на растровом изображении 298
Пример 3. «Тени на плетени» 302

Урок 22. ПОДГОТОВКА ГРАФИКИ ДЛЯ WEB 305
История развития Web-дизайна 306
Растровые форматы файлов для Web 309
Формат SVG (Scalable Vector Graphics) 310
CSS в Adobe Illustrator 312
Палитра CSS Properties
(Свойства каскадных таблиц стилей) 312
Экспорт частей макета для различных устройств 315
Пиксельная плотность 315
Палитра Asset Export (Экспорт ресурсов) 316
Команда Save for Web 318

Тучкевич Евгения Ивановна, сертифицированный инструктор (Adobe Certified Instructor) по продуктам Adobe Photoshop СС и Adobe Illustrator СС, имеющая многолетний опыт подготовки профессиональных дизайнеров по программам магистратуры и краткосрочного обучения по компьютерному дизайну. Руководитель специальности «Компьютерный дизайн» в Высшей инженерной школе ИДО СПбПУ, Член Союза Дизайнеров России, директор МОНЦ «Autodesk-Политехник». Профессионал в области дизайна и рекламы, имеющая опыт рекламной работы со многими компаниями и журналами, автор курса «Advertising promotions: development & implementation», автор курсов по продуктам «Adobe». Автор бестселлеров серии «Adobe Photoshop. Мастер-класс Евгении Тучкевич» и «Самоучитель Adobe Illustrator CS5/CS6/СС/CC2018».

Опубликовано

Представляем книгу “Qt 6. Разработка оконных приложений на C++”

Qt 6. Разработка оконных приложений на C++

В нашем издательстве опубликована книга Николая Прохоренка “Qt 6. Разработка оконных приложений на C++“.

Описываются базовые возможности библиотеки Qt, позволяющей создавать приложения с графическим интерфейсом на языке C++. Книга ориентирована на тех, кто уже знаком с языком программирования C++ и хотел бы научиться разрабатывать оконные приложения. Рассматриваются способы обработки событий, управление свойствами окна, создание формы, а также все основные компоненты (кнопки, текстовые поля, списки, таблицы, меню и др.) и варианты их размещения внутри окна. Книга содержит большое количество практических примеров, помогающих начать разрабатывать приложения с графическим интерфейсом самостоятельно. Она будет полезна в качестве самоучителя для начинающих разработчиков. Читатели, уже имеющие опыт, могут использовать ее как удобный справочник.

  • Управление окном приложения
  • Обработка сигналов и событий
  • Размещение компонентов внутри окна
  • Основные компоненты
  • Списки и таблицы
  • Работа с графикой и изображениями
  • Графическая сцена
  • Диалоговые окна
  • SDI- и MDI-приложения
  • Редактор Qt Creator

От автора

Qt — это популярная библиотека, позволяющая создавать приложения с графическим интерфейсом на языке C++. Она очень проста в использовании и идеально подходит для разработки приложений практически любой сложности. Библиотека является кросс-платформенной, поэтому мы можем создавать оконные приложения под Windows, Linux и Mac, а также мобильные приложения под Android и iOS.

В этой книге мы рассмотрим процесс создания оконных приложений применитель- но к операционной системе Windows. Для сборки приложений будем пользоваться компилятором MinGW, а для набора кода — редактором Qt Creator, входящим в состав библиотеки Qt.

Для полного понимания материала книги от читателя потребуется знание языка C++.

Чтобы уменьшить размер книги, основная часть кода примеров вынесена в отдельные проекты, которые расположены в электронном архиве. Электронный архив можно загрузить с сервера издательства «БХВ-Петербург» по ссылке https://zip.bhv.ru/9785977511803.zip или со страницы книги на сайте www.bhv.ru (см. приложение).

Желаю приятного изучения и надеюсь, что книга поможет вам реализовать как самые простые, так и самые сложные приложения.

Книгу можно купить в нашем интернет-магазине.

Введение………………………………………………………………………………………………….. 9

Глава 1. Первые шаги……………………………………………………………………………. 11

1.1. Создание структуры каталогов…………………………………………………………………………………………. 12

1.2. Добавление пути в переменную PATH………………………………………………………………………………. 12

1.3. Работа с командной строкой……………………………………………………………………………………………… 14

1.4. Установка Qt 6…………………………………………………………………………………………………………………….. 14

1.5. Настройка редактора Qt Creator……………………………………………………………………………………….. 23

1.6. Первая программа на Qt…………………………………………………………………………………………………….. 27

1.7. Структура программы………………………………………………………………………………………………………… 32

1.8. Запуск приложения двойным щелчком на значке файла………………………………………………… 35

1.9. ООП-стиль создания окна…………………………………………………………………………………………………… 36

1.10. Создание проекта с формой…………………………………………………………………………………………….. 39

1.11. Доступ к документации……………………………………………………………………………………………………. 45

Глава 2. Работа с символами и строками……………………………………………….. 47

2.1. Псевдонимы для элементарных типов………………………………………………………………………………. 47

2.2. Класс QChar: символ в кодировке Unicode………………………………………………………………………. 48

2.2.1. Создание объекта…………………………………………………………………………………………………….. 48

2.2.2. Изменение регистра символа…………………………………………………………………………………… 50

2.2.3. Проверка типа содержимого символа……………………………………………………………………. 51

2.3. Класс QString: строка в кодировке Unicode……………………………………………………………………… 53

2.3.1. Создание объекта…………………………………………………………………………………………………….. 53

2.3.2. Преобразование объекта в другой тип данных…………………………………………………….. 54

2.3.3. Получение и изменение размера строки………………………………………………………………… 55

2.3.4. Доступ к отдельным символам……………………………………………………………………………….. 58

2.3.5. Перебор символов строки………………………………………………………………………………………… 59

2.3.6. Итераторы…………………………………………………………………………………………………………………. 60

2.3.7. Конкатенация строк…………………………………………………………………………………………………. 62

2.3.8. Добавление и вставка символов……………………………………………………………………………… 63

2.3.9. Удаление символов………………………………………………………………………………………………….. 64

2.3.10. Изменение регистра символов………………………………………………………………………………. 68

2.3.11. Получение фрагмента строки……………………………………………………………………………….. 69

2.3.12. Поиск в строке………………………………………………………………………………………………………… 70

2.3.13. Замена в строке………………………………………………………………………………………………………. 73

2.3.14. Сравнение строк…………………………………………………………………………………………………….. 75

2.3.15. Преобразование строки в число……………………………………………………………………………. 77

2.3.16. Преобразование числа в строку……………………………………………………………………………. 79

2.3.17. Форматирование строки………………………………………………………………………………………… 80

2.3.18. Разделение строки на подстроки по разделителю………………………………………………. 81

2.4. Класс QStringList: список строк………………………………………………………………………………………… 83

2.4.1. Создание объекта…………………………………………………………………………………………………….. 83

2.4.2. Вставка элементов……………………………………………………………………………………………………. 84

2.4.3. Определение и изменение количества элементов………………………………………………….. 87

2.4.4. Удаление элементов…………………………………………………………………………………………………. 88

2.4.5. Доступ к элементам………………………………………………………………………………………………….. 91

2.4.6. Итераторы…………………………………………………………………………………………………………………. 93

2.4.7. Перебор элементов…………………………………………………………………………………………………… 95

2.4.8. Сортировка списка…………………………………………………………………………………………………… 95

2.4.9. Получение фрагмента списка………………………………………………………………………………….. 95

2.4.10. Поиск элементов…………………………………………………………………………………………………….. 96

2.4.11. Замена элементов…………………………………………………………………………………………………… 98

2.4.12. Фильтрация списка………………………………………………………………………………………………… 99

2.4.13. Преобразование списка в строку………………………………………………………………………… 100

Глава 3. Управление окном приложения……………………………………………… 101

3.1. Создание и отображение окна…………………………………………………………………………………………. 101

3.2. Указание типа окна…………………………………………………………………………………………………………… 103

3.3. Изменение и получение размеров окна…………………………………………………………………………… 105

3.4. Местоположение окна на экране…………………………………………………………………………………….. 109

3.4.1. Получение информации о размере экрана…………………………………………………………… 110

3.5. Указание координат и размеров……………………………………………………………………………………… 113

3.5.1. Класс QPoint: координаты точки…………………………………………………………………………. 113

3.5.2. Класс QSize: размеры прямоугольной области…………………………………………………… 115

3.5.3. Класс QRect: координаты и размеры прямоугольной области………………………….. 118

3.6. Разворачивание и сворачивание окна…………………………………………………………………………….. 125

3.7. Управление прозрачностью окна……………………………………………………………………………………. 127

3.8. Модальные окна……………………………………………………………………………………………………………….. 128

3.9. Смена значка в заголовке окна………………………………………………………………………………………… 130

3.10. Изменение цвета фона окна……………………………………………………………………………………………. 132

3.11. Использование изображения в качестве фона……………………………………………………………… 134

3.12. Создание окна произвольной формы……………………………………………………………………………. 136

3.13. Всплывающие подсказки……………………………………………………………………………………………….. 137

3.14. Закрытие окна из программы………………………………………………………………………………………… 139

Глава 4. Обработка сигналов и событий………………………………………………. 141

4.1. Назначение обработчиков сигналов………………………………………………………………………………. 141

4.2. Блокировка и удаление обработчика……………………………………………………………………………… 147

4.3. Генерация сигнала из программы…………………………………………………………………………………… 151

4.4. Использование таймеров………………………………………………………………………………………………….. 153

4.5. Класс QTimer: таймер……………………………………………………………………………………………………….. 156

4.6. Перехват всех событий…………………………………………………………………………………………………….. 160

4.7. События окна…………………………………………………………………………………………………………………….. 164

4.7.1. Изменение состояния окна…………………………………………………………………………………….. 164

4.7.2. Изменение положения окна и его размеров…………………………………………………………. 167

4.7.3. Перерисовка окна или его части…………………………………………………………………………… 169

4.7.4. Предотвращение закрытия окна…………………………………………………………………………… 170

4.8. События клавиатуры………………………………………………………………………………………………………… 171

4.8.1. Установка фокуса ввода………………………………………………………………………………………… 172

4.8.2. Назначение клавиш быстрого доступа………………………………………………………………… 177

4.8.3. Нажатие и отпускание клавиши клавиатуры……………………………………………………… 181

4.9. События мыши………………………………………………………………………………………………………………….. 183

4.9.1. Нажатие и отпускание кнопки мыши…………………………………………………………………… 183

4.9.2. Перемещение указателя…………………………………………………………………………………………. 185

4.9.3. Наведение и выведение указателя………………………………………………………………………… 186

4.9.4. Прокрутка колесика мыши……………………………………………………………………………………. 186

4.9.5. Изменение внешнего вида указателя мыши…………………………………………………………. 187

4.10. Технология drag & drop………………………………………………………………………………………………….. 190

4.10.1. Запуск перетаскивания………………………………………………………………………………………… 190

4.10.2. Класс QMimeData…………………………………………………………………………………………………. 192

4.10.3. Обработка сброса………………………………………………………………………………………………… 195

4.11. Работа с буфером обмена………………………………………………………………………………………………. 198

Глава 5. Размещение нескольких компонентов в окне…………………………. 199

5.1. Абсолютное позиционирование………………………………………………………………………………………. 199

5.2. Горизонтальное и вертикальное выравнивание…………………………………………………………….. 200

5.3. Выравнивание по сетке…………………………………………………………………………………………………….. 204

5.4. Выравнивание компонентов формы………………………………………………………………………………… 206

5.5. Классы QStackedLayout и QStackedWidget…………………………………………………………………….. 209

5.6. Класс QSizePolicy……………………………………………………………………………………………………………… 210

5.7. Объединение компонентов в группу……………………………………………………………………………….. 212

5.8. Панель с рамкой………………………………………………………………………………………………………………… 214

5.9. Панель с вкладками………………………………………………………………………………………………………….. 216

5.10. Компонент «аккордеон»…………………………………………………………………………………………………. 221

5.11. Панели с изменяемым размером……………………………………………………………………………………. 224

5.12. Область с полосами прокрутки……………………………………………………………………………………… 226

Глава 6. Основные компоненты…………………………………………………………… 229

6.1. Надпись……………………………………………………………………………………………………………………………… 229

6.2. Командная кнопка…………………………………………………………………………………………………………….. 234

6.3. Переключатель………………………………………………………………………………………………………………….. 237

6.4. Флажок………………………………………………………………………………………………………………………………. 238

6.5. Однострочное текстовое поле…………………………………………………………………………………………. 239

6.5.1. Основные методы и сигналы…………………………………………………………………………………. 239

6.5.2. Ввод данных по маске……………………………………………………………………………………………. 245

6.5.3. Контроль ввода………………………………………………………………………………………………………. 246

6.6. Многострочное текстовое поле……………………………………………………………………………………….. 247

6.6.1. Основные методы и сигналы…………………………………………………………………………………. 247

6.6.2. Изменение настроек поля………………………………………………………………………………………. 251

6.6.3. Изменение характеристик текста и фона……………………………………………………………… 254

6.6.4. Класс QTextDocument…………………………………………………………………………………………….. 256

6.6.5. Класс QTextCursor………………………………………………………………………………………………….. 260

6.7. Текстовый браузер……………………………………………………………………………………………………………. 265

6.8. Поля для ввода целых и вещественных чисел………………………………………………………………… 267

6.9. Поля для ввода даты и времени……………………………………………………………………………………….. 270

6.10. Календарь……………………………………………………………………………………………………………………….. 273

6.11. Электронный индикатор………………………………………………………………………………………………… 276

6.12. Индикатор процесса……………………………………………………………………………………………………….. 277

6.13. Шкала с ползунком…………………………………………………………………………………………………………. 279

6.14. Класс QDial……………………………………………………………………………………………………………………… 281

6.15. Полоса прокрутки…………………………………………………………………………………………………………… 282

Глава 7. Списки и таблицы………………………………………………………………….. 283

7.1. Раскрывающийся список………………………………………………………………………………………………….. 283

7.1.1. Добавление, изменение и удаление элементов……………………………………………………. 283

7.1.2. Изменение настроек……………………………………………………………………………………………….. 285

7.1.3. Поиск элемента внутри списка……………………………………………………………………………… 287

7.1.4. Сигналы…………………………………………………………………………………………………………………… 288

7.2. Список для выбора шрифта……………………………………………………………………………………………… 288

7.3. Роли элементов………………………………………………………………………………………………………………….. 289

7.4. Модели………………………………………………………………………………………………………………………………. 290

7.4.1. Доступ к данным внутри модели………………………………………………………………………….. 290

7.4.2. Класс QStringListModel…………………………………………………………………………………………. 292

7.4.3. Класс QStandardItemModel……………………………………………………………………………………. 293

7.4.4. Класс QStandardItem……………………………………………………………………………………………… 297

7.5. Представления…………………………………………………………………………………………………………………… 302

7.5.1. Класс QAbstractItemView……………………………………………………………………………………….. 302

7.5.2. Простой список………………………………………………………………………………………………………. 307

7.5.3. Таблица…………………………………………………………………………………………………………………… 309

7.5.4. Иерархический список…………………………………………………………………………………………… 312

7.5.5. Управление заголовками строк и столбцов…………………………………………………………. 315

7.6. Управление выделением элементов………………………………………………………………………………… 319

7.7. Промежуточные модели…………………………………………………………………………………………………… 322

Глава 8. Работа с графикой………………………………………………………………….. 325

8.1. Вспомогательные классы…………………………………………………………………………………………………. 325

8.1.1. Класс QColor: цвет…………………………………………………………………………………………………. 326

8.1.2. Класс QPen: перо……………………………………………………………………………………………………. 332

8.1.3. Класс QBrush: кисть……………………………………………………………………………………………….. 333

8.1.4. Класс QLine: линия………………………………………………………………………………………………… 334

8.1.5. Класс QPolygon: многоугольник…………………………………………………………………………… 335

8.1.6. Класс QFont: шрифт………………………………………………………………………………………………. 337

8.2. Класс QPainter………………………………………………………………………………………………………………….. 340

8.2.1. Рисование линий и фигур………………………………………………………………………………………. 341

8.2.2. Вывод текста…………………………………………………………………………………………………………… 344

8.2.3. Вывод изображения……………………………………………………………………………………………….. 346

8.2.4. Преобразование систем координат………………………………………………………………………. 348

8.2.5. Сохранение команд рисования в файл…………………………………………………………………. 349

8.3. Работа с изображениями………………………………………………………………………………………………….. 350

8.3.1. Класс QPixmap……………………………………………………………………………………………………….. 350

8.3.2. Класс QBitmap………………………………………………………………………………………………………… 354

8.3.3. Класс QImage………………………………………………………………………………………………………….. 355

8.3.4. Класс QIcon…………………………………………………………………………………………………………….. 360

Глава 9. Графическая сцена…………………………………………………………………. 363

9.1. Класс QGraphicsScene: сцена………………………………………………………………………………………….. 363

9.1.1. Настройка параметров сцены………………………………………………………………………………. 364

9.1.2. Добавление и удаление графических объектов…………………………………………………… 365

9.1.3. Добавление компонентов на сцену………………………………………………………………………. 366

9.1.4. Поиск объектов……………………………………………………………………………………………………….. 367

9.1.5. Управление фокусом ввода…………………………………………………………………………………… 368

9.1.6. Управление выделением объектов……………………………………………………………………….. 369

9.1.7. Прочие методы и сигналы……………………………………………………………………………………… 370

9.2. Класс QGraphicsView: представление…………………………………………………………………………….. 371

9.2.1. Настройка параметров представления………………………………………………………………… 372

9.2.2. Преобразования между координатами представления и сцены………………………… 373

9.2.3. Поиск объектов……………………………………………………………………………………………………….. 374

9.2.4. Трансформация систем координат……………………………………………………………………….. 375

9.2.5. Прочие методы……………………………………………………………………………………………………….. 375

9.3. Класс QGraphicsItem: базовый класс для графических объектов………………………………… 376

9.3.1. Настройка параметров объекта……………………………………………………………………………. 377

9.3.2. Трансформация объекта………………………………………………………………………………………… 381

9.3.3. Прочие методы……………………………………………………………………………………………………….. 381

9.4. Графические объекты……………………………………………………………………………………………………….. 382

9.4.1. Линия……………………………………………………………………………………………………………………….. 383

9.4.2. Класс QAbstractGraphicsShapeItem………………………………………………………………………. 383

9.4.3. Прямоугольник……………………………………………………………………………………………………….. 384

9.4.4. Многоугольник……………………………………………………………………………………………………….. 384

9.4.5. Эллипс…………………………………………………………………………………………………………………….. 384

9.4.6. Изображение…………………………………………………………………………………………………………… 385

9.4.7. Простой текст…………………………………………………………………………………………………………. 386

9.4.8. Форматированный текст……………………………………………………………………………………….. 387

9.5. Группировка объектов……………………………………………………………………………………………………… 389

9.6. Эффекты…………………………………………………………………………………………………………………………….. 389

9.6.1. Класс QGraphicsEffect……………………………………………………………………………………………. 390

9.6.2. Тень………………………………………………………………………………………………………………………….. 390

9.6.3. Размытие…………………………………………………………………………………………………………………. 392

9.6.4. Изменение цвета……………………………………………………………………………………………………… 392

9.6.5. Изменение прозрачности……………………………………………………………………………………….. 393

9.7. Обработка событий………………………………………………………………………………………………………….. 394

9.7.1. События клавиатуры……………………………………………………………………………………………… 394

9.7.2. События мыши……………………………………………………………………………………………………….. 395

9.7.3. Обработка перетаскивания и сброса……………………………………………………………………. 399

9.7.4. Фильтрация событий……………………………………………………………………………………………… 401

9.7.5. Обработка изменения состояния объекта……………………………………………………………. 401

Глава 10. Диалоговые окна………………………………………………………………….. 405

10.1. Пользовательские диалоговые окна……………………………………………………………………………… 405

10.2. Класс QDialogButtonBox………………………………………………………………………………………………… 408

10.3. Класс QMessageBox………………………………………………………………………………………………………… 411

10.3.1. Основные методы и сигналы……………………………………………………………………………… 413

10.3.2. Окно для вывода обычного сообщения…………………………………………………………….. 415

10.3.3. Окно запроса подтверждения……………………………………………………………………………. 415

10.3.4. Окно для вывода предупреждающего сообщения…………………………………………… 416

10.3.5. Окно для вывода критического сообщения………………………………………………………. 417

10.3.6. Окно «О программе»…………………………………………………………………………………………… 418

10.3.7. Окно «About Qt»………………………………………………………………………………………………….. 418

10.4. Класс QInputDialog………………………………………………………………………………………………………… 418

10.4.1. Основные методы и сигналы……………………………………………………………………………… 419

10.4.2. Окна для ввода строки……………………………………………………………………………………….. 422

10.4.3. Окно для ввода целого числа…………………………………………………………………………….. 423

10.4.4. Окно для ввода вещественного числа……………………………………………………………….. 424

10.4.5. Окно для выбора пункта из списка……………………………………………………………………. 425

10.5. Класс QFileDialog…………………………………………………………………………………………………………… 426

10.5.1. Основные методы и сигналы……………………………………………………………………………… 426

10.5.2. Окно для выбора каталога…………………………………………………………………………………. 429

10.5.3. Окно для открытия файла………………………………………………………………………………….. 430

10.5.4. Окно для сохранения файла………………………………………………………………………………. 431

10.6. Окно для выбора цвета…………………………………………………………………………………………………… 432

10.7. Окно для выбора шрифта……………………………………………………………………………………………….. 433

10.8. Окно для вывода сообщения об ошибке……………………………………………………………………….. 434

10.9. Окно с индикатором хода процесса……………………………………………………………………………… 435

10.10. Создание многостраничного мастера………………………………………………………………………… 437

10.10.1. Класс QWizard…………………………………………………………………………………………………… 437

10.10.2. Класс QWizardPage………………………………………………………………………………………….. 442

Глава 11. Создание SDI- и MDI-приложений………………………………………… 447

11.1. Создание главного окна приложения……………………………………………………………………………. 447

11.2. Меню………………………………………………………………………………………………………………………………… 454

11.2.1. Класс QMenuBar…………………………………………………………………………………………………. 454

11.2.2. Класс QMenu……………………………………………………………………………………………………….. 455

11.2.3. Контекстное меню………………………………………………………………………………………………. 459

11.2.4. Класс QAction……………………………………………………………………………………………………… 460

11.2.5. Объединение переключателей в группу…………………………………………………………… 464

11.3. Панели инструментов…………………………………………………………………………………………………….. 466

11.3.1. Класс QToolBar…………………………………………………………………………………………………… 466

11.3.2. Класс QToolButton……………………………………………………………………………………………… 469

11.4. Прикрепляемые панели………………………………………………………………………………………………….. 470

11.5. Управление строкой состояния……………………………………………………………………………………… 472

11.6. MDI-приложения…………………………………………………………………………………………………………….. 474

11.6.1. Класс QMdiArea………………………………………………………………………………………………….. 474

11.6.2. Класс QMdiSubWindow………………………………………………………………………………………. 478

11.7. Добавление значка приложения в область уведомлений……………………………………………. 479

Заключение………………………………………………………………………………………….. 483

Приложение. Описание электронного архива………………………………………. 485

Предметный указатель…………………………………………………………………………. 487