Использование библиотек стандартных процедур в программах. Модуль Crt. Текстовые режимы использования экрана. 


Мы поможем в написании ваших работ!



ЗНАЕТЕ ЛИ ВЫ?

Использование библиотек стандартных процедур в программах. Модуль Crt. Текстовые режимы использования экрана.

Поиск

 

Язык программирования Паскаль содержит ряд предопределенных процедур, разделенных по темам на несколько библиотек (модулей). Файлы с библиотеками процедур имеют расширение tpu и хранятся в папке units основной директории tp.

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

Модуль Crt содержит процедуры и функции, испльзующиеся для работы на текстовом экране. Примером процедуры этого модуля может служить очистка экрана clrscr. Процедуры этого модуля всегда работают в активном окне. Окном считается прямоугольная область, определяемая координатами верхнего левого и нижнего правого угла. По умолчанию активным окном является экран. Размеры экрана, по умолчанию, - 80x25 знакомест.

Заданный по умолчанию режим экрана можно изменить, используюя процедуру textmode (<константа режима>). Константа 0 задает черно/белый режим с размером экрана 40x25.

1 - цветной режим 40x25

2 - черно/белый режим 80x25

3 - цветной режим 80x25

7 - черно/белый режим и монохромный дисплей

256 - загружаемый шрифт - 43 строки в EGA и 50 строк в VGA.

 

Процедуры этого модуля могут обеспечивать работу со звуком. Частоту звука определяет процедура sound (<число герц>). Длительность звука регулируется процедурой delay (<длительность звука в мс.>) и процедурой nosound - отключение звука.

Короткий звуковой сигнал можно обеспечить, используя символ #7 в списке вывода оператора write. В списке вывода также можно использовать еще 4 специальных символа:

#8 - смещение курсора влево на одну позицию

#10 - сдвиг курсора на одну строку вниз

#13 - перемещение курсора на левую границу окна

Комбинация #13#10 соответствует нажатию клавиши Enter.

 

Для активирования нового окна следует определить его границы. Для этого используется процедура window (x1, y1, x2, y2). Координаты x1, y1, x2, y2 - абсолютные, все остальные координаты в окне - относительные, а точкой отсчета считается верхний левый угол окна. В пределах окна курсор можно переместить на овую позицию, используя процедуру gotoxy (x, y). Если x, y выходят за пределы окна, то процедура игнорируется. Для изменения цветовой гаммы окна используются следующие процедуры:

textbackground (<…>) - изменяет цвет фона; в качестве аргументов выступают числа 0..7

textcolor (<…>) - изменяет цвет текста; в качестве аргументов выступают числа 0..15.

Для организации мерцающих цветов текста к константе цвета необходимо прибавить 128.

 

 

Модуль 6. Файлы

 

Файлы.

 

Файл - это последовательность однотипных компонентов.

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

Файл отличается от одномерного массива:

1) размещением на внешнем носителе;

2) произвольным в пределах носителя числом компонентов;

3) доступом к одному текущему компоненту в каждый момент времени.

В Паскале различают текстовые, типизированные и нетипизированные файлы.

При работе с файлами ключевым понятием является понятие файловой переменной.

Файловая переменная не является представлением одного конкретного файла. В зависимости от класса файла ее можно объявить одним из трех способов.

var

< ФП >: text;

< ФП >: file of < тип компонентов >;

<ФП>: file;

Для сопоставления файловой переменной с именем конкретного файла используется процедура assign (<ФП>, 'путь_к_файлу\имя_файла');

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

Файл, содержимое которого полностью заменяется, открывается процедурой rewrite (<ФП>). Файл, содержимое которого продолжает использоваться путем чтения, открывается процедурой reset (<ФП>).

Текстовые файлы могут быть открыты на дозапись процедурой append (<ФП>).

Для чтения компонентов файла используются процедуры read, readln и blockread. Первым аргументом в их списке стоит файловая перемнная, а затем обычный список вывода. Для записи компонентов в файл используются процедуры write, writeln и blockwrite.

После завершения работы с файлом его необходимо закрыть процедурой close (<ФП>).

Закрытый файл можно удалить erase (<ФП>) и переименовать rename (<ФП>, 'новое_имя').

Функция eof является логической и возвращает значение истина если достигнут конец файла. При работе с текстовыми файлами в конец каждой строки добавляется соответствующий знак, который можно найти, используя логическую функцию eoln. Этот символ в конец строки может быть поставлен принудительно. Для этого используется клавиша Enter.

Для набора текстовых файлов вне языка Паскаль можно использовать текстовый редактор edit.com.

Наряду с функциями eof и eoln могут использоваться seekeof (<ФП>) и seekeoln (<ФП>), "предчувствующие" окончание файла или строки, т.е. они распознают признак конца, если перед ним находятся пробелы или маркеры табуляции.

 

 

Сортировка файлов.

 

Для сортировок файлов можно воспользоваться несколькими приемами:

  1. Записать файл в массив. Отсортировать массив. Записать массив в файл;
  2. Используя динамические структуры создать в памяти структуру, подобную файлу. Отсортировать в этой структуре файл и переписать его заново;
  3. Сортировка файлов без записи в память, т.е. на внешних устройствах.

Третий прием может быть реализован следующими способами:

1) просматривается весь файл. Находится максимальный элемент. Записывается в новый файл. Старый файл переписывается без найденного элемента и т.д.

2) пузырьковая сортировка. Из файла читаются два элемента. Больший записывается в новый файл, а меньший в конец старого. Просматривается весь файл до конца. Созданный вновь файл сортируется тем же способом. Сортировка останавливается когда в сортируемый файл не производится записи.

3) сортировка слиянием. Сортировка проводится в два этапа. На первом этапе сортируемый файл разделяется на два по определенному признаку. Элементы в новых файлах будут отсортированы. На втором этапе созданные файлы сливаются, создавая общий порядок сортировки.

function order (x, y: integer): boolean;

begin

if x<y then order:=true else order:=false;

end;

procedure separator (s, d1, d2: file; var sort:boolean);

var a, b:integer;

last: boolean;

dirout: 1..2;

begin

reset (s);

rewrite (d1);

rewrite (d2);

sort:=true;

dirout:=1;

if not eof (s) then

begin

read (s, a);

while not eof (s) do

begin

read (s, b);

last:= not order (a, b);

case dirout of

1: write (d1, a, last);

2: write (d2, a, last);

end;

if last then begin

case dirout of

1: dirout:=2;

2: dirout:=1;

end;

sort:=false;

end;

a:=b;

end;

case dirout of

1: write (d1, a, true);

2: write (d2, a, true);

end;

end;

close (s);

close (d1);

close (d 2);

end;

 

 



Поделиться:


Последнее изменение этой страницы: 2020-12-09; просмотров: 114; Нарушение авторского права страницы; Мы поможем в написании вашей работы!

infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 18.227.21.127 (0.011 с.)