1) Программа ищет определенное число в массиве, определяет, сколько раз это число встречается в нём и выводит индекс (читай - номер) самой первой ячейки, в которой оно было обнаружено.
2) Для ввода значений с клавиатуры используется функция readln, замкнутая в цикл с счетчиком for. Она последовательно вводит каждое значение в массив с переходом на новую строку.
3) Для вывода информации о количестве повторяющихся элементов используется функция writeln, выводящая все вложенные значения и переходящая на новую строку.
4) Размерность массива = 10, т.к. инициализируется он строкой
a: array [1..count] of integer
где count - константа, заданная в начале программы. Она = 10, следовательно, номер самого высшего элемента тоже будет равен 10.
Надсистема-Первая группа решений задачи минимизации связана с использованием надсистемы. Что такое надсистема? Это то, что окружает систему; то, с чем она взаимодействует. Для устройства – это окружающие его другие устройства, которые работают вместе. Так, для плазменной панели в качестве надсистемы может выступать мультимедийный центр, который включает саму плазменную панель, DVD-плеер, игровую приставку, колонки, компьютер. Подсистема- это набор объектов и подсистем, обеспечивающих некоторую функциональность, и взаимодействующих между собой в соответствии с их интерфейсами. Интерфейс подсистемы представляет собой подмножество объединения интерфейсов всех объектов и подсистем, составляющих эту подсистему. В состав подсистемы может входить один, или более взаимозависимых объектов и/или подсистем.
mm = 30;
var
a: array[1..mm, 1..mm] of integer;
i, j, m, s: integer;
begin
Write('Введите число строк матрицы: ');
Readln(m);
Randomize;
Writeln(#13#10, 'Исходная матрица');
for i := 1 to m do
begin
for j := 1 to m do
begin
a[i, j] := Random(101) - 50;
Write(a[i, j]:4)
end;
Writeln
end;
{ *** 1 *** }
Writeln('*** Элементы главной диагонали ***');
for i := 1 to m do Write(a[i, i]:4);
Writeln;
Writeln('*** Элементы побочной диагонали ***');
for i := m downto 1 do Write(a[i, m - i + 1]:4);
Writeln;
{ *** 2 *** }
s := 0;
for i := 1 to m - 1 do
for j := i + 1 to m do
s := s + a[i, j];
Writeln('Сумма элементов, лежащих выше главной диагонали: ', s);
end.
Тестовое решение:
Введите число строк матрицы: 10
Исходная матрица
-8 15 22 40 6 46 -37 35 -45 -5
41 22 45 17 -19 -14 50 -11 43 -10
27 20 -45 -35 27 -27 25 3 34 6
37 5 38 -36 32 -18 11 -41 44 46
35 24 -38 -18 1 28 -25 -25 -5 36
20 33 37 -32 -35 23 9 7 -38 -18
-29 10 -50 0 9 -15 34 30 35 50
26 40 -5 48 5 -47 7 24 14 50
49 -1 -43 49 36 -47 18 20 49 -41
24 -47 47 12 25 -26 24 12 24 -35
*** Элементы главной диагонали ***
-8 22 -45 -36 1 23 34 24 49 -35
*** Элементы побочной диагонали ***
24 -1 -5 0 -35 28 11 3 43 -5
Сумма элементов, лежащих выше главной диагонали: 392