28011-1 (630383), страница 3

Файл №630383 28011-1 (Вопросы и ответы к экзаменам В-1) 3 страница28011-1 (630383) страница 32016-07-30СтудИзба
Просмтор этого файла доступен только зарегистрированным пользователям. Но у нас супер быстрая регистрация: достаточно только электронной почты!

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

|-------------|----------------------------------------------|

- содержит одну или более переменных такого

же типа, что и компоненты файла,

- файловая переменная д.б. объявлена предложением FILE OF

и связана с именем файла процедурой ASSIGN. Файл необходимо открыть

процедурой RESET для чтения.

Если файл исчерпан, обращение к READ вызовет ошибку В/В

Чтобы переместить указатель в конец файла можно написать

Пр. Seek(f,FileSize(f)) ; где f - файловая переменная

Нетипизированные файлы

Обьявляются без указания типа файла:

TYPE ftype=file; или VAR fn: file;

Для данных файлов не указывается тип компонентов, что делает их сов-

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

ростной обмен данными между диском и памятью.

При инициализации нетипизированных файлов процедурами RESET и

REWRITE указывается длина записи нетипизированного файла в байтах.

пример: VAR f:file; ...

ASSIGN (f,'a.dat');

RESET (f,512);

\ длина записи

Длина файла может быть представлена выражением типа WORD; если пара-

метр длины опущен, подразумевается длина 128 байт; максимальная длина

65535 байт.

Для обеспечения максимальной скорости обмена данными следует за-

давать длину, кратную длине физического сектора дискового носителя

(512 байт). Кроме того, фактически пространство на диске выделяется

любому файлу порциями - кластерами, которые в зависимости от типа дис-

ка могут занимать 2 и более смежных секторов. Как правило, кластер

м.б. прочитан или записан за один оборот диска, поэтому наивысшую ско-

рость обмена данными можно получить, если указать длину записи, равную

длине кластера.

При работе с нетипизированными файлами Могут применяться все

рассмотренные процедуры и функции, доступные типизированным файлам, за

исключением READ и WRITE, которые для чтения и записи заменяются соот-

ветственно высокоскоростными процедурами BlockREAD и BlockWRITE.

BlockREAD(,,,[,Var])

BlockWRITE(,,,[,Var])

где - имя переменной, которая будет участвовать в обмене дан-

ными с дисками;

- количество записей, которые д.б. прочитаны или записаны за одно

обращение к диску;

- необязательный параметр, содержащий при выходе из процедуры ко-

личество фактически обработанных записей.

За одно обращение к процедурам м.б. передано N*r байт, где r -

длина записи нетипизированного файла. Передача идет, начиная с 1-го

байта переменной .

После завершения процедуры указатель смещается на записей.

Процедурами SEEK, FilePos и FileSize можно обеспечить доступ к любой

записи нетипизированного файла.

40. Библиотечный модуль GRAPH. Графические возможности ТП.

GRAPH - представляет собой библиотеку подпрограмм, обеспечивающую полное управление графическими режимами для различных адаптеров дисплеев: CGA, EGA, VGA... Содержит 78 процедур и функций (как базовых - рисование точек, линий, окружностей, прямоугольников), так и расширяющих возможности базовых (многоугольники, сектора, дуги, закрашивание фигур, вывода текста и т.д.).

Для запуска программы с использованием модуля GRAPH необходимо,

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

Файл BGI - графический интерфейс. Он обеспечивает взаимодействие

программ с графическими устройствами.

В начале программы модуль GRAPH должен быть подключен

PROGRAM

USES GRAPH;

описание меток, переменных программы, в частности

VAR driver, Mode: integer;

Begin

Далее инициализируется графический режим работы процедурой

InitGraph(,:integer;

: string);

Графическая информация на экране дисплея отражается совокупностью

светящихся точек - ПИКСЕЛЕЙ.

Режим по вертикали: 0 - 200 пикселей (4 страницы),

1 - 350 пикселей (2 страницы), 2 - 480 пикселей (1 страница).

Режим 2 (640х480, 16 цветов,1 страница)

В текстовом режиме координаты верхнего угла (1,1).

центр (319,239)

нижнего (639,479)

Тип драйвера допускается указывать =0, тогда он устанавливается

по результатам тестирования (авто определение). Путь определяет маршрут поиска графического драйвера.

Пример:

USES GRAPH;

Const driver, mode: intGRAPH - представляет собой библиотеку подпрограмм, обеспечивающую полное управление графическими режимами для различных адаптеров дисплеев: CGA, EGA, VGA... Содержит 78 процедур и функций (как базовых - рисование точек, линий, окружностей, прямоугольников), так и расширяющих возможности базовых (многоугольники, сектора, дуги, закрашивание фигур, вывода текста и т.д.).

Для запуска программы с использованием модуля GRAPH необходимо,

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

Файл BGI - графический интерфейс. Он обеспечивает взаимодействие

программ с графическими устройствами.

В начале программы модуль GRAPH должен быть подключен

PROGRAM

USES GRAPH;

описание меток, переменных программы, в частности

VAR driver, Mode: integer;

Begin

Далее инициализируется графический режим работы процедурой

InitGraph(,:integer;

:string);

Графическая информация на экране дисплея отражается совокупностью

светящихся точек - ПИКСЕЛЕЙ.

Режим по вертикали: 0 - 200 пикселей (4 страницы),

1 - 350 пикселей (2 страницы), 2 - 480 пикселей (1 страница).

Режим 2 (640х480, 16 цветов,1 страница)

В текстовом режиме координаты верхнего угла (1,1).

центр (319,239)

нижнего (639,479)

Тип драйвера допускается указывать =0, тогда он устанавливается

по результатам тестирования (авто определение). Путь определяет маршрут поиска графического драйвера.

Пример:

USES GRAPH;

Const driver, mode: integer;

Begin

driver:=VGA; (9)

mode:=VGAH; (2)

InitGraph(driver, mode, 'e:\TP\BGI'); тип string.

DetectGraph(var Diver, Mode: integer) - возвращает тип драйвера и текущий режим его работы.

Основные цвета задаются от 0 до 15:

0- черный 8 - темно-синий

1- синий 9 - ярко-синий

2- зеленый 10 - ярко-зеленый

3- голубой 11 - ярко-голубой

4- красный 12 - розовый

5- фиолетовый 13 - малиновый

6- коричневый 14- желтый

7 - светло-серый 15- белый.

Если Х и У вещественные , то их нужно преобразовать к целым координатам (в пределах раздела экрана). Для этого используются функции ROUND или TRUNC прямого преобразования к целому значению LineTo(trunc(x),trunc(y));

Также необходимо следить, чтобы значения не выходили за пределы

экрана (рассчитывайте коэффициенты увеличения или уменьшения и пара-

метры смещения)

ПРОЦЕДУРЫ И ФУНКЦИИ модуля GRAPH

установочные

ClearDevice - Очищает экран и помещает курсор в точку (0,0);

SetViewPort(x1,y1,x2,y2:integer; Clip: boolean) - Устанавливает

текущее окно для графического вывода. X1,y1 – координата верхнего левого угла; x2,y2 - координата нижнего правого угла. Если Clip=true, то все изображения отсекаются на границах вывода;

ClearViewPort - Очищает текущее окно;

GetMax X: integer - возвращает максимальную горизонтальную координату

графического экрана;

GetMax Y :integer - возвращает максимальную вертикальную координату

графического экрана;

Get X: integer - возвращает координату Х текущего указателя в окне;

Get Y: integer - возвращает координату Y курсора в окне;

SetLineStyle(Line, Pattern, Thickness: word) - Устанавливает стиль

(0..4), шаблон штриховки (0..12) и толщину (1-ноpм, 3-утpоенная);

SetFillStyle(Pattern, Color: word) - Устанавливает образец штриховки и

цвет (0..15 и 128-меpцание);

SetGraphMode(Mode: integer) - Устанавливает новый графический режим и

очищает экран;

SetColor(Color: word) - Устанавливает основной цвет, которым выполняется рисование (0..15);

SetBkColor(Color: word) - Установка цвета фона.

Гpафические примитивы

PutPixel(X,Y: integer; Color: word) - Выводит точку цветом Color с координатой X,Y;

LineTO(X, Y: integer) - Рисует линию от текущего указателя к точке с координатой Х,У;

LineRel(DX, DY: integer) - Рисует линию от текущего указателя к точке, заданной приращением координат;

Line(X1,Y1,X2,Y2:integer) - Рисует линию от точки (X1,Y1) к точке с

координатой Х2,У2;

MoveTO(X, Y: integer) - Смещает текущий указатель к точке с координатой Х,У;

MoveRel(DX, DY: integer) - Смещает текущий указатель к точке, заданной

приращением координат;

Rectangle(X1,Y1,X2,Y2:integer) - Рисует прямоугольник, используя

текущий цвет и тип линии по верхней левой и нижней правой точкам;

Bar(X1,Y1,X2,Y2:integer) - Рисует закрашенный прямоугольник, используя установку SetFillStyle;

Bar3D(X1,Y1,X2,Y2:integer;Depth:word;Top:Bolean) - Рисует закрашенный паpаллелипипед. Depth - глубина в Pixel (1/4 ширины).

Если Тор=True, то рисуется верхняя грань пеpеллелипипеда;

Circle(X,Y:integer;R:word) - Рисует окружность радиуса R, используя

X,Y как координаты центра;

Fillellipse(X,Y: integer; XR,YR: word) - Рисует защтpихованный эллипс,

используя X,Y как центр и XR,YR как горизонтальный и

вертикальный радиусы.

RestorCRTMode - Восстанавливает текстовый режим работы экрана;

OutText(Text: string) - Выводит текстовую строку на экран.

OutTextXY(X,Y: integer; Text: string) - Выводит текст в заданное

место экрана.

Пример программы построения графика функции у=2+х*х.

program graphik; {файл grafikf.pas}

uses graph; {подключение модуля GRAPF}

var a,b,x,y: integer; {a,b-переменные, определяющие тип драйвера и

видеорежим соответственно}

begin

detectgraph(a,b); {авто определение типа драйвера и видеорежима}

initgraph (a,b,'E:\TP\BGI'); {инициализация графического режима}

setgraphmode(2); {установка нового режима (2), очистка экрана}

setBKcolor(0); {основной цвет фона - черный}

setcolor(4); {основной цвет рисования - красный}

moveTO(100,100); {смещает курсор}

lineRel(50,50); {вычерчивание линии по приращению от текущего

указателя}

readln; {пауза до нажатия клавиши }

setcolor(2); {основной цвет рисования - зеленый}

line(100,100,100,50);{рисует линию от т.Х1,У2 до т.Х2,У2}

readln; {пауза до нажатия }

setcolor(5); {основной цвет рисования - фиолетовый}

putPixel(0,0,12); {выводит точку цветом 12 с координатой 0,0}

readln; {пауза до нажатия }

moveTO(1,2); {смещает курсор к точке с координатой 1,2}

for x:=0 to 20 do

begin

y:=2+ x*x;

lineTO(x,y); {рисует линию от текущего

указателя к точке с координатой Х,У}

end;

readln; {пауза до нажатия ввода}

Settextstyle(1,0,5);

OutTextXY(50,400,'график функции у=2+х*х'); {выводит текст в

заданное место экрана}

readln; {пауза до нажатия }

putPixel(639,479,14);{выводит точку цветом 14 с координатой 639,479}

readln; {пауза до нажатия }

closegraph;{закрывает графический режим и восстанавливает текстовый}

end.

Begin

driver:=VGA; (9)

mode:=VGAH; (2)

InitGraph(driver, mode, 'e:\TP\BGI'); тип string.

DetectGraph(var Diver, Mode: integer) - возвращает тип драйвера и текущий режим его работы.

Основные цвета задаются от 0 до 15:

0- черный 8 - темно-синий

1- синий 9 - ярко-синий

2- зеленый 10 - ярко-зеленый

3- голубой 11 - ярко-голубой

4- красный 12 - розовый

5- фиолетовый 13 - малиновый

6- коричневый 14- желтый

7 - светло-серый 15- белый.

Если Х и У вещественные , то их нужно преобразовать к целым координатам (в пределах раздела экрана). Для этого используются функции ROUND или TRUNC прямого преобразования к целому значению LineTo(trunc(x),trunc(y));

Также необходимо следить, чтобы значения не выходили за пределы

экрана (рассчитывайте коэффициенты увеличения или уменьшения и пара-

метры смещения)

ПРОЦЕДУРЫ И ФУНКЦИИ модуля GRAPH

установочные

ClearDevice - Очищает экран и помещает курсор в точку (0,0);

SetViewPort(x1,y1,x2,y2:integer; Clip: boolean) - Устанавливает

текущее окно для графического вывода. X1,y1 - координата

верхнего левого угла; x2,y2 - координата нижнего правого угла.

Если Clip=true, то все изображения отсекаются на границах вывода;

ClearViewPort - Очищает текущее окно;

GetMaxX: integer - возвращает максимальную горизонтальную координату

графического экрана;

GetMaxY: integer - возвращает максимальную вертикальную координату

графического экрана;

GetX: integer - возвращает координату Х текущего указателя в окне;

GetY: integer - возвращает координату Y курсора в окне;

SetLineStyle(Line, Pattern, Thickness: word) - Устанавливает стиль

(0..4), шаблон штриховки (0..12) и толщину (1-ноpм, 3-утpоенная);

SetFillStyle(Pattern, Color: word) - Устанавливает образец штриховки и

цвет (0..15 и 128-меpцание);

SetGraphMode(Mode: integer) - Устанавливает новый графический режим и

очищает экран;

SetColor(Color: word) - Устанавливает основной цвет, которым выполняется рисование (0..15);

SetBkColor(Color: word) - Установка цвета фона.

Гpафические примитивы

PutPixel(X,Y: integer; Color: word) - Выводит точку цветом Color с координатой X,Y;

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

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

Список файлов ответов (шпаргалок)

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