Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
методичка.DOC
Скачиваний:
36
Добавлен:
13.05.2015
Размер:
772.61 Кб
Скачать

12. Работа с матрицами

Двумерный массив состоит из элементов с двумя индексами: один показывает номер столбца в массиве, другой - номер строки.

В Турбо-Паскале возможны массивы и большей размерности. Для их описания возможны два подхода:

а) массив рассматривается как массив других массивов:

type

x=array[1..100] of real;

y=array[1..2] of x;

б) массив рассматривается как многоиндексный

type y=array[ 1...100,1...2 ] of real;

Оба описания равноценны.

Задание 6

ЦЕЛЬ РАБОТЫ:

Научиться составлять алгоритмы и программы для обработки двумерных массивов.

ПРИМЕР 1:Получить матрицу, элементами которой являются

произведения номеров строк i и номеров столбцов j.

А Л Г О Р И Т М

алгтаблица умножения

резр: цел таб [1..9,1..9]

раб i,j: цел

нач

нцдля iот1до9

нцдля jот1до 9

р[i,j]:=i*j

вывод p[i,j]

кц

кц

П Р О Г Р А М М А

program umnog;

type mat=array[1..9,1..9] of integer;

var i,j:integer;

p:mat;

begin

for i:=1 to 9 do

begin

for j:=1 to 9 do

begin

p[i,j]:=i*j;

write (p[i,j]:3)

end;

writeln;

end

end.

ПРИМЕР 2:Из матрицы А[3,4] получить вектор В, элементами которого являются наибольшие элементы столбцов матрицы.

А Л Г О Р И Т М

алгмассив максимумов

арг а: вещ таб [1..3,1..4]

резb: вещ таб [1..4]

рабi,j: цел

нач

нцдляiот1до3

нцдляjот1до4

ввод a[i,j]

кц

кц

нцдляjот1до4

b[j]:=a[1,j]

нцдляiот2до3

если b[j]<a[i,j]

то b[j]:=a[i,j]

все

кц

выводb[j]

кц

кон

П Р О Г Р А М М А

program mag_max;

type x=array[1..3,1..4] of integer;

y=array[1..4] of integer;

var i,j:integer;

a:x; b:y;

begin

writeln ('Введите матрицу А');

for i:=1 to 3 do begin

for j:=1 to 4 do begin

read(a[i,j]);

write (' ')

end;

writeln

end;

writeln ('Массив В');

for j:=1 to 4 do

begin

b[j]:=a[1,j];

for i:=2 to 3 do

if b[j]<a[i,j]

then b[j]:=a[i,j];

write(b[j]:4:1)

end

end.

ПОРЯДОК РАБОТЫ

1. Разработать алгоритм и программу примера 1 (табл.10). Выполнить программу, проанализировать результат.

2. Разработать алгоритм и программу примера 2 (табл.11). Матрицу сформировать из случайных целых чисел.

СОДЕРЖАНИЕ ОТЧЕТА

Отчет должен содержать условия, алгоритмы, тексты программ, исходные данные и результаты по двум примерам.

ТАБЛИЦА 10

Сформируйте квадратную матрицу порядка n по заданному образцу. Протестируйте программу для массива, состоящего из 10*10 элементов.

1)

(n-четное)

2)

3)

4)

5)

6)

7)

8)

9)

10)

ТАБЛИЦА 11

НОМЕР

УСЛОВИЕ

1

Найти среднее арифметическое элементов матрицы Х(n,m) и сформировать вектор У из элементов, больших среднего арифметического.

2

Сформировать одномерный массив из элементов, стоящих над главной диагональю матрицы K(m,m). Найти сумму элементов этого массива.

3

Из матрицы У(k,k) получить вектор Т, элементами которого являются элементы главной диагонали матрицы.

4

Из матрицы А(3,4) получить вектор В, элементами которого являются произведения элементов в каждой строке матрицы.

5

Создать вектор М, содержащий количество отрицательных элементов каждого столбца матрицы z(3,4).

6

В матрице X(m,m) найти максимальный диагональный элемент и вывести всю строку, в которой он расположен.

7

Вычислить сумму элементов двух главных диагоналей матрицы С(5,5).

8

Вычислить среднее арифметическое четных элементов матрицы У(4,5).

9

Сформировать вектор С из элементов матрицы L(m,n), больших заданного числа Z.

10

Сформировать Вектор Т из четных элементов матрицы P(k,l). Найти в нем максимальный элемент.