Другие языки программирования и технологии
Дано три квадратні матриці розмірністю n на n. Вивести на екран ту з них, у якої сумма елементів бічної діагоналі більша
Помогите, пожалуйста, решить задачу. Срочно!
Умова: Дано квадратну матрицю розмірності n. Надрукувати суму елементів бічної діагоналі.
Розв'язок задачі являється тривіальним, якщо згадати, яку залежність мають індекси бічної діагоналі (i+j=n+1). Перевіривши цю залежність в середині циклів, що організовують прохід по масиву, ми знайдемо бажану суму.
Program Example_360;
Uses crt;
Const
n = 10;
Var A: array[1..n,1..n] of real;
i,j:integer; {і,j - змінні циклу}
Sum:real; {Sum - сума елементів бічної діагоналі}
Begin
Randomize;
Clrscr;
{Заповнення масиву та виведення його на екран}
For i:=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 i:=1 to n do
Begin
For j:=1 to n do
begin
if i + j = n+1
then Sum:=Sum+A[i,j];
end;
End;
Writeln ('Сума елементів бічної діагоналі =',Sum:8:2);
Readkey; {Затримка зображення на екрані}
End.
Зверніть увагу на те, що для цієї задачі можна значно спростити цикл знаходження суми, адже фактично ми розглядаємо тільки лінійний масив (елементи на діагоналі дійсно складають одновимірний масив) . Тому цикл знаходження суми можна зробити таким чином (наведений фрагмент програми) :
Sum:=0; {Початкове значення суми}
For i:=1 to n do
Begin
Sum:=Sum+A[i,n+1-i];
End;
Останній фрагмент в тілі програми можеш запустити 3 рази для 3-х різних матриць. В прикладі вже використовується матриця А, зроби також для В, С.
Розв'язок задачі являється тривіальним, якщо згадати, яку залежність мають індекси бічної діагоналі (i+j=n+1). Перевіривши цю залежність в середині циклів, що організовують прохід по масиву, ми знайдемо бажану суму.
Program Example_360;
Uses crt;
Const
n = 10;
Var A: array[1..n,1..n] of real;
i,j:integer; {і,j - змінні циклу}
Sum:real; {Sum - сума елементів бічної діагоналі}
Begin
Randomize;
Clrscr;
{Заповнення масиву та виведення його на екран}
For i:=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 i:=1 to n do
Begin
For j:=1 to n do
begin
if i + j = n+1
then Sum:=Sum+A[i,j];
end;
End;
Writeln ('Сума елементів бічної діагоналі =',Sum:8:2);
Readkey; {Затримка зображення на екрані}
End.
Зверніть увагу на те, що для цієї задачі можна значно спростити цикл знаходження суми, адже фактично ми розглядаємо тільки лінійний масив (елементи на діагоналі дійсно складають одновимірний масив) . Тому цикл знаходження суми можна зробити таким чином (наведений фрагмент програми) :
Sum:=0; {Початкове значення суми}
For i:=1 to n do
Begin
Sum:=Sum+A[i,n+1-i];
End;
Останній фрагмент в тілі програми можеш запустити 3 рази для 3-х різних матриць. В прикладі вже використовується матриця А, зроби також для В, С.
ещё раз и по-русски, и укажи на каком языке программу пишешь.. . (пардон, ты же не пишешь, ты только хочешь)
Похожие вопросы
- суму елементів масиву з парними індексами та добуток елементів з непарними індексами. Масив вводиться з клавіатури c++
- Дано функцию f(x,y). Вивести на екран функцію g(x)=∫_a^b▒〖f(x,y)〗 dy. С++
- Решите задачу! Дано целое число n найдите сумму 1^n +2^n-1 + 3^n-2 ...+n^1
- Помогите написать программу. Дано натуральное 5-значное число n.Определить равны ли сумма и произведение его цифр.
- Дано натуральное А (максимум 1000 цифр) . Найти такое минимальное натуральное N, что N^N будет делиться на А без остатка.
- Помогите составить блок схему. Данны целые числа n, k (n>=k>=0). Вычислить n(n-1)*(n-2)... (n-k-1)/k!
- C++, какой смысл приписывать к числам букву L? (long N(0L), N % 2L) Чем грозит неприписывание? Особенн в Visual studio.
- Дано вещественное число R и массив размера N. Найти элемент массива, который наименее близок к данному числу
- дано натуральное 5 значное число n.Сколько раз в данном числе встречаются цифры 4 или 8?
- Упорядочить по возрастанию элементы каждой строки матрицы размером n х n.