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



бет10/37
Дата04.04.2023
өлшемі1,37 Mb.
#79347
1   ...   6   7   8   9   10   11   12   13   ...   37
Əдістемелік нұсқау: Берілген есептің қойылысын талдап, С/C++ тіліндегі программасын құрыңдар. Dev C++ ортасында программаны орындатып,тестілеңдер.
7. СОБӨЖ.
Тақырыбы: Бір өлшемді кездейсоқ сандар массивін түрлендіру.
Тапсырма: Өткен материалдарды қайталау мақсатында коллоквиум сұрақтарына жауап беру.
Əдістемелік нұсқау: Өткен материалдарды қайталау, коллоквиум сұрақтарына дайындалу
Әдебиеттер: 1[ 485- 497]
7. СӨЖ.
Тақырыбы: Бір өлшемді кездейсоқ сандар массивін түрлендіру.
Тапсырма: Өткен материалдарды қайталау мақсатында коллоквиум сұрақтарына жауап беру.
Əдістемелік нұсқау: Өткен материалдарды қайталау, коллоквиум сұрақтарына дайындалу
Әдебиеттер: 1[ 485- 497]


Сегізінші апта
15, 16 практикалық сабақтың тақырыбы: Екі өлшемді массивті программалау
Матрицаның барлық элементтерін өңдейтін алгоритмдер
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 (iL= abs(L1 - L2);
printf(" L = %i ", L);
getch();}




Достарыңызбен бөлісу:
1   ...   6   7   8   9   10   11   12   13   ...   37




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

    Басты бет