Program lab2 uses crt var integer размерность массива которую вводит п

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
Program lab2;
//uses crt;
var n: integer; // размерность массива, которую вводит пользователь
a: array of array of integer; // двумерный динамический массив
IL: array of integer; // одномерный динамический массив. (В методичке он называется I)
AL: array of integer; // одномерный динамический массив.
count: integer; // счетчик, в котором будет храниться размерность массивов AL и IL
i: integer;
j: integer;
Begin
writeln('Enter the dimension of the array (n):');
readln(n); // ввод пользователем размерностей массива
SetLength(a, n); // задание размерности n одномерному массиву a
for i := 0 to n - 1 do
SetLength(a[i], n); // задание размерности n одномерным массивам a[i] (структура двумерного динамического массива)
writeln('Enter array (', n, 'x', n,') elements');
{
for i := 0 to (n - 1) do begin
for j := 0 to (n - 1) do begin
writeln('Enter a[', i, ',', j, ']');
readln(a[i, j]); // ввод массива поэлементно
end;
end;
}
{
a[0, 0] := 0; a[0, 1] := 5; a[0, 2] := 2; a[0, 3] := 0; a[0, 4] := 0;
a[1, 0] := 0; a[1, 1] := 0; a[1, 2] := 7; a[1, 3] := 0; a[1, 4] := 0;
a[2, 0] := 0; a[2, 1] := 4; a[2, 2] := 0; a[2, 3] := 6; a[2, 4] := 1;
a[3, 0] := 0; a[3, 1] := 3; a[3, 2] := 0; a[3, 3] := 0; a[3, 4] := 9;
a[4, 0] := 0; a[4, 1] := 0; a[4, 2] := 0; a[4, 3] := 0; a[4, 4] := 0;
}
writeln('Entered array:');
for i := 0 to n - 1 do
writeln(a[i]); // вывод массива построчно на экран
count := 0; // установление стартового значения для счетчика размерности массивов AL и IL
for i := 0 to (n - 1) do begin
SetLength(AL, count + 1); // выделение памяти и создание нового индекса для массива AL
SetLength(IL, count + 1); // выделение памяти и создание нового индекса для массива IL
AL[count] := 0; // описание ненулевого элемента очередной строки матрицы
IL[count] := i + 1; // номер стоблца, описание которой начинается со следующей позиции списков AL и IL
inc(count);
for j := 0 to (n - 1) do begin
if(a[i, j] <> 0 ) then begin
SetLength(AL, count + 1); // выделение памяти и создание нового индекса для массива AL
SetLength(IL, count + 1); // выделение памяти и создание нового индекса для массива IL
AL[count] := a[i, j]; // присваивание ненулевого эллемента заданной матрицы
IL[count] := j + 1; // номер строки ненулевых элементов из списка AL
inc(count);
end;
end;
if (i = (n - 1)) then begin
SetLength(AL, count + 1); // выделение памяти и создание нового индекса для массива AL
SetLength(IL, count + 1); // выделение памяти и создание нового индекса для массива IL
AL[count] := 0; // присваивание нуля в конце
IL[count] := 0; // присваивание нуля в конце
end;
end;
writeln('AL = ', AL);
writeln('IL = ', IL);
End.