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










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

{LTS}

 

”пражнение дл€ представлени€ двумерных массивов с помощью компонента StringGrid

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

—оздайте форму, свойству Caption которой присвойте значение Ђќбработка двумерного массиваї. ¬ыберите в палитре компонентов страницы Additional компонент StringGrid и разместите его в левом верхнем углу формы. «адайте дл€ свойств ColCount (количество столбцов) и RowCount (количество строк) значени€ 6. «адайте дл€ свойств FixedCols и FixedRows (количество фиксированных, непрокручиваемых столбцов и строк, используемых дл€ размещени€ надписей номеров столбцов и строк).

—права от объекта StringGrid разместите кнопку Buttonl и задайте дл€ ее свойства Caption значение Ђ«аполнитьї. Ќиже объекта StringGrid разместите панель GroupBoxl и присвойте ее свойству Caption значение Ђќпределитьї. Ќа данной панели разместите компоненты CheckBoxl, CheckBox2, —песк¬ох« и назначьте свойству Caption значени€ Ђћинимальный элементї, Ђћаксимальный элементї, Ђ—умма элементов главной диагоналиї, соответственно. —права от компонентов CheckBoxl, CheckBox2, —песк¬ох« разместите компоненты Editl, Edit2, Edit3 и удалите текст Editl, Edit2, Edit3 из соответствующих компонентов. ѕравее панели GroupBoxl разместите кнопку Button2 и задайте дл€ ее свойства Caption значение Ђ¬ычислитьї.

—охраните файл проекта и программного модул€. ѕрежде чем создавать обработчики событий щелчка мышью по кнопкам Buttonl и Button2, следует добавить в раздел описани€ переменных данного модул€ целочисленные переменные I и J, предназначенные дл€ хранени€ индексов массива (I Ц номер столбца, J Ц номер строки).

var
Forml : TForm1;
I, J : integer;
 
ƒл€ получени€ подсказки Delphi по объекту StringGridl, указав объект, нажмите F1. ¬ окне Delphi Help просмотрите общую информацию о назначении объекта. ўелкнув мышью по ссылке Properties (—войства), откройте окно со списком свойств объекта, и, выбира€ нужные свойства, например, Cells, ColCount и т. п., просмотрите справочную информацию. ƒл€ возврата к предыдущему экрану справки воспользуйтесь кнопкой Ќазад в панели инструментов окна Delphi Help. ўелка€ мышью по ссылкам Methods (ћетоды) и Events (—обыти€), просмотрите список методов и событий объекта. ƒл€ просмотра примеров следует щелкнуть мышью по ссылке Example. «авершив просмотр справочной информации, закройте окно Delphi Help.

—оздайте процедуру обработчика событи€ щелчка мышью на кнопке Buttonl, в которой сначала будет выполнена операци€ вывода номеров строк и столбцов, а затем €чейки StringGridl будут заполнены случайными целыми числами. ƒл€ этого выберите в окне »нспектора объектов объект Buttonl и на странице —обыти€ произведите двойной щелчок на пустом поле списка в событии OnClick. ѕосле этого отредактируйте заготовку процедуры обработчика этого событи€ следующим образом:

procedure TForml.ButtonlClickCSender: TObject);
{заполнение массива}
begin
Randomize;
with StringGridl do {вывести номера строк в 0-м столбце и столбцов в 0-й строке}
begin
1:=0; {столбец 0}
for J:= 1 to RowCount - 1 do {вывести номера строк}
Cells[I,J] := IntToStr(J);
J:=0; {строка 0}
for I:= 1 to ColCount - 1 do {вывести номера столбцов}
Cells[I,J] := IntToStr(I);
end;
with StringGridl do {вывести в таблице элементы двумерного массива}
for I := 1 to ColCount - 1 do for J:= 1 to RowCount - 1 do
begin
Cells[I,J] := IntToStr(Round(Sin(Random(100))*100));
end;
end;

ƒл€ создани€ процедуры обработки массива выберите в окне »нспектора объектов объект Button2 и на странице —обыти€ произведите двойной щелчок на пустом поле списка в событии OnClick. ѕосле этого отредактируйте заготовку процедуры обработчика этого событи€ следующим образом:

procedure TForml.Button2Click(Sender: TObject); {обработка массива}
var
Min, Max, Sum : Integer; {локальные переменные Ц результаты обработки массива}
begin
if Checkbox1.Checked then {определение Min-элемента}
with StringGrid1 do begin
Min:=StrToInt(Cells[l,l]); {пусть - это Min-элемент}
for I := 1 to ColCount - 1 do
for J:= 1 to RowCount - 1 do
if StrToInt(Cells[I,J])
Min:=StrToInt(Cells[I,J]);
Edit1.Text:=IntToStr(Min):
end
else Edit1.Text:=";
if Checkbox2.Checked then {определение ћах-элемента}
with StringGrid1 do begin
Max:=StrToInt(Cells[l,l]); {пусть - это ћах-элемент}
for I := 1 to ColCount - 1 do
for J:= 1 to RowCount - 1 do
if StrToInt(Cells[I,J])>Max then
Max:=StrToInt(Cells[I,J]);
Edit2.Text:=IntToStr(Max);
end
else Edit2.Text: = ";
if Checkbox3.Checked then {вычисление Sum}
with StringGrid1 do
begin
Sum:=0; {обнулить значение суммы перед подсчетом}
for i := 1 to ColCount - 1 do
Sum:=Sum+StrToInt(Cells[I,I]);
Edit3.Text:=IntToStr(Sum);
end
else
Edit3.Text:='';
end;

 ак видно из текста процедуры, в ней имеетс€ три фрагмента, каждый из которых выполн€ет вычислени€, если свойство Checked соответствующего флажка (Checkbox1, Checkbox2 или Checkbox3) имеет значение True. ќператоры типа Edit1.Text:="; Edit2.Text:="; Edit3.Text:="; обеспечивают очистку соответствующего окна Edit, если вычисление не проводилось. ƒл€ обращени€ к элементу массива, расположенному на главной диагонали StringGrid1, указываетс€ одинаковый номер строки и столбца Cells[I,I].

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

ѕосле проверки работы приложени€ закройте его окно.


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

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


 
     
   
 


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

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

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

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

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


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

 


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