Оно состоит из 5 кнопок:
- — Обработка матриц
- — Построение графических фигур
- — Геометрические данные
- — информация об авторе
- — завершить работу
Перемещение по меню осуществляется при помощи клавиш w и s.
Выбор — при помощи клавиши ENTER.
При нажатии клавиши Esc — выход.
Обработка двумерных массивов
Код программы.
#include.
#include.
#include.
#include.
#include.
void key (int **a, int n, int m).
{.
printf («Вводите элементы матрицы:»);
for (int i=0;i.
for (int j=0;j.
{.
printf («%d — «, i*m+j+1);
scanf («%d» ,&a[i][j]);
}.
}.
void random (int **a, int n, int m).
{.
printf («Значения заданы с помощью функции rand () в пределах [-99;99]; «);
for (int i=0;i.
for (int j=0;j.
a[i][j]=(rand ()-16 000)%100;
}.
void fromfile (int **a, int n, int m).
{.
FILE *file;
file = fopen («d:file.txt», «r»);
for (int i=0;i.
for (int j=0;j.
{.
if (feof (file)) a[i][j]=0;
else fscanf (file," %d" ,&a[i][j]);
}.
fclose (file);
}.
void get (int **a, int n, int m).
{.
printf (««);
for (int i=0;i.
{.
printf (««);
for (int j=0;j.
{.
printf («%5d», a[i][j]);
}.
}.
}.
float sr_max (int **a, int n, int m, int d).
{.
int i, j, max;
float sr=0;
for (i=0;i.
{.
if (i≠d).
{.
max=a[i][0];
for (j=1;j.
if (a[i][j]>max)max=a[i][j];
sr+=max;
}.
}.
return sr/(n-1);
}.
int num_min (int **a, int m, int d).
{.
int min=a[d][0], del=0;
for (int j=1;j.
{.
if (a[d][j].
{.
min=a[d][j];
del=j;
}.
}.
return del;
}.
void func (int **a, int n, int m).
{.
int i, j;
int *b=new int [n];
for (i=0;i.
b[i]=sr_max (a, n, m, i);
for (i=0;i.
a[i][num_min (a, m, i)]=b[i];
delete []b;
}.
void get_file (int **a, int n, int m).
{.
FILE *file;
file = fopen («d:file!.txt», «w»);
for (int i=0;i.
{.
if (i≠0)fprintf (file," «);
for (int j=0;j.
{.
fprintf (file," %4d", a[i][j]);
}.
}.
fclose (file);
}.
int task1().
{.
setlocale (0," «);
srand (time (0));
int **a, n, m, k;
printf («Введите размеры матрицы :»);
scanf («%d %d» ,&n,&m);
a=new int* [n];
for (int i=0;i.
a[i]=new int[m];
printf («Выберите способ заполнения элементов матрицы: 1 — c клавиатуры 2 — рандомно 3 — из файла»);
do{.
k=_getch ();
}while (k≠49&&k≠50&&k≠51&&k≠27);
switch (k).
{.
case 49: key (a, n, m);break;
case 50: random (a, n, m);break;
case 51: fromfile (a, n, m);break;
case 27: return 0;
}.
printf («Матрица :»);
get (a, n, m);
func (a, n, m);
printf («Обработанная матрица :»);
get (a, n, m);
printf («Матрица записана в файл (D:file!.txt):»);
get_file (a, n, m);
_getch ();
delete []a;
system («cls»);
}.