Тема урока: Управління екраном у текстовому режимі. Константи кольору. Оформлення текстової інформації.
Цель Д: познакомить учащихся с процедурами и функциями управления экраном в текстовом режиме, обсудить константы цветов, показать и научить составлять программы с оформлением текстовой информации.
Р:
В:
Тип урока:
Ход уроку
Организационный момент
Проверка домашнего задания
Новая тема
Как мы уже говорили, Паскаль работает в текстовом режиме. Это означает, что информация на экран выводится в виде символов, каждый из которых отображается на экране в определенной позиции, как бы в клеточке. Экран при этом можно себе представить как таблицу из 25 строк и 80 столбцов (рис. 1.2). Каждая ячейка этой таблицы имеет 2 координаты — х и у, где х — номер столбца, у — номер строки. Строки нумеруются сверху вниз, начиная с единицы до 25, столбцы — слева направо, с 1-го до 80-го. То есть левый верхний угол экрана имеет координаты (1,1), правый верхний — (80,1), а левый нижний -(1,25). Символы можно выводить на экран 16 различными цветами, которые кодируются числами от 0 до 15. Каждому коду соответствует свой цвет. Полную таблицу кодов можно получить, набрав, например, слово red в окне редактора Паскаля и нажав Ctrl-Fl на клавиатуре.
Window(x1,y1,x2,y2) – определить рабочее окно, где x1,y1 – координаты левого верхнего угла окна, x2,y2 – координаты правого нижнего угла окна.
ClrScr - процедура очистки текстового экрана.
GotoXY(x,y) – процедура установки текстового курсора в точку с координатами x,y.
TextColor(color) – установить цвет символов в текстовом режиме.
TextBackGround(color) – установить цвет фона экрана в текстовом режиме.
Color – значение переменной от 0 до 15 для TextColor и от 0 до 7 для TextBackGround.
HighVideo – включает яркость.
LowVideo – выключает яркость.
InsLine – вставляет пустую строку на место той, на которой находится курсор в данный момент времени. Строки ниже курсора смещаются вниз.
DelLine – удаляет строку, в которой находится курсор, подтягивая на ее место все нижестоящие строки. При этом освобождается самая нижняя строка.
Написать программу, которая очищает экран и выводит слова red, green, blue, yellow каждое своим цветом в центр четвертей экрана (если экран условно разбить на 4 части, как показано на рисунке)
(на 12 баллов – установить цвет фона этих четвертей)
Program treugol;
Uses crt;
Begin
Clrscr;
Window(1,1,80,50);
Gotoxy(20,12);
Textcolor(red);
Writeln('red');
Gotoxy(60,12);
Textcolor(green);
Writeln('green');
Gotoxy(20,36);
Textcolor(yellow);
Writeln('yellow');
Gotoxy(60,36);
Textcolor(blue);
Writeln('blue');
Readln
End.
Вычислить значения многочлена y=x5-9x4+1.7x2-9.6 для x=0,1,…,5. Результаты оформить в виде таблицы из двух колонок:
X Y
--------------------
0 -9.60
1 -15.90
2 -114.80
3 -480.30
4 -1262.40
-2467.10
--------------------
Вид величины | Имя
| Тип
| Назначение
| Значение
| Входные данные (аргументы)
| 0
| integer
| Начальное значение Х
|
| 5
| integer
| Конечное значение Х
| Выходные данные (результаты)
| Y
| Real
| Значение выражения
|
| Результат по программе
|
| Промежуточные величины
| Х
| integer
| Значение аргумента (счетчик цикла)
|
| I
| integer
| Номер символа ‘-‘ на экране
| От 1 до 80
| Program n70;
Uses crt;
Var
x,i:integer;
y:real;
Begin
Clrscr;
TextColor(Green); {установили цвет символов}
Writeln('x':20,'y':10);
GotoXY(15,2); {установили курсор в 15 позицию 2 строки}
for i:=1 to 20 do
write('-');
Writeln;
TextColor(Red);
for x:=0 to 5 do
Begin
y:=((x-9)*x*x+1.7)*x*x-9.6;
Writeln(x:20,y:12:1);
end;
TextColor(Green);
GotoXY(15,9);
for i:=1 to 20 do
write('-');
Writeln;
End.
x y
--------------------
0 -9.6
1 -15.9
2 -114.8
3 -480.3
4 -1262.4
5 -2467.1
-------------------
Постановка домашнего задания – выучить конспект урока
(на 4 балла) С клавиатуры можно ввести однозначное, двузначное или трехзначное число. Оно было введено, но неизвестно - какое. Составить программу, определяющую количество цифр в числе.
(на 12 баллов) Составить программу «Угадай число», диапазон чисел – 0-10, определить окно для вывода угаданного числа - синего цвета, цвет текста – светло-серый, определить окно для ввода числа (угадываемого, осуществлять ввод с клавиатуры в одну и ту же позицию до тех пор, пока не найдем нужное число) зеленого цвета. Вывести коэффициент невезучести.
program luck;
uses crt;
const max = 10;
var
i, k, n : integer;
begin
clrscr; { очистить экран }
randomize; i := random(max); { загадать число }
window(20, 5, 60, 20); { определить окно }
TextBackGround(Blue); { цвет фона - синий }
clrscr; { залить окно фоном }
TextColor(LightGray); { цвет символов - серый }
k := -1; { счетчик попыток }
GotoXY(12, 5); writeln(' Введите число : ');
repeat { цикл ввода ответа }
GotoXY(20, 9); { установить курсор }
readln(n); { ввести число }
inc(k);
until i = n;
window(20, 22, 60, 24); { определить окно результата }
TextAttr := 2 shl 4 + 14; { желтые символы за зеленом фоне }
clrscr; { залить окно фоном }
GotoXY(6, 2); { установить курсор }
writeln(' Коэффициент невезучести : ', k / max :5:1);
readkey; { ждать нажатия любой клавиши }
TextAttr := 15; { белые символы на черном фоне }
clrscr; { очистить после себя экран }
end.
Домашняя подготовка к работе. Запишите формулы, по которым можно определить:
Площадь круга, ограниченного окружностью радиуса R
|
| Длину окружности радиуса R
|
| Площадь боковой поверхности цилиндра с высотой H и радиусом R окружности в основании
|
| Объем цилиндра с высотой H и радиусом R окружности в основании
|
| Подведение итогов урока
1. Каково значение CRT?
2. Как подключить данный модуль к программе?
3. Какой стандартной процедурой осуществляется установка текстовых режимов?
4. Каково значение ClrScr?
5. Назначение процедуры GoToXY?
6. Каково назначение переменной TextAttr?
7. Как влияют на её значение процедуры TextColor и TextBackGround? |