Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
2012-2013 Вопросы к экзамену П бак 1 семестр.docx
Скачиваний:
1
Добавлен:
01.03.2025
Размер:
724.74 Кб
Скачать

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

Файл- это самостоятельная последовательность символов, записанная в память компьютера. Использование файлов в программировании обусловлено следующими задачами:

    1. в файлах могут храниться исходные тексты программ а также входные данные.

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

    3. файлы требуются для сохранения выходных данных (при многократном сохранении или при сохранении больших объемов).

Главное преимущество – высокая скорость обработки( еще выше, чем для типизированных).

Открыть как не типизированный можно файл любой природы( текстовый, бинарный типизированный). Чаще всего применяются не типизированные фалы, когда нужно скопировать большой кусок информации из одного файла в дробной без изменений.

Описание нетипизированных файлов

Var g:file;

Никакая файловая переменная не может быть const.

Назначение н.т. файлов(смотри текст, бинарные)

Открытие , закрытие н.т.ф

Reset(f[,size]);закрытие файла для считывания из него инф-ии и одновременно для записи в него инф-ии, если файла не сущ, от это вызовет ошибку. указатель в начало файла

Rewrite (f[,size])

Открытие для записи, если файл не существует, он будет создан, если сущ, вся информация будет стерта. Не обязательная переменная size может задать кол-во байтов одновременно считываемых из файла или записываемых в него. По умолчанию размер таких кусков- 128 байт сайз при открытии

Close(f);

Закрытие файла

Поиск в нетип файле

Смотри поиск в тип файле…. Но так как тип элементов не типизированном файле не определен, то размер одного эл-та-128 байт или size, указанный при открытии

Запись и чтение

Blockread(f:file; buf, count:word [;result:word])для считывания из файла f в нескольких элементов разом. Их количество указывается в переменной count. Для на каждого элемента указывается при открытии файла. Считывание производится при помощи буфера обмена данными buf. Необяз-я переменная result содержит фактическое количество считанных элементов.

Blockwrite(f:file; buf, count:word [;result:word])

Записать блок элементов конкретный файл- запись в файл параметры см выше

Подпрограммы обработки директорий

Blockread(f:file; buf, count:word [;result:word])

Erase(f:file); удаляет файл

Rename(f:file;s:string); переименовывает файл (s новое имя)

Getdir(disk:byte; s:string);записать в строку s имя текущей директории на указанном диске. Если диск =0( текущий диск.) 1-диск а. 2-диск б и.тд

Mkdir(s:string); создать директорию( s имя)

Rmdir(s:string); удалить директорию

function FileExists(name: string): boolean; Возвращает True, если файл с именем name существует

25.Рекурсии.

26. Программирование графики. Графика в Pascal

Пример:

uses GraphABC,crt;

begin

setpixel(50,50,clgreen);

line(2,6,20,30);

Circle(80,80,70)

end.

Изображение строится из пикселей, координаты считаются по пикселям. Необходимо подключение модуля GraphABC.

Возможности модуля GraphABC

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

  2. Цветовые константы и функции для работы с цветом

  3. Действия с пером

  4. Действия с кистью

  5. Действия со шрифтом

  6. Действия с рисунками

  7. Действия с графическим окном

  8. Задание режимов вывода

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

procedure SetPixel(x,y,color:integer);

- закрашивает один пиксель скоординатами x y цветом color

function GetPixel(x,y):integer;

-возвращает текущее значение цвета для пикселя x y

procedure MoveTo(x,y:integer);

- перемещает невидимое перо к точке x y

procedure LineTo(x,y:integer);

-рисует отрезок от текущего положения пера до точки x y

procedure Line(x1,y1,x2,y2:integer);

-рисует отрезок с началом в x1 y1 и концом в x2 y2

procedure Circle(x,y,r:integer);

-рисует окр. С центром в x y и радиусом в r

procedure Ellipse(x1,y1,x2,y2:integer);

-рисует эллипс вписанный в прямоугольник

procedure Rectangle(x1,y1,x2,y2:integer);

-прямоугольник где указаны координаты противоположных вершин

procedure RoundRect(x1,y1,x2,y2,w,h:integer);

-прямоугольник со скруглёнными краями где w и h – высота и ширина эллипса для скругления краёв

procedure Arc(x,y,r,a1,a2:integer);

-рисует дугу окружности с центром в x y и радиусом r, заключённую между углом между двумя лучами a1 a2

procedure Pie(x,y,r,a1,a2:integer);

-тоже самое только лучи видимые

procedure Chord(x,y,r,a1,a2:ingerer);

-рисует фигуру ограниченную дугой окружности и отрезком соединяющим её концы

procedure TextOut(x,y:integer; s:string);

-выводит строку s в позицию x y

procedure FloodFill(x,y,color:ineger);

-заполняет область определённым цветом начиная с x y

procedure FillRect(x1,x2,y1,y2:integer);

-заливает прямоугольник текущим цветом кисти

procedure Polygon(var a; n:integer);

-строит ломаную по n точкам координаты которых заданы в массиве a элементов типа point(см. дома)

procedure Polylince(var a; n:integer);

- строит замкнутую ломаную по n точкам координаты которых заданы в массиве a элементов типа point(см. дома)

function RGB(r,g,b:integer):ColorType;

-возвращает 3 значения цвета по RGB

function GetRed(color:ColorType):integer;

-взовр. красный

function GetGreen(color:ColorType):integer;

function GetBlue(color:ColorType):integer;