Лабораторная работа №1 Формулировка



Скачать 295.62 Kb.
страница1/3
Дата04.12.2012
Размер295.62 Kb.
ТипЛабораторная работа
  1   2   3
Российский государственный педагогический

УНИВЕРСИТЕТ имени А.И. ГЕРЦЕНА

Аттестационная работа

по

компьютерной графике

Выполнила:

Юнченко Татьяна

Группа 2.2

Санкт-Петербург, 2003

Лабораторная работа №1

Формулировка:

Написать программу, моделирующую качение окружности скольжения по горизонтали (начальное направление движения – слева направо, при достижении правого края экрана направление меняется на противоположное (справа налево) и т.д.)
Теоретические сведения:

Чтобы написать алгоритм данной программы необходимо иметь в виду следующие теоретические данные:

Цикл с постусловием (Repeat <оператор 1>;

<оператор 2>;



<оператор n>;

Until <условие>;

где Repeat (повторять), Until (до тех пор, пока).

Этот цикл используется для программ с неизвестным числом повторений. Последовательность операторов, входящих в тело цикла выполняется один раз, после чего проверяется соблюдение условия, записанного следом за служебным словом Until . Если условие не соблюдается, цикл завершается. В противном случае – тело цикла повторяется ещё раз, после чего снова проверяется соблюдение условия.

Неполный условный оператор.

If <условие> Then <оператор>

Выполнение условного оператора начинается с вычисления значения логического выражения, записанного в условии. Простые условия записываются в виде равенств или неравенств.

Процедура Circle. Вычерчивает окружность.

Circle(X, Y: Integer; Rad: Word);

Где (X, Y) – координаты центра;

Rad – радиус окружности (в пикселях, по горизонтали).

Окружность вычерчивается текущим цветом, установленным с помощью процедуры SetColor. Процедура SetColor устанавливает текущий цвет – один из цветов используемой палитры. Значения, которые может принимать параметр Color, определяется набором определенных в модуле GRAPH констант.

Процедура Arc. Рисует дугу окружности.

Arc(X, Y: Integer; Bangle, EAngle, Rad: Word);

Где (X,Y) – координаты центра;

Bangle иEAngle – начальный и конечный углы дуги;

Rad – радиус.

Углы для процедуры Arc (так же, как и для процедур Ellipse, Sector) отсчитываются против часовой стрелки. Например, угол 00 соответствует 3 часам на часовом циферблате, 90˚ - 12 часам, 180˚ - 9 часам и т.д. Так же, как и с окружностью при вычерчивании дуги автоматически учитывается коэффициент коррекции.


Процедура Delay.

Приостанавливает выполнение программы на заданный интервал времени.

Delay (ms: Word);

Где МS – значение, определяющее интервал времени в миллисекундах. Иными словами, управление от Delay к следующему оператору программы передается с задержкой, которую определяет параметр MS.

Ход работы:

  • Называние программы

  • Подключение библиотеки

  • Описание идентификаторов

  • Основной блок программы

        • Очистка экрана

        • Инициализация графического режима

        • Указание пути

        • Присваивание значений переменным

        • Начало цикла

        • Присваивание значений переменным

        • Использование процедур Arc, Setcolor и Circle

        • Использование неполного условного оператора

        • Закрытие графического режима

  • Закрытие графического режима

  • Конец программы.


Листинг программы:

Program Lab_10;

Uses crt, graph;

Var gd, gm: Integer;

n, x, I, step:Integer;

Begin

Clrscr;

gd: detect;

Initgraph (gd, gm, ‘ ‘);

x:=53;

Step: =10;

Repeat

n: =60;

x:=x+step;

Arc (x, GetMaxY div 2, 0, 720, n);

Setcolor (15);

i:=i+5;

Arc (x, GetMaxY div 2, 90-I, 270-I, n);

Setcolor (0);

Circle (x-step, GetMaxY div 2, n);

Delay (6000);

Setcolor (9);

If x>=571 Then

Step:= - step;

If x<=62 Then

Step:= - step;

Until keypressed;

While not keypressed do;

CloseGraph;

End.
Вывод:

С помощью таких процедур как Arc, Circle и Setcolor можно написать программу с окружностью.

Лабораторная работа №2.
Формулировка задания:

Написать программу, моделирующую качение окружности по горизонтали (начальное направление движения – слева направо, при достижении правого края направление меняется на противоположное (справа налево)) и по вертикали (начальное направление движения – сверху вниз, при достижении нижнего края движение меняется на противоположное (снизу вверх)).

Теоретические сведения:
Модуль GRAPH;

Для формирования графических изображений в языке Turbo Pascal предназначен стандартный библиотечный модуль GRAPH. В нем содержится 79 графических процедур, функций, десятки стандартных констант и типов данных. Все они составляют единый комплекс средств, позволяющих разрабатывать профессиональные программные продукты.

Подключение модуля GRAPH к пользовательской программе осуществляется стандартным способом – с помощью зарезервированного слова USES:

USES GRAPH;

С этого момента все графические средства доступны пользователю.
Модуль CRT;

Подпрограммы этого модуля позволяют управлять текстовыми режимами экрана, его цветами и окнами, яркостью свечения символов, а также расширенными кодами клавиатуры и звуком.
Процедура InitGraph;

Инициирует перевод видеоадаптера в графический режим.

Заголовок процедуры:
Procedure InitGraph (Var Driver, Mode: Integer; Path: String);
где Driver – параметр, определяющий графический драйвер;

Mode – параметр, задающий один из графических режимов, допустимых для указанного драйвера;

Path – имя файла (и путь) графического драйвера; если значение Path соответствует пустой строке, поиск файла драйвера проводится в текущем каталоге.

Если значение параметра Driver равно Detect (0), система пытается определить тип видеоадаптера автоматически. В этом случае InitGraph вызывает процедуру DetectGraph. Если графическое аппаратное обеспечение обнаружено, инициализируется соответствующий графический драйвер и включается графический режим. При этом параметры-переменные Driver и Mode по завершении работы процедуры возвращают значения, соответствующие коду драйвера и режиму работы видеоадаптера.

Если значение параметра Driver отличается от Detect, драйвер выбирается непосредственно, согласно указанному значению. После этого видеосистема переходит в режим, определенный заданным параметром Mode.

Процедура ClrScr;

Процедура ClrScr очищает экран, то есть заполняет его пробелами. Курсор перемещается в верхний левый угол экрана.
Процедура SetBkColor;

Устанавливает цвет фона – один из цветов используемой палитры.
Procedure SetBkColor (Color: Word);
где Color – новый цвет фона;

Цвет фона определяется не для окна, а для всего экрана. Коды цветов фона могут находиться в диапазоне от 0 до 15,в зависимости от используемых драйвера и графического режима.

Оператор цикла с параметром;

For i=a to b do s;
При выполнении этого параметра сначала вычисляется некоторое начальное значение А, которое присваивается переменной I, называемой параметром цикла. Затем вычисляется конечное значение B и проверяется, имеет ли место равенство I=B. Если равенства нет, выполняется оператор S, который может быть составным, и переменная I увеличивается на единицу. После этого проверка (не равен ли параметр конечному значению), выполнение оператора S и увеличение переменной I на единицу выполняются циклически до пор, пока не наступает равенство I=B. Параметр цикла I, а также начальное и конечное значения (A и B) могут принадлежать любому порядковому типу (например, Integer или Char). (Но при всем этом они должны быть одного типа). Если начальное значение превышает или равно конечному значению с самого начала, оператор S не выполнится ни разу.

Использованные здесь зарезервированные слова FOR, TO и DO имеют смысл от, до, и выполнять соответственно.

Оператор цикла FOR имеет такие особенности:

  • в теле цикла запрещается явно изменять значение параметра цикла;

  • по завершении работы оператора цикла FOR, значение параметра (I) считается неопределенным.

Возможна и другая форма оператора цикла с параметром:
For i: =a downto b do s;
Здесь, чтобы выполнялся оператор S, начальное значение A должно превышать конечное значение B. Кроме того, в этом случае параметр I с каждым циклом уменьшается на единицу, пока не становится равным конечному значению B.

Оператор цикла с параметром следует использовать тогда, когда заранее известно, сколько раз должно быть выполнено тело цикла.
Процедура SetColor;

Восприятие любого графического изображения зависит, прежде всего, от цвета изображения. В языке Turbo Pascal для установки этого важнейшего атрибута используется процедура SetColor
Procedure SetColor (Color: Word);
Устанавливает цвет, используемый процедурами графического вывода в значение, заданное параметром Color. До того момента, пока цвет не определен, для вывода используется цвет, имеющий максимальный номер палитры, устанавливаемый по минимальному номеру. Если Color задает недопустимый номер цвета, текущий цвет остается неизменным.
Процедура присваивания;

Оператор присваивания (:=) предписывает выполнить выражение , заданное в его правой части, и присвоит результат переменной, имя которой указано в левой его части. Переменная и выражение должны быть совместимы по типу.

Процедура Circle;

Circle (xCoord, yCoord, Radius, Color);
где xCoord, yCoord, Radius, Color – выражение целого типа.

Процедура Circle рисует окружность радиусом Radius с центром в точке (xCoord, yCoord). Окружность вычерчивается текущим цветом, установленным с помощью процедуры SetColor. Процедура SetColor устанавливает текущий цвет – один из цветов используемой палитры. Значения, которые может принимать параметр Color, определяется набором определенных в модуле GRAPH констант.
Функции GetMaxX и GetMaxY;

Возвращают текущие значения разрешений (т.е. число пикселей) по горизонтали и вертикали соответственно.
Процедура Ellipse;

Вычерчивает дугу эллипса.
Procedure Ellipse (X, Y: Integer; BAngle, EAngle: Word; XRadius, YRadius: Word);
где (X, Y) – координаты центра;

Bangle и EAngle – начальный и конечный углы дуги;

XRad и YRad – соответственно горизонтальный и вертикальный радиусы эллипса (в пикселях).

При вычерчивании эллипсной дуги стиль и цвет выбираются так же, как и при рисовании окружности.
Процедура Delay;

Приостанавливает выполнение программы на заданный интервал времени.
Procedure Delay (ms: Word);
где msзначение, определяющее интервал времени в миллисекундах. Иными словами, управление от Delay к следующему оператору программы передается с задержкой, которую определяет параметр ms.

Процедура CloseGraph;

Когда все запланированные работы выполнены, необходимо выйти из графического режима. Это делается с помощью процедуры CloseGraph.

В процессе выполнения процедура освобождает память, распределенную под драйверы графики, файлы шрифтов и промежуточные данные, и восстанавливает режим работы адаптера в то состояние, в котором он находился до выполнения инициализации системы.

Ход работы:

  • Подключаю модули GRAPH и CRT;

  • Объявляю переменные в разделе описания;

  • Основное тело программы:

        • Очищаю экран,

        • Автоматически определяю тип видеоадаптера,

        • Перехожу в графический режим,

        • Использую процедуру SetBkColor,

        • Использую циклы с параметрами (в теле цикла использую процедуры Circle, Ellipse, SetColor и Delay);

  • Закрываю графический режим;

  • Конец программы.



Листинг программы:

Uses CRT, Graph;

Var Gd, Gm: Integer;

i, x, y, y1, r : Integer;

Begin

ClrScr;

Gd: detect;

InitGraph (Gd, Gm, ‘ ‘);

SetColor (1);
For x: =50 to GetMaxX-51 do

begin

SetColor (15);

Circle (x, 240, 50); SetColor (13);

Ellipse (x, 240, 360-y1, 270-y1, 50, 50);

Delay (1000);

SetColor (0); Circle (x, 240, 50);

y1:=y1+2;

end;

For x: =GetMaxX-51 downto 50 do

begin

SetColor (15);

Circle (x, 240, 50); SetColor (13);

Ellipse (x, 240, 270+y1, 0+y1, 50, 50);

Delay (1000);

SetColor (0); Circle (x, 240, 50);

y1:=y1+2;

end;
For y: =50 to GetMaxY-51 do

begin

SetColor (15);

Circle (320, y, 50); SetColor (13);

Ellipse (320, y, 360-y1, 270-y1, 50, 50);

Delay (1000);

SetColor (0); Circle (320, y, 50);

y: = y1+2;

end;

For y: =GetMaxY-51 downto 50 do

begin

SetColor (15);

Circle (320, y, 50); SetColor (13);

Ellipse (320, y, 280+y1, 190+y1, 50, 50);

Delay (1000);

SetColor (0); Circle (320, y, 50);

y1:=y1+2;

end;

While not KeyPressed do;

CloseGraph;

End.
Вывод:

Оказывается, используя такие всем известные циклы и процедуры, можно написать программу, моделирую качение окружности по горизонтали и вертикали.

Лабораторная работа №3.

1

Формулировка задания:

Написать программу «Паутина», которая выводит на экран простое изображение, составленное из отрезков прямых и концентрических окружностей. Общий центр точки пересечения отрезков и окружностей находится в центре экрана независимо от установленного разрешения.

Теоретические сведения:

Для написания программы «Паутина», я использовала следующие теоретические сведения:
Модуль GRAPH;

Для формирования графических изображений в языке Turbo Pascal предназначен стандартный библиотечный модуль GRAPH. В нем содержится 79 графических процедур, функций, десятки стандартных констант и типов данных. Все они составляют единый комплекс средств, позволяющих разрабатывать профессиональные программные продукты.

Подключение модуля GRAPH к пользовательской программе осуществляется стандартным способом – с помощью зарезервированного слова USES:
  1   2   3

Похожие:

Лабораторная работа №1 Формулировка iconЛабораторная работа №1 Работа в Oracle Database Express Edition 1 Лабораторная работа №6
Лабораторная работа Выполнение расчетов с использованием программирования в среде Visual Basic for Applications
Лабораторная работа №1 Формулировка iconЛабораторная работа №3. Знакомство с прерываниями. Лабораторная работа №4. Программная обработка клавиатуры
Лабораторная работа №1. Знакомство с общим устройством и функционированием ЭВМ. Изучение структуры процессора, организации памяти,...
Лабораторная работа №1 Формулировка iconЛабораторная работа по теме: «ms doc. Основные команды.»
Мбоу «сош №8 г. Петровска Саратовской области» Лабораторная работа в среде ms dos
Лабораторная работа №1 Формулировка iconЛабораторная работа 08 Изучение дифракции рентгеновских лучей на кристаллах Москва 2005 г. 1 лабораторная работа 08
Цель работы: определение расстояний между атомными плоскостями в кристалле по имеющейся рентгенограмме
Лабораторная работа №1 Формулировка iconЛабораторная работа №1 3 Создание ситуационного плана миигаиК 3 Лабораторная работа №2 8 Оцифровка части карты и создание базы данных 8
«Геоинформационные технологии сбора и обработки информации» в среде MapInfo Professional
Лабораторная работа №1 Формулировка iconИсследование изучение строения и физиологические процессы. Эксперимент серия опытов. Лабораторная работа
Совокупность относительно однородных приемов, операции освоения действительности ( теоретические- практические) подчиненных расширению...
Лабораторная работа №1 Формулировка iconЛабораторная работа №17 по дисциплине " Методы и средства гидрометеорологических измерений". Устройство осциллографов
Устройство осциллографов. Лабораторная работа №17 по курсу “Гидрометеорологические измерения”. С. Петербург: рггму, 2002, 14 с
Лабораторная работа №1 Формулировка iconЛабораторная работа по курсу «Физические основы микроэлектроники» Нижний Новгород, 2005
Операционный усилитель: Лабораторная работа по курсу «Микроэлектроника» / Сост. Н. В. Федосеева, С. М. Планкина. – Н. Новгород, ннгу,...
Лабораторная работа №1 Формулировка iconЛабораторная работа 01 определение плотности твердых тел москва 2005 г. Лабораторная работа 101
Существуют методы анализа и учета влияния различных погрешностей на результаты измерений. Все погрешности (ошибки) измерений принято...
Лабораторная работа №1 Формулировка iconЛабораторная работа №5 Анализ операций с ценными бумагами
Лабораторная работа №5 включает 5 заданий. Для выполнения этих заданий необходимо ознакомиться с теоретическим материалом, приведенным...
Разместите кнопку на своём сайте:
ru.convdocs.org


База данных защищена авторским правом ©ru.convdocs.org 2016
обратиться к администрации
ru.convdocs.org