Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Методичка-ПРОГРАММИРОВАНИЕ -DELPHI 2007.doc
Скачиваний:
7
Добавлен:
12.11.2019
Размер:
2.04 Mб
Скачать

Раздел 5. Программирование с использованием одномерных массивов в системе delphi

5.1. Вводные замечания

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

5.2 Основные понятия

В системе Delphi, так же как и в других языках программиро­вания, структура данных массив используется очень часто. К необ­ходимости применения массивов мы приходим всякий раз, когда требуется связать и использовать целый ряд родственных величин.

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

Массив - это структурированный тип данных, состоящий из фиксированного числа упорядоченных элементов, имеющих один и тот же тип.

Одномерный массив - это набор элементов одного типа, расположенных в одну строку.

Элементами массива могут быть данные любого, но только одного типа. Число элементов массива фиксируется при описании и в процессе выполнения программы не меняется. Например, ре­зультаты многократных замеров температуры воздуха в течение года удобно рассматривать как совокупность вещественных чисел, объединенных в один сложный объект - массив измерений.

Описание массива

Для описания массива предназначены зарезервированные слова array и of (массив, из). За словом array в квадратных скобках

указывается тип-диапазон (в качестве тип-диапазона может высту­пать любой порядковый тип), с помощью которого компилятор оп­ределяет общее число элементов массива. Тип-диапазон задается левой и правой границами изменения индекса массива. За словом of указывается тип элементов, образующих массив.

TYPE

<имя типа> = array [тип индекса] of <тип компоненту

VAR

идентификатор,...> : <имя типа>;

Массив может быть описан и без представления типа в разде­ле описания типов данных: VAR идентификатор,.. > : array [тип индекса] of <тип компоненту

Примеры описания одномерных массивов:

TYPE

Tl = array [1..10] of integer;

VAR

M:T1;

Ml : array [1..20] of real;

В данном примере описаны два одномерных массива: М -массив, состоящий из 10 целых чисел; Ml - массив, состоящий из 20 вещественных чисел.

Для описания массива можно использовать константы:

Const N = 5;

VAR

MAS: array [1..N] of real;

Действия над одномерными массивами

Для работы с массивом как единым целым используется имя массива без указания индекса в квадратных скобках.

Массивы, участвующие в действиях, должны быть идентичны по структуре, то есть иметь одинаковые типы индексов и одинако­вые типы компонент. Доступ к каждому элементу массива в про-

грамме осуществляется с помощью индекса - целого числа, служа­щего порядковым номером элемента в массиве. В правильно со­ставленной программе индекс не должен выходить за пределы, оп­ределенные типом-диапазоном. Компилятор Delphi может контро­лировать использование индексов в программе как на этапе компи­ляции, так и на этапе выполнения программы.

Над массивами как над единым целым можно выполнять три действия: равно, неравно и оператор присваивания.

Выражение Результат

TRUE, если значение каждого элемента масси- А=В ва А равно соответствующему значению эле-

мента массива В.

TRUE, если хотя бы одно значение элемента А<>В массива А не равно значению соответствующе-

го элемента массива В.

Все значения элементов массива В присваива-A:=B ются соответствующим элементам массива А.

Значения элементов массива В остаются неизменными.

Ввод и вывод значений элементов одномерного массива с клавиатуры можно осуществить с помощью компоненты TString-Grid страницы ADDITIONAL, предназначенной для создания таб­лиц, в ячейках которых располагаются произвольные текстовые строки. С помощью компоненты TЕdit, представляющей собой од­нострочный редактор текста, можно вводить и/или отображать достаточно длинные текстовые строки.

Пример:

Edit5.text:=StringGridl.Cells [у, 0]; //позволяет вывести // содержимое ячейки (более подробно см, пример),

где у - номер столбца;

0 - номер строки.

После выполнения этого присваивания в поле Edit5.text нахо­дится содержимое (текст) ячейки таблицы;

StringGrid1.Cells[y,0] - определяет содержимое ячейки с таб­личными координатами (у,0).

Начиная с четвертой версии Delphi, были введены динамиче­ские массивы.

Описание однородного динамического массива:

var x:array of real; y:array of integer;

Выполнять операции с динамическим массивом можно толь­ко после задания размеров этого массива процедурой

SetLength(var S; NL:integer),

где S - имя динамического массива, NL - размер массива.

Нумерация элементов динамического массива начинается с нуля.

Для определения длины, минимального и максимального номера элементов используются соответственно функции Length(), Low() и High( ).

Пример подсчета суммы элементов динамического массива:

var n,S:integer; mas:array of integer;

SetLength(mas,10);

S:=0;

for n:=0 to 9 do

S:=S+mas[n];