Автор: Пользователь скрыл имя, 03 Марта 2013 в 20:09, контрольная работа
Главную часть программы на языке Object Pascal составляет раздел операторов, в котором реализуется алгоритм решения поставленной задачи, т.е. именно в нем с предварительно описанными переменными, константами, значениями функций и т.п. выполняются определенные действия, позволяющие получить результат, ради которого создается программа.
Введение
1. Операции и выражения
2. Операторы языка Object Pascal
3. Организация ввода-вывода
Выводы
Введение
1. Операции и выражения
2. Операторы языка Object Pascal
3. Организация ввода-вывода
Выводы
ЛИТЕРАТУРА
ВВЕДЕНИЕ
Главную часть программы на языке Object Pascal составляет
раздел операторов, в котором реализуется
алгоритм решения поставленной задачи,
т.е. именно в нем с предварительно описанными
переменными, константами, значениями
функций и т.п. выполняются определенные
действия, позволяющие получить результат,
ради которого создается программа.
Раздел операторов начинается ключевым
словом ^ Begin (начало), затем
следуют операторы языка, отделяемые друг
от друга точкой с запятой. Завершают раздел
ключевое слово End и точка.
Операторы выполняются строго последовательно
в том порядке, в котором они записаны
в тексте программы в соответствии с синтаксисом
и семантикой языка программирования.
Некоторые операторы (перехода, условные)
позволяют нарушить естественный последовательный
порядок выполнения операторов.
Целью лекции
является изучение принципов использования
выражений и операторов в программах на
языке Object Pascal.
Выражение в программировании служит
для определения порядка выполнения действий
над элементами данных и состоит из операндов
(констант, переменных, обращений к функциям),
круглых скобок и знаков операций.
По количеству операндов операции делятся
на унарные и бинарные. Унарные операции
имеют только один операнд, перед которым
располагается символ операции. К унарным
относятся: операции изменения знака «-»
(минус) и сохранения знака «+» (плюс), а также логическое
отрицание «not» (НЕ) и взятия адреса @,
например,
|
|
|
|
|
|
|
|
|
|
Остальные операции являются бинарными
и содержат два операнда, между
которыми ставится символ операции, например,
|
|
|
|
|
|
|
|
По характеру выполняемых
1. Арифметические операции:
2. Операции отношения:
=, <>, <, >, <=, >=
3. Булевы (логические) операции:
not, and, or, xor
4. Поразрядные логические и сдвиговые
операции:
not, and, or, xor, shl, shr
5. Строковая операция (конкатенация):
+
6. Операции над множествами:
+, -, *, in, <=, >=
7. Операция взятия адреса:
@
Последовательность выполнения операций
в выражении определяется тремя факторами:
По приоритету все операции делятся
на четыре группы (табл.1.1).
Таблица 1.1. Приоритет операций
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Операции первого (высшего) приоритета
выполняются в первую очередь. Операции
четвертого (низшего) приоритета выполняются
в последнюю очередь. Операции с
равным приоритетом выполняются
слева направо, хотя иногда компилятор
для генерации оптимального кода
может переупорядочить
Р
ис. 1.1 иллюстрирует порядок выполнения
операций в сложных выражениях.
^
В зависимости от используемых операций
и типов операндов выражения
бывают арифметическими, логическими, отношения, строковыми и др.
^
Арифметическое выражение порождает целое
или действительное значение. Наиболее
простыми формами арифметических выражений
являются: целая или действительная константа
без знака; целая или действительная переменная;
элемент массива целого или действительного
типа; функция, принимающая целое или действительное
значение.
Значение переменной или элемента массива
должно быть определено до их появления
в арифметическом выражении. Другие арифметические
выражения составляются из вышеперечисленных
простых форм путем применения круглых
скобок и арифметических операций.
Арифметические операции выполняют арифметические
действия в выражениях над значениями
операндов целого и вещественного типа
(группы integer и real) и представлены в табл.
1.2.
Табл. 1.2. Арифметические операции
|
|
|
| |
| ||||
|
|
|
|
|
|
|
|
|
|
| ||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| ||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Следует только помнить, что если операнды
принадлежат к различным типам,
то тип результата будет более
охватывающим.
^ Операции сложения (+) и вычитания (-) выполняются так же,
как и в обычных арифметических выражениях.
Допускается смешение типов integer и real в одном выражении, например:
Выражение Результат
34+17.09 51.09
5-43 -38
67+(-12+6.05) 61.05
Операции умножения (*) и деления (/) имеют наивысший
приоритет и выполняются с данными типа
integer и real, причем тип результата операции
деления (/) всегда будет вещественным.
Выражение Результат
134*12 1608
1.22*3.05 3.72
997/4 249.25
Целочисленное деление (div) отличается
от обычной операции деления тем, что возвращает
целую часть частного, дробная часть отбрасывается.
Перед выполнением операции оба операнда
округляются до целых значений. Результат
целочисленного деления всегда равен
нулю, если делимое по модулю меньше делителя.
Выражение Результат
11 div 5 2
2 div 3 0
-13 div 4 -3
25 div –6 -4
-13 div –4 3
^ Деление по модулю (mod) восстанавливает остаток, полученный
при выполнении целочисленного деления.
Выражение Результат
14 mod 5 4
-13 mod 4 -1
13 mod –4 1
-13 mod –4 -1
В арифметические выражения могут включаться
стандартные функции, определенные в языке.
Перечень некоторых таких функций приведен
в табл. 1.3.
Таблица 1.3. Арифметические функции
и процедуры
|
|
|
|
| |
|
| ||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
В программах часто используются функции
преобразования (табл. 1.4), обеспечивающие
преобразование одних типов данных в другие
типы, например, целые в строковые и наоборот.
Таблица 1.4. Функции преобразования
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Обычно функции используют в качестве
операндов выражений. Параметром функции
может быть константа, переменная или
выражение соответствующего типа.
^ Поразрядные (битовые) булевские и сдвиговые
операции могут применяться только к операндам
целого типа. Действие этих операций выполняется
поразрядно над двоичным представлением
операндов в соответствии с таблицами
истинности, приведенными в табл. 1.5.
Таблица 1.5. Таблицы истинности для
поразрядных булевских операций
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Результат операции not: целочисленное значение,
равное десятичному числу, которое соответствует
поразрядно инвертированному двоичному
представлению исходного операнда.
Результат операции and (or, xor): целочисленное значение,
равное десятичному числу, которое соответствует
двоичному представлению поразрядно выполненной
над исходными операндами логической
операции И (ИЛИ, исключающее ИЛИ).
Результат операции A shl В (A shr В): целочисленное значение,
равное десятичному числу, полученному
в результате поразрядного сдвига влево
(вправо) двоичного представления операнда
А на В разрядов. Освободившиеся при этом
разряды заполняются нулями.
Например, если А:=11; В:=2; то
Десятичное значение Двоичное представление
not А 244 11110100
A and В 2 00000010
A or В 11 00001011
A xor В 9 00001001
A shl В 44 00101100
A shr В 2 00000010
Для правильного написания арифметических
выражений и исключения ошибок при получении
результата рекомендуется соблюдать следующие
ограничения и правила: