Контрольная работа по системам счисления

Задание: Написать программу позволяющую перевести число из любой системы счисления, в любую другую. Для хорошо успевающих учеников вплоть до шестнадцатеричной системы и позволяющей вводить число, содержащее до 200 символов.

Графический режим работы.

Помимо модуля CRT, который позволяет улучшать вывод на экран. Но как уже говорилось это не единственная библиотека, сегодня мы начнем знакомиться с новой библиотекой, которая позволяет работать с графическим режимом дисплея. В этом режиме любое изображение на экране синтезируется на множество мельчайших элементов, называемых пикселями. Каждый пиксель представляет собой светящуюся точку таких размеров, при которых промежутки между соседними пикселями отсутствуют. Если группа смежных пикселей светятся, то они воспринимаются не как совокупность отдельных точек, а как сплошной участок. Таким образом, на экране дисплея может быть синтезировано любое графическое изображение.

В графическом режиме экран разделяется прямоугольной сеткой, каждый элемент которой имеет свои координаты. Левый верхний угол экрана имеет координаты (0;0). Значение левой координаты (Х) увеличивается в горизонтальном направлении слева направо. Значение правой координаты (У) увеличивается в вертикальном направлении сверху вниз.

Графическому режиму как и текстовому, присуще понятие текущего указателя. Текущий указатель в любой момент времени может находится в любой точке экрана с координатами (х;у). Его местонахождение отображается курсором, но в графическом режиме курсор не виден.

Инициализация (включение) графического режима

InitGraph (gd, gm, p);

где gd – переменная типа integer, которая указывает на используемый тип графического драйвера; gm – переменная типа integer устанавливающая разрешение экрана; p – строковая константа, указывающая путь к драйверу.

Драйвер – это программа обеспечивающая работу отдельного устройства, в данном случае графического адаптера, который в свою очередь позволяет реализовать графический режим.

В нашем случае gd=9 всегда.

Что касается разрешения то возможны такие варианты значений которые принимает переменная gm:

gm=0 - низкое (640x200)

gm=1 - среднее (640x350)

gm=2 - высокое (640x480)

Ну а путь к драйверу на наших машинах выглядит следующим образом: ‘c:\trans\bp\bgi’

Выключение графического режима

CIoseGraph;

Изображение точек

PutPixel (x, y, c);

где х и у – координаты точки, а с – это цвет которым будет изображена точка (номера цветов аналогичны номерам цветам в модуле crt).

Пример: Нарисовать точку зеленого цвета в центре экрана

Program Primer;

Uses Graph;

Var Gd, Gm: Integer;

Begin

Gd:=9; Gm:=2;

InitGraph(Gd,Gm,’c:\trans\bp\bgi’);

PutPixel(320,240,2);

Readln;

CloseGraph;

End.

Задание:

1. Изобразить точку в центре экрана при низком разрешении экрана.

2. Изобразить на экране звездное небо.

3. Изобразить на экране разноцветное звездное небо.

4. Изобразить звездное небо на четверти экрана.

5. Изобразить звездное небо в центре экрана.

Изображение линий.

Цвет линии

SetColor (c);

где с – цвет которым будет изображена линия или текст.

Стиль линии

SetLineStyle (s, p, t);

где s – стиль лини; p – шаблон линии; t – толщина линии.

Переменная s может принимать следующие значения:

4 Определяется шаблоном

Переменная t принимает следующие значения:

1 - Тонкая

3 - Толстая

Переменная p может иметь любое значение если стиль линии не шаблон (т.е. если s<>4).

Отрезок прямой линии

Line (x1,y1, x2,y2);

где x1,y1- начальные координаты прямой линии; x2,y2 – координаты конца линии.

Отрезок до точки

LineTo (x,y);

где линия рисуется от точки в который находится указатель в данный момент; х, у – координаты указателя после выполнения команды, т.е. линия рисуется до точки с координатами х, у.

Данную команду удобно использовать при рисовании ломанных линий.

Перемещение текущего указателя в точку с координатами (x,y)

MoveTo (x,y);

Отрезок (вектор)

LineRel (dx, dy);

где линия рисуется от точки в который находится указатель в данный момент; а конечные координаты отрезка формируются следующим образом: к текущим координатам х и у прибавляются соответственно dx и dy.

Задания:

1. Построить желтый треугольник, вершинами которого являются следующие точки (200;100), (300;100), (250; 10).

2. Нарисовать домик.

3. Нарисовать лесенку, если с клавиатуры задаются следующие параметры: а – ширина ступеньки, b – высота ступеньки, с – количество ступенек.

4. Нарисовать лесенку если помимо вышеуказанных параметров задается еще начало и направление лесенки.

Самостоятельная работа: Нарисовать куб. (Оценивается на «5» - если нижняя левая вершина куба, а также длина его ребра задается с клавиатуры, на «4» - если изобразили отталкиваясь от исходных данных: вершина имеет координаты (100; 400), длина ребра 200).

Контур прямоугольника

Rectangle(x1,y1,x2,y2);

x1,y1,x2,y2 – координаты противоположных не смежных вершин прямоугольника.

Окружность

Circle (x, y, r);

где x, y – координата центра окружности, а r – радиус окружности.

Дуга окружности

Arc (x,y,nu,ku,r);

где x,y – координаты центра окружности, r – радиус окружности, nu – начальный угол с которого начинается рисование дуги, ku – конечный угол, переменные nu,ku – измеряются в градусах.

Дуга эллипса

Ellipse(x,y,nu,ku,rx,ry);

где x,y – координаты центра эллипса, rx,ry – радиусы эллипса соответственно по оси х и по оси у, nu – начальный угол с которого начинается рисование дуги, ku – конечный угол, переменные nu,ku – измеряются в градусах.

Например для того чтобы нарисовать полный эллипс необходимо выполнить такую команду: Ellipse(x,y,0,360,rx,ry);

Задание: Изобразить на экране какую–нибудь смешную рожицу.

Закрашенные фигуры

Стиль заполнения фигуры

SetFillStyle (s, c);

где s – стиль заполнения фигуры, c – номер активного цвета.

Виды стилей заполнения:

0 - сплошная закраска фоновым цветом

1 - сплошная закраска активным цветом

9 - закраска пикселей в шахматном порядке

12 - пользовательский стиль

2 3 4 5 6 7 8 10 11

Закрашенный прямоугольник

Bar (x1,y1, x2,y2);

x1,y1,x2,y2 – координаты противоположных не смежных вершин прямоугольника.

Параллелепипед

Bar3d(x1,y1,x2,y2,d,t);

x1,y1,x2,y2 – координаты противоположных не смежных вершин передней грани параллелепипеда, d – ширина боковой грани, t - Верхняя грань(True (TopOn) – есть, False (TopOff) – нет).

Закрашенный эллипс

FillEllipse (x,y,Rx,Ry);

где x,y – координаты центра эллипса, Rx,Ry – радиусы эллипса соответственно по оси х и по оси у.

Закрашенный сектор круга

PieSlice (x,y,nu,ku,r);

где x,y – координаты центра круга, r – радиус круга, nu – начальный угол с которого начинается рисование сектора круга, ku – конечный угол, переменные nu,ku – измеряются в градусах.

Закрашенный сектор эллипса

Sector(x,y,nu,ku,rx,ry);

где x,y – координаты центра эллипса, rx,ry – радиусы эллипса соответственно по оси х и по оси у, nu – начальный угол с которого начинается рисование сектора эллипса, ku – конечный угол, переменные nu,ku – измеряются в градусах.

Закраска произвольной фигуры

FloodFill (x,y, b);

где x,y - координаты внутренней точки; b – номер цвета границы.

Задание на оценку: Разукрасить нарисованную ранее рожицу.

Вывод текста в графике

Стиль текста

SetTextStyle(s, d, r)

где s – стиль текста, d – направление, r – размер.

стиль: 0 – побитовый направление: 0 - горизонтально (®) размер: 1..10

1 – тройной 1 - вертикально (­)

2 – малый

3 – гротесковый

4 – готический

Вывод текста

OutTextXY(x, y,s)

где, x, y – координаты, s – текст (тип - string).

Выравнивание текста

SetTextJustify(h, v)

где h - выравнивание по горизонтали, v - выравнивание по вертикали.

Выравнивание текста относительно точки привязки

Преобразование чисел в текст

Str (x, s)

где x – исходное число, s - строка (текст) - тип - string

Ширина строки - Функция

TextWidth (S)

где S – строка (ширина в пикселях)

Высота строки - Функция

TextHeight(S)

где S – строка (высота в пикселях)

Задание:

1. Заполнить экран квадратами, если сторона квадрата задается с клавиатуры и если полный квадрат на экране не убирается его выводить не нужно совсем.

2. Нарисовать шахматную доску, если координаты верхнего левого угла и сторона квадрата задаются с клавиатуры.


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: