50215 (588698), страница 4

Файл №588698 50215 (Графические возможности программирования в курсе информатики) 4 страница50215 (588698) страница 42016-07-29СтудИзба
Просмтор этого файла доступен только зарегистрированным пользователям. Но у нас супер быстрая регистрация: достаточно только электронной почты!

Текст из файла (страница 4)

Каждый пиксель имеет две координаты: x и y. Количество пикселей зависит от типа адаптера и режима его работы (рисунок 3). Значения xmax и ymax зависят от текущего графического видеорежима. В случае адаптера VGA и режима VGAHi xmax = 639, а ymax = 479.

В модуле Graph определены две функции GetMaxx и GetMaxy, возвращающие текущие значения параметров xmax и ymax, соответственно.


Рис. 3. Система координат

«Текущий указатель» (CP – Current Pointer) или, как его еще называют, графический курсор выполняет те же функции, что и курсор в текстовом режиме, однако является при этом невидимым. Положение графического курсора указывает на начальные координаты изображения графического примитива, выводимого «от текущей позиции». Текущий указатель перемещается специальными процедурами. В частности, процедура MoveTo (x, y); перемещает его в точку экрана, с координатами (x, y). Другая процедура – MoveRel (dx, dy); перемещает текущий указатель на dx пикселов по горизонтали и на dy пикселов по вертикали относительно последнего положения текущего указателя.

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

Вывод точки осуществляется процедурой PutPixel (x, y, Color), где x и y– экранные координаты точки, а Color – ее цвет.

Пример:

x := GetMaxx div 2; {Вывод красной точки в центр экрана}

y := GetMaxy div 2;

PutPixel (x, y, Red );

При выводе на экран точки ее цвет указывается непосредственно в процедуре PutPixel. Во всех остальных случаях, при построении графических примитивов (линий, прямоугольников, окружностей и т.п.), а также при выводе текста, цвет их контуров (цвет пера) задается специальной процедурой: SetColor (Color), где Color – цвет.

Для установки цвета фона графического экрана имеется процедура: SetBkColor (Color). При выполнении процедуры SetBkColor экран сразу же окрашивается в заданный цвет.

Для построения отрезков прямых имеется специальная процедура Line (x1, y1, x2, y2), где x1, y1 – координаты начала, а x2, y2 – координаты конца отрезка.

Пример программы. Изобразить треугольник с разноцветными краями.

Program Primer_2;

Uses Graph;

Var Gd,Gm: Integer;

Begin

Gd:=VGA; Gm:=VGAHi; InitGraph (Gd,Gm,'..\bgi');

If GraphResult=grOk

Then begin

SetColor (LightMagenta); {Цвет - светло-сиреневый}

Line (120,210,520,210); {Горизонтальный отрезок}

SetColor (LightCyan); {Цвет - светло-циановый}

Line (120, 210, 320, 10); {Левый катет}

Set Color (Green); {Цвет - зеленый}

Line (320, 10,520,210); {Правый катет}

ReadLn;

CloseGraph;

End

End.

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

Turbo Pascal 7.0 позволяет вычерчивать линии самого различного стиля:

тонкие, широкие, пунктирные.

Установка стиля производится процедурой SetLineStyle (Style, Pattern, Thickness), где Style – параметр, определяющий стиль линии. Возможные значения этого параметра приведены в «таблице 1» [23, с. 143].

Таблица 1.

Стили линии

Описание стиля

Константа

сплошная линия

SolidLn = 0

точечная линия

DottedLn = 1

штрих-пунктирная линия

CenterLn = 2

пунктирная линия

DashedLn = 3

стиль, определяемый пользователем

UserBitLn = 4

Pattern – образец; Thickness – толщина линии. Если применяется один из стандартных стилей, значение параметра Pattern должно быть равно 0.

Параметр Thickness может принимать всего два значения:

NormWidth = 1 – линия толщиной в один пиксел;

ThickWidth = 3 – линия толщиной в три пиксела.

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

Для построения прямоугольных фигур имеется несколько процедур. Первая из них – процедура вычерчивания одномерного прямоугольника: Rectangle (x1, y1, x2, y2), где x1, y1 – координаты верхнего левого угла, x2, y2 – координаты правого нижнего угла прямоугольника.

Пример программы:

Program Primer_3;

Uses Graph;

Var grDriver: Integer;

grMode: Integer;

i,x,y: Integer;

Procedure Rect (x,y,x1,y1: Integer);

{Рисует прямоугольник, у которого левый нижний угол}

{имеет координаты (x,y), а правый верхний – (x1,y1)}

Begin

Line (x,y,x,y1); {Левая сторона}

Line (x1,y,x1,y1); {Правая сторона}

Line (x,y1,x1,y1); {Верхняя сторона}

Line (x,y,x1,y) {Нижняя сторона}

End;

Begin

GrDriver:=VGA; GrMode:=VGAHi;

InitGraph (grDriver,grMode,'..\bgi');

If GraphResult=grOk

Then begin

For i:=1 to 15 do

Begin

x:=i*30; y:=i*25; SetColor (i);

Rect (x,y,x+50,y+60)

End;

ReadLn;

CloseGraph;

End;

End.

Для построения закрашенных прямоугольников используется процедура: Bar (x1, y1, x2, y2), где параметры x1, y1, x2 и y2 имеют то же смысл, что и в процедуре Rectangle.

Цвет и стиль закраски устанавливается процедурой SetFillStyle (Pattern, Color), где параметр Pattern определяет стиль (шаблон) заливки, а параметр Color – ее цвет.

Для построения «объемных» закрашенных прямоугольников используется процедура: Bar3D ( x1, y1, x2, y2, Depth, Top ).

Тип и цвет заливки устанавливается процедурой SetFillStyle. Параметр Depth определяет глубину трехмерного контура. Чаще всего его значение равно четверти ширины прямоугольника: Depth := (x2-x1) div 4;

Параметр Top определяет, строить над прямоугольником вершину (True) или нет (False). Например:

SetFillStyle (XhatchFill, Red );

Bar3D (10, 10, 50, 100, 10, True);

Процедура вычерчивания окружностей текущим цветом имеет вид: Circle ( x, y, Radius ), где x, y – координаты центра окружности, а Radius – ее радиус. Например, следующий фрагмент выводит ярко-зеленую окружность c радиусом 50 пикселов и центром в точке 450, 100:

SetColor (LightGreen);

Circle (450, 100, 50);

Для вычерчивания дуг используется процедура Arc (x, y, StartAngle, EndAngle, Radius), где x, y – координаты центра дуги, StartAngle и EndAngle – начальный и конечный угол (в градусах), Radius – радиус. Очевидно, что если StartAngle = 0, а EndAngle = 359, то вычерчивается полная окружность.

Для заполнения внутренней или внешней области фигуры определенным образцом закраски используется процедура: FloodFill (X, Y, Border), где x, y – координаты точки внутри или вне фигуры, Border – цвет контура фигуры. Если точка (x, y) находится внутри замкнутой области, то заполняется внутренняя область. Если эта точка находится вне замкнутой области, то заполняется ее внешняя часть [23, с. 222].

Пример: красная окружность, заполненная зеленой штриховкой

SetColor (Red); Circle (450, 100, 50);

SetFillStyle (SlashFill, Green);

FloodFill (450, 100, Red);

В графическом режиме стандартные процедуры вывода Write и Writeln не работают. Для вывода текстовой информации на графический экран используют две процедуры OutText и OutTextxy.

Процедура: OutText (TextString) выводит на экран строку текста, начиная с текущего положения графического курсора.

Например: OutText (‘Добро пожаловать!’);

Явный недостаток этой процедуры – нельзя указать произвольную точку начала вывода. Его можно устранить с помощью процедуры MoveTo, которая перемещает указатель в нужную позицию, но лучше воспользоваться процедурой: OutTextxy (x, y, TextString),где x, y – координаты точки начала вывода текста, TextString – константа или переменная строкового типа string. Например, чтобы вывести сообщение «Для продолжения нажмите любую клавишу ...», начиная с точки 20, 400 надо записать:

OutTextxy (20, 400, ‘Для продолжения нажмите любую клавишу ...’);

Для начинающих проблемой является вывод числовых данных на графический экран, ибо в модуле Graph нет предназначенных для этого процедур. Выход прост: преобразовать числовое значение в строковое с помощью процедуры Str.

Пример:

x:= 12.5;

Str (x:4:1, S) {преобразование числа x в строку S }

OutTextxy (10, 10, S); {вывод строки S}

max:= 345.55;

Str (max:6:2, S) {преобразование числа max в строку S}

OutTextxy (10, 50, ‘Максимальное значение = ’ + S );

{ вывод суммы двух строк}.

Таким образом, модуль Graph содержит обширный набор процедур и функций, позволяющий управлять графическим режимом работы экрана: создавать разнооборазные графические изображения и выводить на экран текстовые надписи. Как уже говорилось раннее, особенностями языка Pascal, является строгая типизация и наличие средств структурного (процедурного) программирования. Язык Pascal относительно прост в изучении, довольно ясен и логичен и , будучи первым изучаемым языком программирования, приучает к хорошему стилю, воспитывает дисциплину структурного программирования. Начинающему программисту целесообразно начать изучение языка среды именно с этого пакета. На сегодняшний день Pascal практически повсеместно применяется как учебный язык программирования.

1.3 Графические возможности языка Basic

Язык Basic был разработан преподавателями Дартмутского колледжа Джоном Кемени и Томасом Курцом в 1965 году как средство обучения и работы непрофессиональных программистов. Его назначение определено в самом названии, которое является аббревиатурой слов Beginner's All-purpose Symbolic Instruction Code (многоцелевой язык символических инструкций для начинающих) и при этом в дословном переводе означает «базовый» [13, c. 54].

Новый язык быстро завоевал популярность благодаря своей простоте в изучении, особенно среди начинающих. Собственно, как и Pascal, Basic был предназначен для обучения.

Изначально разработка была по большей части теоретической. Но уже в середине 70-х годов появились первые персональные компьютеры, язык Basic подошел для них наилучшим образом – ведь он тогда занимал всего 4 Кб памяти.

В 1975 году два молодых программиста – Пол Аллен и Уильям Гейтс начали разрабатывать интерпретатор Бейсика для персонального компьютера Altair 8800. Вскоре родилась и компания Microsoft, а Basic оказался первым продуктом, выпущенным ею.

Basic был успешно перенесен на другие модели компьютеров, такие как Apple, Commodore и Atari. Затем интерпретатор был написан для только что появившегося IBM PC.

Будучи действительно весьма простым средством программирования,

совершенно непригодным в те времена для решения серьезных задач, Basic представлял собой качественно новую технологию создания программ в режиме интерактивного диалога между разработчиком и компьютером. То есть представлял собой прообраз современных систем программирования. Другое дело, что решение подобной задачи на технике тех лет было возможно только за счет максимального упрощения языка программирования и использования транслятора типа «интерпретатор».

Писать программы на ранних версиях Basic осложняли нумерованные строки, отсутствие структурных конструкций и типизации, а также интерпретируемость.

В середине 80-х годов компанией Microsoft был разработан QuickBasic (последняя версия 4.5). Это уже был полностью компилируемый язык, с структурными конструкциями, пользовательскими типами данных, причем еще и совместимый со старыми версиями (Basic и GW Basic). В конце 80-х годов насчитывалось около десятка систем Basic различных фирм-разработчиков [13, с. 57].

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

С появлением Windows новая версия Basic названа Visual Basic.

Характеристики

Тип файла
Документ
Размер
5,16 Mb
Учебное заведение
Неизвестно

Список файлов ВКР

Свежие статьи
Популярно сейчас
Зачем заказывать выполнение своего задания, если оно уже было выполнено много много раз? Его можно просто купить или даже скачать бесплатно на СтудИзбе. Найдите нужный учебный материал у нас!
Ответы на популярные вопросы
Да! Наши авторы собирают и выкладывают те работы, которые сдаются в Вашем учебном заведении ежегодно и уже проверены преподавателями.
Да! У нас любой человек может выложить любую учебную работу и зарабатывать на её продажах! Но каждый учебный материал публикуется только после тщательной проверки администрацией.
Вернём деньги! А если быть более точными, то автору даётся немного времени на исправление, а если не исправит или выйдет время, то вернём деньги в полном объёме!
Да! На равне с готовыми студенческими работами у нас продаются услуги. Цены на услуги видны сразу, то есть Вам нужно только указать параметры и сразу можно оплачивать.
Отзывы студентов
Ставлю 10/10
Все нравится, очень удобный сайт, помогает в учебе. Кроме этого, можно заработать самому, выставляя готовые учебные материалы на продажу здесь. Рейтинги и отзывы на преподавателей очень помогают сориентироваться в начале нового семестра. Спасибо за такую функцию. Ставлю максимальную оценку.
Лучшая платформа для успешной сдачи сессии
Познакомился со СтудИзбой благодаря своему другу, очень нравится интерфейс, количество доступных файлов, цена, в общем, все прекрасно. Даже сам продаю какие-то свои работы.
Студизба ван лав ❤
Очень офигенный сайт для студентов. Много полезных учебных материалов. Пользуюсь студизбой с октября 2021 года. Серьёзных нареканий нет. Хотелось бы, что бы ввели подписочную модель и сделали материалы дешевле 300 рублей в рамках подписки бесплатными.
Отличный сайт
Лично меня всё устраивает - и покупка, и продажа; и цены, и возможность предпросмотра куска файла, и обилие бесплатных файлов (в подборках по авторам, читай, ВУЗам и факультетам). Есть определённые баги, но всё решаемо, да и администраторы реагируют в течение суток.
Маленький отзыв о большом помощнике!
Студизба спасает в те моменты, когда сроки горят, а работ накопилось достаточно. Довольно удобный сайт с простой навигацией и огромным количеством материалов.
Студ. Изба как крупнейший сборник работ для студентов
Тут дофига бывает всего полезного. Печально, что бывают предметы по которым даже одного бесплатного решения нет, но это скорее вопрос к студентам. В остальном всё здорово.
Спасательный островок
Если уже не успеваешь разобраться или застрял на каком-то задание поможет тебе быстро и недорого решить твою проблему.
Всё и так отлично
Всё очень удобно. Особенно круто, что есть система бонусов и можно выводить остатки денег. Очень много качественных бесплатных файлов.
Отзыв о системе "Студизба"
Отличная платформа для распространения работ, востребованных студентами. Хорошо налаженная и качественная работа сайта, огромная база заданий и аудитория.
Отличный помощник
Отличный сайт с кучей полезных файлов, позволяющий найти много методичек / учебников / отзывов о вузах и преподователях.
Отлично помогает студентам в любой момент для решения трудных и незамедлительных задач
Хотелось бы больше конкретной информации о преподавателях. А так в принципе хороший сайт, всегда им пользуюсь и ни разу не было желания прекратить. Хороший сайт для помощи студентам, удобный и приятный интерфейс. Из недостатков можно выделить только отсутствия небольшого количества файлов.
Спасибо за шикарный сайт
Великолепный сайт на котором студент за не большие деньги может найти помощь с дз, проектами курсовыми, лабораторными, а также узнать отзывы на преподавателей и бесплатно скачать пособия.
Популярные преподаватели
Добавляйте материалы
и зарабатывайте!
Продажи идут автоматически
6384
Авторов
на СтудИзбе
308
Средний доход
с одного платного файла
Обучение Подробнее