Студопедия — Лабораторная работа №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; просмотров: 674. Нарушение авторских прав; Мы поможем в написании вашей работы!



Вычисление основной дактилоскопической формулы Вычислением основной дактоформулы обычно занимается следователь. Для этого все десять пальцев разбиваются на пять пар...

Расчетные и графические задания Равновесный объем - это объем, определяемый равенством спроса и предложения...

Кардиналистский и ординалистский подходы Кардиналистский (количественный подход) к анализу полезности основан на представлении о возможности измерения различных благ в условных единицах полезности...

Обзор компонентов Multisim Компоненты – это основа любой схемы, это все элементы, из которых она состоит. Multisim оперирует с двумя категориями...

МЕТОДИКА ИЗУЧЕНИЯ МОРФЕМНОГО СОСТАВА СЛОВА В НАЧАЛЬНЫХ КЛАССАХ В практике речевого общения широко известен следующий факт: как взрослые...

СИНТАКСИЧЕСКАЯ РАБОТА В СИСТЕМЕ РАЗВИТИЯ РЕЧИ УЧАЩИХСЯ В языке различаются уровни — уровень слова (лексический), уровень словосочетания и предложения (синтаксический) и уровень Словосочетание в этом смысле может рассматриваться как переходное звено от лексического уровня к синтаксическому...

Плейотропное действие генов. Примеры. Плейотропное действие генов - это зависимость нескольких признаков от одного гена, то есть множественное действие одного гена...

Объект, субъект, предмет, цели и задачи управления персоналом Социальная система организации делится на две основные подсистемы: управляющую и управляемую...

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

Ганглиоблокаторы. Классификация. Механизм действия. Фармакодинамика. Применение.Побочные эфффекты Никотинчувствительные холинорецепторы (н-холинорецепторы) в основном локализованы на постсинаптических мембранах в синапсах скелетной мускулатуры...

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