Remkomplekty.ru

IT Новости из мира ПК
2 просмотров
Рейтинг статьи
1 звезда2 звезды3 звезды4 звезды5 звезд
Загрузка...

Паскаль модуль dos

Модуль DOS

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

В модуле Dos введены процедуры и функции, позволяющие получить доступ к некоторым ресурсам DOS.

Для поиска первого и следующего файла с заданным именем используются соответственно процедуры:

FindFirst (Path:String; Attr:Word; Var S:SearchRec);

FindNext (Var S:SearchRec);

Path — путь и имя искомого файла. При отсутствующем пути поиск производится в текущем каталоге, возможно использование шаблонов.

Attr — задаваемые атрибуты файла. В качестве Attr можно использовать константу AnyFile, означающую любые атрибуты.

S — возвращаемая переменная со следующей структурой:

Fill: Array [1..21] of byte;

Здесь поле Fill содержит служебную информацию DOS.

Attr — реальные атрибуты файла.

Time — дата и время создания файла в упакованном виде.

Size — размер файла в байтах.

Name — имя найденного файла.

Искомый файл может отсутствовать, поэтому после использования этих и некоторых следующих процедур анализируют системную переменную DosError, описанную выше.

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

UnpackTime (Time:LongInt; Var DT:DateTime);

Выходным параметром для неё является запись DT, имеющая следующую структуру:

Year, Month, Day, Hour, Min, Sec: Word

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

While DosError=0 do

WriteLn(‘ Файл ‘,S.Name,’ создан ‘,

‘ размер ‘,S.Size,’ байт’);

Если необходимо искать файлы не в одном, а в нескольких каталогах, то используют функцию

FSearch (Path:PathStr; DirList:String): PathStr;

Тип PathStr является предопределенным:

Здесь: Path — имя искомого файла, может быть составным.

DirList — список каталогов, в которых будет производиться поиск, каталоги разделяются точкой с запятой, например:

S:= FSearch (‘EDIT.EXE’,’C:DOS;C:NC;C:NU’);

В текущем каталоге поиск производится автоматически. В случае удачного поиска переменной присваивается строка, содержащая составное имя файла, в случае неудачи – пустая строка.

Список каталогов используется аналогично принятым правилам в DOS. Обычно в файле автозапуска AUTOEXEC.BAT содержится команда PATH, присваивающая этой переменной окружения имена каталогов, в которых находятся наиболее часто используемые файлы. В этом случае поиск файлов из среды DOS производится не только в текущем и корневом каталогах, но и в каталогах, указанных в этой команде.

Чтобы воспользоваться этой переменной, в модуле DOS введена функция

GetEnv (EnvVar:String):String;

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

то после выполнения

S примет значение

что может являться аргументом функции FSearch.

Из составного имени файла можно отдельно выделить полный путь, чисто имя и расширение процедурой

FSplit (Path:PathStr; Var Dir:DirStr; Var Name:NameStr; Var Ext:ExtStr);

Паскаль модуль dos

Модуль Dos позволяет использовать возможности операционной системы MS DOS, не предусмотренные в стандарте языка Паскаль, и содержит типы, константы, переменные и подпрограммы для реализации этих дополнительных возможностей.

Стандартные типы модуля приведены в табл. 33.

Таблица 33. Типы модуля Dos

Имя Определение Назначение
Регистровый тип (для процедур Intr и MsDos)
Registers record
case Integer of
0: (AX,BX,CX,DX,BP,SI,DI,DS,ES,Flags: Word);
1: (AL,AH,BL,BH,CL,CH,DL,DH: Byte)
end;

Файловые типы
FileRec record Файл с заданным типом или без типа
Handle : Word;
Mode : Word;
RecSize : Word;
Private : array[1..26]
of Byte;
UserData: array!1..16]
of Byte;
Name : array[0..79]
of Char
end;
TextBuf array[0..127] of Char; Буфер текстового файла

TextRec record Текстовый файл
Handle : Word;
Mode : Word;
BufSize : Word;
Private : Word;
BufPos : Word;
BufEnd : Word;
BufPtr : «TextBuf;
OpenFunc : Pointer;
InOutFunc: Pointer;
FlushFunc: Pointer;
CloseFunc: Pointer;
UserData : array[1..16]
of Byte;
Name : array[0..79]
of Char;
Buffer : TextBuf
end.

Типы характеристик файлов
ComStr string!127]; Командная строка
PathStr string[79]; Полное имя файла
DirStr string[67]; Полное имя каталога
NameStr string[8]; Имя файла
ExtStr string! 4]; Расширение имени файла

Тип характеристик файла для процедур FindFirst и FindNext
SearchRec record
Fill: array!1..21]
of Byte;
Attr: Byte;
Time: Longint;
Size: Longint;
Name: string[12]
end;

Типы текущего времени
DateTime record
Year,Month,Day,
Hour,Min,Sec: Word;
end;

Для типа Registers задана вариантная запись, чтобы регистры АХ, ВХ, СХ и DX можно было рассматривать и как 16-битовые, и как совокупность двух 8-битовых.

В файловых типах FileRec и TextRec поля содержат следующую информацию: Handle — описатель файла (уникальное число, присваиваемое файлу операционной системой), Mode — состояние файла (закрыт, открыт для записи, открыт для чтения, открыт для чтения и записи — см. табл. 34), RecSize — длина записи в байтах, Private — зарезервированная область, UserData — область, куда можно записать свою информацию, Name — полное имя файла, завершающаяся символом #0, BufSize — размер буфера текстового файла в байтах, BufPos — позиция текущего символа в буфере текстового файла, BufEnd — общее число символов, записанных в буфер, BufPtr — указатель на буфер текстового файла, OpenFunc, InOutFunc, FlushFunc, CloseFunc — указатели на подпрограммы управления текстовым файлом, Buffer — буфер текстового файла.

Тип SearchRec содержит следующие поля: Fill — поле, зарезервированное для операционной системы, Attr — атрибуты файла, Time — время создания или последней модификации файла, Size — размер файла, Name — имя файла.

Переменная типа DateTime может использоваться для размещения распакованной информации о дате и времени.

TURBO PASCAL

Модуль dos

Модуль Dos реализует ряд очень полезных программ операционной системы и обработки файлов. Ни одна из программ модуля Dos не определена стандартом Паскаля и поэтому они размещены в собственном модуле.

Для ознакомления с полным описанием операций DOS обращайтесь к техническому руководству по IBM MS -DOS.

П.5.1. Константы, типы и переменные

Каждая из констант, типов и переменных, определяемых модулем Dos коротко обсуждены в этом разделе.

П.5.1.1. Константы

П.5.1.1.1. Константы флагов

Следующие константы используются для проверки отдельных битов флага в регистре Flags после вызова Intr или MSDOS:

Читать еще:  Актуальность проблемы обеспечения безопасности информации

Например, если R — запись типа регистр, то тест

R.Flags and FCarry <> 0

R.Flags and FZero = 0

равен true соответственно, если Carry-флаг установлен и если Zero-флаг сброшен.

П.5.1.1.2. Константы режима файла

Эти константы используются процедурами обработки файлов, при открытии и закрытии дисковых файлов. Поля режимов файловых переменных Turbo Pascal будут содержать одно из значений, указанных ниже:

П.5.1.1.3. Константы атрибутов файла

Эти константы используются для проверки, установки и очистки битов файловых атрибутов в процедурах GetFAttr, SetFAttr, FindFirst, FindNext:

Эти константы можно суммировать. Так , например , оператор

будет искать все файлы (*.*) «только для чтения» (ReadOnly) и подкаталоги в текущем каталоге (Directory).

Константа AnyFile — это просто сумма всех атрибутов.

П.5.1.2. Типы

П.5.1.2.1. Типы файловых записей

Определения записей, используемых ‘внутри’ Turbo Pascal, также определены в модуле Dos. FileRec используется для типизированных и не типизированных файлов, а TextRec — внутренний формат файловой переменной типа Тext.

Private : array [1..6] of Byte;

UserData : array [1..16] of Byte;

Name : array [0..79] of Char;

TextBuf = array [0..127] of Char;

UserData : array [1..16] of Byte;

Name : array [0..79] of Char;

П.5.1.2.2. Тип Registers

Переменные типа Registers используются процедурами Intr и MSDos для указания содержимого входного значения регистров и проверки выходного содержимого регистров для программного прерывания.

case Integer of

0: (AX, BX, CX, DX, BP, SI, DI, DS, ES, Flags: Word);

1: (AL, AH, BL, BH, CL, CH, DL, DH: Byte);

Заметим, что можно пользоваться одновременно и 8-ми и 16-ти битовыми регистрами.

П.5.1.2.3. Тип DataTime

Переменные типа DataTime используются в сочетании с процедурами UnPacTime и PackTime для проверки и создания 4-байтовых упакованных значений даты и времени в процедурах GetFTime, SetFTime, FindFirst и FindNext.

Year, Month, Day, Hour, Min, Sec: Integer;

Диапазон допустимых значений : Year = 1980..2099, Month = 1..12, Day = 1..31, Hour = 0..23, Min = 0..59, Sec = 0..59.

П.5.1.2.4. Тип SearchRec

Переменная типа SearchRec используется процедурами FindFirst и FindNext для просмотра каталогов:

SearchRe с = record

File: array[1..21] of Byte;

Информация, найденная для каждого файла одной из этих процедур, возвращается в SearchRec. Поле Attr содержит атрибуты файла (сформировано из констант атрибутов), Time содержит упакованные время и дату (используйте UnPackTime для распаковки), Size содержит размер файла в байтах и Name содержит имя файла. Поле Fill резервируется операционной системой и никогда не должно модифицироваться.

П.5.1.2.5. Строковые типы для обработки файлов

Эти строковые типы используются в процедуре FSplit:

П.5.1.3. Переменные

П.5.1.3.1. Переменная DosError

Переменная DosError используется многими программами в модуле Dos при обработке ошибок.

var DosError : Integer;

Значение, запомненное в DosError, представляет собой код ошибки операционной системы. Значение 0 означает «нет ошибки», другие коды означают:

2 файл не найден

3 путь не найден

5 доступ запрещен

6 неверный обработчик

10 неправильная среда

11 неправильный формат

18 больше нет файлов

П.5.2. Процедуры и функции

П.5.2.1. Процедуры даты и времени

GetDate — возвращает текущую дату, установленную в DOS.

GetFTime — возвращает дату и время последней записи в файл.

GetTime — возвращает текущее время, установленное в DOS.

PackTime — преобразует запись в 4 байтовое упакованное значение даты и времени типа longint, используемое процедурой SetFTime. Поля записи Date Ti me не проверяются на диапазон.

SetData — устанавливает текущую дату в DOS.

SetFTime -устанавливает время и дату последней записи в файл.

SetTime — устанавливает текущее время в DOS.

UnPackTime — преобразует 4-х байтовое упакованное значение даты и времени, возвращаемое GetFTime, FindFirst или FindNext в распакованную запись типа DateTime.

П.5.2.2. Процедуры обслуживания прерываний

GetIntVeс — возвращает адрес, хранящийся в указанном векторе прерывания.

Intr — выполняет указанное программное прерывание.

MSDos — выполняет функцию операционной системы.

SetIntVec — устанавливает адрес для указанного вектора прерывания.

П.5.2.3. Функции статуса диска

DiskFree — возвращает число свободных байт на указанном диске.

DiskSize — возвращает полный объем указанного диска в байтах.

П.5.2.4. Процедуры обработки файлов

FindFirst — ищет в указанном или текущем каталоге (справочнике, папке) первый файл, соответствующий заданному имени файла и набору атрибутов.

FindNext — возвращает следующий файл, соответствующий имени и атрибутам, указанным в предыдущем вызове FindFrst.

GetFAttr — возвращает атрибуты файла.

SetFAttr — устанавливает атрибуты файла.

FSplit — разбивает имя файла на 3 составные части (справочник, имя файла, расширение). П.5.2.5. Функции обработки файла

FExpand — берет имя файла и возвращает полное имя файла (устройство, справочник, имя и расширение).

FSearch — ищет файл в списке справочников.

П.5.2.6. Процедуры обработки процессов

Exec — выполняет заданную программу с указанной командной строкой.

Keep — завершает программу и оставляет ее в памяти (реализует прерывание «завершить и оставить резидентным» — TSR).

SwapVectors — меняет сохраненные вектора прерываний с текущими векторами

П.5.2.7. Функция обработки процессов

DosExitCode — возвращает код завершения подпроцесса.

П.5.2.8. Функции управления средой

EnvCount — возвращает число строк, содержащихся в среде DOS.

EnvStr — возвращает указанную строку среды.

GetEnv — возвращает значение указанной переменной среды.

П.5.2.9. Дополнительные процедуры

GetCBreak — возвращает состояние проверки Ctrl-Break в DOS.

SetCBreak — устанавливает состояние проверки Ctrl-Break в DOS.

GetVerify — возвращает состояние флага верификации в DOS.

SetVerify — устанавливает состояние флага верификации в DOS.

П.5.2.10. Дополнительная функция

DosVersion — возвращает номер версии DOS.

ПРИЛОЖЕНИЕ 6

СПРАВОЧНЫЙ МАТЕРИАЛ по кодировке символов в Ms dos .

Коды ASCII

Американский стандартный код для обмена информацией ( American Standard Code for Information Interchange — ASCII) — это код, который переводит алфавитные и цифровые символы, знаки и управляющие команды в 7-ми битовый двоичный код (для MS DOS ). В таблице П.6.1 показаны печатаемые (32..126) и управляющие (0..31, 127) символы (в десятичной и в шестнадцатеричной системах счисления — соответственно 10сс и 16сс).

Таблица П.6.1. Таблица стандартных кодов ASCII

В табл. П.6.2 дана расшифровка управляющих символов (0..31). Здесь и далее приняты следующие условные обозначения: ASC — ASCII— символ, Dec — десятичная система счисления (Decimal), Hex — шестнадцатеричная система счисления (Hexadecimal), Binary — двоичная система счисления.

Читать еще:  Квадратный корень в си шарп

Таблица П.6.2. Управляющие коды ASCII

Обычно эта кодировка символов одинакова для всех IBM PC совместимых компьютеров. Остальные коды (128..255) соответствуют так называемым национальным алфавитам, символам псевдографики и прочим символам, которые, естественно, отличаются для разных стран. В табл. П.6.3 приведены символы, соответствующие альтернативной кодировке ГОСТа для символов кириллицы (русские буквы), псевдографики и прочих символов. Этот стандарт принят в настоящее время для всех компьютеров, поступающих в страны СНГ. Первые 128 символов, как видно, ничем не отличаются от символов, приведенных в табл.П.6.1. Эта таблица взята без изменения из распространенных компьютерных справочников (типа TECH ), поэтому вид ее несколько отличается от предыдущей таблицы.

Pascal. Модуль (UNIT)

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

Турбо-Паскаль обеспечивает Вам доступ к большому числу встроенных констант, типов данных, переменных, процедур и функций. Некоторые из них специфичны для Турбо-Паскаля; другие специфичны для персонального компьютера РС фирмы IBM (и совместимых с ним компьютеров) или для операционной системы MS-DOS. Их количество велико, однако, в своей программе Вы редко используете их все сразу. Поэтому они разделены на связанные группы, называемые модулями. В этом случае Вы можете использовать только те модули, которые необходимы в программе.

Структура модуля

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

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

Заголовок модуля начинается зарезервированным словом unit, за которым следует имя модуля (идентификатор) точно так же, как и в случае имени программы. Следующим элементом в модуле является ключевое слово interface. Оно обозначает начало секции интерфейса модуля — секции, видимой всем другим модулям или программам, в которых он используется.

Модуль может использовать другие модули, для этого они определяются в предложении uses. Предложение uses, если имеет место, то следует сразу после ключевого слова interface. Отметим, что здесь выполняется общее правило использования предложения uses: если модуль, имя которого указано в предложении uses, использует другие модули, то имена этих модулей также должны быть указаны в предложении uses, причем до того, как они будут использованы.

Стандартные модули

Файл TURBO.TPL содержит все стандартные пакеты, кроме Graph и пакетов совместимости (Graph3 и Turbo3): System, Overlay, Crt, Dos и Printer. Эти пакеты загружаются в память вместе с Турбо-Паскалем и всегда вам доступны. Обычно файл TURBO.TPL хранят в одном каталоге с TURBO.EXE (или TPC.EXE). Вы можете хранить его и в другом каталоге, если он описан как каталог Турбо-Паскаля. Для этого необходимо с помощью TINST.EXE установить этот каталог в файле TURBO.EXE.

Используемые пакеты: нет

System содержит все стандартные и встроенные процедуры и функции Турбо-Паскаля. Любая подпрограмма Турбо-Паскаля, не являющаяся частью стандартного Паскаля и не находящаяся ни в каком другом модуле, содержится в System. Этот модуль присоединяется ко всем программам.

Используемые пакеты: нет

DOS определяет многочисленные паскалевские процедуры и функции, которые эквивалентны наиболее часто используемым вызовам DOS, как например, GetТime, SetТime, DiskSize и так далее. Кроме того, он определяет две программы низкого уровня МsDos и Intr, которые позволяют активизировать любой вызов MS-DOS или системное прерывание. Registers представляет собой тип данных для параметра в МsDos и Intr. Кроме того, определяются некоторые другие константы и типы данных.

Используемые пакеты: нет

Overlay — содержит инструменты для создания оверлейных программ. Программа OVERKAY — программа, которая загружается не вся , а по частям.

Используемые пакеты: нет

Crt обеспечивает набор специфичных для РС описаний констант, переменных и программ для операций ввода/вывода. Последние можно использовать для работы с экраном (задание окон, непосредственное управление курсором, цвет текста и фона). Кроме того, Вы можете осуществлять «необработанный» ввод с клавиатуры и управлять платой генерации звукового сигнала персонального компьютера. Этот модуль обеспечивает множество подпрограмм, которые были стандартными в версии 3.0.

Используемые пакеты: Crt

В модуле Printer дано описание переменной текстового файла Lst, которая связывается с драйвером устройства, позволяющим направлять стандартный для Паскаля вывод на печатающее устройство с помощью Write и Writeln. Например, включив Printer в свою программу, Вы можете сделать следующее:

Используемые пакеты: Crt

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

Используемые пакеты: Crt

Этот модуль содержит две переменные и несколько процедур, которые больше не поддерживаются Турбо-Паскалем. Они включают встроенную файловую переменную Кbd, булеву переменную CBreak и первоначальные целочисленные версии MemAvail и MaxAvail (которые возвращают размер свободной памяти в параграфах, а не в байтах, как это делают настоящие версии).

Используемые пакеты: Crt

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

Этот модуль реализует независимый от устройства графический драйвер фирмы «Борланд», позволяющий поддерживать графические адаптеры типа СGА, ЕGА, Hercules, АТТ 400, МСGА, 3270 РС и VGА.

Написание собственных модулей

Допустим, Вы написали модуль IntLib, записали его в файл INTLIВ.PAS и оттранслировали на диск; получившийся в результате код находится в файле INTLIВ.ТРU. Для использования этого модуля в программе необходимо включить в нее оператор uses, указывающий компилятору, какой модуль используется. Ваша программа может выглядеть следующим образом:

Читать еще:  Удалить лишние пробелы паскаль

Отметим, что Турбо-Паскаль предполагает, что файл, в котором находится модуль, имеет такое же имя, что и сам модуль. Если имя Вашего модуля МyUtilities, то Турбо-Паскаль будет искать файл с именем МYUTILIТ.PAS.

Модуль компилируется точно так же, как компилируется программа: он создается с помощью редактора, а затем вызывается команда Соmpile/Соmpile (Компилировать/ Компилировать) (или нажимаются клавиши Аlt-С). Однако, вместо файла с расширением .ЕХЕ Турбо-Паскаль создает файл с расширением .ТРU (Turbо Раscal Unit — модуль Турбо-Паскаля). После этого Вы можете оставить этот файл как есть или же вставить его в ТURВО.TPL с помощью TPUMOVER.ЕХЕ.

В любом случае имеет смысл переслать файлы с расширением *.ТРU (вместе с исходными файлами) в каталог модулей, который определен с помощью команды О/D/Unit directories (Каталоги модулей). В одном исходном файле может находиться только один модуль, поскольку компиляция прекращается, как только обнаружен завершающий оператор end.

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

Введем эту подпрограмму, запишем ее в файл INTLIВ.PAS, а затем оттранслируем на диск. В результате получим код модуля в файле INTLIВ.ТРU. Перешлем его в каталог модулей. Следующая программа использует модуль IntLib:

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

Модульное программирование

Использование модулей

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

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

Если в программе описана величина с тем же именем, что и в модуле, для обращения к величине из модуля требуется перед ее именем указать через точку имя модуля.

Пример использования модуля из пример 4.6 приведен в пример 4.7. Программа находит разность средних арифметических значений двух вещественных массивов.

Стандартные модули Паскаля

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

Модуль System

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

Модуль Crt

Модуль Crt предназначен для организации эффективной работы с экраном, клавиатурой и встроенным динамиком. При подключении модуля выводимая информация посылается в базовую систему ввода-вывода (ВIОS) или непосредственно в видеопамять. При этом ввод-вывод выполняется быстрее, кроме того, появляется возможность управлять цветом и размещением на экране.

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

Модуль Crt позволяет:

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

Пример. Программа «Угадай число» ( пример 4.8).

Генератор случайных чисел формирует число, находящееся в диапазоне от нуля до max – 1 . Пользователь вводит числа в одну и ту же позицию на экране до тех пор, пока не угадает это число. При угадывании с первого раза коэффициент невезучести равен нулю.

Модули Dos и WinDos

Модули Dos и WinDos содержат подпрограммы, реализующие возможности операционной системы MS-DOS, такие как переименование, поиск и удаление файлов, получение и установка системного времени, выполнение программных прерываний и т. д. Эти подпрограммы в стандартном Паскале не определены. Для поддержки подпрограмм в модулях определены константы и типы данных.

Модуль Dos использует строки Паскаля, а WinDos — строки с завершающим нулем.

Модуль Graph

Модуль обеспечивает работу с экраном в графическом режиме.

Экран в графическом режиме представляется в виде совокупности точек — пикселов (pixel, сокращение от picture element ). Цвет каждого пиксела можно задавать отдельно. Начало координат находится в левом верхнем углу экрана и имеет координаты (0, 0). Количество точек по горизонтали и вертикали ( разрешение экрана ) и количество доступных цветов зависят от графического режима. Графический режим устанавливается с помощью служебной программы — графического драйвера.

В состав оболочки входят несколько драйверов, каждый из которых может работать в нескольких режимах. Режим устанавливается при инициализации графики либо автоматически, либо программистом. Самый «мощный» режим, поддерживаемый модулем Graph , — 640 480 точек, 16 цветов. Модуль Graph обеспечивает:

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

Модуль Strings

Модуль Strings предназначен для работы со строками, заканчивающимися нуль-символом, то есть символом с кодом 0 (их часто называют ASCIIZ-строки). Этот вид строк введен в Паскаль специально для работы с длинными строками и программирования под Windows. Модуль Strings содержит функции копирования, сравнения, слияния строк, преобразования их в строки типа string , поиска подстрок и символов.

Ссылка на основную публикацию
ВсеИнструменты
Adblock
detector
×
×