№16. ПРОЦЕДУРЫ И ФУНКЦИИ.
Для решения сложных задач выполняется разделение на отдельные подзадачи.
Структура процедуры:
Procedure имя[(формальные параметры)];
const
type
var
procedure
Begin
End;
Структура функции:
function имя[(…)];тип рез-та
Среди операторов должен быть хотя бы 1,кот. функции значение результата…
ОБЛАСТЬ ДЕЙСТВИЯ ИДЕНТИФИКАТОРОВ назыв. часть проги, где этот идентификатор может использоваться. Если id (переменная) доп. использ. только в рамках 1 проц. или функц., то они наз. локальными. Если их действие распростр. на неск. влож. проц. и функц., то – глобальными.
Область действия id:
–действ. все id, определённые внутри процедуры,
–действ. все внешн. id, если их имена отличаются от имён внутри проц.
–лок. Id во внешн. окружении не действ.
–при совпадении имён лок. и глоб. id действ. будет только лок. id
–лок. созд. при вызове проц. и во время выполнения.
Классификация способов передачи параметров, механизм работы.
При активизации процедуры и функции её можно передавать параметр. Сфера действия имён параметров – как у локальных данных.
Параметры различаются:
1)по механизму передачи:
–по значению(value)
–по адресу (по ссылке)(addr)
2)по взаимодействию вызывающей и вызываемой проц. функц.:
–только как входной параметр(in)
–только как выходной(out)
–как входной так и выходной(inout)
Теоретически возможно 6 способов передачи информации.
1. value in – параметр значений. При описании заголовков процедур и функций перед id параметров значений доп. ключ слова не ставятся. Procedure MyPr
(p1,p2,p3:тип). Механизм работы: Факт. парам.формальн. параметр. В ячейки памяти форм. параметр передается копия факт. и обратно не возвр.
При вызове:
–вып. выделение памяти под формальные данные
–вып. копирование значений фактических параметров в выделяя память.
Во время работы:
–изменение значений формальных параметров не оказывает никакого влияния на содержимое памяти ячеек фактического параметра.
При окончании выделенная память очищается, нов. знач. форм. параметров, получения в поц. теряются.
2. addr inout –параметр значений. При описании ставится ключевое слово var p1,p2:тип1; var p3:тип2. Механизм работы: Факт. парам. формальный параметр. – передаётся адрес факт. парам., – по адресу изм. содержимое ячеек памяти факт. параметра, т.е. выполняется возврат рез-та.
При вызове:
–вып. выделение памяти только для локальных данных и сохранённых адресов фактического параметра
–вып. копир. адресов факт. парам. в выделяется память..
Во время работы:
–запрещено изменение значений форм. парам.
–исп. значений ф. парам разрешено только в качестве исх. данных.
При окончании выделенная память очищается, влияние вызываемой проц ф. на выз. через такие пар-ры отсутствуют.
3. in–параметр константы. При описании ставится параметр константа. слово Procedure MyPr (const p1:type1,p2:type2). Механизм работы: Факт. парам. формальн. параметр. передаётся адрес факт. парам. по имеющему адресу, разрешено только брать, не изменять.
При вызове:
–вып. выделение памяти только для лок. данных и сохранение адресов факт. парам.
–вып. копир. адресов факт. парам. в выделяя память..
Во время работы:
–запрещено изменение значений форм. парам.
–исп. значений ф. парам разрешено только в качестве исх. данных.
При окончании выделенная память очищается, влияние вызываемой процедуры функции на выз. через такие параметры отсутствуют.
Бес типовые могут передаваться только по адресу, их нельзя исп. как типизированные.
№17 Файлы, классификация , процедуры и функции работы с файлами
Файлы в Pascal
Файлы
|
№18 СТРОКИ.
Операции над строками
–присваивание имя строковой переменной:=строковое выражение
–сцепление +
–операции соотношения (по кодовой таблице)
Str-string
I,j:integer
Length(str) – выч. длину строки Str. Целочисленный тип.
Copy(Str,i,j)–выделяет из Str подстроку длиной j,начиная с i. Если i>Length(str), то рез – пробел
Delete(Str,i,j)–удаляет из строки Str подстроку длиной j, начиная с позиции i.
Insert(Str1,Str2,i)–вставляет строку Str1 в строку Str2, начиная с позиции i.
Pos(Str1,Str2)–определяет наименьший № эл-та в Str2, начиная с которого Str1 входит в строку Str2 как подстрока. Если подстрока не найдена, то результат =0, Результат типа Byte.
№19 СОРТИРОВКИ: ВНУТРЕННИЕ И ВНЕШНИЕ, ЗАПИСЕЙ И КЛЮЧЕЙ, ЭФФЕКТИВНОСТЬ.
Для ускорения поиска данные должны быть отсортированы по тому признаку, по которому будет проводиться поиск. Файл размером n – некоторая последовательность из n элементов r1,r2,…,rn. Каждый элемент в этом файле – запись. У каждой записи ri есть ключ ki, по которому файл будет отсортирован и по которому поиск.
Файл отсортирован по ключу ki, если для i<j ki предшествует kj при некоторой упорядоченной последовательности по ключам. Внутренняя сортировка – вся сортируемая инфа храниться в операторе памяти, внешняя – часть во внутр, часть во внешн.