5В011100-«Информатика» мамандығына арналған «Есеп шығару әдістемесі»


Матрицаның барлық элементтерін өңдейтін алгоритмдер



жүктеу 1,37 Mb.
бет17/56
Дата19.01.2022
өлшемі1,37 Mb.
#33455
түріБағдарламасы
1   ...   13   14   15   16   17   18   19   20   ...   56
Есеп шығару әдістемесі

Матрицаның барлық элементтерін өңдейтін алгоритмдер

2-мысал. Нақты сандардан тұратын a4,6 матрицасы берілген. Мынадай z=p1/|p2| өрнекті есептеу керек, мұндағы P1 и P2 – сәйкесінше алынған матрицаның оң және теріс элементтерінің көбейтіндісі.

/* a[4][6] матрицасы берiлген. z=p1/|p2| есептеу керек, p1 және p2 – матрицаның оң және терiс элементтерiнiң көбейтiндiсi */

#include

#include

#include

void line()

{printf("------------------------------\n"); return;}

main ()


{static int a[4][6]={{5,-11,4,-2,5,6},{3,3,-12,-5,7,8},{2,3,-3,14,-9,-3},{-9,3,-6,14,9,-3}};

int i,j; float p1, p2, z;

printf("Берiлген матрица :\n"); line();

for (i=0; i<4; i++)

{for (j=0; j<6; j ++)

printf(" %3i ", a[i][j]);printf("\n");}

line();

/* Матрицаны өңдеу */

p1 = 1;p2 = 1;

for (i=0; i<4; i++)

for (j=0; j<6; j ++)

{if (a[i][j]>0) p1 = p1*a[i][j];

if (a[i][j]<0) p2 = p2*a[i][j];}

z = p1/abs(p2);

printf(" z = %f\n",z); line();getch();}

Матрица мынадай түрде беріледі:



А(0,0)

A(0,1)

A(0,2)

A(0,3) ...

A(0, j)



A(0,n-1)

A(1, 0)

A(1,1)

A(1, 2)

A(1, 3) ...

A(1, j)



A(1, n-1)

A(2, 0)

A(2, 1)

A(2,2)

A(2, 3) ...

A(2, j)



A(2, n-1)

A(3, 0)

A(3, 1

A(3, 2

A(3, 3...

A(3, j)



A(3, n-1)











A(i, j)

… …

A(n-2, 0)

A(n-2, 1)

A(n-2, 2)

A(n-2, 3) ...

A(n-2, j)

… A(n-2, n)

A(n-1, 0)

A(n-1, 1)

A(n-1, 2)

A(n-1, 3) ...

A(n-1, j)

… A(n-1, n-1)

Бас диагональ элементтері белгісі: i = j

Бас диагональдан жоғары тұрған элементтері белгісі: i < j

Бас диагональдан төмен тұрған элементтері белгісі: i > j

Қосалқы диагональ элементтері белгісі: i+j = n-1

Қосалқы диагональдан жоғары элементтер белгісі: i+j < n-1

Қосалқы диагональдан төмен элементтер белгісі: j+j > n-1

3-мысал. Бүтін сандардан тұратын квадрат b5,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;

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();}
Екінші типтегі есептер алгоритмдері

4-мысал. Бүтін сандардан тұратын a3,6 матрицасы жолдарының алғашқы элементін осы жолдың минимальды элементімен алмастыру керек. Нәтижелік a3,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;

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();}



5-мысал. Бүтін сандардан тұратын a3,4 матрицасының әрбір бағаналарының арифметикалық орташа мәнін анықтап, оларды бір өлшемді s4 жиымы ретінде бейнелеу керек.

/* 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];

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 индексі – ішкі цикл параметрі. Осы тәсіл матрица элементтерін бағаналар бойынша өңдеу ісін жүзеге асырады.



6-мысал. Берілген жиымның әрбір жолындағы элементтері қосындыларын және сол қосындылардың орташа мәнін анықтау керек. Әр жол қосындысы және солардың арифметикалық ортасы

#include #include 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;

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) ; }


7-мысал. Берілген жиымның әрбір бағанадағы элементтері қосындыларын және сол қосындылардың орташа мәнін анықтау керек.

  1. әрбір бағана қосындылары мен солардың орташа мәнін анықтау

#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;

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;}


printf("\n----------------------"); printf("\n арифм. ортасы %5.2f",c/4); getch();}

8-мысал. Берілген a4,4 жиымының бас диагоналындағы элементтерді нөлге, ал қосалқы диагоналындағы элементтерді – бірге теңестіру программасы.

#include

#include

#include

main()

{int a[4][4]={{6,8,9,2},{5,3,4,2},{3,3,4,5},{2,3,3,4}};



int i,j;

printf("Берілген матрица :\n"); for (i=0; i<4; ++)

{for (j=0; j<4; j ++)

printf(" %2i ", a[i][j]);printf("\n");}

/* Матрицаны өңдеу */

for (i=0; i<4; i++) a[i][i]=0;

for (i=0; i<4; i++) for (j=0; j<4; j ++)

if (i+j==3) a[i][j]=1;

/* Өңделген матрица элементтерін шығару */ printf("Нәтижелік матрица :\n");

for (i=0; i<4; i++)

{for (j=0; j<4; j ++)

printf(" %2i ", a[i][j]); printf("\n");} getch();}



9-мысал. Берілген a3,3 жиымының бас диагоналынан төмен орналасқан элементтер қосындысын анықтау программасы.

#include

#include

main ()


{static int a[3][3] = {{0,1,2},{3,4,5},{6,7,8}};

int i,j,r,s;

printf("Енгiзiлген а[3][3] жиым элементтерi:\n"); for (i=0; i<3; i++)

{for (j=0; j<3; j++)

printf(" %2i",a[i][j]);printf("\n");}

/* бас диагоналдан төмен орналасқан элементтер қосындысын анықтау */

s=0;

for (i=0; i<3; i++)



for (j=0; j<3; j++)

if (j

printf("\ns=%i",s);

getch();}

10-мысал. Берілген a3,3 жиымының әрбір жолындағы элементтерді өсуі бойынша реттеп орналастыру программасы.

#include

#include

#include

main ()

{ static int a[3][3] ={{8,7,6},{5,4,3},{2,1,0}};

int i,j,r,s,n=3,amin,m,k;

printf("Берілген матрица:\n"); for (i=0; i<3; i++)

{for (j=0; j<3; j++)

printf(" %2i",a[i][j]);

printf("\n");}

for (i=0; i

{//мин тауып алмастыру

for (k=0; k

{ amin=a[i][k];m=k;

for (j=k+1; j

if (a[i][j] < amin) {amin=a[i][j]; m = j;}

a[i][m]=a[i][k]; a[i][k]=amin;}}

printf("\nНәтижелік матрица:\n"); for (i=0; i<3; i++)

{for (j=0; j<3; j++)

printf(" %2i",a[i][j]);

printf("\n");}

getch();

11-мысал. Берілген a3,3 жиымының әрбір бағанасындағы элементтерді өсуі бойынша реттеп орналастыру программасы.

#include

#include

#include

main ()

{ static int a[3][3]= {{8,7,6},{5,4,3},{2,1,0}};

int i,j,r,s,n=3;

int amin; int m,k; printf("Берілген матрица:\n"); for (i=0; i<3; i++)

{for (j=0; j<3; j++)

printf(" %2i",a[i][j]);

printf("\n");}

for (j=0; j

{for (k=0; k

{ amin=a[k][j];m=k; for (i=k+1; i

if (a[i][j] < amin) {amin=a[i][j]; m = i;}

a[m][j]=a[k][j]; a[k][j]=amin;}}

printf("\nСұрыпталған матрица элементтері:\n"); for (i=0; i<3; i++)

{for (j=0; j<3; j++)

printf(" %2i",a[i][j]);

printf("\n");}getch();}




жүктеу 1,37 Mb.

Достарыңызбен бөлісу:
1   ...   13   14   15   16   17   18   19   20   ...   56




©g.engime.org 2024
әкімшілігінің қараңыз

    Басты бет
рсетілетін қызмет
халықаралық қаржы
Астана халықаралық
қызмет регламенті
бекіту туралы
туралы ережені
орталығы туралы
субсидиялау мемлекеттік
кеңес туралы
ніндегі кеңес
орталығын басқару
қаржы орталығын
қаржы орталығы
құрамын бекіту
неркәсіптік кешен
міндетті құпия
болуына ерікті
тексерілу мемлекеттік
медициналық тексерілу
құпия медициналық
ерікті анонимді
Бастауыш тәлім
қатысуға жолдамалар
қызметшілері арасындағы
академиялық демалыс
алушыларға академиялық
білім алушыларға
ұйымдарында білім
туралы хабарландыру
конкурс туралы
мемлекеттік қызметшілері
мемлекеттік әкімшілік
органдардың мемлекеттік
мемлекеттік органдардың
барлық мемлекеттік
арналған барлық
орналасуға арналған
лауазымына орналасуға
әкімшілік лауазымына
инфекцияның болуына
жәрдемдесудің белсенді
шараларына қатысуға
саласындағы дайындаушы
ленген қосылған
шегінде бюджетке
салығы шегінде
есептелген қосылған
ұйымдарға есептелген
дайындаушы ұйымдарға
кешен саласындағы
сомасын субсидиялау