- •Лабораторная работа № 1 Среда программирования Delphi. Линейные алгоритмы
- •Краткие теоретические сведения
- •Графическая среда разработки Delphi
- •Компоненты
- •Обработка событий
- •Редактор кода
- •Компиляция
- •Отладка
- •Структура проекта
- •Сохранение проекта
- •Идентификаторы, операторы
- •Типы данных
- •Переменные
- •Константы
- •Выражение
- •Оператор присваивания
- •Комментарии
- •Стандартные функции
- •Ввод данных
- •Вывод результатов
- •Вывод в окно сообщения
- •Порядок выполнения работы
- •Содержание отчета
- •Варианты заданий
- •Контрольные вопросы
- •Лабораторная работа № 2 Программирование алгоритмов разветвляющейся структуры
- •Краткие теоретические сведения
- •Условие
- •Структура ветвления
- •Компонент Memo
- •Порядок выполнения работы
- •Содержание отчета
- •Варианты заданий
- •Контрольные вопросы
- •Лабораторная работа № 3 Операторы цикла. Создание изображений
- •Краткие теоретические сведения
- •Создание изображений
- •Класс tFont
- •Класс tPen
- •Класс tBrush
- •Компонент Image
- •Компонент Shape
- •Компонент Timer
- •Методы вычерчивания графических примитивов.
- •Порядок выполнения работы Пример1. Использования оператора цикла while
- •Пример2. Создание простейшего изображения.
- •Пример создания заставки
- •Пример 3. Создание приложения, содержащего круговую диаграмму.
- •Содержание отчета
- •Варианты заданий
- •Варианты заданий
- •Контрольные вопросы
- •Лабораторная работа № 4 Одномерные массивы. Цикл с параметром
- •Краткие теоретические сведения
- •Объявление массива
- •Цикл с параметром
- •Инициализация массива
- •Операции с массивами
- •Вывод массива
- •Ввод массива
- •Использование компонента StringGrid
- •Использование компонента Memo
- •Создание меню
- •Компонент tMainMenu
- •Диалоговые панели File Open и File Save
- •Вывод в файл
- •Открытие файла для записи
- •Закрытие файла
- •Ввод из файла
- •Открытие файла для чтения
- •Чтение чисел
- •Поиск минимального (максимального) элемента массива
- •Поиск в массиве заданного элемента
- •Сортировка массива
- •Порядок выполнения работы
- •Пример 2. Разработка диалоговой программы для работы с произвольным массивом вещественных чисел.
- •Содержание отчета
- •Варианты заданий
- •Контрольные вопросы
- •Лабораторная работа № 5 Двумерные массивы. Вложенные циклы.
- •Краткие теоретические сведения
- •Объявление матриц
- •Инициализация двумерного массива
- •Содержание отчета
- •Варианты заданий
- •Контрольные вопросы
- •Лабораторная работа № 6 Функциональная и интерфейсная эмуляция формы
- •Краткие теоретические сведения
- •Компонент Image
- •Многостраничный блокнот — компоненты tTabControl и tPageControl
- •Компоненты tTreeView w tListView
- •Задание к лабораторной работе
- •Варианты заданий
- •Контрольные вопросы
Операции с массивами
Типичными операциями при работе с массивами являются:
вывод массива;
ввод массива;
поиск максимального или минимального элемента массива;
поиск заданного элемента массива;
сортировка массива.
Вывод массива
Под выводом массива понимается вывод на экран монитора (в диалоговое окно) значений элементов массива.
Если в программе необходимо вывести значения всех элементов массива, то для этого удобно использовать инструкцию for, при этом переменная-счетчик инструкции for может быть использована в качестве индекса элемента массива.
Пример:
for i:=1 to n do
Label1.Caption:=Label1.Caption+IntToStr(b[i])+#13;
В данном примере на каждом шаге цикла к свойству Caption компонента Label1 добавляется изображение еще очередного элемента массива и символ перехода на новую строку (#13).
Вывод можно осуществить и с помощью поля Memo:
for i:=1 to n do
Memo1.Lines.Add(IntToStr(b[i]));
Ввод массива
Под вводом массива понимается процесс получения от пользователя (или из файла) во время работы программы значений элементов массива.
Можно для каждого элемента массива создать поле ввода. Однако если требуется ввести достаточно большой массив, то такое решение неприемлемо.
Очевидно, что последовательность чисел удобно вводить в строку таблицы, где каждое число находится в отдельной ячейке. Ниже рассматриваются два варианта организации ввода массива - с использованием компонентов StringGrid и Memo.
Использование компонента StringGrid
Для ввода массива удобно использовать компонент StringGrid. Значок компонента StringGrid находится на вкладке Additional и выглядит так: .
Компонент StringGrid представляет собой таблицу, ячейки которой содержат строки символов. В табл. 4.1 перечислены некоторые свойства компонента StringGrid.
Таблица 5.1. Свойства компонента StringGrid
Свойство |
Определяет
|
Name
|
Имя компонента. Используется в программе для доступа к свойствам компонентаЦ |
ColCount |
Количество колонок таблицы |
RowCount |
Количество строк таблицы |
Cells |
Соответствующий таблице двумерный массив. Ячейка таблицы, находящаяся на пересечении столбца номер col и строки номер row определяется элементом cells [col, row] |
FixedCols |
Количество зафиксированных слева колонок таблицы. Зафиксированные колонки выделяются цветом и при горизонтальной прокрутке таблицы остаются на месте |
FixedRows |
Количество зафиксированных сверху строк таблицы. Зафиксированные строки выделяются цветом и при вертикальной прокрутке таблицы остаются на месте |
Options . goEditing |
Признак допустимости редактирования содержимого ячеек таблицы. True — редактирование разрешено, False — запрещено |
Options . goTab |
Разрешает (True) или запрещает (False) использование клавиши <Таb> для перемещения курсора в следующую ячейку таблицы |
Options . GoAlways-ShowEditor |
Признак нахождения компонента в режиме редактирования. Если значение свойства False, то для того, чтобы в ячейке появился курсор, надо начать набирать текст, нажать клавишу <F2> или сделать щелчок мышью |
DefaultColWidth |
Ширину колонок таблицы |
DefaultRowHeight |
Высоту строк таблицы |
GridLineWidth |
Ширину линий, ограничивающих ячейки таблицы |
Left |
Расстояние от левой границы поля таблицы до левой границы формы |
Top |
Расстояние от верхней границы поля таблицы до верхней границы формы |
Height |
Высоту поля таблицы |
Width |
Ширину поля таблицы |
Font |
Шрифт, используемый для отображения содержимого ячеек таблицы |
ParentFont |
Признак наследования характеристик шрифта формы |
Столбцы и строки таблицы нумеруются с нуля.
Рассмотрим пример ввода массива:
for i:= 1 to 5 do
a[i] := StrToFloat(StringGrid1.Cells[i-1, 0]);
В квадратных скобках сначала указывается номер столбца, т.е. в данном случае номер ячейки. Он меньше счетчика на 1, потому что столбцы в таблице нумеруются с нуля. Второе число в скобках – номер строки таблицы, а так как в данной таблице только одна строка, то ее номер 0.