- •Тема 2.2. Основные понятия языка программирования высокого уровня Free Pascal
- •Системы программирования
- •Интегрированная среда разработки FreePascal
- •Введение в язык Паскаль Характеристика языка программирования Паскаль
- •Основные понятия технологии программирования
- •Алфавит языка Паскаль
- •Структура программы на Паскале
- •Типы данных
- •Стандартные типы данных
- •Структуры данных
- •Строковый тип
- •Структурированные переменные
- •Представление основных структур программирования на языке Паскаль Операции и выражения
- •Арифметические операции и выражения
- •Логические операции
- •Оператор присваивания
- •Составной оператор
- •Условный оператор
- •Процедура write
- •Процедура ввода
- •Оператор выбора
- •Операторы повторений
- •Оператор цикла с предусловием
- •Оператор цикла с постусловием
- •Оператор цикла с параметром
- •Метки и операторы перехода
- •Работа с массивами
- •Операции над строками
- •Функция Length
- •Функция Upcase
- •Функция Сopy
- •Функция Pos
- •Процедуры Insert и Delete
- •Процедура Str
- •Процедура val
- •Практические примеры работы со строковыми данными
- •Оператор присоединения with
- •Процедуры и функции Паскаля
- •Формальные и фактические параметры
- •Типизированные константы
- •Interface
- •Implementation
- •Interface
- •Interface
- •Implementation
- •Файловый тип данных Типизированные файлы
- •Текстовые файлы
Представление основных структур программирования на языке Паскаль Операции и выражения
Переменные и константы – простейшие частные случаи выражения. Выражениясостоят из операндов, знаков операций и круглых скобок. Операндом может быть константа, переменная, граница параметра-массива или обозначение функции. Смысл выражения в том, чтобы пассивные составляющие (операнды) связать через активные составляющие (+, –, *, / и прочее) и получить некоторое новое значение.
Выражение не просто имеет некоторое значение, но и обладает совершенно определенным типом, который зависит от операндов и операций.
Для того, чтобы описать последовательность, в которой должны стоять операнды в выражениях, целесообразно упорядочить операции по уровням.
Операции более низкого уровня выполняются раньше, чем операции более высокого уровня.
Операции одного уровня выполняются поочередно слева направо.
Операции, заключенные в круглые скобки, выполняются раньше операций, записанных за скобками.
Эти правила действуют для всех типов выражений.
Арифметические операции и выражения
Арифметические выражения имеют вещественный или целый тип.
Пример арифметического выражения:
(-b+sqrt(sqr(b)–4*a*c))/(2*a)
При составлении выражений следует выполнять следующие правила:
Записывать все составные части выражений в одну строку.
Использовать скобки только одного типа – круглые. Применение фигурных и квадратных скобок в выражениях запрещается, так как они имеют особое назначение.
Нельзя записывать подряд два знака арифметических операций.
К арифметическим операциям относятся: первый уровень *, /, mod и div; второй уровень +, –. То есть при вычислении арифметического выражения действуют обычные правила старшинства операций: сначала выполняются умножение, деление, деление нацело и нахождение остатка от деления нацело в том порядке, в каком они входят в выражение, а затем сложение и вычитание. Между знаком div (или mod) и числами, участвующими в делении, должно находиться хотя бы по одному пробелу.
Несколько примеров:
5+2*10=25;
10.2*5–7+8.6/2=48.3;
(6+105) div 10=11.
Если при расстановке скобок возникают сомнения, следует придерживаться правила: «Лишние скобки не мешают».
Как уже было отмечено, нельзя размещать два знака операций рядом. Последовательности символов 3*-2, х1/-x2 – не являются правильной записью выражений. Для правильной записи следует использовать скобки: 3*(-2), x1/(-x2).
В выражениях может присутствовать вызов функций. Функция передает свое значение в выражение. В Паскале имеется множество стандартных функций.
Правила записи стандартных функций:
Имя функции записывается буквами латинского алфавита.
Аргумент функции записывается в круглых скобках после имени функции.
Аргументом функции может быть константа, переменная или арифметическое выражение.
Приведем ряд стандартных математических функций (см. табл. 13)
Табл. 13.Стандартные математические функции в Паскале
|
Обращение |
Выполняемая функция |
Тип | |
|
Аргумента |
Функции | ||
|
ABS(X) SQR(X) |
|Х| X2 |
целый или вещественный |
целый или вещественный |
|
SIN(X) COS(X) LN(X) EXP(X) SQRT(X) ARCTAN (X) |
sin X cos X ln (X) ex
arctan X |
целый или вещественный |
вещественный |
|
TRUNC (X)
ROUND (X) |
выделение целой части числа округление X до ближайшего целого |
вещественный |
целый |
|
PRED(X)
SUCC(X) |
нахождение предшествующего значения нахождение последующего элемента |
целый, логический или символьный |
целый, логический или символьный |
|
ORD(X) |
определение порядкового номера символа x в наборе символов или его типе |
символьный |
целый |
|
CHR(X) |
определение значения символа по его порядковому номеру |
целый |
символьный |
|
ODD(X) |
логическая функция проверки нечетности |
целый |
логический |
|
FRAC(X) INT(X) |
дробная часть числа целая часть числа |
вещественный |
вещественный |
|
DIV
MOD |
операцию получения целой части от деления операцию получения остатка от деления |
целый или вещественный |
целый |
|
RANDOM
RANDOM(Х) |
значением функции является случайное число типа real из диапазона 0 ≤ … ≤ 1 значением функции является случайное число типа integer из диапазона 0 ≤ … ≤ X |
вещественный
целый
|
целый
|
В Паскале предусмотрено использование таких математических констант как Pi=3.1415926535897932385 и е=2.7.
Более сложные математические функции получаются путем комбинации базовых, например,
ахпрограммируется какEXP (x*LN (a));
ах/yпрограммируется какEXP ((x/y)*LN (a));
xaпрограммируется какEXP (a*LN (x));
lgXпрограммируется какLN (x)/LN (10)
logaxпрограммируется какLN (x)/LN (a)
logxaпрограммируется какLN (a)/LN (x).
