Студопедия — Лабораторная работа №26
Студопедия Главная Случайная страница Обратная связь

Разделы: Автомобили Астрономия Биология География Дом и сад Другие языки Другое Информатика История Культура Литература Логика Математика Медицина Металлургия Механика Образование Охрана труда Педагогика Политика Право Психология Религия Риторика Социология Спорт Строительство Технология Туризм Физика Философия Финансы Химия Черчение Экология Экономика Электроника

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






Тема: «Разработка программ обработки массивов с использованием компонентов страницы Standart».

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

 

ЗАДАНИЕ

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

Создайте форму, для свойства Caption задайте значение «Создание и обработка массива». На форме разместите компоненты Edit1 и Edit2, кнопку Button1, для свойства Caption кнопки задайте значение «Создать массив». Разместите на форме панель GroupBox1, для свойства Caption которой задайте значение «Определить».

В панели GroupBox1 разместить компоненты CheckBox1, CheckBox2, CheckBox3 и CheckBox4, для свойства Caption которых задайте значения: «Минимальный элемент», «Максимальный элемент», «Сумма всех элементов», «Число положительных элементов», соответственно. Напротив них разместите компоненты Edit3, Edit4, Edit5, Edit6. Если компоненты CheckBox1, CheckBox2, CheckBox3 и CheckBox4 окажутся размещенными под панелью GroupBox1 и выбрать в контекстном меню команду Controlà Send to Back (Порядокà На задний план). В нижней чвсти формы разместить кнопку Button1 и задайте значение свойства Button1. Caption – «Вычислить». Удалите текст Edit1, Edit2, Edit3, Edit4, Edit5, Edit6 из соответствующих компонентов. Выровняйте компоненты на форме, как показано ниже на рисунке 18. Зафиксируйте положение компонентов на форме, выбрав в меню Delphi команду Edità Lock Controls.

 

рис. 18

 

 

Сохраните файл проекта и программного модуля.

 

Прежде чем создавать обработчики событий щелчка мышью по кнопкам Button1 и Button2, в разделе описания переменных опишите переменные целого типа N и I, где N – размер массива, а I – порядковый номер элемента массива, а также М – динамический массив целых чисел.

Var

Form1: TForm1;

N, I: integer;

M: array of integer; {описание динамического массива целых чисел}

Для предупреждения ввода в окно Edit1 нечислового значения реализуем обработку события нажатия на клавишу в окне Edit1, чтобы запретить ввод любых символов, кроме цифр от 0 до 9. Для создания процедуры обработчика события нажатия на клавишу в окне Edit1 выберите в окне Инспектора объектов компонент Edit1 и на странице Events (События) дважды щелкните левой кнопкой мыши на пустом поле списка в событии OnKeyPress. После этого окно Редактора кода немедленно получит фокус и в разделе interface появится запись процедуры обработчика события:

Procedure Edit1KeyPress (Sender: Tobject; var Key: Char);

а в разделе implementation – текст заготовки этой процедуры:

Procedure Edit1KeyPress (Sender: Tobject; var Key: Char);

begin

end;

Вставьте в тело процедуры следующий оператор:

If not (Key in [‘0’.. ‘9’]) then Key: =#0;

Действие этого оператора сводится к сравнению значения переменной Key с множеством значений [‘0’.. ‘9’]. Если символ нажатой клавиши не входит в это множество, то Кеу присваивается значение нулевого символа (#0). Таким образом, в окне Edit1 будет отображаться текст, состоящий только из цифр.

Создание массива целых чисел опишите в процедуре обработчика события щелчком мышью на кнопке Button1. Для создания процедуры обработчика событий выберете в окне Инспектора объектов объект Button1, затем на странице События сделайте двойной щелчок на пустом поле списка в событии OnClick. После этого отредактируйте заготовку процедуры обработчика события procedure TForm1. Button1Click (Sender: TObject); в окне Редактора кода следующим образом:

Procedure TForm1. ButtonClick (Sender: Tobject);

begin

Randomize;

N: =StrToInt (Edit1.Text); {число элементов массива}

SetLength (M, N); {задать массиву М длину N}

Edit2. Text: =’ ‘; {очистить окно Edit2}

for I: =0 to N-1 do {заполнить массив случайными значениями целых чисел}

begin

M[I]: =Round (Sin (Random (100))*100); {присвоить элементу массива случайное значение}

Edit2. Text: =Edit2. Text+’ ‘+IntToStr (M[I]); {вывести элементы массива}

end;

end;

Обработку массива опишите в процедуре обработчика события щелчка мышью на кнопке Button2. для этого выберите в окне Инспектора объектов объект Button2, затем на странице События сделайте двойной щелчок на пустом поле списка в событии OnClick. После этого в окне Редактора кода в заготовку процедуры обработчика события procedure TForm1.Button2Click (Sender: TObject); в раздел описания локальных переменных поместите следующее описание:

var

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

Где

Мах – максимальный элемент массива,

Min – минимальный элемент массива,

Sum – сумма всех элементов массива,

CountPlus – количество положительных элементов массива.

Обработку массива можно реализовать с помощью цикла For, в котором вычисление значения каждой из этих переменных записывается при помощи оператора if then, проверяющий условие CheckBox.Checked. Если свойство Checked имеет значение True, то выполняется вычисление соответствующей переменной. В заключительной части процедуры можно разместить вывод результатов обработки массива. Текст процедуры обработки массива может быть записан следующим образом:

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, как показано на рисунке ниже, и щелкая мышью на кнопке Вычислить, убедитесь в правильности работы процедуры обработки массива.

Закройте окно приложения, (рис. 19).

 

Рис. 19







Дата добавления: 2014-11-10; просмотров: 681. Нарушение авторских прав; Мы поможем в написании вашей работы!



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

ТЕОРЕТИЧЕСКАЯ МЕХАНИКА Статика является частью теоретической механики, изучающей условия, при ко­торых тело находится под действием заданной системы сил...

Теория усилителей. Схема Основная масса современных аналоговых и аналого-цифровых электронных устройств выполняется на специализированных микросхемах...

Логические цифровые микросхемы Более сложные элементы цифровой схемотехники (триггеры, мультиплексоры, декодеры и т.д.) не имеют...

Машины и механизмы для нарезки овощей В зависимости от назначения овощерезательные машины подразделяются на две группы: машины для нарезки сырых и вареных овощей...

Классификация и основные элементы конструкций теплового оборудования Многообразие способов тепловой обработки продуктов предопределяет широкую номенклатуру тепловых аппаратов...

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

Что такое пропорции? Это соотношение частей целого между собой. Что может являться частями в образе или в луке...

Растягивание костей и хрящей. Данные способы применимы в случае закрытых зон роста. Врачи-хирурги выяснили...

ФАКТОРЫ, ВЛИЯЮЩИЕ НА ИЗНОС ДЕТАЛЕЙ, И МЕТОДЫ СНИЖЕНИИ СКОРОСТИ ИЗНАШИВАНИЯ Кроме названных причин разрушений и износов, знание которых можно использовать в системе технического обслуживания и ремонта машин для повышения их долговечности, немаловажное значение имеют знания о причинах разрушения деталей в результате старения...

Studopedia.info - Студопедия - 2014-2024 год . (0.008 сек.) русская версия | украинская версия