Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Laby_po_OOP.doc
Скачиваний:
2
Добавлен:
01.03.2025
Размер:
2.23 Mб
Скачать

Procedure tForm1.Button2Click (Sender: tObject); {обработка массива}

var

Max, Min, Sum, CountPlus: integer; {результаты обработки массива}

begin

if CheckBox1.Checked then Min:=M[0]; {пусть 0-й элемент-Min}

Edit3.Text:=’ ‘;

if CheckBox2.Checked then Max:=M[0]; {пусть 0-й элемент-Max}

Edit4.Text:=’ ‘;

Sum:=0; {обнулить значение Sum}

Edit5.Text:=’ ‘;

CountPlus:=0; {обнулить значения суммы положительных элементов}

Edit6.Text:=’ ‘;

for I:=0 to N-1 do

begin

if CheckBox1.Checked then {определить минимальный элемент массива}

if Min>M[I] then Min:=M[I];

if CheckBox2.Checked then {определить максимальный элемент массива }

if Max<M[I] then Max:=M[I];

if CheckBox3.Checked then {суммировать элементы массива}

Sum:=Sum+M[I];

if CheckBox4.Checked then {суммировать положительные элементы массива}

if M[I]>0 then CountPlus:=CountPlus+1;

end;

{вывести результаты обработки массива}

if CheckBox1.Checked then Edit3.Text:=IntToStr (Min);

if CheckBox2.Checked then Edit4.Text:=IntToStr (Max);

if CheckBox3.Checked then Edit5.Text:=IntToStr (Sum);

if CheckBox4.Checked then Edit6.Text:=IntToStr (CountPlus);

end;

Сохраните файлы проекта и программного модуля, откомпилируйте и запустите программу на выполнение. Задавая различные значения числа элементов массива и щелкая мышью на кнопке Создать массив, убедитесь в правильной работе процедуры защиты от ввода нечисловых данных в Edit1 и генерации массива случайных целых чисел.

Выбирая варианты обработки массива установкой соответствующих флажков CheckBox, как показано на рисунке ниже, и щелкая мышью на кнопке Вычислить, убедитесь в правильности работы процедуры обработки массива.

Закройте окно приложения.

Задание для самостоятельного решения

Задание 1. Написать программу с использованием стандартных объекто, которая предлагает пользователю ввести размер массива и создать массив случайных целых чисел, а затем, используя переключатели, указать порядок сортировки (по неубыванию, по невозрастанию), выполнить сортировку и просмотреть отсортированный массив.

Учреждение образования «Гомельский торгово-экономический колледж» Белкоопсоюза

Рассмотрено на заседании цикловой комиссии «Информатики и программирования»

Протокол № __ от «__»_____________2010 г.

Председатель цикловой комиссии

_______________________ Н.С. Васьковцова

Лабораторная работа №6

«Разработка программ с использованием компонентов библиотеки VCL»»

по дисциплине «Объектно-ориентированное программирование»

для групп П-21, П-22, П-23

специальность:

2-40 01 01 «Программное обеспечение информационных технологий»

специализация:

2-40 01 01 35 «Программное обеспечение обработки экономической и деловой информации»

2-40 01 01 33 «Компьютерная графика»

Разработала преподаватель

О.Л. Иткина

Гомель, 2010

Цель работы: научиться разрабатывать программы с использованием компонентов библиотеки VCL

Теоретические сведения:

Компоненты библиотеки VCL позволяют значительно упростить процесс создания иерархии объектов. При создании иерархии объектов для исключения повторяющегося кода часто бывает логично выделить их общие свойства в один родительский класс. При этом может оказаться, что создавать экземпляры такого класса не имеет смысла, потому что никакие реальные объекты им не соответствуют. Такие классы называют абстрактными. Абстрактные классы служат только для порождения потомков. Как правило, каждый метод, который будет реализовываться в разных потомках по-разному, объявляется в абстрактном классе как виртуальный и имеет пустое тело. Таким образом, абстрактный класс определяет интерфейс для всей иерархии. Абстрактные классы и указатели на них используются в качестве параметров подпрограмм и при работе со структурами данных, предназначенных для хране­ния объектов одной иерархии.

Альтернативой наследованию при проектировании объектов служит вложение, когда один объект включает в себя поля, являющиеся объектами или указателями на объекты. Например, если есть объект «двигатель», а требуется описать объект «самолет», логично сделать двигатель полем этого объекта, а не его предком.

Вид вложения, когда в классе описано поле объектного типа, называют компози­цией. Если в классе описан указатель на поле объектного типа, это обычно назы­вают агрегацией. При композиции время жизни всех объектов — и объемлющего, и его полей — одинаково. Агрегация представляет собой более слабую связь ме­жду объектами, потому что объекты, на которые ссылаются поля-указатели, мо­гут появляться и исчезать в течение жизни содержащего их объекта; кроме того, один и тот же указатель может ссылаться на объекты разных классов в пределах одной иерархии. Поле-указатель может также ссылаться не на один объект, а на неопределенное количество объектов, например, быть указателем на начало линейного списка. Если объект предназначается для хранения друтих объектов, он называется кон­тейнером. Объекты в контейнере могут храниться в виде массива, списка, стека или другой динамической структуры. Методы контейнера обычно включают его создание, дополнение, просмотр, а также поиск и удаление элементов.

В качестве примера контейнера рассмотрим объект list, предназначенный для работы со связным списком объектов класса monstr и его потомков.

type

list = object

constructor init;

procedure add(pm : pmonstr);

procedure draw;

destructor done; private

beg : pnode; end;

В объекте одно поле beg — указатель на начало списка элементов типа node:

type

pnode = ^node;

node = record

pm : pmonstr; { указатель на объект pmonstr }

next : pnode; { указатель на следующий элемент списка }

end;

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