Структурированная запись главного алгоритма 


Мы поможем в написании ваших работ!



ЗНАЕТЕ ЛИ ВЫ?

Структурированная запись главного алгоритма



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;

}



Поделиться:


Последнее изменение этой страницы: 2021-04-12; просмотров: 75; Нарушение авторского права страницы; Мы поможем в написании вашей работы!

infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 3.15.143.181 (0.007 с.)