Foreversoft.ru

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

Функции языка паскаль

Основные функции и процедуры

Математические функции

Синтаксис:
function Abs (X);
Действие: Возвращает абсолютное значение аргумента, в качестве которого можно использовать выражение целого или вещественного типа.

ArcTan

Синтаксис:
function ArcTan (X: Real): Real;
Действие: Возвращает арктангенс аргумента — угла, величина которого выражена в радианах.

Синтаксис:
function Cos (X: Real): Real;
Действие: Возвращает косинус аргумента — угла, величина которого выражена в радианах.

Синтаксис:
function Exp (X: Real): Real;
Действие: Возвращает значение, равное экспоненте аргумента.

Синтаксис:
function Ln (X: Real): Real;
Действие: Возвращает значение, равное натуральному логарифму аргумента.

Синтаксис:
function Sin (X: Real): Real;
Действие: Возвращает синус аргумента — угла, величина которого выражена в радианах.

Синтаксис:
function Sqr (X);
Действие: Возвращает квадрат аргумента, в качестве которого можно использовать выражение целого или вещественного типа.

Синтаксис:
function Sqrt (X: Real): Real;
Возвращает значение, равное квадратному корню из аргумента.

Random

Синтаксис:
function Random [ (Диапазон: Word)];
Действие: Если параметр Диапазон не указан, то возвращает случайное число X, которое удовлетворяет условию 0 типа Word , удовлетворяющее условию 0 Odd

Синтаксис:
function Odd (Число: Integer): Boolean;
Действие: Проверка нечётности числа. Если число нечётное, возвращается True, если число чётное — возвращается False.

Синтаксис:
function Pred (X);
Действие: Возвращает значение, предшествующее X (к первому элементу типа неприменима). Применима также и к символам (значениям порядкового типа данных Char ).

Синтаксис:
function Succ (X)
Действие: Возвращает значение, следующее за X (к последнему элементу типа неприменима). Применима также и к символам (значениям порядкового типа данных Char ).

Синтаксис: Inc (x); Inc (x, k);
Действие: Процедура inc(x) возвращает значение, следующее за х (для арифметических типов данных это эквивалентно оператору x := x + 1).
Процедура Inc(x, k) возвращает k-е значение, следующее за х (для арифметических типов данных это эквивалентно оператору x := x + k). Применима также и к символам (значениям порядкового типа данных Char ).

Синтаксис: Dec (x); Dec (x, k);
Действие: Процедура Dec(x) возвращает значение, предшествующее х (для арифметических типов данных это эквивалентно оператору x := x — 1).
Процедура Dec(x, k) возвращает k-e значение, предшествующее х (для арифметических типов данных это эквивалентно оператору x := x — k). Применима также и к символам (значениям порядкового типа данных Char ).

Функции и процедуры преобразования

Синтаксис:
function Int (X: Real): Real;
Действие: Возвращает целую часть аргумента как значение вещественного типа. Дробная часть аргумента при преобразовании не учитывается, т. е. функция не производит округление.

Round

Синтаксис:
function Round (X: Real): LongInt;
Действие: Возвращает округленное к ближайшему целому значение аргумента.

Синтаксис:
procedure Str (X [:ВсегоСимволов [:ДробнаяЧасть ]]; var Строка: string);
Действие: Выполняет преобразование числового выражения в его строковое представление. ВсегоСимволов и дробнаяЧасть — необязательные выражения целого типа, которые задают общее количество символов и количество символов дробной части в изображении числа.

Trunc

Синтаксис:
function Trunc (X: Real): LongInt;
Действие: Возвращает целую часть аргумента как значение целого типа. Дробная часть аргумента при преобразовании не учитывается, т. е. функция не производит округление.

Синтаксис:
procedure Val (Строка: string; var Переменная; var Ошибка: Integer);
Действие: Выполняет преобразование строки, изображающей целое или вещественное число, в число. Полученное значение присваивается переменной, указанной при вызове процедуры. Если преобразование не может быть выполнено, то в переменную Ошибка записывается номер символа строки, который явился причиной неудачи преобразования. Если преобразование выполнено успешно, то значение сшибка равно нулю.

Функции и процедуры для работы со строками и символами

Синтаксис:
function Chr (КодСимвола: Byte): Char;
Действие: Возвращает символ с указанным кодом.

Синтаксис:
function Ord (Символ: Char): Byte;
Действие: Возвращает код указанного символа.

Concat

Синтаксис:
function Concat (si [, s2, . sN] : string): string;
Действие: Возвращает строку, являющуюся объединением строк, указанных при вызове функции.

Синтаксис:
function Copy (s: string; n: Integer; i: Integer): string;
Действие: Возвращает подстроку — часть строки а. Подстрока начинается с символа с номером n и состоит из i символов.

Delete

Синтаксис:
procedure Delete (var s: string; НомерСимвола: Integer; Сколько: Integer);
Действие: Удаляет из строки s её часть, которая начинается с символа с номером п и состоит из i символов.

Length

Синтаксис:
function Length (Строка: string): Integer;
Действие: Возвращает значение, равное количеству символов строки-аргумента.

Синтаксис:
function Pos (Строка: string; Подстрока: string): Byte;
Действие: Возвращает позицию (номер символа) подстроки в строке.

Процедуры и функции для работы с файлами

Append

Синтаксис:
procedure Append (var F: Text);
Действие: Открывает существующий файл, связанный с файловой переменной F в режиме добавления в конец файла. При попытке открыть несуществующий файл появляется ошибка времени выполнения программы.

Читать еще:  Справочник по языку си скачать

Assign

Синтаксис:
procedure Assign (var F; ИмяФайла: string);
Действие: Связывает файловую переменную г с конкретным файлом.

Close

Синтаксис:
procedure Close (var F);
Действие: Закрывает файл, связанный с файловой переменной к.

Синтаксис:
function Eof (var F): Boolean;
Действие: Проверяет, не достигнут ли конец файла (end of file) при чтении из файла, связанного с файловой переменной f. Если указатель чтения достиг конца файла, то функция Eof возвращает значение True, в противном случае — False.

Erase

Синтаксис:
procedure Erase (var F) ;
Действие: Уничтожает файл, имя которого связано с файловой переменной F.

Reset

Синтаксис:
procedure Reset (var F [:File; RecSize: Word]);
Действие: Открывает существующий файл. Тип файла может быть любым. Если элементы файла не относятся к одному из стандартных типов, то параметр RecSize задает длину записи (в байтах). При попытке открыть несуществующий файл возникает ошибка времени выполнения.

Rewrite

Синтаксис:
procedure Rewrite (var F [:File; RecSize: Word]);
Действие: Создает и открывает файл, имя которого связано с файловой переменной F Если файл с таким именем уже существует то процедура Rewrite его уничтожает и создаёт новый.

Синтаксис:
function Eoln [ (var F: Text)]: Boolean;
Действие: Если при обращении к функции Eoln параметр не указан, то функция проверяет, не является ли очередной символ, читаемый из буфера клавиатуры, символом «новая строка». Если является, то функция возвращает значение True, в противном случае — False. Если параметр указан, то функция аналогичным образом проверяет очередной символ текстового файла, связанного с файловой переменной, указанной при вызове функции.

Синтаксис:
procedure Halt [ (КодЗавершения: Word) ];
Действие: Завершает выполнение программы и передаёт управление операционной системе.

Функции языка паскаль

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

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

В языке Паскаль имеется два вида подпрограмм — процедуры и функции.

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

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

Описание и вызов процедур и функций

Структура описания процедур и функций до некоторой степени похожа на структуру Паскаль-программы: у них также имеются заголовок, раздел описаний и исполняемая часть. Раздел описаний содержит те же подразделы, что и раздел описаний программы: описания констант, типов, меток, процедур, функций, перменных. Исполняемая часть содержит собственно операторы процедур.

Формат описания процедуры имеет вид:

Формат описания функции:

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

и отделяются друг от друга точкой с запятой. Ключевое слово var может отсутствовать (об этом далее). Если параметры однотипны, то их имена можно перечислять через запятую, указывая общее для них имя типа. При описании параметров можно использовать только стандартные имена типов, либо имена типов, определенные с помощью команды type.Список формальных параметров может отсутствовать.

Вызов процедуры производится оператором, имеющим следующий формат:

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

Вызов функции в Турбо Паскаль может производиться аналогичным способом, кроме того имеется возможность осуществить вызов внутри какого-либо выражения. В частности имя функции может стоять в правой части оператора присваивания, в разделе условий оператора if и т.д.

Читать еще:  Язык си abs

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

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

  • количество фактических параметров должно совпадать с количеством формальных;
  • соответствующие фактические и формальные параметры должны совпадать по порядку следования и по типу.

Заметим, что имена формальных и фактических параметров могут совпадать. Это не приводит к проблемам, так как соответствующие им переменные все равно будут различны из-за того, что хранятся в разных областях памяти. Кроме того, все формальные параметры являются временными переменными — они создаются в момент вызова подпрограммы и уничтожаются в момент выхода из нее.

Рассмотрим использование процедуры на примере программы поиска максимума из двух целых чисел.

Аналогичную задачу, но уже с использованием функций, можно решить так:

Волгоградский государственный педагогический университет
Кафедра алгебры, геометрии и информатики

Pascal-Паскаль

Программирование. Стандартные функции Pascal-Паскаль

  • Скачено бесплатно: 9293
  • Куплено: 414
  • Pascal-Паскаль->Программирование. Стандартные функции Pascal-Паскаль

Программирование. Стандартные функции Pascal-Паскаль

Стандартные функции Pascal-Паскаль

Стандартные математические функции Турбо Паскаля
ОбращениеТип аргументаТип результатаПримечание
Abs(x)Real, integerТип аргументаМодуль аргумента
ArcTan(x)Real, integerRealАрктангенс (значение в радианах)
Cos(x)Real, integerRealКосинус, угол в радианах
Exp(x)Real, integerRealЭкспонента
Frac(x)RealRealДробная часть числа
Int(x)Real, integerRealЦелая часть числа
Ln(x)Real, integerRealЛогарифм натуральный
PiНетReal3,141592653
Sin(x)Real, integerRealСинус, угол в радианах
Sqr(x)Real, integerТип аргументаКвадрат аргумента
Sqrt(x)Real, integerRealКорень квадратный
RandomНетRealПсевдослучайное число в интервале [0, 1]
Random(I)IntegerIntegerПсевдослучайное число в интервале [0, I]
Round(x)RealIntegerОкругление до ближайшего целого
Trunc(x)RealIntegerОтбрасывание дробной части числа

Порядок вычислений в выражениях следующий:

  1. вычисляются подвыражения, заключенные в скобки;
  2. затем выполняются операции с наибольшим приоритетом; обычно используются следующие уровни приоритетов (в порядке убывания):
    • возведение в степень;
    • мультипликативные операции: * , / , div , mod;
    • унарные операции: + , — , abs , not;
    • аддитивные операции: +, -;
    • операции отношения: = , <>, , =;
    • логические операции: and, or, not;
  3. операции с одинаковым приоритетом выполняются слева направо.

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

  • в Паскале нет стандартной операции или стандартной функции возведения в степень, поэтому используется следующее математическое тождество: x y = e ylnx
  • в Паскале существует только стандартная функция вычисления натурального логарифма, поэтому используется следующее математическое тождество: logab= ln b/ln a

Математическое выражение: x 3/2 — 7x + tg (x+2)

Выражение на Паскале: exp(3*ln(x)/2)-7*x+sin(x+2)/cos(x+2)

Операторы действия

Операторы действия — это средства языка, позволяющие изменять в процессе выполнения программы состояние вычислений. Самый простой оператор действия — оператор присваивания.

Пример оператора присваивания

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

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

  1. В каждый момент времени в ящике может храниться не более одного значения.
  2. Каждый ящик способен хранить только значения одного и того же типа. Попытка поместить в ящик значение любого другого типа приводит к тому, что ящик отказывается принимать на хранение передаваемое ему значение — это расценивается как ошибка в программе.
  3. Значение, помещенное в ящик, будет храниться в нем до тех пор, пока в этот ящик не будет помещено новое значение (в момент присваивания соответствующей переменной этого нового значения) — при этом предыдущее содержимое ящика безвозвратно теряется (уничтожается).
  4. Находящееся в ящике значение считается текущим значением соответствующей переменной. Это текущее значение может быть выдано из ящика для использования сколько угодно раз, но при этом содержимое ящика не меняется: из него каждый раз выдается копия хранящегося значения с сохранением оригинала в ящике без какого-либо изменения.
  5. К началу выполнения программы содержимое всех запоминающих ящиков считается неопределенным; в частности, их нельзя считать и пустыми, поскольку эти ящики могли использоваться при выполнении предыдущих программ, после чего в ящиках могло что-то остаться.

Еще один оператор действия, хотя его можно лишь условно назвать таковым: он не выполняет никакого действия, это — пустой оператор (в Паскале он обознается знаком «;»). В Паскале оператором действия является также оператор процедуры. Последний из простейших операторов действия — оператор останова, который прерывает работу программы (в Паскале это оператор halt).

Читать еще:  Strlen си реализация

Ввод и вывод данных

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

Пример ввода данных с клавиатуры

read(a,b,c);

readln(a,b,c);

Вывод данных на экран производится с помощью стандартной процедуры write( ) или ее разновидности writeln( ).

Список вывода может содержать константы, переменные, выражения, формат вывода. Выражения в списке вывода разделяются запятыми.

Пример вывода данных на экран

write(a,b,c);

writeln(a,b,c);

Окончание ln в имени процедуры означает, что курсор автоматически будет переведен в начало следующей строки экрана.

Программирование

Исходники Pascal (127)

Справочник

Справочник по паскалю: директивы, функции, процедуры, операторы и модули по алфавиту

Процедуры и функции Паскаль

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

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

Далее, если появилась необходимость вызвать подалгоритм в основной программе, то упоминают в необходимом месте имя того или иного подалгоритма в сочетании со списком данных (как входных, так и выходных). Это упоминание, как правило, производит выполнение операторов, входящих в подпрограмму и работающих с указанными данными. После выполнения используемой подпрограммы работа основной программы продолжается, но уже начиная с команды, следующей сразу после вызова подпрограммы.

В Паскале можно выделить два типа подпрограмм:

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

Структура процедуры в Паскале представлена так:

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

Формальные параметры разделяются запятыми; ключевое слово var в некоторых случаях может быть опущено. Когда параметры имеют одинаковый тип, то имена этих параметров перечисляют чрез запятую, указывая в конце после знака «:» имя соответствующего типа.

Когда описывают параметры, то можно пользоваться только стандартными именами типов, которые определены при помощи команды type. Процедуры вызываются с помощью оператора, имеющего следующую структуру:

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

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

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

  1. количество формальных параметров = количество фактических параметров;
  2. фактические и формальные параметры должны обладать одним и тем же порядком следования и типом.

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

Пример программы на применение процедуры в языке Pascal

Теперь на практике рассмотрим, как используются процедуры. Задача такая: найти максимум из 2-х целых чисел. Внизу представлен листинг этой программы:

Пример программы на использование функции в языке Pascal

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

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

Ссылка на основную публикацию
Adblock
detector