
- •2011 Декабрь
- •Выражения. Правила вычисления выражений.
- •Операции и выражения
- •Алгоритмы линейного типа. Операторы ввода-вывода. Генератор случайных чисел.
- •Алгоритмы с ветвлением. Условные выражения. Инструкция if (полная и неполная форма). Вложенные if-инструкции. Конструкция if-else-if.
- •Алгоритмы с ветвлением. Инструкция switch. Вложенные инструкции switch. Примеры в реальных задачах.
- •Алгоритмы циклического типа. Цикл с фиксированным числом повторений for. Параметр цикла. Инструкции break, continue. Бесконечный цикл. Примеры.
- •Цикл с предусловием while. Управление выполнением цикла. Примеры использования цикла. Зацикливание. Инструкция break.
- •Цикл с постусловием do. Управление выполнением цикла. Примеры использования. Зацикливание. Инструкция break.
- •Возможности стандартной библиотеки conio.H. Управление экраном в текстовом режиме. Управление движением объекта.
- •Управление выводом на экран Структура экрана в текстовом режиме
- •Установка нужного текстового режима
- •Текстовое окно и работа с ним
- •Установка цвета для текстовой информации
- •Ввод-вывод в текстовом режиме
- •Управление курсором в текстовом режиме
- •Перемещение изображения
- •Структурированные типы данных: одномерные массивы. Создание и заполнение массива информацией. Доступ к элементу массива. Основные операции с одномерным массивом.
- •Различные алгоритмы сортировок одномерного массива.
- •6.4. Сортировка массивов
- •6.4.1. Сортировка методом простого включения (вставки)
- •6.4.2. Сортировка методом простого выбора
- •6.4.3. Сортировка методом простого обмена
- •6.5. Поиск в отсортированном массиве
- •Указатели. Описание указателя. Операции над указателем. Указатель и одномерный массив. Доступ к элементам массива через указатель.
- •Функции. Назначение функций. Прототип, описание и вызов функции. Правила действия областей видимости функций. Передача параметров по значению и ссылке.
- •Структурированные типы данных: двумерные массивы. Создание и заполнение массива. Доступ к элементу массива. Основные операции с двумерным массивом.
- •Строки. Стандартные команды обработки строк. Обработки строк и текстов. Команды ввода-вывода строк.
- •17.Структуры. Создание и заполнение структур информацией. Доступ к полям структуры.
- •18.Графика. Возможности стандартной библиотеки graphics.H. Алгоритмы построения графических изображений.
- •19.Понятие и назначение файлов. Открытие файла, чтение и запись информации в файл, закрытие файла, проверка достижения конца файла.
- •21.Перегрузка функций. Встраиваемые функции.
- •22.Основные концепции ооп. Классы. Оператор разрешения области видимости. Объекты. Доступ к членам класса. Массивы объектов. Указатели на объекты.
- •23.Конструкторы и деструкторы. Параметризованные конструкторы. Встраиваемые функции в объявлении класса.
- •24.Дружественные функции. Присваивание объектов. Передача объектов функциям.
- •25.Понятие о наследовании. Управление доступом к членам базового класса. Использование защищенных членов.
Управление курсором в текстовом режиме
В текстовом режиме на мониторе виден курсор – это мигающая черточка. Он указывает текущую позицию на экране монитора, в которой вводится и выводится информация командами ввода-вывода, рассмотренными в разделе 1.5. При выводе информации в эту позицию, курсор автоматически перемещается на соседнюю позицию. Если достигнута правая граница строки экрана монитора, то курсор переходит к началу следующей строки к левой границе экрана монитора. Часто требуется вывести информацию не в текущей позиции, а в необходимой. Для этого нужно сначала переместить курсор в необходимую позицию, а потом осуществить вывод командами вывода. Перемещение курсора в точку с координатами (x, y) осуществляется командой
gotoxy (x, y);
Координаты x, y считаются относительными, если вывод осуществляется в активном окне. Координаты могут быть только целыми числами и принимать значения в границах активного окна. Если координаты задать константами, то курсор будет выводить информацию только в этой позиции. Меняя в цикле только значение координаты x, а координату y оставляя постоянной, можно заставить курсор перемещаться по строке с номером y. Меняя в цикле координату y, оставляя координату x постоянной – перемещаться по столбцу x. Меняя обе координаты, можно перемещаться по диагоналям или другим позициям экрана монитора.
Пример: В центре синего экрана изобразить зеленое окно, в центре этого окна вывести строку «ПРИВЕТ» красного цвета. Демонстрацию задания можно увидеть на рисунке 6.
window(1,1,80,25); //окно – весь экран
textbackground(BLUE); //выбор цвета фона экрана
clrscr(); //залить экран выбранным цветом
window(20,10,60,20); //построить окно в центре экрана
textbackground(GREEN);//выбрать зеленый цвет фона
clrscr(); //залить этим цветом построенное окно
textcolor(RED); //выбрать красный цвет символов
gotoxy(17, 5); //курсор в середину построенного окна
cputs(“ПРИВЕТ”); //вывести сообщение ПРИВЕТ
getch(); //остановить окно результатов для просмотра
x=wherex();
y=wherey();
Эти команды позволяют получить x и y - координаты текущего положения курсора в активном окне. Например:
cprintf(“Курсор находится в столбце %d”, wherex());
cprintf(“Курсор находится в строке %d”, wherey());
clreol();
Команда стирает все символы в строке, начиная от текущей позиции курсора до конца строки.
delline();
Команда полностью стирает содержимое строки, в которой расположен курсор в активном окне. Все нижестоящие строки перемещаются на одну строку вверх.
insline();
Команда вставляет в активном окне в текущей позиции пустую строку с заданным цветом фона. Все нижележащие строки сдвигаются вниз. Самая нижняя строка окна исчезает.
Перемещение изображения
Программы предыдущего раздела выводили изображения на экран, меняя его цвет, или увеличивали количество этих изображений. Чтобы заставить перемещаться изображение, не увеличиваясь в количестве при движении, необходимо стереть его в предыдущей позиции. Перемещение видимого изображения осуществляется по алгоритму:
1. изобразить объект;
2. сделать объект невидимым в старой позиции;
3. изобразить объект в новой позиции.
Сделать объект невидимым (стереть) можно двумя способами:
1. командой очистки экрана clrscr(). При этом очистится весь экран (окно) вместе с объектом. Этот способ имеет недостатки:
- вместе с перемещаемым изображением сотрется и все изображения на экране, что бывает нежелательно;
- вызывает заметное мелькание экрана;
2. закраска объекта цветом фона. С помощью команды textcolor() устанавливается цвет изображения, совпадающий с цветом фона, а потом командой вывода объект отображается в старой позиции. Данный способ более сложный, но лишен недостатков первого способа.
Пример: Перемещать 100 раз символ «*» в случайные позиции экрана.
-
Фрагмент программы с помощью команды очистки clrscr().
window (1, 1, 80, 25); //синее окно во весь экран
textbackground(BLUE);
clrscr();
for ( i= 1; i<=100; i++)
{ c=1+random(15); //случайный число из [1;15] для цвета
x=1+random(80); //случайная Х координата
y=1+random(24); //случайная Y координата
gotoxy (x, y); //курсор перемещается в случайную позицию
textcolor(c); //установить цвет для «*»
putch('*'); //вывести «*»
delay(500); //удержать «*» на экране
clrscr(); //очистить весь экран
delay(5000); //задержать очищенный экран
}
2. Фрагмент программы перемещения символа «*» с помощью закраски ее цветом фона. Вместо команды clrscr(), расположенной в теле цикла, необходимо выписать следующие три команды:
gotoxy (x, y); //вернуться в старую позицию
textcolor(BLUE); //цвет «*» совпадает с цветом фона окна
putch(‘*’); //вывести символ цветом фона (стереть его)