Лекции.Орг


Поиск:




Категории:

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

 

 

 

 


Настройка компонента TstringGrid




Для установки компонета TStringGrid на форму необходимо на странице Additional меню компонентов щелкнуть мышью по пиктограмме. После этого щелкните мышью в нужном месте формы. Захватывая кромки компонента, отрегулируйте его размер. В инспекторе объектов значения свойств ColCount и RowCount установите 2, а FixedCols и FixedRows установите 1. Так как компоненты StringGrid2 и StringGrid3 имеют только один столбец, то у них: ColCount=1, RowCount=2, FixedCols=0 и FixedRows=1. По умолчанию в компонент TStringGrid запрещен ввод информации с клавиатуры, поэтому необходимо свойство Options goEditing для компонентов StringGrid1 и StringGrid2 установить в положение True.

Текст программы приведен ниже.

 

Unit Rab_4;

Interface

Uses

Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,

StdCtrls, ExtCtrls, Grids;

 

type

TInputForm = class(TForm)

StringGrid1: TStringGrid;

StringGrid2: TStringGrid;

StringGrid3: TStringGrid;

Label1: TLabel;

Edit1: TEdit;

Button1: TButton;

Button2: TButton;

Procedure FormCreate(Sender: TObject);

Procedure Button1Click(Sender: TObject);

Procedure Button2Click(Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

end;

 

const

Nmax = 10; // Максимальная размерность массива

type

Mas1 = array[1..Nmax] of Extended; // Объявление типа одномерного массива

Mas2 = array[1..Nmax, 1..Nmax] of Extended; // Объявление типа двумерного массива

var

InputForm: TInputForm;

A: Mas2; // Объявление двумерного массива

B, Y: Mas1; // Объявление одномерных массивов

N, i, j: integer;

 

Implementation

 

{$R *.DFM}

 

Procedure TInputForm.FormCreate(Sender: TObject);

begin

N:= 3; // Размерность массива

Edit1.Text:= FloatToStr(N);

// Задание числа строк и столбцов

StringGrid1.ColCount:= N + 1;

StringGrid1.RowCount:= N + 1;

StringGrid2.RowCount:= N + 1;

StringGrid3.RowCount:= N + 1;

// Ввод в левую верхнюю ячейку таблицы названия массива

StringGrid1.Cells[0, 0]:= 'Массив A';

StringGrid2.Cells[0, 0]:= 'Массив B';

StringGrid3.Cells[0, 0]:= 'Массив Y';

// Заполнение верхнего и левого столбцов поясняющими подписями

for i:=1 to N do

begin

StringGrid1.Cells[0, i]:= 'i='+ IntToStr(i);

StringGrid1.Cells[i, 0]:= 'j='+ IntToStr(i);

end;

end;

 

Procedure TInputForm.Button1Click(Sender: TObject);

begin

N:= StrToInt(Edit1.Text);

// Задание числа строк и столбцов в таблицах

StringGrid1.ColCount:= N + 1;

StringGrid1.RowCount:= N + 1;

StringGrid2.RowCount:= N + 1;

StringGrid3.RowCount:= N + 1;

// Заполнение верхнего и левого столбцов поясняющими подписями

for i:=1 to N do

begin

StringGrid1.Cells[0, i]:= 'i=' + IntToStr(i);

StringGrid1.Cells[i, 0]:= 'j=' + IntToStr(i);

end;

end;

 

Procedure TInputForm.Button2Click(Sender: TObject);

var

s: extended;

begin

// Заполнение массива A элементами из тавлицы StringGrid1

for i:=1 to N do

for j:=1 to N do

A[i, j]:= StrToFloat(StringGrid1.Cells[j, i]);

// Заполнение массива B элементами из тавлицы StringGrid2

for i:=1 to N do

B[i]:= StrToFloat(StringGrid2.Cells[0, i]);

// Умножение массива A на массив B

for i:=1 to N do

begin

s:= 0;

for j:=1 to N do

s:= s + A[i, j]*B[j];

Y[i]:= s;

// Вывод результата в таблицу StringGrid3

StringGrid3.Cells[0, i]:= FloatToStrF(Y[i], ffFixed,6,2);

end;

end;

 

end.

 

Индивидуальные задания

 

Во всех заданиях по теме “Массивы” скалярные переменные вводить с помощью компонета Tedit с соответствующим пояснением в виде компоненета TLabel. Скалярный результат выводить в виде компонента TLabel. Массивы представлять на форме в виде компонентов TStringGrid, в которых 0-й столбец и 0-ю строку использовать для отображения индексов массивов. Вычисления выполнять, после нажатия кнопки типа TButton.

1. Задана матрица размером . Получить массив B, присвоив его k- муэлементу значение 0, если все элементы k- го столбца матрицы нулевые, и значение 1 в противном случае.

2. Задана матрица размером . Получить массив B, присвоив его k- му элементу значение 1, если элементы k- ой строки матрицы упорядочены по убыванию, и значение 0 в противном случае.

3. Задана матрица размером . Получить массив B, присвоив его k- му элементу значение 1, если k -ая строка матрицы симметрична, и значение 0 в противном случае.

4. Задана матрица размером . Определить k - количество "особых" элементов матрицы, считая элемент "особым", если он больше суммы остальных элементов своего столбца.

5. Задана матрица размером . Определить k - количество "особых" элементов матрицы, считая элемент “особым”, если в его строке слева от него находятся элементы меньшие его, а справа – большие.

6. Задана символьная матрица размером . Определить k - количество различных элементов матрицы (т. е. повторяющиеся элементы считать один раз).

7. Дана матрица размером . Упорядочить ее строки по неубываниюих первых элементов.

8. Дана матрица размером . Упорядочить ее строки по неубыванию суммы их элементов.

9. Дана матрица размером . Упорядочить ее строки по неубыванию их наибольших элементов.

10. Определить, является ли заданная квадратная матрица n-го порядка симметричной относительно побочной диагонали.

11. Для матрицы размером вывести на экран все ее седловые точки. Элемент матрицы называется седловой точкой, если он является наименьшим в своей строке и одновременно наибольшим в своем столбце или, наоборот.

12. В матрице n-го порядка переставить строки так, чтобы на главной диагонали матрицы были расположены элементы, наибольшие по абсолютной величине.

13. В матрице n-гo порядка найти максимальный среди элементов, лежащих ниже побочной диагонали, и минимальный среди элементов, лежащих выше главной диагонали.

14. В матрице размером поменять местами строку, содержащую элемент с наибольшим значением со строкой, содержащей элемент с наименьшим.

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

16. Дан массив из k символов. Вывести на экран сначала все цифры, входящие в него, а затем все остальные символы, сохраняя при этом взаимное расположение символов в каждой из этих двух групп.

17. Дан массив, содержащий от 1 до k символов, за которым следует точка. Вывести этот текст в обратном порядке.

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

19. Отсортировать элементы массива Х по возрастанию.

20. Элементы массива Х расположить в обратном порядке.

21. Элементы массива Х циклически сдвинуть на k позиций влево.

22. Элементы массива Х циклически сдвинуть на n позиций вправо.

23. Преобразовать массив Х по следующему правилу: все отрицательные элементы массива перенести в начало, а все остальные – в конец, сохраняя исходное взаимное расположение, как среди отрицательных, так и среди остальных элементов.

24. Элементы каждого из массивов X и Y упорядочены по неубыванию. Объединить элементы этих двух массивов в один массив Z так, чтобы они снова оказались упорядоченными по неубыванию.

25. Дан массив из k символов. Определить симметричен ли он, т. е. читается ли он одинаково слева направо и справа налево.

26. Даны два массива. Найти наименьшее среди тех элементов первого массива, которое не входит во второй.

27. Определить количество инверсий в этом массиве Х (т.е. таких пар элементов, в которых большее число находится слева от наименьшего: при ).

28. Дан массив из строчных латинских букв. Вывести на экран в алфавитном порядке все буквы, которые входят в этот текст по одному разу.

29. Вывести на экран заданный массив из k символов, удалив из него повторные вхождения каждого символа.

30. Определить сколько различных символов входит в заданный текст, содержащий не более k символов и оканчивающийся точкой (в сам текст точка не входит).


Работа 5.





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


Дата добавления: 2016-07-29; Мы поможем в написании ваших работ!; просмотров: 586 | Нарушение авторских прав


Поиск на сайте:

Лучшие изречения:

Жизнь - это то, что с тобой происходит, пока ты строишь планы. © Джон Леннон
==> читать все изречения...

2268 - | 2040 -


© 2015-2024 lektsii.org - Контакты - Последнее добавление

Ген: 0.008 с.