- •Программирование на языке Паскаль в среде 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) Пример программы приложения
Битовые операции
Операции, примененные к каждому биту целочисленных данных, называются битовыми. В Паскале таких операций предусмотрено 6 видов. Одна из них - унарная, остальные - бинарные. Назначение и примеры использования этих операций рассмотрены в справочном пособии по языку.
инверсия
not - унарная операция инверсии всех битов целочисленного значения. Тип результата тот же, что и у исходного числа.
побитовое логическое умножение
and - побитовое логическое умножение двух операндов. Тип результата совпадает с типом операнда, имеющего меньший размер. Если в операции участвуют знаковое и беззнаковое целое, результат считается беззнаковым. При вычислениях используются таблицы истинности (аксиомы булевой алгебры).
побитовое логическое сложение
or - побитовое логическое сложение. Тип результата - как и в операции and.
побитовое исключающее «или»
xor - побитовое исключающее «или». Тип результата - как в операции and. Вычисления производятся в соответствии с таблицей истинности, приведенной выше.
сдвиг влево
К битовым операциям относятся также операции сдвигов.
shl - сдвиг влево. Выражение M shl K сдвигает содержимое переменной M на K битов влево. Освобождающиеся справа биты заполняются нулями.
Сдвиг влево на один разряд эквивалентен умножению числа на 2, сдвиг на n разрядов - умножению на 2 в степени n.
сдвиг вправо
shr- сдвиг вправо. Выражение M shr K сдвигает содержимое переменной M на K битов вправо. Освобождающиеся слева биты заполняются нулями.
Лекция 11
Приоритеты операций
Вычисление любого выражения выполняется с учетом приоритетов операций, входящих в это выражение. Чтобы изменить порядок вычислений используются круглые скобки и выражение в скобках вычисляется и рассматривается как отдельный операнд. Кроме того, предварительно определяются все переменные и константы, разыскиваются элементы массивов, входящие в выражение. Затем вычисляются функции, к которым есть обращения, и далее выражение начинает выполняться слева направо, но с учетом приоритетов. Приоритеты операций приведены в таблице. Первый приоритет - самый высокий.
Таблица 8. Приоритеты операции Турбо-Паскаля
приоритет |
тип операций (действий) |
список операций |
1 |
Вычисления в скобках |
( ), [] |
2 |
Вычисления функций |
любые функции |
3 |
Унарные операции |
@,^,not,унарный"-" |
4 |
Операции типа умножения |
*,/,div,mod,and,shl,shr |
5 |
Операции типа сложения |
+,-,or,xor |
6 |
Операции отношений |
=, <>, >, >=, <, <= |
7 |
Операция присваивания |
:= |
Примеры (цифры под выражением указывают порядок вычислений):
A x B
дробное выражение ----- записывается как A*B/C/D или A*B/(C*D)
C x D 1 2 3 1 3 2
пример логического выражения:
(X<1.5) or ( 2.5-3.2*X+Y * -sin(0.5/Z-1)* 0.01/ exp(sqr(-X /2.0))>Y ) and
1 21 3 2 15 8 7 6 4 5 9 14 13 12 10 11 16 20
not(-X <> P1)
19 17 18
Иногда, при включении директив оптимизации, транслятор может нарушить порядок (слева направо) при выполнении операций одного приоритета, но логические выражения с укороченной схемой обязательно вычисляются слева направо.
Лекция 12