Пошук

неділю, 10 січня 2010 р.

VIII. Двовимірні масиви

ЗАДАЧА № 49

Постановка задачі:

Дано натуральні числа п, т. Обчислити значення елементів матриці Сij, (і = 1, 2,…, п, j=1, 2,…, т), якщо:

Текст програми:

Program Task_49;

Uses crt;

Const n = 20; m = 15;

Var C:array[1..n, 1..m] of integer;

i, j:integer; {i, j – змінні циклу}

Begin

Clrscr;

For i:=1 to n do

Begin

For j:=1 to m do

Begin

If і

Else C[i,j]:=i*i + j*j;

Write(C[i,j]:5);

End;

Writeln;

End;

Readkey;

End.

ЗАДАЧА № 50

Постановка задачі:

Дано квадратну матрицю розмірності п. Надрукувати суму елементів бічної діагоналі.

Аналіз алгоритму:

Розв’язок задачі є тривіальним, якщо згадати, яку залежність мають індекси бічної діагоналі
+ j = п + 1). Перевіривши цю залежність у середині циклів, що організовують проходження по масиву, ми знайдемо бажану суму.

Текст програми:

Program Task_50;

Uses crt;

Const n = 10;

Var A:array[1..n, 1..n] of real;

і,j:integer; {і, j – змінні циклу}

Sum:real; {Sum – сума елементів бічної діагоналі}

Begin

Randomize;

Clrscr;

{Заповнення масиву та виведення його на екран}

For і:=1 to n do

Begin

For j:=1 to n do

Begin

A[i,j]:=random*50–random(80)/3;

Write(A[i,j]:8:3);

End;

Writeln;

End;

Sum:=0; {Початкове значення суми}

For і:=1 to n do

Begin

For j:=1 to n do

If і+j=n+1 Then Sum:=Sum+A[і,j];

End;

Writeln(‘Сума елементів бічної діагоналі = ‘, Sum:8:2);

Readkey;

End.

Зверніть увагу на те, що для цієї задачі можна значно спростити цикл знаходження суми, адже фактично ми розглядаємо тільки лінійний масив (елементи на діагоналі насправді складають одновимірний масив). Тому цикл знаходження суми можна зобразити таким чином (наведений фрагмент програми):

Sum:=0; {Початкове значення суми}

For i:=1 to n do Sum:=Sum+A[i,n+1–i];

Немає коментарів:

Дописати коментар