Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Язык программирования Pascal - redact Мигунов.doc
Скачиваний:
8
Добавлен:
20.09.2019
Размер:
434.69 Кб
Скачать

Процедуры.

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

Пример:

Delete (‘река Волга’, 1, 5); {результат «Волга»}

Чтобы вставить одну строку в другую, начиная с определенной позиции используют процедуру Insert.

Пример:

St:=’СанктПетербург’;

Insert (‘-’, St, 6); {результат «Санкт-Петербург»}

Чтобы преобразовать число в строку используется процедура Str.

Пример:

Str (157; st);

st:=’157’;

Чтобы преобразовать строку в число используется процедура Val.

Пример:

Val (‘157’, A, Cod); {результат А:=157 Cod=0}

Если преобразование произошло успешно, то код равен нулю (Cod=0), в противном случае Cod будет содержать номер позиции первого ошибочного символа.

Функции.

Чтобы из одной строки выделить подстроку определенной длины, начиная с определенной позиции используют функцию Copy.

Пример:

St2:=Copy (‘abcdef’, 3, 2);

St2:=’cd’;

Чтобы объединить несколько строк в одну результирующую используют функцию Concat.

Пример:

St:=Concat (‘Петров’, ‘ ‘, ‘Сергей’, ‘ ‘, ‘Петрович’);

Чтобы определить длину строки используют функцию Length.

Пример:

Dlina:=Length (‘Хорошо’); {результат «6»}

Чтобы определить номер позиции первого появления подстроки в строке используют функцию Pos.

Пример:

h:=Pos (‘0’, ‘Хорошо’); {результат равен «2»}

Чтобы преобразовать маленькую строчную в заглавную используется функция Upcase.

Пример:

S:=Upcase (s);

Текстовый файл.

Текстовый файл – это совокупность строк переменной длины, описывается следующим образом:

var

<файловая переменная>: text;

Заканчивается текстовый файл маркером конца файла, кодом 26.

Каждая строка заканчивается маркером конца строки, который имеет два кода #13, #10.

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

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

Read (<файловая переменная>; ch: char); – читает один символ из строки.

Write (<файловая переменная>; ch: char); - записывает один символ строки из памяти в файл.

Readln (<файловая переменная>; st: string); - читает строку из файла.

Writeln (<файловая переменная>; st: string); - записывает строку в текстовый файл.

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

Eof (<файловая переменная>);

Чтобы открыть текстовый файл для добавления строки используют процедуру Append.

Append (<файловая переменная>);

Если в процедурах Read, Readln, Write, Writeln не указана файловая переменная, то по умолчанию считается, что информация вводится с клавиатуры и находится в системном файле с именем Input и выводится на монитор из системного файла Output. Input и Output текстовые файлы.

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

Модули

Модули – это отдельно компилируемая программная единица.

Модуль храниться на диске в отдельном файле, самостоятельно не выполняется и предназначен для создания библиотеки процедур и файлов. Размер модуля не должен превышать 64кБйт. Можно одновременно использовать столько модулей, сколько позволяет оперативная память.

Модуль имеет следующую структуру:

{I} unit <имя модуля>;

{II} interface <интерфейсная часть>;

{III} implementation <исполнительная часть>;

{IV} [begin <инициирующая часть>];

End.

unit my__unit;

interface // объявления процедур и функций, доступных программам, использующим этот модуль

function IsInt(ch : char) : Boolean; // функция Islnt проверяет, является ли символ допустимым во время ввода целого числа

function IsFloat(ch : char; st: string) : Boolean;

// Функция IsFloat проверяет, является ли символ допустимым

// во время ввода дробного числа

// ch — очередной символ

// st — уже введенные символы

implementation // реализация

// проверяет, является ли символ допустимым

// во время ввода целого числа

function Islnt(ch : char) : Boolean;

begin

if (ch >= '0') and (ch <= '9') // цифры

or (ch = #13) // клавиша <Enter>

or (ch = #8) // клавиша <Backspace>

then Islnt := True // символ допустим

else Islnt := False; // недопустимый символ

end;

// проверяет, является ли символ допустимым

// во время ввода дробного числа

function IsFloat(ch : char; st: string) : Boolean;

// ch — очередной символ // st — уже введенные символы

begin

if (ch >= '0') and (ch <= '9') // цифры

or (ch = #13) // клавиша <Enter>

or (ch = #8) // клавиша <Backspace>

then

begin

IsFloat := True; // символ верный

Exit; // выход из функции

end;

case ch of

'-':

if Length(st) = 0 then

IsFloat := True;

',':

if (Pos(',',st) = 0) and (st[Length(st)] >= '0') and (st[Length(st)] <= '9') then // разделитель можно ввести только после цифры

// и если он еще не введен

IsFloat := True; else // остальные символы запрещены

IsFloat := False; end

// это раздел инициализации, он в данном случае не содержит инструкция

end.