Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
лекции ИВАНОВ Книга Паскаль.doc
Скачиваний:
5
Добавлен:
18.11.2019
Размер:
1.93 Mб
Скачать

Правила написания арифметических выражений

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

  1. Записывать все составные части выражений в одну строку.

Например, записывается как X/Y.

  1. Знаки арифметических операций проставляются явно.

Например, a(b+c) записывается как a*(b+c).

  1. Нельзя записывать подряд два знака арифметических операций.

Например, 3*-2, х1/-х2 записывается как 3*(-2), х1/(-х2).

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

Например, записывается как X/(Y+Z).

Если при расстановке скобок возникнут сомнения, вспомните правило: “Лишние скобки не мешают”.

  1. Операции с более высоким приоритетом (см. Таблицу 13) выполняются раньше чем операции с более низким.

Например, в выражении X*Y–D/4 сначала производится деление и умножение, лишь потом - вычитание.

  1. В выражениях может присутствовать вызов стандартных функций. Функция передает свое значение в выражение. Аргументом функции может быть константа, переменная или арифметическое выражение.

Например, записывается как Sin(1/(x+sqr(c))).

Возведение в степень

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

с=аb →

аb= exp(b*ln(a))

Необходимо помнить, что нельзя возвести в степень отрицательное число, для этого можно использовать операторы циклов (см. Глава 3.2.2).

2.4.2 Выражения и операции отношения

Выражением отношения называется словосочетание языка, в котором два выражения связаны знаком операции отношения. Выражение отношения определяет истинность или ложность результата.

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

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

К операциям отношения относятся: = (равно), < (меньше), > (больше), < > (не равно), <= (меньше или равно), >= (больше или равно), in (принадлежность).

При объединении в одном выражении арифметических операций и операций отношения первыми всегда выполняются арифметические. Например, 14<11+4 – истина, т.к. операция сложения реализуется раньше операции сравнения.

Примеры:

выражение

результат

12>=12

True

75>22

True

8<=3

False

Следует избегать выражений отношения, подобных следующему: 5 <= y<= 84, т.к. 5 <= y приводит к получению значения истина или ложь, которые не могут сравниваться с величиной 84. В этом случае необходимо воспользоваться скобками и логической операцией and:

(5 <= y) and (y <= 84).

2.4.3 Логические выражения и операции

Выражение, служащее для вычисления логического значения называется логическим выражением. Результатом выполнения логического выражения является логическое значение TRUE или FALSE.

Логические операции выполняются над операндами булевского типа. Такие операции используются в разветвляющихся и циклических алгоритмах (см. таблицу 2.11).

Таблица 2.11

Операнд А

Операнд В

A and B

A or B

A xor B

not A

true

true

false

false

true

false

true

false

true

false

false

false

true

true

true

false

false

true

true

false

true

false

false

true

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

Например, выражение: y < 5 and z < 84, вызовет сообщение об ошибке, т. к. сначала будет выполняться операция 5 and z, т.е. неявно предполагается наличие круглых скобок (y < (5 and z) < 84). Необходимо записать это выражение в следующем виде: (y < 5) and (z < 84). Его вычисление выполняется в следующей последовательности: сначала определяется значение подвыражения (y < 5), затем (z < 84) и лишь после этого выполняется логическая операция and.

2.4.4 Приоритет операций

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

Приоритетом называется очередность выполнения операций в выражении.

Таблица 2.12

приоритет

операции

действие операции

1 (высший)

+ -

not

присваивание знака

логическое отрицание

2

* /

div, mod

and

умножение, деление

целочисленные операции

логическое произведение

3

+ -

or, xor

сложение, вычитание

логические суммы

4 (низший)

=, <>, <, >, <=, >=

отношения (сравнение)

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

2.4.5 Полезные операции

В языке Паскаль определены только три тригонометрические формулы: sin, cos, arctg. Для вычисления остальных тригонометрических функций необходимо использовать известные соотношения:

2.4.6 Примеры выражений

  1. (-b+sqrt(sqr(b)-4*a*c))/(2*a)

  1. (a/x+2*b/(5*y))/(1+4*z/(-2))

  2. exp(1/3*ln(sqr(x)+5))

4. (2*a+sqrt(0.5*sin(x+y)))/(0.2*c-ln(x-y))

5. sqr(sin(x))+cos(sqr(x))

6. sqrt(abs(-a*x+c))/ln(x+sqr(c))

7. exp(exp(x)*ln(pi))

8. arctg(15/sqrt(1-sqr(15)))

2.5 СТРУКТУРА ПРОГРАММЫ НА ЯЗЫКЕ ПАСКАЛЬ

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

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

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

Заголовок программы;

Блок описаний:

Раздел указания подключаемых модулей;

Раздел описания меток;

Раздел описания констант;

Раздел определения типов данных;

Раздел описания переменных;

Раздел описания процедур и функций;

Блок операторов.

Каждый раздел отделяется друг от друга “точкой с запятой”, отмечая конец оператора или описания. Использование такого разделителя позволяет располагать несколько операторов в одной строке. Любой из разделов описаний, кроме раздела операторов, может отсутствовать. Каждый из них может встречаться в программе любое количество раз и следовать в любом порядке. Главное, что все описания объектов нужно сделать до того, как они будут использованы в программе.

2.5.1 Заголовок программы

Заголовок состоит из зарезервированного слова Program, за которым следует название самой программы. Имя программы не должно совпадать с именами переменных или других объектов программы.

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

Формат:

Program <имя >;

Примеры:

Program Primer;

Program Primer 1; - ошибочное имя программы (содержит пробел).

2.5.2 Раздел указания подключаемых модулей

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

В систему Турбо Паскаль включены 8 модулей: Crt, Dos, Graph, Graph3, Overlay, Printer, Турбо3 и специализированная библиотека Турбо Vision.

Формат:

uses <имя 1>, <имя 2>,…;

Пример:

uses Crt, Dos;

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

Модуль Graph3 – обеспечивает управление графическим режимом экрана. Поддерживает использование стандартных графических подпрограмм версии Турбо Паскаль 3.0.

Модуль Crt – обеспечивает управление дисплеем (текстовым режимом экрана и звука) и клавиатурой компьютера.

2.5.3 Блок описаний