- •Предисловие
- •Глава 1. Основные понятия
- •1.1. Элементы языка программирования
- •1.2. Процесс создания программы
- •1.3. Первая программа
- •1.4. Состав программы
- •Глава 2. Средства разработки на C++
- •2.1. Системы Turbo C++ 3.0/Borland C++ 3.1
- •2.2. Система C++ Builder
- •Глава 3. Работа с числовыми данными
- •3.1. Целые типы
- •3.2. Числа с плавающей точкой
- •3.3. Ввод и вывод чисел
- •3.4. Логический тип и логические операции
- •3.5. Математические функции
- •Глава 4. Операторы. Ключевые слова
- •4.1. Операторы
- •4.2. Приоритеты операторов
- •4.3. Ключевые слова
- •4.4. Структура программы
- •4.5. Константы
- •Задачи - . Простейшие вычисления
- •Глава 5. Управление и циклы
- •5.1. Условный оператор
- •5.2. Операторы цикла
- •5.3. Переключатель
- •5.4. Операторы break и continue
- •Задачи -. Выбор и циклы
- •Глава 6. Массивы
- •6.1. Одномерные массивы
- •6.2. Двумерные массивы
- •Задачи -. Одно- и двумерные массивы
- •Глава 7. Функции
- •7.1. Определение функции
- •7.2. Формальные параметры и фактические аргументы
- •7.3. Автоматические и статические переменные
- •7.4. Прототипы функций
- •7.5. Массивы как аргументы функций
- •7.6. Внешние переменные
- •7.7. Рекурсия
- •7.8. Перегруженные имена функций
- •7.9. Аргументы функций по умолчанию
- •Задачи -. Функции
- •Глава 8. Символы и строки
- •8.1. Символы
- •8.2. Строки символов
- •Задачи -. Символы и строки
- •Глава 9. Препроцессор
- •9.1. Директивы препроцессора
- •9.2. Макросы
- •Задачи -. Макросы
- •Глава 10. Указатели и ссылки
- •10.1. Указатели и адреса
- •10.2. Указатели и массивы
- •10.3. Адресная арифметика
- •10.4. Символьные указатели
- •10.5. Массивы указателей
- •10.6. Указатели на функции
- •10.7. Ссылки
- •10.8. Операторы new и delete
- •Задачи -. Указатели и ссылки
- •Глава 11. О файлах и командной строке
- •11.1. Знакомство с файлами
- •11.2. Командная строка
- •11.3. Перенаправление стандартного ввода и вывода на файл
- •11.4. Аргументы командной строки
- •Задачи -. Файлы и командная строка
- •Глава 12. Работа с экраном дисплея
- •12.1. Текстовый режим
- •12.2. Графический режим
- •Задачи -. Работа с экраном
- •Глава 13. Внутреннее представление чисел
- •13.1. Двоичная система счисления
- •13.2. Беззнаковые целые
- •13.3. Двоичный дополнительный код
- •13.4. Двоичный код с избытком
- •13.5. Побитовые операторы
- •13.6. Дробные числа в двоичной системе
- •13.7. Внутреннее представление плавающих типов
- •13.8. Преобразование типов
- •Задачи -. Побитовые операторы
- •Глава 14. Структуры, перечисления, объединения
- •14.1. Объявление структур
- •14.2. Структуры и функции
- •14.3. Указатели на структуры
- •14.4. Массивы структур
- •14.5. Перечисления
- •14.6. Объединения
- •14.7. Битовые поля
- •14.8. О бинарных файлах
- •Задачи -. Структуры
- •Глава 15. Классы
- •15.1. Структуры в C++. Инкапсуляция
- •15.2. Встроенные функции
- •15.3. Классы. Скрытие данных
- •15.4. Конструкторы
- •15.5. Статические члены класса
- •15.6. Друзья класса
- •15.7. Копирование объектов класса
- •15.8. Управление доступом
- •15.9. Ссылка на себя
- •15.10. Деструкторы
- •Задачи -. Работа с классами
- •Глава 16. Программы из нескольких файлов
- •16.1. Работа с проектами
- •16.2. Область действия имен
- •16.3. Заголовочные файлы
- •16.4. Пространства имен
- •Задачи -. Работа со стеком
- •Глава 17. Перегрузка операторов
- •17.1. Правила перегрузки операторов
- •Задачи -. Перегрузка операторов
- •Глава 18. Конструктор копирования и оператор присваивания
- •18.1. Проблемы при копировании
- •Задачи -. Конструктор копирования
- •Глава 19. Ввод и вывод
- •19.1. Вывод
- •19.2. Ввод
- •19.3. Ввод и вывод определяемых пользователем типов
- •19.4. Работа с файлами
- •Глава 20. Взаимоотношения классов
- •20.1. Объекты как члены класса
- •20.2. Конструкторы встроенных типов
- •20.3. Наследование
- •20.4. Виртуальные функции
- •20.5. Абстрактные классы
- •20.6. Совместимость типов
- •20.7. Множественное наследование
- •Задачи -. Наследование классов
- •Глава 21. Шаблоны, исключения
- •21.1. Шаблоны
- •21.2. Шаблоны функций
- •21.3. Классы и шаблоны
- •21.4. Обработка исключений
- •21.5. Стандартная библиотека шаблонов
- •Литература
- •Предметный указатель
154 11
провести 7 отрезков, соединяющих следующие вершины: 0 и 3, 1 и 4, 2 и 5, 3 и 6, 4 и 0, 5 и 1, 6 и 2. Отрезки рисуются в цикле с помощью функции line. Номера начальных точек i возрастают от 0 до N-1, а номера конечных точек находятся с помощью выражения
(i + m) % N,
где % – оператор нахождения остатка от деления. В правильности данного выражения легко убедиться подстановкой.
Полученное на экране изображение показано на рис.54.
Рис.54. Звезда на экране
Задачи -. Работа с экраном
Для доступа к функциям, работающим с экраном в текстовом режиме, следует включить в программу заголовочный файл conio.h. Основным инструментом для решения задач является функция window, создающая на экране окно.
148. Напишите функцию void border_win(int x1, int y1, int x2, int y2), создающую на экране текстовое окно, окаймленное рамкой из двойных линий. Указание. Рамки можно рисовать, выводя функцией putch символы псевдографики. Для этих символов нет клавиш, поэтому их вводят в текст программы с помощью кода: удерживая клавишу Alt,
набирают десятичный код символа на дополнительной цифровой клавиатуре, расположенной справа. Символы для рисования двойных и одинарных линий и их коды приведены в табл.44.
Таблица 44. Символы псевдографики и их коды
Символ |
'║' |
'╗' |
'╝' |
'╚' |
'╔' |
'═' |
'│' |
'┐' |
'└' |
'─' |
'┘' |
'┌' |
Код |
18 |
18 |
18 |
20 |
20 |
20 |
17 |
19 |
19 |
19 |
21 |
218 |
|
6 |
7 |
8 |
0 |
1 |
5 |
9 |
1 |
2 |
6 |
7 |
|
149. Напишите функцию void border_win(int x1, int y1, int x2, int y2), создающую на экране текстовое окно, окаймленное рамкой из одинарных линий.
О файлах и командной строке 155
150.Напишите программу, изображающую на экране флаг Франции. Цвета французского флага, как у российского, но полосы идут вертикально.
151.Напишите программу, изображающую на экране шахматную доску. Предусмотрите возможность использования различных цветов для изображения полей доски.
152.Напишите программу, которая перемещает курсор по экрану на одну позицию влево при нажатии клавиши "стрелка влево" и вправо, при нажатии клавиши "стрелка вправо" . Программа должна прекращать работу при нажатии любой другой клавиши.
153.Напишите программу, которая устанавливала бы курсор в крайнее правое положение на экране при нажатии клавиши End и в
крайнее левое положение при нажатии клавиши Home, и завершала работу при нажатии любой другой клавиши.
При написании программ для задач из данного раздела не забывайте включить в программу заголовочный файл graphics.h и правильно вызвать функцию initgraph для инициализации графического режима.
154.Напишите программу, изображающую на экране замкнутый многоугольник. Входными данными должны быть число вершин и координаты вершин.
155.Напишите программу, которая рисует на экране правильный n- угольник и описанную вокруг него окружность.
156.Напишите программу, которая рисует на экране правильный n- угольник и вписанную в него окружность.
157.Напишите программу, изображающую на экране график функции sin(x).
158.Напишите функцию, которая рисует на экране график некоторой математической функции с одним аргументом. Функция рисования графика должна получать в качестве аргумента указатель на функцию для вычисления значений математической функции, границы отрезка и число точек по которым строится график.