скачать книгу бесплатно
Возвращает синус аргумента.
X – выражение вещественного типа. Sin возвращает синус угла X в радианах.
9. Function Sqr(X: Extended): Extended;
Возвращает квадрат аргумента.
X – выражение с плавающей запятой. Результат того же самого типа, что и X.
10. Function Sqrt(X: Extended): Extended;
Возвращает квадратный корень аргумента.
X – выражение с плавающей запятой. Результат – квадратный корень X.
Процедуры и функции преобразования величин
1. Procedure Str(X [: Width [: Decimals]]; var S);
Преобразовывает число X в строковое представление согласно
Width и параметрам форматирования Decimals. X – выражение вещественного или целого типа. Width и Decimals – выражения целого типа. S – переменная типа String или символьный массив с нулевым окончанием, если допускается расширенный синтаксис.
2. Function Chr(X: Byte): Char;
Возвращает символ с порядковым номером X в ASCII-таблице.
3. Function High(X);
Возвращает наибольшее значение в диапазоне параметра.
4. Function Low(X);
Возвращает наименьшее значение в диапазоне параметра.
5. Function Ord(X): Longint;
Возвращает порядковое значение выражения перечислимого типа. X – выражение перечислимого типа.
6. Function Round(X: Extended): Longint;
Округляет значение вещественного типа до целого. X – выражение вещественного типа. Round возвращает значение Longint, которое является значением X, округленным до ближайшего целого числа. Если X находится точно посередине между двумя целыми числами, возвращается число с наибольшей абсолютной величиной. Если округленное значение X выходит за диапазон Longint, генерируется ошибка времени выполнения программы, которую вы можете обработать с использованием исключительной ситуации EInvalidOp.
7. Function Trunc(X: Extended): Longint;
Усекает значение вещественного типа до целого. Если округленное значение X выходит за диапазон Longint, генерируется ошибка времени выполнения программы, которую вы можете обработать с использованием исключительной ситуации EInvalidOp.
8. Procedure Val(S; var V; var Code: Integer);
Преобразовывает число из строкового значения S в числовое
представление V. S – выражение строкового типа – последовательность символов, которая формирует целое или вещественное число. Если выражение S недопустимо, индекс неверного символа сохраняется в переменной Code. В противном случае Code устанавливается в нуль.
Процедуры и функции работы с порядковыми величинами
1. Procedure Dec(varX [; N: Longlnt]);
Вычитает единицу или N из переменной X. Dec(X) соответствует X:= X – 1, и Dec(X, N) соответствует X:= X – N. X – переменная перечислимого типа или типа PChar, если допускается расширенный синтаксис, и N – выражение целочисленного типа. Процедура Dec генерирует оптимальный код и особенно полезна в длительных циклах.
2. Procedure Inc(varX [; N: Longlnt]);
Прибавляет единицу или N к переменной X. X – переменная перечислимого типа или типа PChar, если допускается расширенный синтаксис, и N – выражение целочисленного типа. Inc (X) соответствует инструкции X:= X + 1, и Inc (X, N) соответствует инструкции X:= X + N. Процедура Inc генерирует оптимальный код и особенно полезна в длительных циклах.
3. Function Odd(X: Longlnt): Boolean;
Возвращает True, если X – нечетное число, и False – в противном случае.
4. Function Pred(X);
Возвращает предыдущее значение параметра. X – выражение перечислимого типа. Результат того же самого типа.
5. Function Succ(X);
Возвращает следующее значение параметра. X – выражение перечислимого типа. Результат того же самого типа.
3. Операторы языка Pascal
Условный оператор
Формат полного условного оператора определяется следующим образом: If В then SI else S2; где В – условие разветвления (принятия решения), логическое выражение или отношение; SI, S2 – один выполняемый оператор, простой или составной.
При выполнении условного оператора сначала вычисляется выражение В, затем анализируется его результат: если В – истинно, то выполняется оператор S1 – ветвь then, а оператор S2 пропускается; если В – ложно, то выполняется оператор S2 – ветвь else, а оператор S1 – пропускается.
Также существует сокращенная форма условного оператора. Она записывается в виде: If В then S.
Оператор выбора
Структура оператора имеет следующий вид:
case S of
c1: insruction1;
c2: insruction2;
…
cn: insructionN;
else instruction
end;
где S – выражение порядкового типа, значение которого вычисляется;
с1, с2…., сп – константы порядкового типа, с которыми сравниваются выражения
S; instruction1,…, instructionN – операторы, из которых выполняется тот, с константой которого совпадает значение выражения S;
instruction – оператор, который выполняется, если значение выражения Sylq совпадает ни с одной из констант c1, с2…. сn.
Данный оператор является обобщением условного оператора If для произвольного числа альтернатив. Существует сокращенная форма оператора, при которой ветвь else отсутствует.
Оператор цикла с параметром
Операторы цикла с параметром, которые начинаются со слова for, вызывают повторяющееся выполнение оператора, который может быть составным оператором, пока управляющей переменной присваивается возрастающая последовательность значений.
Общий вид оператора for:
for <счетчик цикла> := <начальное значение> to <конечное значение> do <оператор>;
Когда начинает выполняться оператор for, начальное и конечное значения определяются один раз, и эти значения сохраняются на протяжении всего выполнения оператора for. Оператор, который содержится в теле оператора for, выполняется один раз для каждого значения в диапазоне между начальным и конечным значением. Счетчик цикла всегда инициализируется начальным значением. Когда работает оператор for, значение счетчика цикла увеличивается при каждом повторении на единицу. Если начальное значение превышает конечное значение, то содержащийся в теле оператора for оператор не выполняется. Когда в операторе цикла используется ключевое слово downto, значение управляющей переменной уменьшается при каждом повторении на единицу. Если начальное значение в таком операторе меньше, чем конечное значение, то содержащийся в теле оператора цикла оператор не выполняется.
Если оператор, содержащийся в теле оператора for, изменяет значение счетчика цикла, то это является ошибкой. После выполнения оператора for значение управляющей переменной становится неопределенным, если только выполнение оператора for не было прервано с помощью оператора перехода.
Оператор цикла с предусловием
Оператор цикла с предусловием (начинающийся с ключевого слова while) содержит в себе выражение, которое управляет повторным выполнением оператора (который может быть составным оператором). Форма цикла:
While B do S;
где B – логическое условие, истинность которого проверяется (оно является условием завершения цикла);
S – тело цикла – один оператор.
Выражение, с помощью которого осуществляется управление повторением оператора, должно иметь логический тип. Вычисление его производится до того, как внутренний оператор будет выполнен. Внутренний оператор выполняется повторно до тех пор, пока выражение принимает значение Тruе. Если выражение с самого начала принимает значение False, то оператор, содержащийся внутри оператора цикла с предусловием, не выполняется.
Оператор цикла с постусловием
В операторе цикла с постусловием (начинающимся со слова repeat) выражение, которое управляет повторным выполнением последовательности операторов, содержится внутри оператора repeat. Форма цикла:
repeat S until B;
где B – логическое условие, истинность которого проверяется (оно является условием завершения цикла);
S – один или более операторов тела цикла.
Результат выражения должен быть логического типа. Операторы, заключенные между ключевыми словами repeat и until, выполняются последовательно до тех пор, пока результат выражения не примет значение True. Последовательность операторов выполнится, по крайней мере, один раз, поскольку вычисление выражения производится после каждого выполнения последовательности операторов.
ЛЕКЦИЯ № 3. Процедуры и функции
1. Понятие вспомогательного алгоритма
Алгоритм решения задачи проектируется путем декомпозиции всей задачи в отдельные подзадачи. Обычно подзадачи реализуются в виде подпрограмм.
Подпрограмма – это некоторый вспомогательный алгоритм, многократно использующийся в основном алгоритме с различными значениями некоторых входящих величин, называемых параметрами.
Подпрограмма в языках программирования – это последовательность операторов, которые определены и записаны только в одном месте программы, однако их можно вызвать для выполнения из одной или нескольких точек программы. Каждая подпрограмма определяется уникальным именем.
В языке Pascal существуют два типа подпрограмм – процедуры и функции. Процедура и функция – это именованная последовательность описаний и операторов. При использовании процедур или функций программа должна содержать текст процедуры или функции и обращение к процедуре или функции. Параметры, указанные в описании, называются формальными, указанные в обращении подпрограммы – фактическими. Все формальные параметры можно разбить на следующие категории:
1) параметры-переменные;
2) параметры-константы;
3) параметры-значения;
4) параметры-процедуры и параметры-функции, т. е. параметры процедурного типа;
5) нетипизированные параметры-переменные.
Тексты процедур и функций помещаются в раздел описаний процедур и функций.
Передача имен процедур и функций в качестве параметров
Во многих задачах, особенно в задачах вычислительной математики, необходимо передавать имена процедур и функций в качестве параметров. Для этого в TURBO PASCAL введен новый тип данных – процедурный, или функциональный, в зависимости от того, что описывается. (Описание процедурных и функциональных типов приводится в разделе описания типов.)
Функциональный и процедурный тип определяется как заголовок процедуры и функции со списком формальных параметров, но без имени. Можно определить функциональный, или процедурный тип без параметров, например:
type
Proc = Procedure;
После объявления процедурного, или функционального, типа его можно использовать для описания формальных параметров – имен процедур и функций. Кроме того, необходимо написать те реальные процедуры или функции, имена которых будут передаваться как фактические параметры.
2. Процедуры в Pascal
Каждое описание процедуры содержит заголовок, за которым следует программный блок. Общий вид заголовка процедуры следующий:
Procedure <имя> [(<список формальных параметров>)];
Процедура активизируется с помощью оператора процедуры, в котором содержатся имя процедуры и необходимые параметры. Операторы, которые должны выполняться при запуске процедуры, содержатся в операторной части модуля процедуры. Если в содержащемся в процедуре операторе внутри модуля процедуры используется идентификатор процедуры, то процедура будет выполняться рекурсивно, т. е. будет при выполнении обращаться сама к себе.
3. Функции в Pascal
Описание функции определяет часть программы, в которой вычисляется и возвращается значение. Общий вид заголовка функции следующий:
Function <имя > [(<список формальных параметров>)]: <тип возвращаемого результата >;