Партнерка на США и Канаду по недвижимости, выплаты в крипто

  • 30% recurring commission
  • Выплаты в USDT
  • Вывод каждую неделю
  • Комиссия до 5 лет за каждого referral

With An1 Do

               Begin

Fio. Fam := ’Иванов’;

Fio. Im := ’Петр’;

Fio. Ot := ’Степанович’;

Pol := Man;

Data_R. God := 1970;

Data_R. Mes := Yan;

Data_R. Den := 25;

Prof := ’Студент’

End;

Без применения оператора With перед всеми именами полей необходимо было бы написать имя записи An1.

Адрес переменной типа Record вычисляется до выполнения оператора With. Любые модификации переменных, влияющие на вычисленное значение адреса, до завершения оператора With не отражаются на значении вычисленного ранее адреса.

Указание списка переменных типа запись в операторе With (см. предыдущую синтаксическую диаграмму) является сокращенной формой оператора With. Сокращенная форма оператора:

With Z1, Z2, Z3, … , Zn Do <Оператор>

эквивалентна следующей полной форме оператора With:

With Z1 Do

         With Z2 Do

                 With Z3 Do

                         . . .

                         With Zn Do <Оператор>

Из полной формы оператора With видно, что идентификатор поля в <Операторе> обозначает компонент записи из ближайшего объемлющего оператора With, в котором указана переменная с таким полем.

Пример 3.8.

Применительно к примеру 3.2 для полного устранения необходимости в составных именах полей (см. пример 3.7) может быть использована следующая сокращенная форма оператора With:

НЕ нашли? Не то? Что вы ищете?

With An1, Fio, Data_R Do

         Begin

                 Fam := ’Иванов’;

                 Im := ’Петр’;

                 Ot := ’Степанович’;

                 Pol := Man;

                 God := 1970;

                 Mes := Yan;

                 Den := 25;

                 Prof := ’Студент’;

         End;

Если две переменные из списка записей оператора With имеют поля с одним и тем же идентификатором, то внутри оператора With этот идентификатор обозначает поле той переменной, которая указана в списке позже.

Имена отдельных полей записи в программе могут совпадать с именами переменных. Имя переменной в операторе With недоступно.

Пример 3.9.

Использование совпадающих идентификаторов.

Var

       {Запись}

       V:        Record

                       V2: Integer;

                       V1:        Record

                                               A: Real

                                       End;

                       A: Integer

               End;

       {Переменная}

       A: Char;

       . . .

       With V, V1 Do

                       Begin

                               V2 := 1; {значение поля V. V2 равно 1}

                               A := 1.0; {значение поля V. V1.A равно 1.0}

                               V. A := 1; {значение поля V. A равно 1}

       End;

       A := ’A’;

В данном примере есть три элемента с именем А – поля V. V1.A, V. A и переменная А типа Char. Указание имени поля А в <Операторе> оператора With приведет к обращению к полю V. V1.A, поскольку поле А содержится в записи V1, находящейся в списке записей сокращенной формы оператора With после записи V. Чтобы обратиться к полю V. A, нужно использовать его составное имя или вынести оператор, работающий с данным полем, за пределы оператора With.

За пределами оператора With поля записи становятся недоступными, а переменная А типа Char становится доступной.

3.5. Константа-запись

Одним из видов структурных типизованных констант являются константы-записи.

Синтаксис задания константы-записи иллюстрирует рисунок 3.9.

Рисунок 3.9  – Синтаксическая диаграмма

задания константы-записи

Как и остальные типизованные константы, константы-записи могут использоваться в качестве инициированных переменных типа запись (переменных, которым при запуске программы присваивается начальное значение).

Пример 3.10.

Объявление константы-записи.

Type

       Fam = (Ivanov, Petrov);

       Data = Record

                                       God: 1900..2000;

               Mes: (Jn, Fb, Mr, Ap, Ma, Jn, Jl, Ag, Sp, Oc, Nv, Dc);

                                       Den: 1..31

                               End;

       Ank = Array[Fam] Of Data;

Const

       D: Data = (God: 1950; Mes: Jn; Den: 3);

       A: Ank = ((God: 1970; Mes: Dc; Den: 7), (God: 1945; Mes: Ma; Den: 15));

В данном примере D – это типизованная константа-запись, А – массив из двух типизованных констант-записей А[Ivanov] и А[Petrov]. В константе А внутренние скобки относятся к константам-записям, внешние – к типизованным константам-массивам.

В типизованных константах-записях поля должны указываться в том же порядке, как они следуют в объявлении типа запись.

Если запись содержит вариант, то можно указывать только поля выбранного варианта. Если вариант содержит поле признака, то его значение должно быть определено.

Использование компонент файлового типа в структурных константах-записях запрещено.

Задание для самостоятельной подготовки. Константы-записи с вариантами (примеры объявления и использования).

Раздел 4. Множества

4.1. Общие сведения

Множественный тип (тип Set) соответствует понятию множества в математике.

В Паскале допускаются только конечные множества. Максимальное количество элементов в множестве – 256. Все элементы множества должны быть значениями одного типа. Тип элементов множества называется базовым типом множества.

Базовым типом множества может быть любой скалярный тип, за исключением вещественных типов. Целочисленные типы в качестве базового типа могут использоваться только в виде диапазона 0 .. 255 или его поддиапазонов.

Данные типа Set хранятся в памяти в унитарном коде и могут занимать от одного до 32-х байтов. Объем памяти, занимаемый одним элементом множества, равен одному биту. Каждому элементу во множестве жестко соответствует свой номер бита.

Пример 4.1.

Пусть множество может содержать набор элементов 0..7, а его конкретное значение равно множеству элементов 0, 3, 4. В памяти компьютера оно будет представлено в виде, который иллюстрирует таблица 4.1.

Таблица 4.1 – Представление множества в памяти компьютера

0-й бит

1-й бит

2-й бит

3-й бит

4-й бит

5-й бит

6-й бит

7-й бит

1

0

0

1

1

0

0

0


Таким образом, элементу 0 соответствует 0-й бит поля памяти, занимаемого множеством, элементу 1 – 1-й бит и т. д. Если в значении множества элемент присутствует, то соответствующий бит устанавливается в единицу, в противном случае – в ноль.

4.2. Конструктор множества

Значением переменной множественного типа является множество. Конкретные значения множественного типа задаются с помощью конструктора множества. Его синтаксис определяет рисунок 4.1.

Рисунок 4.1  – Синтаксическая диаграмма
конструктора множества

Как следует из синтаксической диаграммы, конструктор множества – это список разделенных запятой выражений или диапазонов, заключенный в квадратные скобки. При указании диапазона все значения из диапазона входят в результирующее множество. Все значения из списка должны быть одинакового типа – любого скалярного, кроме вещественных. Множество не может содержать более 256 элементов.

Пример 4.2.

Примеры множеств.

[]        –        пустое множество (не содержит элементов);

[2, 3, 5, 7, 11]        –        множество простых чисел от 2 до 11.

[‘A’ .. ‘Z’]        –        множество латинских букв.

Из за большого объема этот материал размещен на нескольких страницах:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33