ВУЗ:
Составители:
Рубрика:
188
9 3 7 3 1 1 3 3 7 9
6 7 8 9 1 1 7 9 8 6.
От сортировки одномерного массива этот случай отличается только тем, что
переставлять нужно не два сравниваемых элемента, а два столбца:
for i:=1 to n-1 do
for j:=i+1 to n do
if a[2,i]>a[2,j]
then for k:=1 to n do
begin r:=a[k,i]; a[k,i]:=a[k,j]; a[k,j]:=r
end.
Пример 11.47. Найти произведение матрицы n·k на матрицу k·m.
Решение. Матрицы представляем в виде двумерных массивов. В результате
получается матрица - двумерный массив n·m, где элемент
c = a b
ij ip pj
p=1
k
⋅
∑
, т.е.
каждый элемент ответа равен сумме произведений элементов i-й строки массива а
на соответствующие элементы j-го столбца массива b.
for i:=1 to n do
for j:=1 to m do
begin c[i,j]:=0;
for p:=1 to k do c[i,j]:=c[i,j]+a[i,k]*b[k,j]
end.
11.9. Решение задач с использованием массивов
В этом разделе приводятся примеры решения более сложных задач с
использованием массивов. Для их решения требуется хорошо знать и умело
применять идеи, рассмотренные в предыдущих разделах.
Пример 11.48. От острова Буяна до царства славного Салтана месяц пути.
Капитан ежедневно записывает в вахтенный журнал пройденное расстояние.
Определить, в какую десятидневку был пройден больший путь.
Решение 1. Вахтенный журнал можно представить в виде одномерного массива,
содержащего 30 элементов. Отсюда получается решение.
s1=0;
for i:=1 to 10 do s1:=s1+a[i];
s2:=0;
for i:=11 to 20 do s2:=s2+a[i];
s3:=0;
for i:=21 to 30 do s3:=s3+a[i];
write('наибольший путь был пройден в ');
if s1>s2
then if s1>s3
then write('первую')
else write('третью')
else if s2>s3
then write('вторую')
else write('третью');
188
93731 13379
67891 1 7 9 8 6.
От сортировки одномерного массива этот случай отличается только тем, что
переставлять нужно не два сравниваемых элемента, а два столбца:
for i:=1 to n-1 do
for j:=i+1 to n do
if a[2,i]>a[2,j]
then for k:=1 to n do
begin r:=a[k,i]; a[k,i]:=a[k,j]; a[k,j]:=r
end.
Пример 11.47. Найти произведение матрицы n·k на матрицу k·m.
Решение. Матрицы представляем в виде двумерных массивов. В результате
k
получается матрица - двумерный массив n·m, где элемент c ij = ∑a
p=1
ip ⋅ b pj , т.е.
каждый элемент ответа равен сумме произведений элементов i-й строки массива а
на соответствующие элементы j-го столбца массива b.
for i:=1 to n do
for j:=1 to m do
begin c[i,j]:=0;
for p:=1 to k do c[i,j]:=c[i,j]+a[i,k]*b[k,j]
end.
11.9. Решение задач с использованием массивов
В этом разделе приводятся примеры решения более сложных задач с
использованием массивов. Для их решения требуется хорошо знать и умело
применять идеи, рассмотренные в предыдущих разделах.
Пример 11.48. От острова Буяна до царства славного Салтана месяц пути.
Капитан ежедневно записывает в вахтенный журнал пройденное расстояние.
Определить, в какую десятидневку был пройден больший путь.
Решение 1. Вахтенный журнал можно представить в виде одномерного массива,
содержащего 30 элементов. Отсюда получается решение.
s1=0;
for i:=1 to 10 do s1:=s1+a[i];
s2:=0;
for i:=11 to 20 do s2:=s2+a[i];
s3:=0;
for i:=21 to 30 do s3:=s3+a[i];
write('наибольший путь был пройден в ');
if s1>s2
then if s1>s3
then write('первую')
else write('третью')
else if s2>s3
then write('вторую')
else write('третью');
Страницы
- « первая
- ‹ предыдущая
- …
- 184
- 185
- 186
- 187
- 188
- …
- следующая ›
- последняя »
