1. Создать функцию, определяющую сумму максимальных элементов главной и побочной диагоналей массива massivnn.
Перед началом поиска максимального элемента max_1 главной диагонали массива принимаем за него элемент massiv11. После этого сравниваем остальные элементы главной диагонали massivii (i=2,…,n) с текущим максимумом: если очередной элемент больше текущего максимума max_1, то сейчас он – текущий максимум.
Перед началом поиска максимального элемента max_2 побочной диагонали массива принимаем за него элемент massivnn. После этого сравниваем остальные элементы побочной диагонали massivij (i=2,…,n; j=n-i+1) с текущим максимумом: если очередной элемент больше текущего максимума max_2, то сейчас он – текущий максимум.
2. Схема алгоритма решения задачи.
2.1. Головная программа:
2.2. Подпрограмма-функция:
3. Код программы
3.1. На языке Паскаль:
Program Variant_0;
Uses WinCrt;
Const n = 5; {задание размера массива именованной константой}
Type TMass=Array [1..n, 1..n] Of Integer;{описание нового типа}
Var i, j : Word;
summa, v_min, v_max: Integer;
massiv : TMass;
Function Summa_max(nn:Integer; AA:TMass):Integer;
Var i, max_1, max_2: Integer;
Begin
max_1:=AA[1,1];
For i:=2 To nn Do
If (AA[i,i]>max_1)
Then max_1:=AA[i,i];
max_2:=AA[1,nn];
For i:=2 To nn Do
If (AA[i,nn-i+1]>max_2)
Then max_2:=AA[i,nn-i+1];
Summa_max:=max_1+max_2;
End; {функции Summa_max}
Begin {головной программы}
Randomize; {запуск генератора случайных чисел}
WriteLn('Лабораторная работа №7_1');
WriteLn('Вариант №0');
WriteLn('ИС-11-1');
WriteLn('Пупкин Василий');
WriteLn;
WriteLn('Задайте диапазон случайных чисел');
Write('v_min=');
ReadLn(v_min);
Write('v_max=');
ReadLn(v_max);
For i:=1 To n Do {заполнение массива случайными числами}
For j:=1 To n Do
massiv[i,j]:=Random(v_max-v_min + 1) + v_min;
WriteLn;
WriteLn('Исходный массив:');
For i:=1 To n Do {вывод на экран исходного массива}
Begin
For j:=1 To n Do
Write(massiv[i,j]:5);
WriteLn;
End;
WriteLn;
summa:=Summa_max(n, massiv);
WriteLn('Сумма максимальных элементов диагоналей:', summa);
End.
3.5. На языке Си:
#include <stdio.h>
#include <conio.h>
#include <math.h>
#include <time.h>
// прототипы функций
void vorm_mass(int nn, int mass_max, int mass_min, int mass[nn][nn]);