Файл: Учебное пособие для студентов Авторы А. Н. Вальвачев, К. А. Сурков, Д. А. Сурков, Ю. М. Четырько Содержание Содержание 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, так как не загромождает примеры программ излишней информацией о среде и библиотеках программирования.

Итак, давайте последовательно создадим консольное приложение:

  1. Запустите среду Delphi, выберите в главном меню команду File | Close All, а затем — команду File | New.

  2. Выберите “Console Application” и нажмите “OK” (рисунок 2.1).



Рисунок 2.1. Окно среды Delphi для создания нового проекта

  1. В появившемся окне между ключевыми словами BEGIN и END введите следующие строчки (рисунок 2.2):