Бундан фойдаланиб дастурда ўзгарувчиларнинг абсолют қийматини хисоблашимиз мумкин, масалан конструкция - Бундан фойдаланиб дастурда ўзгарувчиларнинг абсолют қийматини хисоблашимиз мумкин, масалан конструкция
- ABS(E-Z)
- Ифодани куйидаги билан алмаштиради
- (E-Z<0? - (E-Z) :E-Z)
- Натижада E-Z ифоданинг абсолют қиймати хисобланади. Кавсларга эътибор қилинг, акс холда натижа нотўғри бўларди.
- Кетма кет препроцессорли жойлаштиришлар алмаштирш сатрида бажарилади , аммо макрослар параметрига таъсир қилмайди).
- Кўп ўлчовли массивларни моделини қуриш. Си тилида кўп ўлчовли массивларни моделлашда макрослардан эффектив фойдаланиш мумкин. Массивларни кейинги бобда батавсил ўрганамиз, хозирда марослардан массив элементларини адреслашда қўлланиши билан танишамиз. Си тилида массивларни ифодалашнинг умумий қоидаларини келтирамиз.
1. Cu тилининг асосий тушунчаларидан бири бир ўлчовли массив тушунчасидир, кўп ўлчовли ўзгарувчи ўлчовли массив хосил қилиш имконияти чекланган. - 1. Cu тилининг асосий тушунчаларидан бири бир ўлчовли массив тушунчасидир, кўп ўлчовли ўзгарувчи ўлчовли массив хосил қилиш имконияти чекланган.
- 2. Cu тилида массив элементлари нумерацияси нулдан бошланади, массивнинг дастлабки элементи нулинчи элементи бўлади, охирги элементи битта кам индекс билан берилади, масалан, double a[10] - берилган бўлса a[0]—дастлабки элемент a[9]—охирги элемент хисобланади. ).
- Массивлар билан ишлаганда юқорида айтилган хусусиятлар ноқулайликлар келтириб чиқаради. Матрица элементига мурожаат қилганда иккита индекс ни кўрсатиш керак бўлади. Сатр ва устунларни номерлаш 1 дан бошланган.
Массив элементларига мурожат қилиш учун макрослардан фойдаланиш юқорида келтирилган ноқулайликлардан холос қилади, бунда индексларга мурожаат ноананавий тарзда бўлади. ( макрос индекслари круглий кавслар билан берилган бўлади.) дастурга эътиборимиз каратамиз: - Массив элементларига мурожат қилиш учун макрослардан фойдаланиш юқорида келтирилган ноқулайликлардан холос қилади, бунда индексларга мурожаат ноананавий тарзда бўлади. ( макрос индекслари круглий кавслар билан берилган бўлади.) дастурга эътиборимиз каратамиз:
- #define N 4 /* матрицадаги сатрлар сони */
- #define М 5 /* матрицадаги устунлар сони */
- #define A(i,j) x[M*(i-l) + (j-1)]
- #include
- void main ( )
- {
- /* Бир ўлчовли массивнинг аниқланиши */ double x[N*M] ; int i,j, k;
- for (k=0; k < N*M; k++) x[k]=k;
- for (i=l; i<=N; i++) /* сатрни саралаш */ {
- printf ("\n Сатр %d:", i);
- /* cатр элементларини саралаш */ for j<=M; j++)
- printf(" %6.1f», A(i, j));
- }
- )
Do'stlaringiz bilan baham: |