Файл: Стандартные функции языка «Pascal».pdf

ВУЗ: Не указан

Категория: Курсовая работа

Дисциплина: Не указана

Добавлен: 25.06.2023

Просмотров: 63

Скачиваний: 2

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.

Сложение обозначается символом «+», вычитание «-», умножение «*», деление «/».

При вычислении операции выполняются в следующем порядке: возведение в степень, изменение знака; логическое NOT; арифметические умножение и деление, логическое AND; арифметические сложение и вычитание, логическое OR; операции отношения.

Рядом стоящие умножение и деления выполняются слева направо, равно как и рядом стоящие сложения и вычитания. Для определения порядка действий используются скобки. Число скобок не ограничено. Единственное правило - количество открывающихся скобок должно быть равно количеству закрывающихся. Например, выражение A*B/C*D означает то же, что и (A*B/C)*D. Чтобы C*D было в знаменателе, нужно написать A*B/(C*D).

1.4 Стандартные функции языка «Pascal»

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

PI - возвращает значение 3,14159...

SIN() - функция синуса; аргумент задается в радианах; функция возвращает вещественное значение. Например, SIN(0)=1, SIN(PI/2)=0.

COS() - функция косинуса; значение аргумента в радианах; функция возвращает вещественное значение. Например, COS(0)=0, COS(PI/2)=1.

ARCTAN () - функция арктангенса; тип результата - вещественный.

ABS() - абсолютная величина аргумента. Например, ABS(-5)=5, ABS(146)=146. Аргумент для данной функции может быть целым либо вещественным; тип возвращаемого значения определяется типом аргумента.

SQRT() - корень квадратный из аргумента. Например, SQRT(9)=3.

A MOD B - остаток от деления числа А на B. A и B - целые числа. Например, 123 MOD 10 = 3; 17 MOD 12 = 5.

A DIV B - вычисление целой части частного от деления числа A на B. Например, 123 DIV 10 = 12, 5 DIV 8=0.

TRUNK() - нахождение целой части аргумента. Например, TRUNK(23.45)=23, TRUNK(125)=125.

INT () - возвращает целую часть аргумента в виде вещественного значения. Например, INT (23.5)=23.

FRAC() - дробная часть аргумента. Например, FRAC (23.45)=0.45.

ROUND()- округляет аргумент до целого значения; тип результата - Longint. Например, ROUND(12.15)=12, ROUND(12.51)=13.

EXP() - вычисляет значение ex (экспоненциальная функция); тип результата - вещественный.

LN() - натуральный логарифм аргумента. Тип функции - вещественный.

SQR() - возведение аргумента в квадрат. Аргумент может быть как целого, так и вещественного типа; результат имеет вещественный тип. Например, SQR(2)=4, SQR(-5)=25.

DEC (Х,[А]) - уменьшает значение Х на заданное число или на другую переменную. Параметр Х может быть значением любого типа. Например, для целочисленного аргумента Х процедура DEC(X;1) аналогична оператору Х:=Х-1. Параметр А является необязательным. При его отсутствии значение Х уменьшается на единицу. Например, DEC(5)=4, DEC(5, 3)=2.


INC (Х, [А]) - увеличивает переменную на заданное число или на другую переменную. Например, INC(6)=7, INC(3,10)=13.

ODD () - проверяет аргумент на четность; возвращает значение TRUE, если аргумент - нечетное число, и FALSE - в противном случае. Тип функции - Boolean. Например, ODD (12)=TRUE, ODD (15)=FALSE.

В языке «Pascal» нет обозначения для операции возведения в степень. Эта операция строится с помощью функций EXP() и LN(). Например, Y:=EXP(LN(X)*5) - возведение числа Х в степень 5.

RANDOM() - данная функция возвращает от своей работы случайное число. В качестве параметра задается максимальное значение случайного числа. Инициализация датчика случайных чисел происходит вызовом процедуры Randomize.

Язык «Pascal» предусматривает и создание новых пользовательских функций.

1.5. Организация ввода и вывода данных

При построении алгоритмов решения задач выделяются следующие составные части программы:

- ввод исходных данных;

- обработка данных;

- вывод результатов.

Исходные данные на языке «Pascal» можно вводить в тексте программы или в процессе ее исполнения. Результаты выводятся в процессе исполнения программы, и их вывод организуется специальным образом. Для ввода данных можно воспользоваться возможностями оператора присваивания.

Ввод данных возможен не только с помощью операторов присваивания. На языке «Pascal» можно одновременно описать величину и ее начальное значение с помощью типа данных, который называется «константа» со служебным словом CONST. В тексте программе тип данных CONST описывается раньше типа VAR.

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

Ввод данных в процессе исполнения программы организуется с помощью операторов READ и READLN. Операторы ввода записываются в следующем виде:

READ (список ввода);

READLN (список ввода);

READLN;

Список ввода представляет собой список величин, которые предварительно описаны в разделе описаний программы и в списке записаны через запятую. С помощью операторов READ() и READLN() этим величинам присваиваются значения.

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


В случае операторов READ() и READLN() со списком ввода вводимые данные отображаются на экране пользователя и последовательно становятся значениями величин из списка ввода. Тип вводимых данных должен соответствовать типу величин списка, иначе исполнение программы прерывается и выдается сообщение об ошибке.

Если в списке ввода несколько числовых величин, то вводимые значения отделяются одно от другого либо знаком «пробел», либо нажатием клавиши ENTER. Если числа разделять пробелами, то они будут располагаться в одной строке экрана пользователя. Если числа разделять нажатием клавиши ENTER, то на экране пользователя вводимые числа будут последовательно занимать новые строки.

Если в списке ввода есть величина типа STRING, то ввод каждой строки символов обязательно должен заканчиваться нажатием клавиши ENTER.

Оператор READLN не имеет списка ввода, поэтому его называют оператором «пустого» ввода и обычно используют в программе для организации задержки ее исполнения до нажатия клавиши ENTER.

Для вывода данных используются операторы WRITE и WRITELN. Второй оператор отличается от первого только тем, что после вывода данных переводит курсор на экране пользователя в начало новой строки.

Операторы вывода записываются в следующем виде:

WRITE (список вывода);

WRITELN (список вывода);

WRITELN;

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

Между WRITE и WRITELN существует единственное различие: после выполнения оператора WRITELN курсор переходит на новую строку.

Оператор WRITELN, который не имеет списка вывода, просто переводит курсор на экране пользователя на новую строку.

Поскольку экран пользователя отображается только при исполнении программы, то в конце программы удобно добавлять оператор пустого ввода READLN, который задерживает на экране отображение результатов программы до нажатия клавиши ENTER.

2. Операторы языка

2.1 Оператор присваивания

Оператор присваивания служит для изменения состояния памяти. Каждая инструкция присваивания предписывает изменить значение одной переменной и записывается в виде:

<имя изменяемой переменной>:=<выражение>

Выполнение этой команды приведет к изменению значения переменной, имя которой указано слева от знака присваивания :=.


Справа записывается выражение, определяющее новое значение переменной. Например, запись вида А:=5 означает, что переменная А принимает значение 5. Запись вида A:=B+C означает, что величина А принимает значение суммы величин B и C.

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

Также в операторе присваивания можно использовать одну и ту же переменную. Например, запись А:=А+1 означает, что величина А получает новое значение, увеличенное на 1. Записи такого рода являются обычными для языка «Pascal».

2.2. Условные операторы

Иногда требуется, чтобы часть программы выполнялась лишь при выполнении некоторого условия (а при невыполнении этого условия выполнялась другая часть программы). В этом случае используют условный оператор.

Язык «Pascal» допускает использование трех типов условных операторов:

1. Условный оператор IF;

2. Оператор выбора CASE;

3. Оператор безусловного перехода GOTO.

Оператор IF используется для проверки каких-либо условий (простых или составных) и записывается в одном из двух видов:

1. Неполная форма записи

IF <условие> THEN <оператор>;

2. Полная форма записи

IF <условие>

THEN <оператор 1> ELSE <оператор 2>;

Если проверяемое условие верное, то выполняется оператор, указанный после слова THEN. Если же условие не верное, то выполняется оператор, указанный после слова ELSE.

Слова ELSE может и не быть. Это используется тогда, когда нужно выполнить проверку только одного условия.

Если после проверки условия нужно выполнить не один, а несколько операторов применяются служебные слова BEGIN и END. В таком случае после слова END ставится точка с запятой, а не точка.

Например,

Program Primer;

Var A, B: integer;

Begin

Readln (A, В);

If A+B>50 Then Begin

A:=A+10; В:=В-5;

End;

Else A:=A-B;

Write(A);

End.

В качестве выполняемого оператора можно использовать и сам оператор IF. В таком случае оператор называется вложенным.

Оператор выбора CASE применяется для выполнения каких-либо действий при соответствии определенному условию. Конструкция CASE имеет собственный закрывающий END, который должен присутствовать обязательно. В общем виде его можно записать так:

Case Выражение of

Вариант1: Оператор1;

Вариант2: Оператор2;

Вариант№ ОператорN;


Else ОператорШ;

End;

В качестве вариантов можно использовать:

1. Константное выражение такого же типа, как и выражение после CASE.

2. Интервал, например: 1..5, 'A'..'Z'.

3. Список значений или интервалов, например: 1, 3, 5..8, 10, 12.

Выполняется оператор CASE следующим образом: вычисляется выражение после слова CASE и по порядку проверяется, подходит полученное значение под какой-либо вариант, или нет. Если подходит, то выполняется соответствующий этому варианту оператор, иначе если в операторе CASE записана часть ELSE, то выполняется оператор после ELSE, если же этой части нет, то не происходит вообще ничего.

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

Program Primer;

Label First;

Var A, B: integer;

Begin

First;

Readln (A); Readln (B);

If A > B Then Goto First; End.

При выполнении этой программы, в случае, когда A>B происходит переход на место помеченное словом First.

2.3. Операторы цикла

При составлении программ часто приходится выполнять одни и те же операторы несколько раз. Чтобы избавиться от многократной записи одинаковых операторов «Pascal» предусматривает использование трех вариантов циклов.

1. Цикл с предусловием WHILE;

2. Цикл с постусловием REPEAT;

3. Цикл с параметром FOR.

Оператор WHILE (пока), записывается в виде:

WHILE<условие или величина типа Boolean> DO <оператор>;

Оператор WHILE может в своем составе содержать только один исполняемый оператор. Чтобы выполнить любое число операторов, их можно объединять с помощью служебных слов BEGIN и END по следующей форме:

BEGIN оператор 1; оператор 2; ...; оператор n END;

Особенностью работы оператора WHILE является то, что действие выполняются до тех пор, пока выполняется заданное условие.

Например,

Program Primer;

Var i, s: integer;

Begin

s:=2; i:=10;

While i>5 Do

Begin

s:=s+2; i:=i-1;

End;

Writeln (s);

End.

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

REPEAT

оператор 1 оператор 2

оператор n

UNTIL < логическое выражение>;

Оператор REPEAT (повторять) ... UNTIL (до тех пор, пока не) содержит логическое выражение (после UNTIL), которое управляет повторением последовательности операторов, записанных между REPEAT и UNTIL.