
- •Технология программирования
- •Технология программирования
- •Оглавление
- •§1. Классификация и эволюция программного обеспечения
- •§2. Модульное и объектно-ориентированное программирование
- •Основные понятия ооп
- •Составные части объектного подхода
- •Инкапсуляция. Свойства
- •Наследование. Методы
- •Полиморфизм
- •§3. Визуальная среда программирования Структура проекта Delphi
- •Библиотека компонентов Delphi
- •Класс tButton (кнопки)
- •Класс tShape (фигуры)
- •§4. Основные типы данных в языке Паскаль
- •Класс tLabel (надписи)
- •Класс tEdit
- •Класс tMemo
- •Класс tMainMenu
- •Стандартные диалоги
- •Классы tOpenDialog и tSaveDialog
- •Класс tFontDialog
- •Инструкция case
- •§6. Программирование циклических алгоритмов
- •Цикл с параметром. Инструкция for
- •Цикл с предусловием. Инструкция while
- •Цикл с постусловием. Инструкция repeat … until
- •§7. Простейшие вычислительные методы
- •Метод прямоугольников
- •Метод Монте-Карло
- •Метод деления пополам
- •§8. Процедуры и функции
- •§9. Одномерные массивы
- •Класс tListBox
- •Класс tComboBox
- •§10. Двумерные и многомерные массивы
- •Класс tStringGrid
- •Алгоритмы поиска наименьшего и наибольшего элемента
- •§11. Алгоритмы поиска и сортировки. Понятие вычислительной сложности алгоритма
- •Алгоритм простого перебора
- •Алгоритм бинарного поиска
- •Алгоритм сортировки методом «пузырька»
- •Алгоритм сортировки включением
- •Понятие вычислительной сложности алгоритма
- •§12. Обработка исключительных ситуаций
- •§13. Программирование процессов реального времени
- •Класс tTimer
- •§14. Графическая подсистема Delphi Класс tImage
- •Класс tCanvas
- •§15. Динамическое создание компонентов. Конструкторы и деструкторы
- •§16. Тестирование и отладка программ
- •Методы тестирования программ
- •Средства отладки программ в Delphi
- •Трассировка программы
- •Точки останова программы
- •Наблюдение значений переменных
- •§17. Жизненный цикл программного обеспечения
- •Последовательный (каскадный) тип
- •Эволюционный (спиральный) тип
- •Библиографический список
- •Технология программирования
- •Редактор с.В.Пилюгина
- •620034, Екатеринбург, ул. Колмогорова, 66, УрГупс Редакционно-издательский отдел
Класс tComboBox
Объект класса TComboBox представляет собой выпадающий список. Класс похож на TListBox и имеет почти все те же свойства и методы (за исключением Selected и MultiSelect). Приведем лишь свойства, отсутствующие у класса TListBox:
Свойство |
Тип |
Пояснение |
Text |
TCaption |
Текст, видимый в окне нераскрытого списка |
ItemIndex |
Integer |
Номер видимой строки или -1, если введена отсутствующая в списке строка |
§10. Двумерные и многомерные массивы
Множество практических задач требует хранения информации в виде прямоугольных таблиц. Если вся таблица содержит однородную информацию, например, только целые числа, то такая таблица может быть представлена как двумерный массив.
В общем виде инструкция объявления двумерного массива выглядит так:
Имя: array[ НижняяГраница1..ВерхняяГраница1, НижняяГраница2..ВерхняяГраница2] of Тип
где
Имя - имя массива;
array - слово языка Delphi, указывающее, что объявляемый элемент данных является массивом;
НижняяГраница1, ВерхняяГраница1, НижпяяГраница2, ВерхняяГраница2 - целые константы, определяющие диапазон изменения индексов и, следовательно, число элементов массива;
Тип - тип элементов массива.
Пример объявления двумерного массива:
table : array[0..99,1..12] of integer;
Обращение к конкретному элементу массива производится по общему имени и двум индексам, заключенным в квадратные скобки, например: table[99,5].
Для последовательной обработки всех элементов массива чаще всего используется вложенный цикл с параметром.
Пример: фрагмент программы для суммирования элементов двумерного массива
sum :=0;
for i := 0 to 99 do
for j := 1 to 12 do
sum := sum + table[i,j];
Нередко на практике требуются трехмерные массивы, а иногда даже четырех- и более мерные массивы. Delphi допускает их использование. Делается это аналогично двумерным массивам.
Пример: описание четырехмерного массива
table4 : array[1..200,1..2,1..5,1..6] of integer;
{данные о числе пропущенных занятий для 200 студентов за 2 семестра 5 курсов 6 факультетов}
Фрагмент программы для вычисления суммарного количества пропущенных занятий
sum :=0;
for i := 1 to 200 do
for j := 1 to 2 do
for k := 1 to 5 do
for n := 1 to 6 do
sum := sum + table4[i,j,k,n];
Для отображения двумерных массивов строк в Delphi имеется специальный класс компонентов TStringGrid. Основное свойство этого класса Cells представляет собой двумерный массив строк.
Класс tStringGrid
Объекты класса TStringGrid предназначены для работы с двумерным массивом строк. Первый индекс массива обозначает номер столбца, второй – номер строки. Некоторые свойства:
-
Свойство
Тип
Пояснение
Примечание
Cells
Array [0..n, 0..m] of String
Двумерный массив строк, пронумерованный с нуля
Первый индекс – столбец, второй –строка
FixedCols
Integer
Количество фиксированных (серых) столбцов
Редко используются в программах, обычно задаются с помощью инспектора объектов
FixedRows
Integer
Количество фиксированных строк
Options. goEditing
Boolean
Возможность редактирования содержимого таблицы пользователем
ColCount
Integer
Количество столбцов
RowCount
Integer
Количество строк
Примеры.
Edit1.Text := StringGrid1.Cells[0,0]
(в окно Edit1 будет помещено содержимое левой верхней ячейки таблицы)
for i:=0 to StringGrid1.ColCount-1
do
for i:=0 to StringGrid1.RowCount-1
do …
(просмотр таблицы по столбцам)