Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
samost_pascal_delphi_2012.doc
Скачиваний:
0
Добавлен:
01.04.2025
Размер:
4.33 Mб
Скачать
  1. Підсумовування елементів кожного рядка.

Умовимося, що масив а складається з п рядків і m стовпців. Результатом є масив з ім'ям d, що складається з п сум елементів рядків:

for i:=1 to n do

begin

s:=0;

for j:=1 to m do s:=s+a[i,j];

d[i]:=s;

end;

Аналогічно обчислюється сума в стовпцях, для цього зовнішній цикл необхідно зробити по змінній j (номер стовпця), а внутрішній — по i (номер в рядку)

  1. Пошук мінімального елемента всієї матриці і множення матриці на вектор будуть розглянуті на лабораторній роботі.

  2. Перестановки елементів в масиві

У разі перестановки рядків матриці необхідно переставити місцями всі елементи двох рядків.

При перестановці двох рядків, скажімо, першого і другого, не обов'язково використовувати як буфер обміну цілий масив. Однієї змінної цілком достатньо, оскільки перестановки всіх елементів рядків виконуються по черзі.

for j:=1 to m do

begin

buf:= а[1,j]; а[1,j]:=a[2,j]; а[2,j]:=buf;

end;

Добрим прикладом перестановки елементів двовимірного масиву є транспонування матриці. При транспонуванні елементи матриці переставляються таким чином, що рядки початкової матриці стають стовпцями транспонованої матриці. При цьому елементи, розташовані на головній діагоналі початкової і транспонованої матриць, одні і ті ж. Операція транспонування зводиться до обміну елементів матриці, розташованих симетрично щодо головної діагоналі.

Головна діагональ - елементи a11, a22, a33, a44 (індекси елементів, розташованих на головній діагоналі (i=j)

Побічна діагональ - елементи a41, a32, a23, a14 (сума індексів елементів на 1 більше розмірності рядка(чи стовпця) тобто i+j=4=1 або i+j=n+1.

Для індексів елементів, розташованих над головною діагоналлю виконується відношення i<j.

Для індексів елементів, розташованих під головною діагоналлю виконується відношення i>j.

Приклади:

1) Знайти суму елементів головной діагоналі :

S:=0;

for i:=1 to n do

S:=S+a[i,i];

2) Знайти мінімальний елемент побічной діагоналі :

min:=a[1,n];

for i:=1 to n do

if a[i,n+1-i]<min then min:=a[i,n+1-i];

Задача 23:

Програма транспонування матриці.

program Transpon;

const а:array[1..4,1..4] integer= ( (2,5,7,3) (1,7,4,9) (3,6,8,4) (5,8,2,4) );

var i,j,t:integer;

begin

for i:=1 to 4 do

for j:=1 to 4 do

if i<j then begin { всі елементи вище за діагональ міняємо}

t:=a[i,j]; { місцями з відповідними }

а[i,j]:=a[j,i]; { елементами нижче за діагональ}

а[j,i]:=t;

end;

for i:=1 to 4 do begin { висновок транспонованої матриці}

for j:=1 to 4 do write(а[i,j]:4);

writeln;

end;

end.

Завдання 12:

  1. Матрицю розміром 44 заповнити випадковим числами і упорядкувати рядки за зростанням.

  2. Матрицю розміром 44 заповнити випадковим числами і упорядкувати стовпці за спаданням.

  3. Дан двовимірный масив A[N,M] Сформувати масив B[N,M], де

B[I,J] =SQR(A[I,J]), якщо I- НЕПАРНЕ, і B[I,J] = SQRТ(A[I.J]), якщо I- ПАРНЕ;

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]