ВУЗ:
Составители:
Рубрика:
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
- …
- следующая ›
- последняя »