«аочное дистанционное образование с получением государственного диплома через Internet










ѕолучить информацию о поступлении
 
√лавна€ Ќовости  арта сайта ‘отоальбом √остева€ книга  онтакты

{LTS}

 

”пражнение по созданию и обработке линейного массива

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

—оздайте форму, дл€ свойства Caption задайте значение Ђ—оздание и обработка массиваї. Ќа форме разместите компоненты Editl и Edit2, кнопку Buttonl, дл€ свойства Caption кнопки задайте значение Ђ—оздать массивї. –азместите на форме панель GroupBoxl, дл€ свойства Caption которой задайте значение Ђќпределитьї.

¬ панели GroupBoxl разместите компоненты CheckBoxl, CheckBox2, CheckBox3 и CheckBox4, дл€ свойств Caption которых задайте значени€: Ђћинимальный элементї, Ђћаксимальный элементї, Ђ—умма всех элементовї, Ђ„исло положительных элементовї, соответственно. Ќапротив них разместите компоненты Edit3, Edit4, Edit5 и Edit6. ≈сли компоненты CheckBoxl, CheckBox2, —hеск¬ох«, CheckBox4 окажутс€ размещенными под панелью GroupBoxl и не будут отображатьс€, то следует выделить панель GroupBoxl и выбрать в контекстном меню команду Control Ц Send to Back (ѕор€док Ц Ќа задний план). ¬ нижней части формы разместите кнопку Buttonl и задайте значение свойства Buttonl. Caption Ц Ђ¬ычислитьї. ”далите текст Editl, Edit2, Edit3, Edit4, Edit5, Edit6 из соответствующих компонентов. ¬ыровн€йте компоненты на форме. «афиксируйте положение компонентов на форме, выбрав в меню Delphi команду Edit Ц Lock Controls.

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

ѕрежде чем создавать обработчики событий щелчка мышью по кнопкам Buttonl и Button2, в разделе описани€ переменных опишите переменные целого типа N и I, где N Ц размер массива, а I Ц пор€дковый номер элемента массива, а также ћ Ц динамический массив целых чисел.

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

ƒл€ предупреждени€ ввода в окно Editl нечислового значени€ реализуем обработку событи€ нажати€ на клавишу в окне Editl, чтобы запретить ввод любых символов, кроме цифр от 0 до 9. ƒл€ создани€ процедуры обработчика событи€ нажати€ на клавишу в окне Editl выберите в окне »нспектора объектов компонент Editl и на странице Events (—обыти€) дважды щелкните левой кнопкой мыши на пустом поле списка в событии On Key Press. ѕосле этого окно –едактора кода немедленно получит фокус и в разделе interface по€витс€ запись процедуры обработчика событи€:

procedure EditlKeyPress(Sender: TObject; var Key: Char);

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

procedure EditlKeyPress(Sender: TObject; var Key: Char);
begin
 
end;

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

if not (Key in ['0'..'9']) then Key:=#0;

ƒействие этого оператора сводитс€ к сравнению значени€ переменной Key с множеством значений ['0'..'9']. ≈сли символ нажатой клавиши не входит в это множество, то Key присваиваетс€ значение нулевого символа (#0). “аким образом, в окне Editl будет отображатьс€ текст, состо€щий только из цифр.

—оздание массива целых чисел опишите в процедуре обработчика событи€ щелчка мышью на кнопке Buttonl. ƒл€ создани€ процедуры обработчика событи€ выберите в окне »нспектора объектов объект Buttonl, затем на странице —обыти€ сделайте двойной щелчок на пустом поле списка в событии OnClick. ѕосле этого отредактируйте заготовку процедуры обработчика событи€ procedure TForml.ButtonlQick(Sender: TObject); в окне –едактора кода следующим образом:

procedure TForml.ButtonlClick(Sender: TObject);
begin
Randomize;
N:=StrToInt(Editl.Text); {число элементов массива}
SetLength(M, N); {задать массиву ћ длину N}
Edit2.Text:=''; {очистить окно Edit2}
for I := 0 to N-l do {заполнить массив случайными значени€ми целых чисел}
begin M[I]:= Round(Sin(Random(100))*100);
{присвоить элементу массива случайное значение}
Edit2.Text:=Edit2.Text+' '+IntToStr(M[I]);
{вывести элементы массива}
end;
end;

ќбработку массива опишите в процедуре обработчика событи€ щелчка мышью на кнопке Button2. ƒл€ этого выберите в окне »нспектора объектов объект Button2, затем на странице —обыти€ сделайте двойной щелчок на пустом поле списка в событии OnClick. ѕосле этого в окне –едактора кода в заготовку процедуры обработчика событи€ procedure TForml.Button2Click(Sender: TObject); в раздел описани€ локальных переменных поместите следующее описание:

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

где

ћах Ц максимальный элемент массива,
Min Ц минимальный элемент массива,
Sum Ц сумма всех элементов массива,
CountPlus Ц количество положительных элементов массива.

ќбработку массива можно реализовать с помощью цикла For, в котором вычисление значени€ каждой из этих переменных записываетс€ при помощи оператора if then, провер€ющим условие CheckBox.Checked. ≈сли свойство Checked имеет значение True, то выполн€етс€ вычисление соответствующей переменной. ¬ заключительной части процедуры можно разместить вывод результатов обработки массива. “екст процедуры обработки массива может быть записан следующим образом:

procedure TForml.Button2Click(Sender: TObject); {обработка массива}
var
Max, Min, Sum, CountPlus : integer; {результаты обработки массива}
begin
if CheckBoxl.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-l do
begin
if CheckBoxl.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+l:
end;
{вывести результаты обработки массива}
if CheckBoxl.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;

—охраните файлы проекта и программного модул€, откомпилируйте и запустите программу на выполнение. «адава€ различные значени€ числа элементов массива и щелка€ мышью на кнопке —оздать массив, убедитесь в правильной работе процедуры защиты от ввода нечисловых данных в Editl и генерации массива случайных целых чисел.

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

«акройте окно приложени€.


”знать как сэкономить в кризис моно на сайте ekonom-it.ru

“ипизированные файлы Ќетипизированные файлы «адани€ на строковый тип данных Ѕиблиотечный стандартный модуль Graph ”пражнение є1 дл€ обработки строк ”пражнение на линейную сортировку массива ”пражнение дл€ представлени€ двумерных массивов с помощью компонента StringGrid ”пражнение по вводу и обработки элементов массива с использованием StringGrid ”пражнени€ по обработке файлов (упр 1.) ”пражнени€ по обработке файлов (упр 2.) 


 
     
   
 


ѕриглашаем прин€ть участие в круглом столе!
подробнее   >>>
 

»нститут ћенеджмента, Ёкономики и »нноваций начинает набор на курсы повышени€ квалификации!
подробнее   >>>
 

”важемые студенты јЌќ ¬ѕќ »ћЁи»!
подробнее   >>>
 

Ќачинаетс€ набор на курсы повышени€ квалификации!
подробнее   >>>
 

ѕриглашаем прин€ть участие в конференци€х!
подробнее   >>>
 


все новости...

 


–ассылки Subscribe.Ru
—овременное образование
ѕодписатьс€ письмом