- •Основные этапы проектирования программ
- •Тема: Числовые типы данных. Выражения. Стандартные функции. Решение задач линейной структуры Числовые типы
- •Выражения и операторы действия
- •Ввод и вывод данных
- •Лабораторная работа №1 Тема: Числовые типы данных. Стандартные функции. Задачи линейной структуры Задание 1
- •Задание 2
- •Указание к выполнению: перед составлением программы необходимо выполнить следующие этапы:
- •Образец выполнения задания
- •Writeln(‘значение искомого выражения равно’, y:8:4); {вывод результата на экран}
- •Образец выполнения задания
- •Тема: Логические выражения. Логический тип. Условный оператор. Оператор выбора. Программирование разветвляющихся алгоритмов
- •Логический тип
- •Условный оператор
- •Оператор выбора
- •Лабораторная работа №2 Тема: Логические выражения. Логический тип. Условный оператор. Оператор выбора. Программирование разветвляющихся алгоритмов
- •Задание 2
- •Образец выполнения задания
- •Текст программы
- •Тема: Циклические структуры. Программирование циклических алгоритмов. Циклы
- •Простой арифметический цикл (цикл с параметром)
- •Арифметический цикл с произвольным шагом
- •Итерационные циклы
- •Оператор цикла с постусловием
- •Оператор цикла с предусловием
- •Лабораторная работа №3 Тема: Циклические структуры. Программирование циклических алгоритмов. Задание 1
- •Текст программы
- •Приложение: работа в среде программирования Паскаль
- •Работа с окнами
- •Редактирование текста программы
- •Пошаговое выполнение программы
- •Как посмотреть результат выполнения программы?
- •Литература
- •Содержание
Выражения и операторы действия
Простейшие средства описания действий, которые вычисляют единственное значение – выражения. Они образуются из констант, переменных и других объектов данных, а также знаков операций и скобок. Операнды выражений должны быть того типа, который требуется в данном контексте.
Для арифметических выражений используются арифметические операции и математические функции:
Арифметические операции бывают унарными и бинарными.
Выражение |
Типы операндов |
Тип результата |
Операция |
-А |
R, I |
R, I |
Унарный минус (изменение знака числа) |
+А |
R, I |
R, I |
Унарный плюс (изменение знака числа) |
A+B |
I, I |
I |
Сложение |
|
R, R; R, I; I, R |
R |
|
A-B |
I, I |
I |
Вычитание |
|
R, R; R, I; I, R |
R |
|
A*B |
I, I |
I |
Умножение |
|
R, R; R, I; I, R |
R |
|
A/B |
R, R; R, I; I, R; I, I |
R |
Деление |
A div B |
I, I |
I |
Целочисленное деление |
A mod B |
I, I |
I |
Остаток от целочисленного деления |
А и В обозначают операнды, для типов величин используются обозначения: I – любой целый или натуральный, R – любой вещественный.
Стандартные математические функции Турбо Паскаля |
|||
Обращение |
Тип аргумента |
Тип результата |
Примечание |
Abs(x) |
Real, integer |
Тип аргумента |
Модуль аргумента |
ArcTan(x) |
Real, integer |
Real |
Арктангенс (значение в радианах) |
Cos(x) |
Real, integer |
Real |
Косинус, угол в радианах |
Exp(x) |
Real, integer |
Real |
Экспонента |
Frac(x) |
Real |
Real |
Дробная часть числа |
Int(x) |
Real, integer |
Real |
Целая часть числа |
Ln(x) |
Real, integer |
Real |
Логарифм натуральный |
Pi |
Нет |
Real |
3,141592653… |
Sin(x) |
Real, integer |
Real |
Синус, угол в радианах |
Sqr(x) |
Real, integer |
Тип аргумента |
Квадрат аргумента |
Sqrt(x) |
Real, integer |
Real |
Корень квадратный |
random |
Нет |
Real |
Псевдослучайное число в интервале [0, 1] |
Random(I) |
Integer |
Integer |
Псевдослучайное число в интервале [0, I] |
Round(x) |
Real |
Integer |
Округление до ближайшего целого |
Trunc(x) |
Real |
Integer |
Отбрасывание дробной части числа |
Порядок вычислений в выражениях следующий:
вычисляются подвыражения, заключенные в скобки;
затем выполняются операции с наибольшим приоритетом; обычно используются следующие уровни приоритетов (в порядке убывания):
возведение в степень;
мультипликативные операции: * , / , div , mod;
унарные операции: + , - , abs , not;
аддитивные операции: +, -;
операции отношения: = , <> , < , > , <= , >= ;
логические операции: and, or, not;
операции с одинаковым приоритетом выполняются слева направо.
Хотя нет ограничений на сложность выражений, однако выражения, содержащие более 7 операндов, трудны для чтения и понимания и поэтому такие выражения не рекомендуется использовать.
Замечание (это важно!)
в Паскале нет операции или функции возведения в степень, поэтому используется следующее математическое тождество:
xy= ey lnx
в Паскале существует только функция вычисления натурального логарифма, поэтому используется следующее математическое тождество:
loga b= ln b/ln a
Пример:
Математическое выражение Выражение на Паскале
x3/2 – 7x + tg (x+2) exp(3*ln(x)/2)-7*x+sin(x+2)/cos(x+2)
Операторы действия – это средства языка, позволяющие изменять в процессе выполнения программы состояние вычислений. Самый простой оператор действия – оператор присваивания.
<имя_переменной>:= <выражение>
Оператор присваивания, несмотря на кажущуюся простоту, имеет очень важное алгоритмическое значение.
Удобно считать, что выполнение присваивания переменной некоторого значения означает помещение этого значения в выделенный для переменной ящик. При этом каждый запоминающий ящик обладает следующими свойствами.
В каждый момент времени в ящике может храниться не более одного значения.
Каждый ящик способен хранить только значения одного и того же типа. Попытка поместить в ящик значение любого другого типа приводит к тому, что ящик отказывается принимать на хранение передаваемое ему значение – это расценивается как ошибка в программе.
Значение, помещенное в ящик, будет храниться в нем до тех пор, пока в этот ящик не будет помещено новое значение (в момент присваивания соответствующей переменной этого нового значения) – при этом предыдущее содержимое ящика безвозвратно теряется (уничтожается).
Находящееся в ящике значение считается текущим значением соответствующей переменной. Это текущее значение может быть выдано из ящика для использования сколько угодно раз, но при этом содержимое ящика не меняется: из него каждый раз выдается копия хранящегося значения с сохранением оригинала в ящике без какого-либо изменения.
К началу выполнения программы содержимое всех запоминающих ящиков считается неопределенным; в частности, их нельзя считать и пустыми, поскольку эти ящики могли использоваться при выполнении предыдущих программ, после чего в ящиках могло что-то остаться.
Еще один оператор действия, хотя его можно лишь условно назвать таковым: он не выполняет никакого действия, это – пустой оператор (в Паскале он обознается знаком «;»). В Паскале оператором действия является также оператор процедуры. Последний из простейших операторов действия – оператор останова, который прерывает работу программы (в Паскале это оператор halt).
