Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Informatika-otvety (2).docx
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
493.88 Кб
Скачать
  1. Компоненты отображения текстовой информации

  2. Строки. Строковые процедуры и функции

  3. многострочного редактора для обработки строковых данных

  4. Массивы

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

Размерность массива — количество индексов, необходимое для однозначного доступа к элементу массива

Форма или структура массива — количество размерностей и размер (протяжённость) массива для каждой размерность, может быть представлен одномерным массивом.

В языке программирования APL массив является основным типом данных (при этом нуль-мерный массив называется скаляром, одномерный — вектором, двумерный — матрицей).

В ряде языков программирования, например, Лисп, JavaScript, PHP, Ruby применяются также ассоциативные массивы (или хэш-массивы), в которых элементы не обязательно являются однотипными, а доступ к ним не обязательно осуществляется по индексу.

type

TArrayType = array [0..9] of Integer; (* Объявления типа "массив" *)

var

arr1, arr2, arr3: TArrayType; (* Объявление трёх переменных-массивов одного типа *)

Динамическим называется массив, размер которого может меняться во время исполнения программы. Язык программирования, поддерживающий динамические массивы, должен предоставлять возможность для изменения размера массива. Динамические массивы делают работу с данными более гибкой, так как не требуют предварительного определения хранимых объёмов данных, а позволяют регулировать размер массива в соответствии с реальными потребностями. Обычные (не динамические) массивы называют ещё фиксированными.

byteArray : Array of Byte; // Одномерный массив

multiArray : Array of Array of string; // Многомерный массив

  1. Создание и работа со списками

Помимо многострочного редактора, в Delphi, на той же закладке Standard палитры компонентов, располагаются еще 2 компонента, использующих списки строк для хранения своих значений. Это ListBox и ComboBox.

Простой список, представленный компонентом ListBox, представляет собой прямоугольную область, в которой располагаются его элементы – строки. Если строк в списке больше, чем может поместиться в отведенной области, то автоматически появляется полоса прокрутки.

Класс TListBox является наследником класса TWinControl и имеет собственные свойства, представленные в таблице 12.5.

Таблица 12.5. Основные свойства ListBox

Свойство

Тип

Описание

AutoComplete

Boolean

Определяет, должен ли список реагировать на нажатие клавиш таким образом, чтобы находить и выделить совпадающий элемент

BorderStyle

TBorderStyle

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

Columns

Integer

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

Count

Integer

Указывает на количество элементов списка

ItemIndex

Integer

Определяет порядковый номер выбранного элемента, начиная с 0. Если не выбрано ни одного, то устанавливается в -1

Items

TStrings

Содержит строки списка

MultiSelect

Boolean

Определяет, допустимо или нет производить множественный выбор

SelCount

Integer

Указывает на количество выбранных элементов

Selected

array of Boolean

Определяет, выбран или нет тот или иной элемент списка

Sorted

Boolean

Определяет, должен ли список быть отсортирован

TopIndex

Integer

Определяет порядковый номер элемента, который является самым верхним в видимой части списка

Отдельное пояснение следует дать для свойства Columns. Дело в том, что если оно имеет значение, отличное от принятого по умолчанию нуля, то список становится не простым вертикальным, а многоколоночным, с горизонтальной прокруткой по колонкам для случая, если все элементы не умещаются на отведенной для списка области. Поэтому, в зависимости от того, какое значение имеет параметр Columns, один и тот же список может выглядеть совершенно по-разному (рис. 12.3).

  Рис. 12.3. Влияние значения свойства Columns на внешний вид списка

Двумерный Массив. Матрица Не буду путать вас сложными техническими обозначениями термина, я просто скажу простым языком. Пример массива – это шахматная доска. Снизу у нас буквы (A-B-C…), сбоку цифры (1-2-3…), каждый квадрат на поле задается двумя координатами, к примеру: E2, E4, G5. И на выбранном квадрате может стоять фигура, конь, ферзь, ладья, а может и не стоять вовсе. В программировании двумерный массив позволяет построить подобные схемы.  Давайте рассмотрим пример, построим шахматную доску размером 3 на 3 ячейки и заполним несколько ячеек фигурами: Сначала мы создадим двумерный массив Delphi mas, имеющий по три ячейки (1..3), зададим ему тип string: var mas: array[1..3,1..3] of string; Теперь нам нужно заполнить все девять ячеек, “расставить фигуры” в каждую, для этого обратимся к каждой ячейке на прямую по ее адресу, как это делается в шахматах, к примеру ячейка 1-1 или 2-3, первая цифра – номер по горизонтали, вторая – по вертикали. Сделаем это так

mas[1,1]:='Ферзь'; mas[1,2]:='Пусто'; mas[1,3]:='Ладья'; ... mas[3,3]:='Пусто'; Теперь у нас есть поле из 9 ячеек, заполненное теми фигурами, которыми вы пожелаете. Двумерные массивы Delphi применяются для многих целей, это может быть база данных, с именами людей, номерами телефонов, должностями или еще какой-либо информацией, так же массивы чисел можно применять в играх для сохранения в памяти программы информацию об игроках, уровнях их здоровья, очках. Любой программист сам выбирает для каких целей он будет использовать массив, потому что он является одной из самых важных конструкций в программировании. Если кому будет интересно, то существует также двумерный динамический массив – его отличие заключается лишь в том, что значение его ячеек и, самое главное, количество этих самых ячеек изменяется по ходу выполнения программы.

МАТРИЦА

Как видите, в квадратных скобках перечислены через запятую размеры строк и столбцов. Заметьте, что мы объявили массив от 0 до 3 — это будет четыре эле­мента и от 0 до 4, что будет составлять 5 элементов.

Работа с таким массивом также достаточно простая 

var

t:array[0..3, 0..4] of integer; begin

t[0][0]=1;

t[l][0]=2;

t[2] [0]=3;

t[3] [0]=4;

t[l][1] =5;

end; 

После выполнения этого примера таблица примет вид:

1 0 0 0 0

2  5 0 0 0

 0 0 0 0

 0 0 0 0

Двумерность не предел, и вы можете создавать и трехмерные массивы. Давайте просто посмотрим на содержимое листинга 10.6, и вам все должно стать понятно.

var

t:array[0..3, 0..4, 0..2] of integer;

begin t[0][0][0]:=1;

t[l][0][0]:=2;

t [2] [0] [0] : =3;

t[3][0][0]:=4;

t[l][1][0]:=5;

end;

Использование массивов очень удобно, но иногда может оказаться излишне рас­точительным. Дело в том, что двумерный массив из 100x100 строк может "съесть" достаточно много оперативной памяти (100*100* на длину строки).

Да, в наше время о памяти мало кто заботится, но это ужасно, и ничего хорошего в этом нет.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]