Система программирования Турбо Паскаль. Воробьева А.П - 44 стр.

UptoLike

Составители: 

89
внутреннего, включается оператор writeln, который переводит
курсор к началу следующей строки экрана после вывода текущей
строки матрицы.
for i := 1 to 2 do
begin
for j := 1 to 3 do write(m[i, j]:3);
writeln;
end;
Вывод матрицы на экран будет следующим:
1 2 3
4 5 6
Обработка матриц
Базовыми алгоритмами обработки матриц являются те же ал-
горитмы, которые используются при обработке одномерных мас-
сивов. Однако реализацию этих алгоритмов можно условно рас-
сматривать для двух типов задач.
1.
Алгоритмы реализуются при просмотре всех эле-
ментов матрицы
(просмотр может быть с условием). Начальная
установка алгоритма выполняется перед двойным циклом. В этом
случае запись операторов цикла для параметров
i и j осуществля-
ется последовательно друг за другом и имеет вид:
<начальная установка>;
for i := 1 to m do
for j := 1 to n do <тело цикла>
;
2. Алгоритмы реализуются внутри каждой строки или
каждого столбца матрицы
. В этом случае начальная установка
алгоритма выполняется между операторами цикла, записанными
для параметров
i и j. Например, если алгоритм реализуется для
каждой строки
, то запись в программе имеет следующий вид:
for i := 1 to m do
begin
<начальная установка>
;
for j := 1 to n do <тело цикла>;
end
;
Ниже рассмотрены примеры программирования задач каждо-
го типа.
90
Реализация алгоритмов задач первого типа
Задача 1.
Дана матрица вещественных чисел
64
}{
×
=
ij
aA .
Вычислить значение
2/1 PPZ = , где P1 и P2 – произведения по-
ложительных и отрицательных элементов матрицы соответственно.
Program DМ1_1;
Var
A: array [1..4, 1..6] of real;
i, j: integer;
P1, P2, Z: real;
Begin
writeln(‘Введите матрицу А’);
for i := 1 to 4 do
for j := 1 to 6 do read(a[i,j]);
P1 := 1;
P2 := 1;
for i := 1 to 4 do
for j :=1 to 6 do
begin
if a[i,j]>0 then P1 := P1
a[i,j];
if a[i,j]<0 then P2 := P2
a[i,j];
end;
Z := P1/abs(P2);
writeln(‘Z=’, Z:10:2);
End.
Задача 2. В квадратной целочисленной матрице
55
}{
×
=
ij
bB
вычислить модуль разности между числом нулевых элементов,
стоящих ниже главной диагонали, и числом нулевых элементов,
стоящих выше главной диагонали.
Введем обозначения:
L1число нулевых элементов ниже главной диагонали;
L2число нулевых элементов выше главной диагонали;
L = |L1 – L2|.
внутреннего, включается оператор writeln, который переводит        Реализация алгоритмов задач первого типа
курсор к началу следующей строки экрана после вывода текущей
строки матрицы.                                                        Задача 1. Дана матрица вещественных чисел A = {aij }4×6 .
                      for i := 1 to 2 do                           Вычислить значение Z = P1 / P 2 , где P1 и P2 – произведения по-
                        begin
                                                                   ложительных и отрицательных элементов матрицы соответственно.
                            for j := 1 to 3 do write(m[i, j]:3);
                                                                                     Program DМ1_1;
                            writeln;
                        end;                                                         Var
Вывод матрицы на экран будет следующим:                                               A: array [1..4, 1..6] of real;
                              1 2 3                                                   i, j: integer;
                              4 5 6                                                   P1, P2, Z: real;
                                                                                     Begin
                      Обработка матриц
                                                                                      writeln(‘Введите матрицу А’);
     Базовыми алгоритмами обработки матриц являются те же ал-                         for i := 1 to 4 do
горитмы, которые используются при обработке одномерных мас-
                                                                                           for j := 1 to 6 do read(a[i,j]);
сивов. Однако реализацию этих алгоритмов можно условно рас-
                                                                                      P1 := 1;
сматривать для двух типов задач.
                                                                                      P2 := 1;
     1. Алгоритмы реализуются при просмотре всех эле-
ментов матрицы (просмотр может быть с условием). Начальная                            for i := 1 to 4 do
установка алгоритма выполняется перед двойным циклом. В этом                               for j :=1 to 6 do
случае запись операторов цикла для параметров i и j осуществля-                                begin
ется последовательно друг за другом и имеет вид:                                                   if a[i,j]>0 then P1 := P1∗a[i,j];
                  <начальная установка>;                                                           if a[i,j]<0 then P2 := P2∗a[i,j];
                  for i := 1 to m do                                                           end;
                    for j := 1 to n do <тело цикла>;                                  Z := P1/abs(P2);
     2. Алгоритмы реализуются внутри каждой строки или                                writeln(‘Z=’, Z:10:2);
каждого столбца матрицы. В этом случае начальная установка                           End.
алгоритма выполняется между операторами цикла, записанными
для параметров i и j. Например, если алгоритм реализуется для          Задача 2. В квадратной целочисленной матрице B = {bij }5×5
каждой строки, то запись в программе имеет следующий вид:
                  for i := 1 to m do                               вычислить модуль разности между числом нулевых элементов,
                    begin                                          стоящих ниже главной диагонали, и числом нулевых элементов,
                        <начальная установка>;                     стоящих выше главной диагонали.
                        for j := 1 to n do <тело цикла>;                Введем обозначения:
                    end;                                           L1 – число нулевых элементов ниже главной диагонали;
     Ниже рассмотрены примеры программирования задач каждо-        L2 – число нулевых элементов выше главной диагонали;
го типа.                                                           L = |L1 – L2|.

                               89                                                                  90