- •Программирование на языке Паскаль в среде Turbo Pascal версии 6 и 7
- •Глава 7. Составные типы данных 29
- •Глава 8. Подпрограммы и функции 46
- •Глава 9. Файлы 50
- •Глава 10. Динамические переменные (списки) 58
- •Тип и функциональные возможности языка
- •Структура программы на Паскале
- •Алфавит языка
- •Правила написания имен
- •Структура блока описаний
- •Глава 2. Простые типы данных в языке Паскаль Понятие и классификация типов данных
- •Целочисленные типы
- •Вещественные типы
- •Логический тип
- •Символьный тип
- •Интервальный тип пользователя
- •Перечисляемый тип пользователя
- •Глава 3. Встроенные функции Понятие и классификация типов функций
- •Математические функции
- •Функции преобразования типов
- •Глава 4. Выражения Понятие и классификация типов выражений
- •Арифметические операции
- •Логические операции
- •Отношения
- •Битовые операции
- •Глава 5. Выполняемые операторы языка (для программ линейной структуры) Понятие и классификация
- •Классификация инструкций Паскаля
- •Оператор присваивания
- •Простейшие операторы ввода с клавиатуры
- •Простейшие операторы вывода на экран дисплея
- •Глава 6. Выполняемые управляющие операторы языка Простые управляющие операторы
- •Оператор безусловного перехода.
- •Оператор продолжения цикла.
- •Операторы ветвлений
- •Оператор условного перехода.
- •Неполный условный оператор.
- •Полный условный оператор.
- •Операторы циклов
- •Оператор арифметического цикла
- •Операторы итеративных циклов
- •Организация цикла с помощью условного перехода
- •Оператор итеративного цикла с предусловием
- •Оператор итеративного цикла с постусловием
- •Глава 7. Составные типы данных Классификация составных типов
- •Массивы Основные определения
- •Вывод массива
- •Примеры программ работы с массивами
- •Сортировки массива
- •Алгоритмы основных методов сортировок
- •Строки Строковые переменные
- •Стандартные (встроенные) процедуры работы со строками
- •Стандартные (встроенные) функции работы со строками
- •Структуры
- •Глава 8. Подпрограммы и функции Понятие подпрограмм в языке Паскаль.
- •Процедуры.
- •Описание и вызов функций
- •Параметры процедур и функций
- •Глава 9. Файлы Классификация внешних данных
- •Стандартные процедуры работы с файлами
- •Процедуры
- •Функции
- •Особенности работы с текстовыми файлами
- •Пример работы с текстовыми файлами.
- •Двоичные файлы (в машинных кодах) Типизированные файлы
- •Процедуры при работе с типизированными файлами
- •Функции при работе с типизированными файлами
- •Пример работы с типизированными файлами.
- •Файлы без типов
- •Процедуры, используемые при работе с нетипизированными файлами
- •Функции, используемые при работе с нетипизированными файлами.
- •Глава 10. Динамические переменные (списки) Понятие динамических переменных
- •Списочные данные
- •Односвязные списки
- •Двусвязные списки
- •Нульсвязные списки
- •Глава 11.Стандартный модуль работы с текстовым экраном Crt
- •2) Координаты экрана
- •3) Управление графическим режимом
- •4) Управление экраном и окном
- •5) Управление цветом
- •6) Вывод точек
- •7) Вывод линий
- •8) Вывод и закраска контуров
- •9) Окружности, эллипсы, дуги
- •10) Вывод текста
- •11) Последовательность работ при использовании графического режима
- •11) Пример программы приложения
Глава 4. Выражения Понятие и классификация типов выражений
Рассмотренные выше типы данных используются в операторах языка Паскаль для различных целей. Основной задачей обработки данных, как уже упоминалось выше, является получение новых данных по уже имеющимся. Такой процесс происходит при выполнении (вычислении) выражений.
Выражение – это константа или имя переменной или имя переменной с индексом или обращение к функции или некоторая их совокупность, соединенная знаками допустимых операций, возможно с использованием круглых скобок.
Таким образом, выражение - это такая структура языка, которая определяет способ получения нового значения по имеющимся. В составе выражений встречаются операнды и знаки операций. Операндами являются данные (в виде констант и переменных) и некоторые фиксированные последовательности действий, называемые вызовами функций.
Константы и данные, а также некоторые функции были рассмотрены выше, здесь мы остановимся на операциях.
Все выражения классифицируются по типу получаемого результата. В Паскале предусмотрены выражения арифметического типа (в свою очередь подразделяющиеся на целочисленные и вещественные и битовые), логические, операции отношений, адресные и строковые. Соответственно, и знаки операций (или просто операции) делятся на те же типы.
Арифметические операции
Наиболее часто в программах обрабатываются числовые данные, над которыми выполняются арифметические операции. Следует отметить, что хотя процессор не имеет команд, реализующих арифметические операции над числовыми данными, с различными описателями типов (например, не может сложить целое однобайтовое и целое беззнаковое двухбайтовое, или перемножить целое и вещественное), язык Паскаль разрешает записывать в одном выражении операнды различных числовых типов. Просто при трансляции, если необходимо, компилятор подставляет команды преобразования данных к единому типу. Так как команды преобразований часто занимают гораздо больше времени, чем сами операции, целесообразно, где это возможно, использовать операнды одного типа.
Например, если Х - вещественная переменная, первое выражение будет выполняться быстрее, чем второе:
1) X + 1.0 2) X + 1
Все варианты арифметических операций представлены в таблице
Таблица 6. Допустимые арифметические операции Турбо-Паскаля
Знак |
Операция |
Типы операндов |
Тип результата |
+ |
Сложение |
Целый |
Целый |
Хотя бы один - веществ. |
Вещественный | ||
- |
Вычитание |
Целый |
Целый |
Хотя бы один - веществ. |
Вещественный | ||
* |
Умножение |
Целый |
Целый |
Хотя бы один - веществ. |
Вещественный | ||
/ |
Деление |
Любой числовой |
Вещественный |
div |
Целочисленное деление |
Целые |
Целый |
mod |
Остаток деления целых чисел |
Целые |
Целый |
При всех делениях, делитель не должен быть нулем. В программе можно использовать унарную (одноместную) операцию "-", которая меняет знак величины на противоположный. При этом можно не отделять знак унарного "-" от предшествующего ему знака бинарной операции, например следующие выражения записаны правильно и дают одинаковый результат:
A * - B; -A * B; A * (-B); A*-B; A *- B;
Операции целочисленного деления и получения остатка от деления применимы только для целочисленных данных. Результат такого деления получается вещественным делением операндов и переводом результата в целое путем отбрасывания (а не округления!) дробной части. Остаток целочисленного деления - это такое наименьшее (по модулю) число, после уменьшения на которое делимое будет делиться на делитель без остатка. В выражениях операции, изображаемые служебными словами, должны отделяться от имен хотя бы одним пробелом:
A div B, A mod B
Примеры выполнения операций:
5/3 ->1.666667; 5 div 3 ->1; 3 div 5 ->0; 5 div -3 -> -1; 10 div 3->3;
5 mod 3 ->2; 3 mod 5 ->3; 10 mod 3 ->1; -10 mod 3 ->1;
Лекция 10