
- •Массивы
- •Массивы
- •Одномерные массивы
- •Использование одномерных массивов в программах
- •Пример 1: фрагмент программы заполнения массива значениями функции sin(x) на отрезке [-3, 3]
- •Компоненты Delphi для работы с одномерными массивами
- •Основные свойства компонентов класса TListBox
- •Основные методы класса TListBox
- •Пример 1: заполнение списка значениями функции
- •Пример 2: копирование выделенных строк из одного списка в другой
- •Пример 3: подсчет количества элементов списка, больших заданного числа m (числа в списке
- •Пример 4: нахождение наибольшего элемента списка
- •Класс TComboBox
- •Пример 1: пополнение списка элементом, введенным пользователем
- •Двумерные и многомерные массивы
- •Двумерные массивы
- •Многомерные массивы
- •Компоненты Delphi для работы с двумерными массивами
- •Основные свойства компонентов класса TStringGrid
- •Пример 1: заполнение таблицы случайными числами в интервале от 0 до 20

Массивы
1

Массивы
Массив — это структура данных, представляющая собой набор переменных одинакового типа, имеющих общее имя
Массивы удобно использовать для хранения однородной по своей природе информации, например, таблиц и списков и т.п.
2

Одномерные массивы
Oбъявление массива в разделе var
имя: array [начальный_индекс .. конечный_индекс] of тип
где:
имя — имя массива;
array — зарезервированное слово языка Delphi, обозначающее, что объявляемая переменная является массивом;
начальный_индекс и конечный_индекс – константы типа integer или char, определяющие границы массива; тип — тип элементов массива.
Примеры объявления массивов:
koef |
: array[0..100] of integer; |
name |
: array[1..30] of string; |
temper |
: array[‘a’.. ‘z’] of real; |
3

Использование одномерных массивов в программах
Обращение к конкретному элементу массива производится по общему имени и номеру элемента, заключенному в квадратные скобки, например:
koef[1],
name[15],
temper[‘f’]
Для последовательной обработки всех элементов массива чаще всего используется цикл с параметром:
for i:=… to … do
4

Пример 1: фрагмент программы заполнения массива значениями функции sin(x) на отрезке [-3, 3] с шагом 0,06
x:=-3;
for i := 0 to 100 do begin koef[i]:=sin(x); x:=x+0.6;
end;
Пример 2: фрагмент программы суммирования элементов массива
sum :=0;
for i := 0 to 100 do
sum := sum + koef[i];
Пример 3: фрагмент программы суммирования положительных элементов массива
sum :=0;
for i := 0 to 100 do if koef[i] > 0 then
sum := sum + koef[i];
5

Компоненты Delphi для работы с одномерными массивами
Класс TListBox (вкладка Standard) |
|
|
Компоненты этого класса |
||
|
||
|
представляют собой |
|
|
многострочные окна, подобно |
|
|
Memo, но без возможности |
|
|
редактирования |
|
|
Они предназначены для работы с |
|
|
одномерным массивом строк |
|
|
Нумерация строк начинается с нуля |
|
|
Одна или несколько строк могут |
|
|
быть выделены с помощью |
|
|
мыши |
|
|
|
6

Основные свойства компонентов класса TListBox
Свойство |
Тип |
Пояснение |
Пример |
7

Основные методы класса TListBox
Метод |
Пояснение |
Пример |
8

Пример 1: заполнение списка значениями функции |
|
1 |
|
на отрезке [2, |
|
|
|
||
|
|
|
||
3] с шагом 0,01 |
x2 1 |
|
var
. . . i : integer;
x : real;
. . .
x:=2;
for i := 0 to 100 do begin
ListBox1.Items.Add(FloatToStr(1/sqrt(x*x-1)); x:=x+0.01;
end;
Возможен и такой вариант: x:=2;
while x<=3 do begin
ListBox1.Items.Add(FloatToStr(1/sqrt(x*x-1)); x:=x+0.01;
end;

Пример 2: копирование выделенных строк из одного списка в другой
for i |
:= 0 to ListBox1.Count-1 do |
begin |
|
if ListBox1.Selected[i] then begin
ListBox2.Items.Add(ListBox1.Items[i]);
end;
end;
А если нужно не скопировать, а перенести, то так: i := 0;
while i<= ListBox1.Count-1 do begin
if ListBox1.Selected[i] then begin
ListBox2.Items.Add(ListBox1.Items[i]);
ListBox1.Items.Delete(i);
end
else i := i + 1;
end;