Студопедия
Случайная страница | ТОМ-1 | ТОМ-2 | ТОМ-3
АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатика
ИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханика
ОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторика
СоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансы
ХимияЧерчениеЭкологияЭкономикаЭлектроника

Листинг 6.1

Читайте также:
  1. Листинг 1. Программа создания таблицы умножения.
  2. Листинг 2.3
  3. Листинг 3.4
  4. Листинг 4.1
  5. Листинг 5. Использование цикла while и инструкции break.
  6. Листинг 5.2
  7. Листинг 5.6

procedure TForm1.Button1Click(Sender: TObject);

Label

bye;

var

num:Integer;

begin

num:=StrToInt(Edit1.Text);

if (num>=1) and (num<=5) then

begin

ShowMessage('Работаем.');

goto bye;

end;

if (num=6) or (num=7) then

begin

ShowMessage('Отдыхаем!');

goto bye;

end

else ShowMessage('Ошибка!');

bye:

ShowMessage('До свидания!');

end;

Листинг 6.2 Применение оператора множественного выбора case... of для тех же целей выглядит более элегантно.

var

num:Integer;

begin

num:=StrToInt(Edit1.Text);

case num of

1..5: ShowMessage('Работаем.');

6..7: ShowMessage('Отдыхаем!');

else ShowMessage('Ошибка!');

end;

end;


Массивы

Массив – структура данных, позволяющая хранить под одним именем совокупность данных любого, но только одного какого-то типа.

Характеристики массива:

§ тип – общий тип элементов массива;

§ размерность (ранг) – количество индексов массива;

§ диапазон – количество допустимых значений каждого индекса;

§ форма – совокупность размерности и диапазона.

Массивы в Object Pascal во многом схожи с аналогичными типами данных в других языках программирования. Отличительная особенность массивов заключается в том, что все их компоненты суть данные одного типа (возможно, структурированного). Эти компоненты можно легко упорядочить и обеспечить доступ к любому из них простым указанием его порядкового номера, например:

Type

digit = array [0..9] of Char;

matrix = array [byte] of Single;

Var

M: matrix;

d: digit;

I: integer;

Begin

m[17]:= ord(d[i-l])/10;

End.

Описание типа массива задается следующим образом:

<имя типа> = array [ <сп.инд.типов> ] of <тип>;

Здесь

ü <имя типа> - правильный идентификатор;

ü array, of - зарезервированные слова (массив, из);

ü <сп.инд.типов> - список из одного или нескольких индексных типов, разделенных запятыми; квадратные скобки, обрамляющие список, - требование синтаксиса;

ü <тип> - любой тип Object Pascal.

В качестве индексных типов в Object Pascal можно использовать любые порядковые типы, имеющие мощность не более 2 Гбайт (т. е. кроме LongWord и Int64)

Определить переменную как массив можно и непосредственно при описании этой переменной, без предварительного описания типа массива, например:

Var

a,b: array [1..10] of Real;

Обычно в качестве индексного типа используется тип-диапазон, в котором задаются границы изменения индексов. Так как тип <тип>, идущий в описании массива за словом of, - любой тип Object Pascal, то он может быть, в частности, и другим массивом, например:

Type

mat=array[0..5]of array[-2..2]of array[Char]of Byte;

Такую запись можно заменить более компактной:

Type

mat=array[0..5,-2..2,char]of Byte;

Глубина вложенности структурированных типов вообще, а следовательно, и массивов - произвольная, поэтому количество элементов в списке индексных типов (размерность массива) не ограничено, однако суммарная длина внутреннего представления любого массива не может быть больше 2 Гбайт. В памяти ПК элементы массива следуют друг за другом так, что при переходе от младших адресов к старшим наиболее быстро меняется самый правый индекс массива.

Если, например,

Var

a: array [1..2,1..2] of Byte;

Begin

а[1,1]:= 1;

а[2,1]:= 2;

а[1,2]:= 3;

а[2,2]:= 4;

End.

то в памяти последовательно друг за другом будут расположены байты со значениями 1,3,2,4. Это обстоятельство может оказаться важным при использовании стандартной процедуры копирования памяти MoveMemory.

В Object Pascal можно одним оператором присваивания передать все элементы одного массива другому массиву того же типа, например:

Var

a,b: array [1..5] of Single;

Begin

а:= b;

End.

После этого присваивания все пять элементов массива а получат те же значения, что и в массиве в. Замечу, что объявление

Var

a: array [1..5] of Single;

b: array [1..5] of Single;

создаст разные типы массивов, поэтому оператор

а:= b;

вызовет сообщение об ошибке.

Над массивами не определены операции отношения. Нельзя, например, записать

if а = b then...

Сравнить два массива можно поэлементно, например:

Var

a,b: array [1..5] of Single;

eq: Boolean;


Дата добавления: 2015-07-10; просмотров: 128 | Нарушение авторских прав


Читайте в этой же книге: Стандартные процедуры и функции, применимые к вещественным типам | Правила использования операций с операндами различного типа | Пример 2.2. (Задание 2.2) | Листинг 2.3 | Листинг 3.4 | Множественный выбор | Листинг 4.1 | Инструкция For | Листинг 5.2 | Считать верхней границей относительной погрешности, то |
<== предыдущая страница | следующая страница ==>
Листинг 5.6| Листинг 7.3

mybiblioteka.su - 2015-2024 год. (0.009 сек.)