Главная » 2011»Ноябрь»13 » C++ мастер-класс. 85 нетривиальных проектов, решений и задач
20:27
C++ мастер-класс. 85 нетривиальных проектов, решений и задач
Данная книга посвящена анализу интересных задач, встречающихся в повседневной практике программирования и требующих нетривиальных подходов в их решении. На основе относительно небольшого количества характерных реалистичных примеров иллюстрируется применение важных алгоритмов и методик программирования. Обозначены задачи, в которых могут использоваться те или иные подходы и решения. Книга написана в доступной форме блестящим программистом и великолепным популяризатором, автором таких книг, как "Классика программирования: алгоритмы, языки, автоматы, компиляторы. Практический подход" и "Занимательное программирование". Будет несомненно полезна всем, кто, обладая базовыми знаниями C++, хочет повысить свой уровень и культуру программирования.
Название: C++ мастер-класс. 85 нетривиальных проектов, решений и задач Автор: Мозговой М. В. Издательство: Наука и Техника Год: 2007 Страниц: 267 Формат: DJVU Размер: 10,9 МБ ISBN: 5-94387-286-8 Качество: Отличное Серия или Выпуск: Секреты мастерства
Содержание:
Введение Глава 1. Структуры данных 1.1. Математика на стеке Вычисление формул без грамматического разбора 1.2. Разреженные матрицы Программирование разреженных структур данных 1.3. Бинарные деревья - это такие деревья 1.3.1. Игра «животные», или развлечение с бинарными деревьями 1.3.2. Генератор формул Автоматическое создание дерева математического выражения 1.3.3. Расчет сопротивления, или электрическая цепь как бинарное дерево Глава 2. Решение математических задач 2.1. Алгебра и геометрия 2.1.1. Интерполяция по Лагранжу, или восстановление недостающей информации 2.1.2. Помощник химика Сведение химических уравнений к алгебраическим 2.1.3. «Проволочная» графика Геометрические преобразования плоских фигур 2.2. Расчёт траекторий 2.2.1. Противотанковая оборона Расчёт упреждающего выстрела 2.2.2. Столкновение Расчёт скоростей физических тел 2.2.3. Бильярд Расчёт траекторий шаров после столкновения 2.2.4. Баллистическая игра Расчёт траекторий снарядов 2.2.5. Лабиринт для лазера Угол падения равен углу отражения Глава 3. Алгоритмы на графах 3.1. Анализ графов 3.1.1. Решение неразрешимой задачи Анализ проблемы останова 3.1.2. Планировщик СУБД Разрешение взаимных блокировок 3.1.3. Сортировка сайтов Поиск компонент связности графа 3.2. Волновая трассировка 3.2.1. Волновая трассировка Поиск маршрута в лабиринте 3.2.2. Цветные линии Волновая трассировка в популярной игре 3.2.3. Игра Square Head Волновая трассировка плюс немного фантазии 3.2.4. Закраска контура, или необычное применение волновой трассировки Глава 4. Рекурсия и перебор с возвратами. Эвристический поиск 4.1. Рекурсивные объекты. Фрактальные узоры Рисование рекурсивных объектов 4.2. Простой поиск в играх и головоломках 4.2.1. Генератор кроссвордов Знакомство с перебором с возвратами 4.2.2. Японские кроссворды Оптимизированный перебор с возвратами 4.2.3. Игра «Королевская балда» Поиск наилучшего хода в игре 4.2.4. Пентамино, или ещё одна задача на перебор с возвратами 4.2.5. Кубики сома - трёхмерный аналог полимино 4.2.6. Головоломка с домино - несколько более сложный случай перебора 4.2.7. Людоеды и миссионеры Поиск решения известной головоломки 4.2.8. Раскраска карт (последний пример перебора с возвратами) 4.3. Эвристический поиск 4.3.1. Играв 15, или эвристический поиск А* 4.3.2. Игры со сдвигающимися блоками Глава 5. Визуализация и анимация 5.1. Планетарная система. Универсальная демонстрационная астрономическая модель 5.2. «Черепашья» графика - нестандартная модель рисования 5.3. Космическая дуэль, или «проволочная» графика в действии 5.4. Эвристический поиск и Сокобан Непростая работа для А* 5.5. Визуализация простого трехмерного мира Трехмерный лабиринт 5.6. Буквы и звуки. Простой музыкальный редактор 5.7. Генеалогическое древо (представление и визуализация древовидных данных) 5.8. Скринсейвер - делаем простую, но эффектную анимацию Глава 6. Обучающиеся программы 6.1. Классификация и кластеризация 6.1.1. Классификация и кластеризация Алгоритмы KNN и C-Means 6.1.2. Поисковая система и рубрикатор Классификация и кластеризация текстовых документов 6.1.3. Определение авторства Классификация произведений различных авторов 6.1.4. Распознавание языка документа Классификация документов на разных языках 6.1.5. Дерево принятия решений Разработка простой экспертной системы 6.2. Самообучающиеся программы 6.2.1. Самообучающиеся крестики-нолики Компьютер учится на собственном опыте 6.2.2. Самообучающаяся программа для игры в ним. Автоматический поиск выигрышной стратегии Глава 7. Моделирование вероятностных процессов 7.1. Рандомизированные алгоритмы 7.1.1. Генерация заголовков Формирование предложений по шаблону 7.1.2. Генератор текста Применение цепей Маркова 7.2. Компьютерные эксперименты 7.2.1. Экспериментальное определение числа π. Использование метода Монте-Карло 7.2.2. Доска Гальтона. Моделирование распределения Гаусса 7.2.3. Автобусная остановка Экспериментальная проверка гипотезы 7.2.4. Прокси-сервер Использование неравномерно распределённых случайных величин 7.2.5. Автострада Моделирование автомобильных пробок 7.2.6. Змейки-лесенки: экспериментальный анализ игры 7.3. Биологические модели 7.3.1. Волчий остров. Классическая биологическая модель 7.3.2. Инфекция стригущего лишая Ещё одна модель из биологии Глава 8. Операции с текстовыми данными 8.1. В качестве разминки - поиск анаграмм Ничего, кроме смекалки 8.2. Проверка правописания. Использование расстояния Левенштейна 8.3. Баннерорезалка, или поиск строк по шаблону 8.4. Транслитерация dlyateh, кто ne mozhet pisat' po-russki 8.5. Аббревиатор, или как правильно произнести «КД-ПЗУ»? 8.6. Выравнивание по ширине. Красивое форматирование текста 8.7. Расстановка переносов Глава 9. Различные алгоритмы 9.1. Стратегии для игр 9.1.1. Мастермайнд Разработка стратегии для классической игры 9.1.2. Эндшпиль Формализация алгоритма матования 9.1.3. Чемпион по Minesweeper Сложная стратегия для простой игры 9.2. Анализ и обработка изображений 9.2.1. Обработка сканированного изображения Коррекция сканированной картинки: обрезка и поворот 9.2.2. Архиватор монохромных изображений Алгоритм RLE 9.2.3. Жесты мыши Модный способ ввода команд 9.3. Стеганография, или маскировка наличия присутствия 9.3.1. Стеганография в тексте Пересылка секретных сообщений 9.3.2. Стеганография в изображениях - более надёжный способ передачи секретных сообщений 9.4. Специализированные алгоритмы 9.4.1. Оптимальное вычисление Принцип динамического программирования 9.4.2. Календарь чемпионата Составление расписания игр 9.4.3. Исследование структуры спроса Глава 10. Архитектура программного обеспечения, или о чем подумать на сон грядущий 10.1. Игры и головоломки 10.1.1. Классический puzzle - простая игра на составление изображения 10.1.2. Puzzle со сдвигами - составление изображения по необычным правилам 10.1.3. «шахматная головоломка» - подсчёт атакуемых полей 10.1.4. Ball Game - взаимодействие с объектами игрового мира 10.2. Хранение и обработка данных 10.2.1. Логические схемы - инструмент для изучающих электронику 10.2.2. Футбольный органайзер - электронный справочник болельщика 10.2.3. В помощь шахматисту - система для анализа шахматных партий 10.3. Анализ текстовой информации 10.3.1. Контекстная подсказка - разработка простой справочной системы 10.3.2. Алфавитный указатель. Автоматическое создание указателя 10.3.3. Спонсорские ссылки. Рекламный модуль для вашего сайта