Структурированная запись главного алгоритма
1. Ввести с клавиатуры числа n и m.
2. Перейти к вспомогательному алгоритму In_matr с исходными данными: количеством строк n и количеством столбцов m.
3. Перейти к вспомогательному алгоритму Min _ el с исходными данными: массив А, n и вызовом вспомогательного алгоритма J _ max (A, n, m).
4. Вывести на экран сообщение “ min = ” и результат, полученный в п. 3.
Схема алгоритма

Структурированная запись вспомогательного алгоритма In _ matr
1. Получить от вызывающего алгоритма исходные данные: количество строк n и количество столбцов m.
2. Повторять для i от 1 до n.
2.1.Повторять для j от 1 до m.
2.1.1 Ввести А[ i, j ].
4. Передать результат A в вызывающий алгоритм.
Схема алгоритма

Структурированная запись вспомогательного алгоритма Min _ el
1. Получить от вызывающего алгоритма исходные данные: матрицу А, количество строк n номер столбца j.
2. Присвоить переменной min значение первого элемента j -го столбца А[1, j ].
3. Повторить для i от 2 до n.
3.1. Если А[ i, j ]< min, то запомнить А[ i, j ] в min.
4. Передать результат min в вызывающий алгоритм.
Схема алгоритма

Структурированная запись вспомогательного алгоритма Sredn
1. Получить от вызывающего алгоритма исходные данные: матрицу А, ее размер n, m и номер столбца j.
2. Обнулить s =0.
3.Повторять для i от 1 до n.
3.1 s=s+ А[i,j].
4. Sredn = s /n.
5. Передать результат Sredn в вызывающий алгоритм.
Схема алгоритма

Структурированная запись вспомогательного алгоритма J _ max
1. Получить от вызывающего алгоритма исходные данные: матрицу Аи ее размер n, m.
2. Присвоить переменной max = Sredn (A, n, m,1).
3. Присвоить переменной J _ max =1.
4. Повторять для j от 2 до m.
4.1. Присвоить переменной tek = Sredn (A, n, m, j).
4.2. Если tek > max, то запомнить tek в max, а в J _ max запомнить j.
5. Передать результат J _ max в вызывающий алгоритм.
Схема алгоритма

При программной реализации алгоритма на разных языках используется немного различающийся набор параметров, связанный в основном с особенностями передачи матриц в подпрограммы.
Текст программы на языке Си
#include <stdio.h>
#include <stdlib.h>
#define N 30
#define M 50
void in_matr(double *a,int n)
{
int i;
printf("Введите Элементы матрицы\n");
for (i=0;i<n;i++)
scanf("%lf",a+i);
return 0;
}
double sredn(double *a,int n,int m,int j)
{
int i;
double s;
s=0;
for (i=0;i<n;i++)
s+=*(a+i*m+j);
return s/n;
}
double min_el(double *a,int n,int m,int j)
{
int i;
double min,m1;
min=*(a+j);
for (i=1;i<n;i++)
{
m1=*(a+i*m+j);
if(m1<min) min=m1;
}
return min;
}
double j_max(double *a,int n,int m)
{
int j,jmax;
double max,tek,*p;
p=a;
max=sredn(p,n,m,0);
jmax=0;
for(j=1;j<m;j++)
{
tek=sredn(p,n,m,j);
if (tek>max)
{
max=tek;
jmax=j;
}
}
return jmax;
}
int main()
{
int n,m;
double a[N][M],min;
printf(" n= ");
scanf("%d",&n);
printf(" m= ");
scanf("%d",&m);
in_matr(&a[0][0],n*m);
min=min_el(&a[0][0],n,m,j_max(&a[0][0],n,m));
printf("min=%6.2lf \n",min);
system("pause");
return 0;
}
|