Многомерные массивы - Дана матрица размера 4 x 9. Продублировать строку (столбец) матрицы, содержащий ее минимальный (максимальный) элемент.
Описание
Программу можно переделать под свой вариант
Цель работы: Научится создавать и обрабатывать статические и динамические двумерные (многомерные) массивы.
/ задача из РК программа в Pascal Lazarus. В архиве также файл с объяснениями работы программы. Тэги: Программа на Lazarus, PascalObject, Pascal, Delphi, Turbo Delphi, Pascal ABC / Анимация, ЛР, РК, ДЗ, 2023
Условия для программы, под которые она выполнена:
Задания для самостоятельной работы
21. Дана матрица размера 4 x 9. Продублировать строку (столбец) матрицы, содержащий ее минимальный (максимальный) элемент.

Программа в сделанном виде:



Лабораторная работа 7
Многомерные массивы
Цель работы: Научится создавать и обрабатывать статические и динамические двумерные (многомерные) массивы.
Теоритическая часть
Массивы - формальное объединение нескольких однотипных объектов (чисел, символов, строк, и т.п.), рассматриваемое как единое целое. Если речь идет о двумерных (в общем случае — многомерных) массивах, то в описаниях должны быть заданы диапазоны изменения всех индексов.
Статические двумерные массивы
При описании массива необходимо указать общее число входящих в массив элементов и тип этих элементов:
Var a:array[1 ..6, 1 ..4] of integer; // двухмерный массив (таблица) из шести строк и четырех столбцов (всего двадцать четыре элемента).
Ключевое слово array (массив) означает, что перед нами массив. Далее в квадратных скобках указываются минимальный и максимальный допустимые индексы массива (у двумерного массива это относится и к строкам, и к столбцам). Они разделяются двумя точками. После ключевого слова of указывается тип элементов массива, у нас - integer (целые числа ).
Доступ к каждому элементу массива в программе осуществляется с помощью индекса - целого числа. При упоминании в программе любого элемента массива сразу за именем массива должен следовать индекс элемента в квадратных скобках. Основное удобство массивов состоит в том, что индекс любого элемента массива может быть задан не только числом но выражением, например: a[j;i+1] . Значит, для работы с массивами можно использовать циклы.
Динамические двумерные и многомерные массивы
Описание динамических двумерных и многомерных массивов в
программе схоже с одномерными. Вот как, например, описывается 3-х мерный динамический массив:
var
name array of array of array of integer;
Компонент TStringGride
Данный компонент находится во вкладке Additional.
Компонент представляет собой таблицу, состоящую из строк Rows и столбцов Cols. В свою очередь таблица это двумерный массив, значениями которого являются строки символов и, следовательно, имеет тип string. Доступ к данным осуществляется через свойство Cells. Ячейке таблицы, находящейся на пересечении столбца с номером Col и строки с номером Row, соответствует элемент массива Cells[Col,Row]. Обратите внимание, вначале указывается столбец, а затем строка. Нумерация столбцов и строк начинается с нуля. Основные свойства компонента TStringGrid следующие:
ColCount – количество столбцов таблицы;
RowCount – количество строк таблицы;
FixedCols – количество фиксированных столбцов таблицы. Обычно фиксируется один, самый левый столбец и используется для задания постоянной информации, например, заголовка столбца. Но можно зафиксировать и больше столбцов. При этом зафиксированные столбцы выделяются цветом и при горизонтальной прокрутке таблицы остаются на месте;
FixedRows – количество фиксированных строк таблицы. Точно так же, фиксируется обычно одна строка для задания заголовка, но можно зафиксировать и больше строк. Строки выделяются цветом и при вертикальной прокрутке таблицы остаются на месте;
FixedColor – цвет фиксированных строк и столбцов;
VisibleColCount – количество видимых (прокручиваемых) столбцов, равно ColCount – FixedCols;
VisibleRowCount – количество видимых (прокручиваемых) строк, равно RowCount – FixedRows;
ScrollBars – определяет наличие в таблице полос прокрутки. Если указать значение ssAutoBoth, то полосы прокрутки будут появляться и исчезать автоматически в зависимости от того, помещается таблица в окно компонента или нет.
Пример1: Даны две матрицы размером 3x3. Найти сумму этих матриц.
| |
| |
procedure TForm2.Button1Click(Sender: TObject); var k,i,j:integer;
Const n=3;
begin
for i:=0 to n-1 do
for j:=0 to n-1 do
begin StringGrid3.Cells[i,j]:=''; k:=StrToInt (StringGrid1.cells[i,j])+StrToInt (StringGrid2.cells[i,j]);
StringGrid3.Cells[i,j]:=IntToStr(k);
end; end;
procedure TForm2.Button2Click(Sender:TObject); var k,i,j: integer;
Const n=3;
begin
for i:=0 to n-1 do for j:=0 to n-1 do begin
StringGrid3.Cells[i,j]:='';
end; end;
procedure TForm2.FormCreate(Sender: TObject);
begin StringGrid1.cells[0,0]:='2';stringGrid1.cel ls[0,1]:='5';
stringGrid1.cells[0,2]:='7';stringGrid1.cel ls[1,0]:='9';
StringGrid1.cells[1,1]:='6';
StringGrid1.cells[1,2]:='1'; StringGrid1.cells[2,0]:='0';stringGrid1.cel ls[2,1]:='-5';
StringGrid1.cells[2,2]:='4'; stringGrid2.cells[0,0]:='3'; stringGrid2.cells[0,1 ]:='-4'; stringGrid2.cells[0,2]:='9'; stringGrid2.cells[1,0]:= '7';
stringGrid2.cells[1,1 ]:='1'; stringGrid2.cells[1,2]:='0'; stringGrid2.cells[2,0]:= '4'; stringGrid2.cells[2,1]:='8'; stringGrid2.cells[2,2]:= '1'; end;
end.
Показать/скрыть дополнительное описание
Лабораторная работа №7. Вариант 21. ЛР Многомерные массивы Цель работы: Научится создавать и обрабатывать статические и динамические двумерные (многомерные) массивы. / задача из РК программа в Pascal Lazarus. В архиве также файл с объяснениями работы программы. Тэги: Программа на Lazarus, PascalObject, Pascal, Delphi, Turbo Delphi, Pascal ABC / Анимация, ЛР, РК, ДЗ, 2023 Условия для программы, под которые она выполнена: Задания для самостоятельной работы 21. Дана матрица размера 4 x 9. Продублировать строку (столбец) матрицы, содержащий ее минимальный (максимальный) элемент. Программа в сделанном виде: Лабораторная работа 7 Многомерные массивы Цель работы: Научится создавать и обрабатывать статические и динамические двумерные (многомерные) массивы.
Теоритическая часть Массивы - формальное объединение нескольких однотипных объектов (чисел, символов, строк, и т.п.), рассматриваемое как единое целое. Если речь идет о двумерных (в общем случае — многомерных) массивах, то в описаниях должны быть заданы диапазоны изменения всех индексов. Статические двумерные массивы При описании массива необходимо указать общее число входящих в массив элементов и тип этих элементов: Var a:array[1 ..6, 1 ..4] of integer; // двухмерный массив (таблица) из шести строк и четырех столбцов (всего двадцать четыре элемента). Ключевое слово array (массив) означает, что перед нами массив. Далее в квадратных скобках указываются минимальный и максимальный допустимые индексы массива (у двумерного массива это относится и к строкам, и к столбцам).
Они разделяются двумя точками. После ключевого слова of указывается тип элементов массива, у нас - integer (целые числа ). Доступ к каждому элементу массива в программе осуществляется с помощью индекса - целого числа. При упоминании в программе любого элемента массива сразу за именем массива должен следовать индекс элемента в квадратных скобках. Основное удобство массивов состоит в том, что индекс любого элемента массива может быть задан не только числом но выражением, например: a[j;i+1] . Значит, для работы с массивами можно использовать циклы. Динамические двумерные и многомерные массивы Описание динамических двумерных и многомерных массивов в программе схоже с одномерными.
Вот как, например, описывается 3-х мерный динамический массив: var name array of array of array of integer; Компонент TStringGride Данный компонент находится во вкладке Additional. Компонент представляет собой таблицу, состоящую из строк Rows и столбцов Cols. В свою очередь таблица это двумерный массив, значениями которого являются строки символов и, следовательно, имеет тип string. Доступ к данным осуществляется через свойство Cells. Ячейке таблицы, находящейся на пересечении столбца с номером Col и строки с номером Row, соответствует элемент массива Cells[Col,Row]. Обратите внимание, вначале указывается столбец, а затем строка. Нумерация столбцов и строк начинается с нуля.
Основные свойства компонента TStringGrid следующие: ColCount – количество столбцов таблицы; RowCount – количество строк таблицы; FixedCols – количество фиксированных столбцов таблицы. Обычно фиксируется один, самый левый столбец и используется для задания постоянной информации, например, заголовка столбца. Но можно зафиксировать и больше столбцов. При этом зафиксированные столбцы выделяются цветом и при горизонтальной прокрутке таблицы остаются на месте; FixedRows – количество фиксированных строк таблицы. Точно так же, фиксируется обычно одна строка для задания заголовка, но можно зафиксировать и больше строк. Строки выделяются цветом и при вертикальной прокрутке таблицы остаются на месте; FixedColor – цвет фиксированных строк и столбцов; VisibleColCount – количество видимых (прокручиваемых) столбцов, равно ColCount – FixedCols; VisibleRowCount – количество видимых (прокручиваемых) строк, равно RowCount – FixedRows; ScrollBars – определяет наличие в таблице полос прокрутки.
Если указать значение ssAutoBoth, то полосы прокрутки будут появляться и исчезать автоматически в зависимости от того, помещается таблица в окно компонента или нет. Пример1: Даны две матрицы размером 3x3. Найти сумму этих матриц. procedure TForm2.Button1Click(Sender: TObject); var k,i,j:integer; Const n=3; begin for i:=0 to n-1 do for j:=0 to n-1 do begin StringGrid3.Cells[i,j]:=\'\'; k:=StrToInt (StringGrid1.cells[i,j])+StrToInt (StringGrid2.cells[i,j]); StringGrid3.Cells[i,j]:=IntToStr(k); end; end; procedure TForm2.Button2Click(Sender:TObject); var k,i,j: integer; Const n=3; begin for i:=0 to n-1 do for j:=0 to n-1 do begin StringGrid3.Cells[i,j]:=\'\'; end; end; procedure TForm2.FormCreate(Sender: TObject); begin StringGrid1.cells[0,0]:=\'2\';stringGrid1.cel ls[0,1]:=\'5\'; stringGrid1.cells[0,2]:=\'7\';stringGrid1.cel ls[1,0]:=\'9\'; StringGrid1.cells[1,1]:=\'6\'; StringGrid1.cells[1,2]:=\'1\'; StringGrid1.cells[2,0]:=\'0\';stringGrid1.cel ls[2,1]:=\'-5\'; StringGrid1.cells[2,2]:=\'4\'; stringGrid2.cells[0,0]:=\'3\'; stringGrid2.cells[0,1 ]:=\'-4\'; stringGrid2.cells[0,2]:=\'9\'; stringGrid2.cells[1,0]:= \'7\'; stringGrid2.cells[1,1 ]:=\'1\'; stringGrid2.cells[1,2]:=\'0\'; stringGrid2.cells[2,0]:= \'4\'; stringGrid2.cells[2,1]:=\'8\'; stringGrid2.cells[2,2]:= \'1\'; end; end. .
Файлы условия, демо
Характеристики лабораторной работы
Список файлов
