102
line();
getch();
}
2-мысал. Бҥтін сандардан тҧратын квадрат b
5,5
матрицасы берілген. Оның бас
диагоналының сол жағында және оң жағында орналасқан нӛлге тең элементтері
санын анықтап, солардың айырмасының модулін табу керек.
Мынадай белгілеулер енгізейік:
L1 – бас диагоналдың сол жағында (тӛменінде) орналасқан элементтер саны;
L2 – бас диагоналдың оң жағында (жоғарысында) орналасқан элементтер саны;
L= |L1-L2| – солардың айырмасының модулі.
#include
#include
#include
void line()
{printf("-------------------------\n");
return;}
main()
{ static int b[5][5]={ {5,0,0,0,0},
{0,3,12,0,0},
{0,33,13,14,0},
{0,23,0,14,0},
{35,0,13,14,9},
};
int i,j;
int L1,L2,L;
clrscr();
printf("Берiлген матрица :\n");
line();
for(i=0; i<5; i++)
{for(j=0; j<5; j ++)
printf(" %3i ", b[i][j]);
printf("\n");}
line();
L1 = L2 = 0;
for(i=0; i<5; i++)
for(j=0; j<5; j ++)
if (b[i][j]==0)
{if (i>j) L1 = L1+1;
if (i
}
L = abs(L1 - L2);
printf(" L = %i ",L);
getch();
}
103
6.2 Екінші типтегі есептер алгоритмдері
1-мысал. Бҥтін сандардан тҧратын a
3,6
матрицасы жолдарының алғашқы
элементін осы жолдың минималды элементімен алмастыру керек. Нәтижелік
a
3,6
матрицасы элементтерін экранға шығару қажет.
/* a[3][6] матрицасы жолдарының алғашқы элементiн осы
жолдың минималды элементiмен алмастыру керек. Нәтижелiк Х
матрицасы элементтерiн экранға шығару қажет.*/
#include
#include
#include
void line()
{ printf("------------------------------\n");
return; }
main()
{ static int a[3][6]={
{5,-11,4,-2,5,6},
{2,3,-3,14,-9,-3},
{-9,3,-6,-14,9,-3}
};
int i,j,jmin,min;
clrscr();
printf("Берiлген матрица:\n"); line();
for(i=0; i<3; i++)
{for(j=0; j<6; j ++)
printf(" %3i ", a[i][j]);
printf("\n");
}
line();
for(i=0; i<3; i++)
{min=+1E6;
for(j=0; j<6; j ++)
if (a[i][j]
{ min=a[i][j];
jmin=j;
}
a[i][jmin]=a[i][0]; a[i][0]=min;
}
printf("Өңделген матрица:\n"); line();
for(i=0; i<3; i++)
{for(j=0; j<6; j ++)
printf(" %3i ", a[i][j]);
printf("\n");
} line();
getch();
}
104
2-мысал. Бҥтін сандардан тҧратын a
3,4
матрицасының әрбір бағаналарының
арифметикалық орташа мәнін анықтап, оларды бір ӛлшемді s
4
жиымы ретінде
бейнелеу керек.
/* a[3][4] матрицасының әрбiр бағаналарының арифмети-
калық орташа мәнiн анықтап,оларды бiр өлшемдi s[4] жиымы
ретiнде бейнелеу керек. */
//әрбір бағана қосындысы және олардың орташа мәні
#include
#include
main()
{
static int a[3][4]={ {5,11,4,2},
{3,3,12,5},
{2,3,3,14}
};
int i,j;
float s[4];
clrscr();
printf("Берiлген матрица :\n");
printf("----------------------\n");
for(i=0; i<3; i++)
{for(j=0; j<4; j ++)
printf(" %3i ", a[i][j]);
printf("\n");}
/* матрицаны өңдеу */
printf("----------------------\n");
printf("");
for(j=0; j<4; j++)
{ s[j]=0;
for(i=0; i<3; i ++) s[j]+=a[i][j];
printf(" %4.2f",s[j]/3);
}
printf("\n----------------------");
getch();
}
Бҧл программада s[j] жиымының әрбір элементін есептеуде қабаттасқан екі
цикл қолданылған, онда j индексі сыртқы цикл параметрі, ал i индексі – ішкі
цикл параметрі. Осы тәсіл матрица элементтерін бағаналар бойынша ӛңдеу ісін
жҥзеге асырады.
3-мысал. Берілген жиымның әрбір жолындағы элементтері қосындыларын және
сол қосындылардың орташа мәнін анықтау керек.
// әр жол қосындысы және олардың арифметикалық ортасы
#include
#include
105
main()
{ static int a[3][4]={
{5,3,4,2},
{3,3,4,5},
{2,3,3,4}
};
int i,j,s=0;
float c=0;
clrscr();
for(i=0; i<3; i++)
{for(j=0; j<4; j ++) s+=a[i][j];
printf("%i-жол косындысы:%i\n",i+1,s);
c+=s;
}
printf("--------------------");
printf("\nарифм.ортасы %5/2f", c/4) ;
}
4-мысал. Берілген жиымның әрбір бағанадағы элементтері қосындыларын және
сол қосындылардың орташа мәнін анықтау керек.
// әрбір бағана қосындылары мен олардың орташа мәнін
анықтау
#include
#include
main()
{
static int a[3][4]={
{5,11,4,2},
{3,3,12,5},
{2,3,3,14}
};
int i,j,s; float c;
clrscr(); printf("Берiлген матрица :\n");
printf("----------------------\n");
for(i=0; i<3; i++)
{for(j=0; j<4; j ++)
printf(" %3i ", a[i][j]);
printf("\n");}
/* Матрицаны өңдеу */
printf("----------------------\n");
printf("s=");
for(j=0; j<4; j++)
{ s=0;
for(i=0; i<3; i ++) s+=a[i][j];
printf("%3i ",s); // қосынды s
c+=s;
}
Достарыңызбен бөлісу: |