- •Предисловие
- •Раздел 1. Изучение интегрированной среды delphi
- •1.1. Вводные замечания
- •Основные понятия
- •1.3. Контрольные вопросы
- •1.4. Задания к лабораторной работе № 1
- •Раздел 2. Программирование линейных алгоритмов в системе delphi
- •2.1. Вводные замечания
- •2.2. Основные понятия
- •2.3. Пример программирования линейного алгоритма
- •2.3.1. Разработка алгоритма
- •2.3.3.Текст программы:
- •2.4. Контрольные вопросы
- •2.5. Задания к лабораторной работе № 2
- •Раздел 3. Программирование
- •3.3.2. Разработка формы
- •3.4. Контрольные вопросы
- •3.5. Задания к лабораторной работе № 3
- •Раздел 4. Программирование простых циклических алгоритмов в системе
- •4.1. Вводные замечания
- •4.2. Основные понятия
- •4.3.1. Разработка алгоритма
- •4.4. Контрольные вопросы
- •Раздел 5. Программирование с использованием одномерных массивов в системе delphi
- •5.1. Вводные замечания
- •5.2 Основные понятия
- •5.3. Пример программирования с использованием одномерного массива
- •5.3.1. Разработка алгоритма
- •5.4. Контрольные вопросы
- •5.5. Задания к лабораторной работе № 5
- •Раздел 6. Программирование с использованием двумерных массивов в системе delphi
- •6.1. Вводные замечания
- •6.2. Основные понятия
- •6.3. Пример программирования с использованием двумерного массива
- •6.3.1. Разработка алгоритма
- •Раздел 7. Символы и строки
- •Раздел 8. Файлы
- •Задание 1
- •Раздел 9. Программирование в системе delphi с использованием подпрограмм
- •7.3. Пример программирования с использованием подпрограмм
- •Учебно-методическое обеспечение курса
- •Средства обеспечения освоения дисциплины
Раздел 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];