Тәттібеков Қ. С. Раимбаева С.Ә. С/С++ тілінде программалау негіздері



Pdf көрінісі
бет52/79
Дата15.11.2023
өлшемі1,39 Mb.
#124059
түріПрограмма
1   ...   48   49   50   51   52   53   54   55   ...   79
 
int
X[10], Y[10]; 
меншіктеу операторы X = Y қате болады. Мұндай тек қана Паскаль тілінде 
мүмкін, бірақ Си тілінде мүмкін емес. Бір массив мәндерін басқасына тек 
элементтері бойынша жіберуге болады.


77 
Енді екі өлшемді массивтерді қарастырайық. Программада төмендегідей 
сипаттау болсын: 
int
Р[5][10]; 
Бұл матрица бес жолдан және әрбір жолында он саннан тұрады. Екі 
өлшемді массив жадыда жол бойынша тізбектей орналасқан. Р массивіне 
бағытталған көрсеткіш - тұрақты болып табылады, яғни Р[0][0]. Р[
i

индекстелген аты 

- ші жолды білдіреді. Оған адрестен ажыратылған 
көрсеткіш формасындағы белгілеулер тең болады: 
*(P+i*10) 
Р[2][4] массив элементіне қатынасын *(Р+2*10+4) арқылы ауыстыруға 
болады. Жалпы жағдайда төмендегі белгілеулер эквивалентті: 
P[i] [j] және *(P+i*10+j) 
Мұнда «квадраттық жақша» амалы екі рет жұмыс істейді. Соңғы өрнекті 
Р матрицасының жолдар ұзындығын көрсетпей, басқаша жазуға болады: 
*(*(P+i)+j). 
Шындығында, A[i][j][k] үш өлшемді массивтің элементіне сілтеме үшін 
индукция бойынша төмендегі өрнек дұрыс болады: 
* (* (* (A+i)+j)+k) және т.б. 
 
Массив функция параметрі ретінде.
Мысалдар қарастырайық: 
Мысал 1.
А[М][N] нақты матрицасы берілген. Осы матрица 
жолдарының евклидтік нормасын есептеп, баспаға беру қажет. Есепті шешу 
программасын құрамыз. 
Вектордың 
Евклидтік 
нормасы 
деп 
оның 
элементтерінің 
квадраттарының қосындысының квадрат түбірін айтады: 
Егер матрицаның жолдарын вектор ретінде қарастырсақ, онда берілген 
формуланы әрбір жолға қолдану қажет. Нәтижесінде М сандарды аламыз. 
Кез келген вектордың нормаларын есептеу функциясын төмендегідей 
құрамыз: 


Достарыңызбен бөлісу:
1   ...   48   49   50   51   52   53   54   55   ...   79




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

    Басты бет