Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

Ход работы. 1. Для создания нового проекта можно воспользоваться командой главного меню File New | Application либо




1. Для создания нового проекта можно воспользоваться командой главного меню File New | Application либо, если вы только что загрузили среду Delphi, можно, сразу приступать, к созданию нового проекта.

2. Откажитесь от возможности изменять окна программы, указав значение свойства формы BorderStyle на bsDilog. При запуске программы обратите внимание на отсутствие кнопок для минимизации максимизации окна. Рассмотрите другие свойства и чем они отличаются.

3. Свойству Caption для Form1 задайте значение – Лабораторная работа №5. Работа с массивами.

4. Со вкладки Additional на Form1 поместим три компонента StringGrid.

Зададим следующие значения

Свойство Значение
StringGrid1 StringGrid2 StringGrid3
Name SG1 SG2 SG3
ColCount      
RowCount      
FixedCols      
FixedRows      
DefaultColWidth      
Options.goEditing (возможность редактировать) True (имеется) True (имеется) False (отсутствует)

Замечание. Чтобы открыть список свойства Options (Параметры) объекта, надо дважды щелкнуть на этом слове в окне Object Inspector данного объекта.

5. Со вкладки Standard на Form1 поместим два компонента Button. Свойству Caption для Button1 задайте значение – &Вычислить. Свойству Caption для Button2 задайте значение – &Очистить.

Замечание. Символ & в заголовке кнопки указывает на то, что эту кнопку можно нажать также с помощью «горячей» комбинации клавиш Alt + Shift+ буква заголовка, перед которой стоит этот символ (т.е. в нашем случае Alt +Shift + 3).

6. Со вкладки Additional на Form1 поместим командную кнопку BitBtn. Кнопки такого типа владеют свойством Kind (стандартное действие) с возможными значениями bkClose (Закрыть), bkCancel (Отменить), bkYes (Да), bkNo (Нет), bkHelp (Помощь) и другими. На них также могут быть расположены пиктограммы. Если задать стандартное действие, то данную кнопку программировать не нужно. Задайте следующие свойства для вставленного объекта:

Свойство Значение
Kind bkClose
Caption &3акрыть

7. Сохраним проект в отдельной папке.

8. Ячейки первой, зафиксированной, строки и первого, зафиксированного, столбца таблицы используются в качестве заголовков колонок и строк таблиц. Во время создания (проектирования) формы приложения установить значения элементов массива Cells нельзя, так как элементы массива доступны только во время работы программы. Поэтому значения элементов массива Cells, соответствующих первой строке и первому столбцу таблиц, устанавливает процедура обработки события onActivate, которое происходит во время обработки формы приложения. Кроме этого процедура вписывает в первые строки и первые столбцы таблиц их заголовки.

Запрограммируем процедуру onActivate

Для того чтобы запрограммировать процедуру обработки события onActivateнеобходимо чтобы в Object Inspector в списке компонент текущей формы стояла надпись:

Form1   TForm1  

Тогда на вкладке Events в столбце названий событий находим событие onActivate. Этому стандартному событию соответствует название метода (FormActivate), которое появится после двойного щелчка мыши в правом столбце (столбец названий обработчиков событий). В этот момент в окно текста программы добавляется шаблон базового кода (процедуры) для этого метода. Шаблон необходимо заполнить соответствующими командами.

procedure TForm1.FormActivate(Sender: TObject);

var I:byte;

begin

//Для SG1

//Записываем символ X в ячейку находящуюся

//в первом столбике и первой строке ячейка - Cells [0,0]

SG1.Cells[0,0]:=' X ';

//Ячейка Cells[0,l] указывает на количество строк

//т.е. массив одномерный

SG1.Cells[0,1]:='Row N 1';

//Заполняются заголовки столбцов

For i:=1 to SG1.ColCount-1 do

SG1.Cells[i,0]:='Col N'+IntToStr(i);

//Для SG2

SG2.Cells[0,0]:=' Y ';

SG2.Cells[0,1]:='Row N 1';

For i:=1 to SG2.ColCount-1 do

SG2.Cells[i,0]:='Col N'+IntToStr(i);

//Для SG3

SG3.Cells[0,0]:=' X+Y ';

//Заполняются заголовки столбцов

fOR i:=1 to SG3.ColCount-1 do

SG3.Cells[i,0]:='Col N'+IntToStr(i);

//Заполняются заголовки строк

fOR i:=1 to SG3.RowCount-1 do

SG3.Cells[0,i]:='Row N'+IntToStr(i);

end;

9. Запрограммируем кнопку «В ычислить».

procedure TForm1.Button1Click(Sender: TObject);

Const N=6;M=4;

var i,j:byte;

x:array [1..N]of integer;

y:array [1..M]of integer;

z:array [1..N,1..M]of integer;

begin

//Заполняем первую таблицу SG1 - массив Х

fOR i:=1 to SG1.ColCount-1 do

x[i]:=StrToInt(SG1.Cells[i,1]);

//Заполняем первую таблицу SG2 - массив У

fOR j:=1 to SG2.ColCount-1 do

y[j]:=StrToInt(SG2.Cells[j,1]);

//Вычисляем сумму двух векторов

fOR i:=1 to N do

fOR j:=1 to M do

begin

z[i,j]:=x[i]+y[j];

SG3.Cells[j,i]:=IntToStr(z[i,j]);

end;

end;

Для решения этой задачи можно было не использовать промежуточные массивы, а работать прямо с ячейками таблиц:

fOR i:=1 to SG1.ColCount-1 do

fOR j:=1 to SG2.ColCount-1 do

SG3.Cells[j,i]:=IntToStr(StrToInt(SG1.Cells[i,1])+StrToInt(SG2.Cells[j,1]));

10. Запрограммируем кнопу «О чистить». Необходимо очистить ячейки всех трех таблиц.

procedure TForm1.Button2Click(Sender: TObject);

var i,j:byte;

begin

with SG1 do

for i:=1 to ColCount do Cells[i,1]:=' ';

with SG2 do

for i:=1 to ColCount do Cells[i,1]:=' ';

with SG3 do

for i:=1 to RowCount do

for j:=1 to ColCount do Cells[j,i]:=' ';end;

 
 

 

Задание к лабораторной работе

Разместить на форме четыре таблицы StringGrid –две матрицы (до и после сортировки) и два одномерных массива, которые строятся по заданному правилу из элементов матрицы (до и после сортировки). Типы и количество кнопок аналогично описанной выше задаче.

Ввести матрицу с использованием генератора случайных чисел. Отобразить числа в первой таблице StringGrid.

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

Промежуточные результаты (одномерные массивы) в таблицах два и три.




Поделиться с друзьями:


Дата добавления: 2015-06-28; Просмотров: 336; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.019 сек.