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