Файл: Учебное пособие для студентов Авторы А. Н. Вальвачев, К. А. Сурков, Д. А. Сурков, Ю. М. Четырько Содержание Содержание 1.doc
ВУЗ: Не указан
Категория: Не указан
Дисциплина: Не указана
Добавлен: 04.05.2024
Просмотров: 127
Скачиваний: 4
ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.
type
TType1 = array [1..10] of Integer;
TType2 = type TType1;
var
A: TType1;
B: TType2;
begin
B := A; // Ошибка!
end.
В примере переменные A и B оказываются несовместимы друг с другом из-за слова type в описании типа TType2. Если же переменные A и B принадлежат простым типам данных, то оператор присваивания будет работать:
type
TType1 = Integer;
TType2 = type TType1;
var
A: TType1;
B: TType2;
begin
B := A; // Работает
end.
2.4. Операции
2.4.1. Выражения
Переменные и константы всех типов могут использоваться в выражениях. Выражение задает порядок выполнения действий над данными и состоит из операндов, круглых скобок и знаков операций. Операнды представляют собой константы, переменные и вызовы функций. Операции — это действия, выполняемые над операндами. Например, в выражении
(X + Y) / 2;
X, Y, 2 — операнды; '+', '/' — знаки операций; скобки говорят о том, что сначала выполняется операция сложения, потом — деления.
В простейшем случае выражение может состоять из одной переменной или константы. Круглые скобки используются, как и при записи обычных математических выражений, для управления порядком выполнения операций.
Операции в языке Delphi подразделяются на арифметические, операции отношения, логические (булевские), строковые, операцию получения адреса и другие. Выражения соответственно называются арифметическими, отношения, булевскими, строковыми и т.д. в зависимости от того, какого типа операнды и операции в них используются.
2.4.2. Арифметические операции
Арифметические операции наиболее часто используются в выражениях и выполняют арифметические действия над значениями операндов целочисленных и вещественных типов данных (таблица 2.5).
Операция | Действие | Тип операндов | Тип результата |
+ | Сложение | Целый, вещественный | Целый, вещественный |
– | Вычитание | Целый, вещественный | Целый, вещественный |
* | Умножение | Целый, вещественный | Целый, вещественный |
/ | Деление | Целый, вещественный | Вещественный |
Div | Целочисленное деление | Целый | Целый |
Mod | Остаток от деления | Целый | Целый |
Таблица 2.5. Арифметические операции
Операции сложения, вычитания и умножения соответствуют аналогичным операциям в математике. В отличие от них операция деления имеет три формы: обычное деление (/), целочисленное деление (div), остаток от деления (mod). Назначение каждой из операций станет понятным после изучения следующих примеров:
Выражение | Результат |
6.8 – 2 | 4.8 |
7.3 * 17 | 124.1 |
–(5 + 9) | –14 |
–13.5 / 5 | –2.7 |
–10 div 4 | –2 |
27 div 5 | 5 |
5 div 10 | 0 |
5 mod 2 | 1 |
11 mod 4 | 3 |
–20 mod 7 | –6 |
2.4.3. Операции отношения
Операции отношения выполняют сравнение двух операндов и определяют, истинно значение выражения или ложно (таблица 2.6). Сравниваемые величины могут принадлежать к любому порядковому типу данных. Результат всегда имеет булевский тип.
Эта группа операций специально разработана для реализации алгоритмических элементов типа “больше”, “больше или равно” и т.п., которые имеются практически в каждой программе.
Операция | Действие | Выражение | Результат |
= | Равно | A = B | True, если A = B |
<> | Не равно | A <> B | True, если A < B или A > B |
< | Меньше | A < B | True, если A < B |
> | Больше | A > B | True, если A > B |
<= | Меньше или равно | A <= B | True, если A < B или A = B |
>= | Больше или равно | A >= B | True, если A > B или A = B |
Таблица 2.6. Операции отношения
Типичные примеры операций отношения:
Выражение | Результат |
123 = 132 | False |
123 <> 132 | True |
17 <= 19 | True |
17 > 19 | False |
7 >= 7 | True |
2.4.4. Булевские операции
Результатом выполнения логических (булевских) операций является логическое значение True или False (таблица 2.7). Операндами в логическом выражении служат данные типа Boolean.
Операция | Действие | Выражение | A | B | Результат |
Not | Логическое отрицание | not A | True False | | False True |
and | Логическое И | A and B | True True False False | True False True False | True False False False |
or | Логическое ИЛИ | A or B | True True False False | True False True False | True True True False |
xor | Исключающее ИЛИ | A xor B | True True False False | True False True False | False True True False |
Таблица 2.7. Логические операции
Результаты выполнения типичных логических операций:
Выражение | Результат |
not (17 > 19) | True |
(7 <= 8) or (3 < 2) | True |
(7 <= 8) and (3 < 2) | False |
(7 <= 8) xor (3 < 2) | True |
2.4.5. Операции с битами
Если операнды в булевской операции имеют целочисленный тип, то операция выполняется над битами операндов и называется побитовой. К побитовым операциям также относятся операции сдвига битов влево (shl) и вправо (shr).
Операция | Действие | Тип операндов | Тип результата |
not | Побитовое отрицание | Целый | Целый |
and | Побитовое И | Целый | Целый |
or | Побитовое ИЛИ | Целый | Целый |
xor | Побитовое исключающее ИЛИ | Целый | Целый |
shl | Сдвиг влево | Целый | Целый |
shr | Сдвиг вправо | Целый | Целый |
Таблица 2.8. Побитовые операции
Примеры побитовых операций:
Выражение | Результат |
not $FF00 | $00FF |
$FF00 or $0FF0 | $FFF0 |
$FF00 and $0FF0 | $0F00 |
$FF00 xor $0FF0 | $F0F0 |
$FF00 shl 4 | $F000 |
$FF00 shr 4 | $0FF0 |
2.4.6. Очередность выполнения операций
При выполнении выражений одни операции выполняются раньше других. Например, в выражении
20 + 40 / 2
сначала произойдет деление (ибо скобок, меняющих естественный порядок выполнения операций, нет) и только потом — сложение. Выполнение каждой операции происходит с учетом ее приоритета. Не зная приоритета каждой операции, крайне трудно правильно записать даже самое простое выражение. Значения приоритетов для рассмотренных выше операций представлены в таблице 2.9.
Операция | Приоритет | Описание |
–, not | Первый | Унарный минус, отрицаиие |
*, /, div, mod, and | Второй | Операции типа умножение |
+, –, or, xor | Третий | Операции типа сложение |
=, <>, <,>, <=, >= | Четвертый | Операции отношения |
Таблица 2.9. Приоритет операций
Чем выше приоритет (первый — высший), тем раньше операция будет выполнена.
2.5. Консольный ввод-вывод
2.5.1. Консольное приложение
Решение самой простой задачи на компьютере не обходится без операций ввода-вывода информации. Ввод данных — это передача данных от внешнего устройства в оперативную память для обработки. Вывод — обратный процесс, когда данные передаются после обработки из оперативной памяти на внешнее устройство. Внешним устройством может служить консоль ввода-вывода (клавиатура и монитор), принтер, гибкий или жесткий диск и другие устройства.
Сейчас мы рассмотрим лишь средства консольного ввод-вывода данных. Консоль — это клавиатура плюс монитор. С клавиатуры данные вводятся в программу, а на монитор выводятся результаты ее работы. Консольная модель ввода-вывода, при которой данные представляются потоком символов, не позволяет использовать графических средств. Однако она очень подходит для изучения языка Delphi, так как не загромождает примеры программ излишней информацией о среде и библиотеках программирования.
Итак, давайте последовательно создадим консольное приложение:
-
Запустите среду Delphi, выберите в главном меню команду File | Close All, а затем — команду File | New. -
Выберите “Console Application” и нажмите “OK” (рисунок 2.1).
Рисунок 2.1. Окно среды Delphi для создания нового проекта
-
В появившемся окне между ключевыми словами BEGIN и END введите следующие строчки (рисунок 2.2):