ConstArray [1,1]=4, ConstArray [1,2]=3,…, ConstArray [2,3]=5, ConstArray [2,4]=3.
Обращение к элементам двумерного массива может осуществляться следующими способами:
ИмяМассива[Индекс1][Индекс2]
ИмяМассива[Индекс1, Индекс2]
Пример
Для изготовления пяти видов продукции на производстве используется пять видов сырья. Нормы затрат заданы двумерным массивом aij=2 |sin(i)| + j, i, j =1,2,..,5, где i - виды продукции, а j – виды сырья. Вывести на экран таблицу норм затрат и определить для какого вида продукции (imin) нужно минимальное количество (min) сырья третьего вида.
Блок-схема

Код программы в среде Pascal
program Plant;
uses Crt;
type expends= array[1..5, 1..5] of real;
var i, j, imin: integer;
min: real;
a: expends;
begin
clrscr;
writeln(‘ Виды сырья’);
writeln(‘ 1 2 3 4 5’);
for i:=1 to 5 do
begin
for j:=1 to 5 do
begin
a[i, j]:=2 * abs(sin(i))+j;
{Выводим элементы i-ой строки}
write(a[i, j]:7:2);
end;
writeln; {Переходим на новую строку}
end;
{Предполагаем, что минимальное количество сырья третьего вида нужно для производства первого вида продукции}
imin:=1;
min:=a[1,3];
for i:=2 to 5 do
if a[i, 3] < min then
begin {Определяем искомый вид продукции}
min := a[i, 3];
imin := i;
end;
writeln(‘ Меньше всего сырья третьего вида необходимо для производства ’, min, ‘ вида продукции’);
readln;
end.
Внешний вид формы в Delphi
В конструкторе |
|
При выполнении |
|
Код программы в среде Delphi
…
var
Form1: TForm1;
a: array [1..5, 1..5] of real;
{объявление глобального массива}
implementation
{$R *.dfm}
procedure TForm1.FormCreate(Sender: TObject);
{Заполнение заглавных колонки и столбца объекта StringGrid1 при загрузке окна}
var i: integer;
begin
for i:=1 to 5 do
begin
StringGrid1.Cells[i, 0]:=IntToStr(i)+' вид сырья';
StringGrid1.Cells[0, i]:=IntToStr(i)+' вид продукции';
end;
end;
procedure TForm1.Button1Click(Sender: TObject);
{Заполнение массива и ячеек StringGrid1}
var i, j: integer;
begin
for i:=1 to 5 do
for j:=1 to 5 do
begin
a[i, j]:=2 * abs(sin(i))+j;
StringGrid1.Cells[i, j] := FloatToStr(a[i, j]);
end;
end;
procedure TForm1.Button2Click(Sender: TObject);
{Поиск вида продукции, для производства которой требуется минимальное количество 3-егго вида сырья}
var imin, i: integer;
min : real;
begin
imin:=1;
min:=a[1,3];
for i:=2 to 5 do
if a[i, 3] < min then
begin {Определяем искомый вид продукции}
min := a[i, 3];
imin := i;
end;
Label1.Caption:='Для '+ IntToStr(imin)
+' вида продукции нужно минимум 3-его вида сырья : '
+ FloatToStr(min);
end;
end.
Лабораторная работа №8
Заполнить двумерный массив заданной пользователем размерности n*n случайными числами в указанном диапазоне. Вывести его на экран в виде таблицы. Выполнить дополнительные задания.
Выполнить два варианта: один – в среде Pascal, другой – в среде Delphi.
№ | Формулировка задания | Диапазон |
1. | Найти индексы минимального элемента массива. Вычислить произведение его отрицательных элементов. | [-10; 10] |
2. | Вычислить количество элементов массива, которые находятся в интервале от 1 до 6. | [-5; 25] |
3. | Вычислить произведение тех элементов, которые меньше –1 или больше 1. | [-14; 61] |
4. | Вычислить количество и произведение положительных элементов массива | [-15; 25] |
5. | Вычислить сумму квадратов элементов, больших 1. | [-5; 5] |
6. | Вычислить произведение тех элементов массива, которые не превосходят 3 по абсолютной величине. | [-25; 35] |
7. | Вычислить количество тех элементов массива, которые больше 3 и сумму элементов, меньших 9. | [-5; 15] |
8. | Вычислить произведение отрицательных элементов. Определить индексы максимального элемента. | [-20; 40] |
9. | Вычислить произведение диагональных элементов массива и количество отрицательных элементов. | [10;30] |
10. | Вычислить произведение тех элементов массива, находящихся в диапазоне от 2 до 10. | [1; 29] |
11. | Найти индексы максимального элемента массива. Вычислить произведение элементов над главной диагональю. | [-5; 5] |
12. | Вычислить произведение элементов первых двух строк | [-10; 10] |
13. | Вычислить сумму элементов массива над главной диагональю. Определить индексы минимального элемента. | [-15; 25] |
14. | Вычислить сумму отрицательных элементов массива. Найти максимальный элемент. | [-25; 10] |
15. | Найти произведение минимального и максимального элемента массива. | [-15; 5] |
16. | Определить индексы максимального и минимального элемента массива. | [-20; 35] |
17. | Элементы массива, равные нулю, заменить на 1. Найти сумму элементов под главной диагональю. | [-2; 2] |
18. | Найти количество отрицательных и произведение положительных элементов массива. | [-5;10] |
19. | Вычислить произведение тех элементов массива, которые меньше –5 или больше 3. Определить индексы минимального элемента. | [-10; 10] |
20. | Найти индексы максимального и минимального элементов массива. Вычислить произведение индексов. | [-20; 15] |
21. | Вычислить произведение элементов над главной диагональю и определить их количество. | [-16; 24] |
22. | Вычислить среднее арифметическое положительных элементов массива. | [-10; 30] |
23. | Вычислить произведение тех элементов массива, которые находятся в интервале от –21 до 15. Найти максимальный элемент в данном интервале. | [-40; 20] |
24. | Вычислить сумму диагональных элементов матрицы и количество элементов, значения которых меньше 3. | [-10; 10] |
25. | Вычислить произведение элементов под главной диагональю и сумму элементов над главной диагональю. | [-15; 10] |
Сложный поиск в массивах
Рассмотрим пример, демонстрирующий сохранение отобранных элементов одного массива в результирующий массив
|
Из за большого объема этот материал размещен на нескольких страницах:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |




