1. Умножение матриц
2. Вычитание матриц
3. Сложение матриц
(А+В-С)^2/D*5
#include stdio.h
#include conio.h
#include stdlib.h
#include math.h
main ()
{
window(100,100,100,100);
clrscr();
textcolor(WHITE);
//описание типов Массивов
int A[5][5], B[5][5], C[5][5], D[5][5], SYM[5][5], UMN[5][5]; double GLAB[5][5];
//описание типов переменых
int i, j, i2, j2, i3, j3, i4, j4, i5, j5, i6, j6, n, m, n2, n3, n4, m2, m3, m4;
randomize ();
// задаём размер матриц //будет выводиться пока размер больше 5х5
do
{
cprintf ("Введите размер матрици( не больше 5х5 )\r\n");
cprintf ("n= "); scanf ("%d", &n); //количество столбцов
cprintf ("m= "); scanf ("%d", &m); //количество строк
}
while (n>5 || m>5);
//вывод массива А
for (i=0; i
for (j=0; j
{
A[i][j]= random(10);
cprintf ("%3.1d", A[i][j]);
if ((j+m+1)%m==0) cprintf("\r\n");
}cprintf ("\n\n"); //отступ
// производится после нажатя на любую кнопку
// задаём размер матриц //будет выводиться пока размер больше 5х5
do
{
cprintf ("Введите размер матрици( не больше 5х5 )\r\n");
cprintf ("n= "); scanf ("%d", &n2); //количество столбцов
cprintf ("m= "); scanf ("%d", &m2); //количество строк
}
while (n2>5 || m2>5);
//вывод массива В
for (i2=0; i2
for (j2=0; j2
{
B[i2][j2]= random(10);
cprintf ("%3.1d", B[i2][j2]);
if ((j2+m2+1)%m2==0) cprintf("\r\n");
}cprintf ("\n\n"); //отступ
// задаём размер матриц //будет выводиться пока размер больше 5х5
do
{
cprintf ("Введите размер матрици( не больше 5х5 )\r\n");
cprintf ("n= "); scanf ("%d", &n3); //количество столбцов
cprintf ("m= "); scanf ("%d", &m3); //количество строк
}
while (n3>5 || m3>5);
//вывод массива С
for (i3=0; i3
for (j3=0; j3
{
C[i3][j3]= random(10);
cprintf ("%3.1d", C[i3][j3]);
if ((j3+m3+1)%m3==0) cprintf("\r\n");
} cprintf ("\n\n"); //отступ
// задаём размер матриц //будет выводиться пока размер больше 5х5
do
{
cprintf ("Введите размер матрици( не больше 5х5 )\r\n");
cprintf ("n= "); scanf ("%d", &n4); //количество столбцов
cprintf ("m= "); scanf ("%d", &m4); //количество строк
}
while (n>5 || m>5);
//вывод массива D
for (i4=0; i4
for (j4=0; j4
{
D[i4][j4]= random(10);
do
{
if(D[i4][j4]==0) D[i4][j4]=random(10);
}
while (D[i4][j4]==0);
cprintf ("%3.1d", D[i4][j4]);
if ((j4+m4+1)%m4==0) cprintf("\r\n");
}cprintf ("\n\n"); //отступ
//+++++++++++++++++++++++++++++++++++++++++++++//
//|___________________________________________|//
//|++++_Выполнение действий над матрицами_++++|//
//|___________________________________________|//
//+++++++++++++++++++++++++++++++++++++++++++++//
//|___________________________________________|//
//|++++++++++++++++++_(А+В)_++++++++++++++++++++|//
//|___________________________________________|//
textcolor (GREEN);
cprintf ("\n\nВывод А+В\r\n");
if (n!=n2 || m!=m2) {
cprintf(" RAZMER NE SOVPODAET"); getch(); return 0;
}
for (i5=0, i=0, i2=0, i3=0; i5
for (j5=0, j=0, j2=0, j3=0; j5
{
SYM[i5][j5]=A[i][j]+B[i2][j2];
textcolor (WHITE);
cprintf ("%3.1d", SYM[i5][j5]);
if ((j5+m+1)%m==0) cprintf("\r\n");
}
getch ();
//|___________________________________________|//
//|+++++++++++++++++_(А+В-С)_+++++++++++++++++|//
//|___________________________________________|//
textcolor (GREEN);
cprintf ("\n\nA+B-C\r\n");
if (n!=n3 || m!=m3) {
printf(" RAZMER NE SOVPODAET"); getch(); return 0;
}
for (i5=0,i3=0; i5
for (j5=0, j3=0; j5
{
SYM[i5][j5]=SYM[i5][j5]-C[i3][j3];
textcolor(WHITE);
cprintf ("%3.1d", SYM[i5][j5]);
if ((j5+m+1)%m==0) cprintf ("\r\n");
}
getch();
//|___________________________________________|//
//|+++++++++++++++_(А+В-С)^2_+++++++++++++++++|//
//|___________________________________________|//
int k, t;
for (i5=0; i5
{
t=0;
for (j5=0; j5
{
t=0;
for (k=0; k
{
t=t+(SYM[i5][k]*SYM[k][j5]);
}
UMN[i5][j5]=t;
}
}
printf("\n(А+В-С)^2\n");
for (i5=0; i5
for (j5=0; j5
{
printf(" %d ", UMN[i5][j5]);
if ((j5+m+1)%m==0) printf ("\r\n");
}
getch();
//|___________________________________________|//
//|+++++++++++++++_Вывод D*5_+++++++++++++++++|//
//|___________________________________________|//
textcolor (GREEN);
cprintf ("\n\nВывод D*5\r\n");
for (i4=0, i5=0; i4
for (j4=0, j5=0; j4
{
D[i4][j4]=D[i4][j4]*5;
textcolor (WHITE);
cprintf ("%3.1d", D[i4][j4]);
if ((j4+m+1)%m==0) cprintf("\r\n");
}
getch();
//|___________________________________________|//
//|++++++++++++++_(А+В-С)^2/D*5_++++++++++++++|//
//|___________________________________________|//
textcolor (GREEN);
cprintf ("\n\nВывод (A+B-C)^2/D*5)\r\n");
if (n!=n4 || m!=m4) {
printf(" RAZMER NE SOVPODAET"); getch(); return 0;
}
for (i6=0, i5=0, i4=0; i6
for (j6=0, j5=0, j4=0; j6
{
GLAB[i6][j6]=(double)UMN[i5][j5]/(double)D[i4][j4];
textcolor (WHITE);
cprintf("%4.2lf ", GLAB[i6][j6]);
if ((j6+m+1)%m==0) cprintf("\r\n");
}
getch();
//+++++++++++++++++++++++++++++++++++++++++++++//
//|___________________________________________|//
//|+++++++++++++++_SORTIROVKA_++++++++++++++++|//
//|___________________________________________|//
//+++++++++++++++++++++++++++++++++++++++++++++//
printf ("\n");
textcolor (6);
cprintf ("\rCORTIROBKA\n\r");
double W[100], temp; int kol, z;
z=0;
for (i6=0; i6
for (j6=0; j6
{
W[z]=GLAB[i6][j6];
z++;
}
textcolor (GREEN);
cprintf("Ne OTSORTIROVANI ODNOMERNI MASSIV\n\r");
for (z=0; z
{
textcolor(WHITE);
cprintf("%3.2lf ", W[z]);
}
kol=0;
for (k=0; k<=n*m; k++)
{
for (z=0; z
{
if (W[z]>W[z+1])
{
temp=W[z];
W[z]=W[z+1];
W[z+1]=temp;
}
}
kol++;
}
printf("\n\n\n");
textcolor (GREEN);
cprintf ("\rOTSORTIROVANI ODNOMERNI MASSIV\n\r");
for (z=0; z
{
textcolor(WHITE);
cprintf("%3.2lf ", W[z]);
}
z=0;
for (i6=0; i6
for (j6=0; j6
{
GLAB[i6][j6]=W[z];
z++;
}
printf("\n\n\n");
textcolor(GREEN);
cprintf("\rOTSORTIROVANI 2xMERNI MASSIV\n\r");
for (i6=0; i6
for (j6=0; j6
{
textcolor(WHITE);
cprintf("%3.2lf ", GLAB[i6][j6]);
if ((j6+m+1)%m==0) printf("\n");
}
textcolor(WHITE);
cprintf("\n\n\rKOL-VO PROXODOV=%d\r", kol);
getch();
return 0;
}
|