- •СОДЕРЖАНИЕ
- •ПРЕДИСЛОВИЕ
- •ГЛАВА 1. Введение в алгоритмы
- •1.1. Этапы решения задач на ЭВМ
- •1.2. Понятие алгоритма
- •1.3. Свойства алгоритмов
- •1.4. Сложность алгоритма
- •1.7. Пример простейшего линейного процесса
- •1.7. Пример циклического процесса
- •ГЛАВА 2. Базовые средства языка Си
- •2.1. Алфавит языка Си
- •2.2. Лексемы
- •2.3. Идентификаторы и ключевые слова
- •2.4. Комментарии
- •2.5. Простейшая программа
- •2.7. Декларация объектов
- •2.8. Данные целого типа (integer)
- •2.9. Данные символьного типа (char)
- •2.10. Данные вещественного типа (float, double)
- •ГЛАВА 3. Константы в программах
- •3.2. Константы вещественного типа
- •3.4. Строковые константы
- •ГЛАВА 4. Обзор операций
- •4.1. Операции, выражения
- •4.3. Операция присваивания
- •4.4. Сокращенная запись операции присваивания
- •4.7. Операции сравнения
- •4.8. Логические операции
- •4.10. Операция «,» (запятая)
- •ГЛАВА 5. Обзор базовых инструкций языка Си
- •5.2. Стандартные математические функции
- •5.3. Функции вывода данных на дисплей
- •5.4. Функции ввода информации
- •ГЛАВА 6. Составление разветвляющихся алгоритмов
- •6.1. Краткая характеристика операторов языка Си
- •ГЛАВА 7. Составление циклических алгоритмов
- •7.1. Понятие циклического кода
- •7.2. Оператор с предусловием while
- •7.4. Оператор цикла с предусловием и коррекцией for
- •ГЛАВА 8. Операторы и функции передачи управления
- •8.1. Оператор безусловного перехода goto
- •8.2. Операторы continue, break и return
- •8.3. Функции exit и abort
- •Советы по программированию
- •ГЛАВА 9. Указатели
- •9.1. Определение указателей
- •9.2. Операция sizeof
- •9.3. Инициализация указателей
- •9.4. Операции над указателями
- •ГЛАВА 10. Массивы
- •10.1. Понятие массива
- •10.2. Одномерные массивы
- •10.4. Строки как одномерные массивы данных типа char
- •10.5. Указатели на указатели
- •10.8. Работа с динамической памятью
- •10.9. Библиотечные функции
- •10.10. Пример создания одномерного динамического массива
- •ГЛАВА 11. Функции пользователя
- •11.1. Декларация функции
- •11.2. Вызов функции
- •11.3. Передача аргументов в функцию
- •11.4. Операция typedef
- •11.5. Указатели на функции
- •ГЛАВА 12. Классы памяти и область действия объектов
- •ЗАДАНИЕ 4. Обработка массивов
- •Первый уровень сложности
- •Второй уровень сложности
- •ЗАДАНИЕ 5. Функции пользователя
- •Первый уровень сложности
- •Второй уровень сложности
- •12.3. Статические и внешние переменные
- •12.4. Область действия переменных
- •Советы по программированию
- •13.1. Структуры
- •13.5. Вложенные структуры
- •13.6. Массивы структур
- •13.7. Размещение структурных переменных в памяти
- •13.8. Объединения
- •13.9. Перечисления
- •13.10. Битовые поля
- •ГЛАВА 14. Файлы в языке Си
- •14.1. Открытие файла
- •14.2. Закрытие файла
- •14.3. Запись-чтение информации
- •14.5. Дополнительные файловые функции
- •Советы по программированию
- •ЗАДАНИЕ 7. Создание и обработка файлов
- •Первый уровень сложности
- •Второй уровень сложности
- •ГЛАВА 15. Динамические структуры данных
- •15.1. Линейные списки
- •15.2.1. Алгоритм формирования стека
- •15.2.2. Алгоритм извлечения элемента из стека
- •15.2.3. Просмотр стека
- •15.2.4. Алгоритм освобождения памяти, занятой стеком
- •15.2.5. Алгоритм проверки правильности расстановки скобок
- •15.3.1. Формирование очереди
- •15.3.2. Алгоритм удаления первого элемента из очереди
- •15.4. Двунаправленный линейный список
- •15.4.1. Формирование первого элемента
- •15.4.3. Алгоритм просмотра списка
- •15.4.5. Алгоритм удаления элемента в списке по ключу
- •15.5. Нелинейные структуры данных
- •15.5.1. Бинарные деревья
- •15.5.2. Основные алгоритмы работы с бинарным деревом
- •15.5.4. Вставка нового элемента
- •15.6. Построение обратной польской записи
- •15.6.1. Алгоритм, использующий дерево
- •15.6.2. Алгоритм, использующий стек
- •15.6.3. Пример реализации
- •15.7. Понятие хеширования
- •15.7.2. Примеры хеш-функций
- •15.7.3. Схемы хеширования
- •15.7.4. Примеры реализации схем хеширования
- •Вариант 2. Двунаправленные списки
- •ГЛАВА 16. Переход к ООП
- •16.1. Потоковый ввод-вывод
- •16.3. Проблема ввода-вывода кириллицы в среде Visual C++
- •16.4. Операции new и delete
- •16.6. Шаблоны функций
- •Первый уровень сложности
- •Второй уровень сложности
- •6.1. Основные понятия
- •6.3. Примитивы GDI
- •6.5. Получение описателя контекста устройства
- •6.6. Основные инструменты графической подсистемы
- •6.7. Закрашивание пустот
- •6.8. Рисование линий и кривых
- •6.9. Пример изображения графика функции sin
- •6.10. Рисование замкнутых фигур
- •6.11. Функция Polygon и режим закрашивания многоугольника
- •6.13. Управление областями вывода и отсечением
- •ЗАДАНИЕ 11. Создание графических изображений
- •ЛИТЕРАТУРА
Приложение 6
соответствующим искажением; возвращаемое значение – признак успешности выполнения; параметры:
hSrcDC, hDstDC – контексты источника и приемника данных;
nSrcX, nSrcY, nDstX, nDstY – координаты фрагмента в обоих контекстах;
nSrcWidth, nSrcHeight, nDstWidth, nDstHeight – размеры фрагментов; hbmMask – битовый образ маски, монохромного типа, нулевые точки
маски указывают на применение к данной точке изображения операции
«заднего плана», единичные – «переднего плана»; |
|
|
Р |
nMaskX, nMaskY – точка привязки в образе маски; |
|
||
|
|
||
lpDstVertices – массив структур, задающих вершины параллелограмма, |
|||
образующего фрагмент-приемник; |
|
И |
|
|
|
|
|
dwRop – дополнительная операция, применяемая к фрагменту при |
|||
|
У |
|
|
переносе: SRCCOPY – простое копирование, SRCAND – комбинация цветов |
|||
источника и приемника по «И», SRCPAINT – комбинация по « ЛИ», SRCIN- |
|||
Г |
|
|
|
VERT – комбинация по «исключающему ИЛИ», SRCERASE – комбинация по |
|||
Б |
|
|
|
«И» цвета источника и инверсии цвета приемника, NOTSRCCOPY, NOTSRCERASE – соответствует одноименным, но результирующий цвет инвертируется, DSTINVERT – инверсия фрагмента-приемника, BLACKNESS, WHITENESS – заполнение фрагмента-получ теля цветом соответственно 0 и 1 физической палитры и другие. Для MaskBlt параметр включает операции
для переднего и заднего фонов, формируется с помощью макроса |
||
MAKEROP4. |
а |
|
Для успешного примен ния этих функций требуется, |
чтобы оба |
|
|
к |
|
контекста относились к одному устройству или идентичным устройствам. |
||
При использовании |
функцийеследует учитывать, что в |
логических |
координатных системах, связанных с обоими контекстами, отсчитываются
только координаты п |
ных очек и размеры границ фрагмента, содержимое |
|
же его всегда ориент |
т |
|
вано одинаково. |
||
Эффекты, воз рокающие при деформации битового образа, дополните- |
||
|
ни |
|
|
л |
|
льно управ яются функцией SetStretchBltMode, текущая настойка – |
||
|
б |
|
GetStretchBltMode. |
|
|
и |
|
|
Б |
ЗАДАНИЕ 11. Создание графических изображений |
1. Написать программу, которая выводит на экран флаг олимпийских игр (круги разных цветов).
2. Написать программу, которая, используя метод базовой точки, выводит на экран изображение кораблика.
3. Написать программу, которая вычерчивает на экране узор из 100 окружностей случайного диаметра и цвета.
238
Приложение 6
4. Написать программу, которая вычерчивает на экране ломаную линию, состоящую из 200 звеньев, окрашенных в разные цвета, выбираемые случайным образом, причем координаты звеньев тоже выбираются случайно.
5. Написать |
|
программу, |
которая выводит |
на |
экран |
контур |
||||||||
пятиконечной звезды. |
|
|
|
|
|
|
|
|
|
|
||||
6. Написать программу, которая рисует флаг Республики Беларусь. |
||||||||||||||
7. Написать |
|
программу, |
которая |
выводит на |
экран изображение |
|||||||||
шахматной доски. |
|
|
|
|
|
|
|
|
|
|
Р |
|||
|
|
|
|
|
|
|
|
|
|
|
|
|||
8. Написать программу, которая рисует на экране раскрытую книгу. |
||||||||||||||
9. Написать |
|
программу, которая |
выводит на |
экран |
оцифрованную |
|||||||||
координатную сетку. |
|
|
|
|
|
|
У |
|
|
|||||
10. Написать программу, которая выводит на экран точечныйИ |
график |
|||||||||||||
функции y = 0,5x2 |
+ 4x – 3. Диапазон изменения аргумента от -15 до 5 с |
|||||||||||||
|
|
|
|
|
|
|
|
|
|
Б |
|
|
|
|
шагом 0,1. График вывести на фоне координатных осей, точка пересечения |
||||||||||||||
которых лежит в центре экрана. |
|
|
|
Г |
|
|
|
|||||||
|
|
|
|
|
|
|
|
|
а |
|
|
|
|
|
|
|
|
|
|
|
|
|
к |
|
|
|
|
|
|
|
|
|
|
|
|
|
е |
|
|
|
|
|
|
|
|
|
|
|
|
|
т |
|
|
|
|
|
|
|
|
|
|
|
|
|
о |
|
|
|
|
|
|
|
|
|
|
|
|
и |
|
|
|
|
|
|
|
|
|
||
|
|
л |
|
|
|
|
|
|
|
|
|
|
||
|
б |
|
|
|
|
|
|
|
|
|
|
|
|
|
и |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Б |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
239