Лабораторная работа № 13
Работа с массивами в среде программирования Borland Delphi
Время выполнения
4 часа
Цель работы
Научиться разрабатывать программы, использующие данные, организованные в виде массивов.
Задачи лабораторной работы
После выполнения работы студент должен:
- Знать основы работы с массивами данных в среде Delphi.
- Уметь самостоятельно написать программу, работающую с массивами данных.
Перечень обеспечивающих средств
Для обеспечения выполнения работы необходимо иметь компьютер со следующим математическим обеспечением: операционная система Windows 2003 и выше и система визуального программирования Delphi на основе 6-ой версии.
Общие теоретические сведения
Для работы с массивами удобно использовать компоненты StringGrid и Memo.
Основные свойства StringGrid:
Name – Имя компонента;
Colcount – Количество столбцов;
RowCount – Количество строк;
Cells – Ячейка таблицы;
FixedCols – Количество зафиксированных столбцов;
Options.goEditing – Признак допустимости редактирования содержимого ячеек (true, false);
|
|
Options.goTab – Разрешает (true) или запрещает (false) использование клавиши TAB для перемещения курсора в следующую ячейку таблицы;
Options.goAlways – Признак нахождения компонента в режиме редактирования;
DefaultColWidth – Ширина колонок таблицы;
DefaultRowHeight – Высота строк таблицы;
GridLineWidth – Расстояние от левой границы поля таблицы до левой границы формы;
Left – Расстояние от верхней границы поля таблицы до верхней;
Top – Границы формы;
Height – Высота поля таблицы;
Width – Ширина поля таблицы;
Font – Шрифт для отображения содержимого таблицы;
ParentFont – Признак наследования характеристик шрифта формы.
Пример 1
Задать массив из 5-ти элементов. Найти произведение элементов массива, превышающих значение 1-го элемента. Переставить местами 1-ый и последний элементы массива. Вывести элементы массива в строку компоненты Memo.
Для выполнения задания необходимо поместить на форму компоненты:
- панели Panel1 (в верхней части экрана для ввода информации) и Panel2 (в нижней части для вывода информации) (страница Standard).
Для панелей задать Caption – пустое (очистить место для вывода результата).
Разместить метки для панелей Label1 и Label2 (страница Standard).
Задать Caption для следующих объектов:
- Label1 – Ввод массива (панель Panel1)
- Label2 – Результаты (вывод результата в панель Panel2)
Разместить кнопку Button1 (страница Standard).
Установить для кнопки следующее свойство: Caption – Вычислить.
Добавить компонент StringGrid1 и задать следующие свойства:
ColCount – 5 (количество столбцов)
FixedCols – 0 (количество фиксированных столбцов)
RowCount – 1 (количество строк)
DefaultRowHeight – 24 (высота строки)
|
|
DefaultColWidth – 64 (ширина столбца)
Задать опции для редактирования информации (Options):
Options.go.Editing – true
Options.goTabs – true
Options.go.Always – true
Для вывода массива на экран будем использовать компоненту Memo1 (Многострочный редактор).
Управлять вычислением будет кнопка Button1.
Полученная форма будет иметь вид (рис. 1):
Рисунок 1. Форма с размещенными объектами
Для кнопки Button1 необходимо создать обработчик события OnClick (нажатие кнопки).
Двойной щелчок на этой кнопке и на экране окно кода программы.
Курсор устанавливается в процедуру-обработчика события, которая должна иметь следующий вид:
procedure Tform1.Button1Click(Sender:Tobject);
Var
a:array[1..5] of integer; // описание массива а
pr,I,с:integer; // pr – переменная для вычисления произведения элементов массива, i – индекс элементов массива, с-переменная для перестановки местами 1-го и 5-го элементов массива
stroka:string;
begin
// ввод массива
// считаем, если ячейка пустая, то соответствующий элемент массива равен 0
for i:=1 to 5 do
if Length (StringGrid1.Cells[i-1,0])<>0
then a[I]:= StrToInt(StringGrid1.Cells[i-1,0])
else a[I]:=0; // проверка наличия значения элемента массива в ячейке компоненты StringGrid1
// Обработка массива
Pr:=1;
for i:=1 to 5 do
if a[i]>a[1] then pr:=pr*a[i];
// вычисление произведения элементов массива
// вывод произведения элементов массива в заголовок панели Panel2
Panel2.Caption:=’Произведение элементов=’ +IntToStr(pr);
// перестановка местами 1-го и 5-го элементов массива
c:=a[1]; a[1]:=a[5]; a[5]:=c;
// вывод массива в строку
Stroka:=’ ’;
// в строку помещаем пробелы
Memo1.Lines.Add(‘Массив после обработки’);
for i:=1 to 5 do
stroka:=stroka+ IntToStr(a[i]);
Memo1.Lines.Add(stroka);
end;
При нажатии клавиш Ctrl+F9 выполняется компиляция кода программы.
Если компиляция выполнена успешно (ошибок нет) то можно выполнить Project1 с помощью клавиши F9. Преобразование значений элементов массива из формы выполняется в соответствии с описанием в тип Integer (StrToInt), а результат – произведение элементов массива при выводе в форму преобразуется в тип String (IntToStr).
Варианты заданий