99
38 Бҥтiн сандар жиымындағы 7-ге қалдықсыз бӛлінетін элементтердiң кӛбейтiндiсiн
табыңдар. Жиым ӛлшемi – 15. Жиымды 10 мен 50 арасындағы кездейсоқ
сандармен толтырыңдар.
39. Кездейсоқ сандар генераторының кӛмегiмен А[0..7] жиымын қҧрыңдар және оны
экранға шығарыңдар. Оның барлық элементтерiн 2 есеге арттырыңдар.
40. Кездейсоқ сандар генераторының кӛмегiмен элементтерi –10 мен 10 сан аралы-
ғында болатын А[0..8] жиымын қҧрыңдар және оны экранға шығарыңдар.
Жиымның терiс элементтерiнiң санын есептеңдер.
41. Кездейсоқ сандар генераторының кӛмегiмен элементтерi –20 мен 10 саны
аралығында болатын А[0..11] жиымын қҧрыңдар және оны экранға шығарыңдар.
Жиымның барлық терiс элементтерiн 0-ге ауыстырыңдар.
42. Кездейсоқ сандар генераторы арқылы элементтерi –15 пен 30 саны аралығында
болатын бҥтiн саннан А[0..14] жиымын қҧрастырыңдар және оны экранға
шығарыңдар. Жиымның ең ҥлкен элементiн және оның индексiн анықтаңдар.
43. 8 сағаттан 20 сағатқа дейiнгi уақыт аралығында ауа температурасы сағат сайын
ӛлшенедi. Осы аралықта температураның тӛмендегенi мәлiм. Температураның
алғашқы терiс мәнi қай сағатта пайда болғандығын анықтаңдар.
44. Қараша айында он кҥн бойына ауа температурасы туралы деректер жиымда
сақталған. Температураның -5 градустан қанша рет тӛмен болғанын анықтаңдар.
45. Балқаш кӛлі жағалауының температурасы туралы мәлiмет қыркҥйек айында он
кҥн бойы жиымда сақталған. Осы уақыт iшiнде неше кҥн шомылуға қолайлы
болатынын анықтаңдар.
46. Сәуiр айының онкҥндiк ауа температурасы мен жауын-шашын мӛлшерi туралы
мәлiмет жиымда сақталады. Осы он кҥнде жауған жаңбыр және қардың мӛлшерiн
анықтаңдар.
47. Желтоқсан айының онкҥндiк ауа температурасының мәлiметi жиымда сақталған.
Онкҥндiк температура мәлiметi бойынша қанша рет орта температурадан жоғары
ауытқу болатындығын анықтаңдар.
48. Қараша айының он кҥн iшiндегi желдiң (солтҥстiк, оңтҥстiк, шығыс, батыс)
бағыты және соғу кҥшiнiң мәлiметтерi жиым тҥрiнде сақталған. Неше кҥн желдiң
жылдамдығы 8 м/с-тан артық жылдамдықпен соққандығын анықтаңдар?
49. Бҥтiн саннан тҧратын 15 элементтi жиым қҧрыңдар және олардың арасындағы ең
кiшi элементтi анықтаңдар.
50. Жерге еркiн тҥсу кезiнде дененiң 1, 2, ... , 10 с iшiнде жҥрiп ӛткен қашықтық-
тарынан қҧралатын нақты сандардың сызықтық жиымын қҧрыңдар.
51. Бҥтiн сандардың сызықтық жиымы берiлген. Оның кему ретiмен орналасқанды-
ғын тексерiңдер.
52. Бҥтiн сандардың сызықтық жиымындағы оң элементтердiң қосындысын табың-
дар. Жиымның ӛлшемi — 10. Жиым элементтерін пернетақта арқылы енгізіңдер.
100
6 ЕКІ ӚЛШЕМДІ ЖИЫМДАР
Екі ӛлшемді жиымды – матрицаны пайдалану ҥшін тік жақшалар ішінде
олардың екі ӛлшемінің де енін кӛрсету керек. Мысалы: int a[4][3];
алғашқы сан жолдар санын, ал екінші сан бағаналар санын кӛрсетеді, а жиымы
12 элементтен тҧрады. Оларға бастапқы мәнді былай береміз:
int a[4][3]={ {0,1,2},
{3,4,5},
{6,7,8},
{9,10,11}
};
ішкі жҥйелі жақшаларды қоймаса да болады:
int a[4][3]={0,1,2,3,4,5,6,7,8,9,10,11};
Келесі тҥрде сипаттау жолдардың тек бірінші элементтерін ғана анықтайды,
қалған элементтер 0-ге тең болып саналады:
int a[4][3]={ {0},{3},{6},{9} };
Егер ішкі жҥйелі жақшалар алынып тасталса, онда мағынасы ӛзгереді.
int a[4][3]={ 0,3,6,9 };
мҧнда бірінші жолдың 3 элементі мен екінші жолдың бірінші элементі
анықталады да, қалғандары 0 болып саналады.
Екі ӛлшемді жиымды инициалдау қабаттасқан циклдер арқылы орындалады.
1-мысал.
/* a[3][4] жиымы элементтерін rand() арқылы енгізу және
экранға шығару */
#include
#include
#include
main()
{
const int row=3, col=4;
int a[row][col];
clrscr();
for(int i=0; i
for(int j=0; j
a[i][j]=rand()%100-50;
printf("\nа[3][4] жиым элементтерi мәндерi:");
for(i=0; i
for(j=0; j
printf(" %i",a[i][j]);
getch();
}
Матрицаларды ӛңдейтін негізгі алгоритмдер ретінде бір ӛлшемді жиым-
дарды ӛңдеу кезінде қолданылған алгоритмдер саналады. Жалпы матрицаларды
ӛңдейтін барлық алгоритмдерді екі топқа бӛліп қарастыруға болады, олар:
1) матрицаның барлық элементтерін ӛңдейтін алгоритмдер.
101
2) матрицаның әр жолы немесе әр бағанасы элементтерін жеке-жеке
ӛңдейтін алгоритмдер.
6.1 Матрицаның барлық элементтерін өңдейтін алгоритмдер
1-мысал. Нақты сандардан тҧратын a
4,6
матрицасы берілген. Мынадай ӛр-
некті
2
P
1
P
Z
есептеу керек, мҧндағы 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;
clrscr();
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/fabs(p2);
printf(" z = %f\n",z);
Достарыңызбен бөлісу: |