Поможем написать учебную работу
Если у вас возникли сложности с курсовой, контрольной, дипломной, рефератом, отчетом по практике, научно-исследовательской и любой другой работой - мы готовы помочь.

Предоплата всего

Подписываем
Если у вас возникли сложности с курсовой, контрольной, дипломной, рефератом, отчетом по практике, научно-исследовательской и любой другой работой - мы готовы помочь.
Предоплата всего
Подписываем
Билет 6
CRT, graf
В текстовом режиме экран рассматривается как матрица из строк и столбов, в каждую позицию которой может быть помещен символ из кодовой таблицы ASCII. Координаты экрана измеряются от верхнего левого угла, имеющего координаты (1,1), и возрастают слева направо и сверху вниз. Число строк и столбцов зависит от режима экрана. Позиция экрана характеризуется также визуальными свойствами: цветом фона, цветом линий символа и яркостью (нормальная, низкая, высокая).
Модуль CRT содержит ряд процедур, функций, константы цветов, режимов экрана и некоторые переменные. Все средства модуля CRT можно разделить на несколько групп: установки режима экрана, ввода с клавиатуры, управления курсором, управления окном, управления цветом и яркостью, управления звуком.
Установка режима экрана: процедура TextMode(mode:word) устанавливающая режим (число строк и столбцов экрана, монохромный или цветной режим) в соответствии с константами режима. Константа последнего установленного режима сохраняется в стандартной переменной lastmode. К этой группе относится также процедура AssignCrt(var F:text), осуществляющая связь с файловой переменной F клавиатуры для ввода, либо экран для вывода текста.
Ввод с клавиатуры: функции без аргументов KeyPressed (с результатом булевского типа) и ReadKey (с результатом типа char). Функция KeyPressed фиксирует сам факт нажатия на любую клавишу, возвращая true, если клавиша была нажата и false - в противном случае. Функция ReadKey осуществляет "слепое чтение" кода нажатой клавиши, приостанавливая выполнение программы до нажатия клавиши и возвращая в качестве результата код клавиши (без отображения его на экране).
Управление курсором: процедуры GotoXY(x,y:byte), CtrlEol, DelLine, InsLine; функции без параметров whereX, whereY. Эти процедуры позволяют установить курсор в позицию (x,y); удалить символы от курсора до конца строки; удалить текущую строку, сдвинув вверх все остальные строки и, очистив нижнюю строку; вставить пустую строку в позицию курсора. Функции whereX, whereY позволяют определить текущее положение курсора на экране (или в окне экрана) и возвращают позицию курсора как целое типа byte.
Управление цветом и яркостью: процедуры TextBackGround(color:byte), TextColor(color:byte), ClrScr, NormVideo, HighVideo, LowVideo. NormVideo, HighVideo, LowVideo предназначены для установки нормальной, высокой или низкой яркости символов и относятся к последующему выводу символов на экран.
Управление окнами: процедура window(x1,y1,x2,y2:byte) предназначена для установки окна на экране. В дополнении к ней в модуле CRT имеются переменные windmin и windmax типа word, в которых, хранятся координаты текущего окна (верхнего левого и нижнего угла).
Управление звуком: процедуры sound(f:word), nosound, delay(d:word). Эти процедуры соответственно включают генератор звука с частотой f, выключают генератор звука, устанавливают задержку (приостановку работы программы) на d миллисекунд.
Стандартный модуль GRAPH.
Модуль GRAPH - библиотека подпрограмм работы с графическим режимом экрана. В графическом режиме экран рассматривается как совокупность точек (пикселей), яркостью и цветом которых можно управлять, получая то или иное графическое изображение. В модуле GRAPH имеются около 80 подпрограмм управления графическим экраном, обеспечивающие многие потребности графических программ.
Графический экран состоит из точек-пикселей, образующих растр. Для установки графического режима предусмотрена процедура InitGraph, а для возврата в текстовый режим - CloseGraph. На экране можно создавать графические окна (процедурой SetViewPort), ограничивающие графический вывод границами окна.
Значительная группа подпрограмм обеспечивает рисование элементарных графических фигур (точек, прямых линий, окружностей, эллипсов и их дуг, прямоугольников, многоугольников), установку цветов и яркости, а также закрашивание замкнутых фигур различными цветами и стилями закраски или оформления линий.
Имеются средства вывода текста на графический экран с помощью специально предусмотренных шрифтов (матричных и штриховых). Для использования штриховых шрифтов необходимы соответствующие шрифтовые файлы (с расширением chr).
Имеются также средства для хранения и вывода изображений, работы с несколькими графическими страницами.
2.Если заданная квадратная целочисленная матрица является треугольной(элементы выше главной диагонали равны нулю),вычислить её среднее арифметическое, иначе определить,сколько элементов, лежащих выше главной диагонали, отличны от нуля.
program z433_6;
uses Z433_6;
Var A:matr;
i,j,k:integer;
s:real;
b:boolean;
BEGIN
for i := 1 to n do
for j := 1 to n do
readln(a[i,j]);
Triangle(A,k,b);
if b then
Begin
SrArifm(A,s);
writeln(s);
end
else writeln(k);
readln;
END.
Unit Z433_6;
interface
Const n = 3;
Type matr = array[1..n,1..n] of integer;
procedure SrArifm(A:matr; Var s:real); {s - среднее арифметическое матрицы A}
procedure Triangle(A:matr; Var k:integer; Var b:boolean);
{Если b = true, то матрица треугольная; k - число элементов выше главной диагонали, отличных от нуля}
implementation
procedure Triangle(A:matr; Var k:integer; Var b:boolean);
Var i,j:integer;
Begin
b := true;
k := 0;
for i := 1 to n do
for j := 1 to n do
if (j > i) and (A[i,j] <> 0) then
Begin
b := false;
k := k + 1;
end;
end; {Rect}
procedure SrArifm(A:matr; Var s:real);
Var i,j:integer;
Begin
s := 0;
for i := 1 to n do
for j := 1 to n do
s := s + A[i,j];
s := s / (n * n);
end; {SrArifm}
begin
END.