- •Содержание
- •Часть 1. Основные понятия программирования §1.1. Этапы разработки программного обеспечения
- •§1.2. Основные сведения об алгоритмах Понятие алгоритма
- •Свойства алгоритма
- •Формы записи алгоритмов
- •Блок-схемы алгоритмов
- •§1.3. Языки программирования
- •§1.4. Паскаль и Object Pascal, Турбо-Паскаль и Delphi
- •Контрольные вопросы
- •Язык, оболочка и интегрированная среда разработки
- •Часть 2. Общие сведения о языке Паскаль §2.1. Алфавит и служебные слова
- •Описание общих конструкций языка
- •§2.2. Структура программы
- •§2.3. Разделы описаний Описание меток
- •Определение констант
- •Определение типов
- •Описание переменных
- •Контрольные вопросы
- •Часть 3. Простые типы данных Иерархия типов
- •§3.1. Целые типы
- •§3.2. Вещественные типы
- •§3.3. Логический тип
- •§3.4. Литерный тип
- •§3.5. Перечисляемый тип
- •§3.6. Диапазоны (интервальный тип)
- •Дополнительные типы в Delphi
- •Контрольные вопросы
- •Глава 4. Операторы языка Паскаль Выражения
- •§4.1. Оператор присваивания
- •§4.2. Ввод-вывод данных
- •§4.3. Составной оператор
- •§4.4. Пустой оператор
- •§4.5. Безусловный оператор перехода
- •§4.6. Условный оператор
- •§4.7. Оператор цикла с параметром for
- •§4.8. Оператор цикла с предусловием while
- •§4.9. Оператор цикла с постусловием repeat
- •§4.10. Оператор выбора case
- •Контрольные вопросы
- •Глава 5. Процедурное программирование §5.1. Функции
- •Параметры – значения
- •Параметры – переменные
- •Бестиповые параметры
- •§5.2. Процедуры
- •Правила использования подпрограмм
- •Рекурсия
- •Директивы
- •Процедурные типы
- •Пример использования подпрограмм
- •Контрольные вопросы
- •Глава 6. Структурированные типы данных
- •§6.1. Массивы
- •§6.2. Строки
- •§6.3. Записи
- •§6.4. Множества
- •Пример использования множеств
- •§6.5. Файлы
- •Установочные и завершающие операции
- •Операции ввода-вывода
- •Перемещения по файлу
- •Пример работы с файлом
- •Обработка ошибок ввода-вывода
- •Специальные операции
- •Пример объединения двух файлов
- •Текстовые файлы
- •Стандартные текстовые файлы
- •Файлы без типа
- •Контрольные вопросы
- •Глава 7. Динамические структуры данных §7.1. Динамические переменные
- •§7.2. Указатели
- •Работа с динамическими переменными
- •Пример двухсвязанного циклического списка
- •Указатели без типа
- •Контрольные вопросы
- •Глава 8. Низкоуровневые возможности Паскаля §8.1. Язык Ассемблер
- •§8.2. Доступ к аппаратуре Доступ к памяти
- •Доступ к портам ввода-вывода
- •Работа по прерываниям
- •Контрольные вопросы
- •Глава 9. Модули §9.1. Основные понятия
- •§9.2. Использование модулей
- •§9.3. Стандартные модули
- •§9.4. Модуль Crt
- •Работа с экраном в текстовом режиме
- •Работа с клавиатурой
- •Работа со звуком
- •§9.5. Модуль dos
- •§9.6. Графический режим монитора
- •Контрольные вопросы
- •Глава 10. Введение в объектно-ориентированное программирование §10.1. История развития программирования
- •Понятие объекта
- •§10.2. Свойства объектов
- •Раннее и позднее связывание
- •§10.3. Виртуальные методы
- •Конструкторы и деструкторы
- •§10.4. Динамические объекты
- •Скрытые поля и методы
- •Контрольные вопросы
- •Литература
Глава 4. Операторы языка Паскаль Выражения
В операторах широко используются выражения. Выражение – это совокупность переменных, констант и функций, соединенных знаками операций.
Так как операций в выражении может быть несколько, то все эти операции разбиты по приоритетам, причем операции, имеющие более высокий приоритет, выполняются в первую очередь.
Приоритет |
Операция |
1 (высший) |
( ) – выражение в скобках |
2 |
Унарные операции: NOT – логическая инверсия, - «минус» – смена знака, @ – взятие адреса. |
3 |
* – арифметическое умножение, / – арифметическое деление, DIV – целочисленное деление, MOD – остаток от целочисленного деления, AND – логическое умножение. |
4 |
+ – арифметическое сложение, - – арифметическое вычитание, OR – логическое сложение, XOR – логическое сложение по модулю 2. |
5 (низший) |
IN – проверка принадлежности множеству. Операции отношения: > – больше, < – меньше, = – равно, <> – не равно, >= – больше или равно, <= – меньше или равно. |
То есть, если необходимо, например,
записать выражение
,
то запись вида a+b/c+d
будет неправильна. С помощью скобок
необходимо расставить приоритеты
выполнения операций: (a+b)/(c+d).
При вычислении выражений часто приходится использовать алгебраические, тригонометрические и другие функции. Язык Паскаль содержит относительно небольшое число стандартных функций, делящихся по типам используемых операндов и получаемых результатов, а так же функции преобразования.
Следующие математические функции могут работать как с целым, так и с вещественным аргументом, тип получаемого результата соответствует типу аргумента:
Abs(x) – модуль числа х;
Sqr(x) – квадрат.
Функции с вещественным результатом:
Sin(x) – синус;
Cos(x) – косинус;
Arctan(x) – арктангенс;
Exp(x) – экспонента;
Ln(x) – натуральный логарифм;
Sqrt(x) – корень квадратный;
Frac(x) – дробная часть вещественного числа;
Int(x) – целая часть вещественного числа.
Функции с целым результатом:
Random(x) – случайное число от 0 до х;
Trunc(x) – округление с отбрасыванием дробной части;
Round(x) – округление по правилам арифметики.
Odd(x) с целым аргументом дает логический результат: True, если х нечетно.
Для работы с символьными значениями используются функции:
Chr(x) – возвращает символ, соответствующий ASCII-коду числа х;
Ord(x) – возвращает число, соответствующее символу х в ASCII-таблице;
UpCase(x) – преобразует латинские строчные буквы в прописные.
Функции для дискретных типов:
Ord(x) – порядковый номер числа х;
Pred(x) – предыдущий элемент;
Succ(x) – следующий элемент.
§4.1. Оператор присваивания
Этот оператор является одним из простейших, и наиболее используемым оператором языка. Он предназначен для определения нового значения переменной или значения, возвращаемого функцией. Общий вид оператора:
<имя> := <выражение>
Частным случаем выражения может быть константа или переменная.
Тип имени и выражения должны совпадать. Допускается только одно исключение: выражение целого типа, а переменная – вещественного.
При выполнении оператора вычисляется выражение, и полученный результат записывается в ячейку памяти, выделенную под переменную. Присваивание допускается для всех простых типов, для структурированных типов присваивание выполняется поэлементно. Нельзя использовать присваивание для файловых типов.
