С++ те бағдарламалау пәнінен дәрістер


Сандық массивтерді өңдеудің типтік алгоритмдерін программалау



бет54/79
Дата07.02.2022
өлшемі380,73 Kb.
#94133
түріПрограмма
1   ...   50   51   52   53   54   55   56   57   ...   79
Байланысты:
Дәріс сабақтары С каз

Сандық массивтерді өңдеудің типтік алгоритмдерін программалау.
Тапсырма. 5 элементтен тұратын бір өлшемді массивтің теріс элементтерінің арифметикалық ортасын есептеу керек.

#include


main()

{
int I,K,N;


float s;
int A[5]={-1,2,-3,4,5};
K=0;
N=0;
for (I=0; I<= 4; I++)
{
if (A[I]<0)
{
K=K+A[I];
N++;
}
}
s=K/N;
printf("\ns=%f",s);

}


Бір өлшемді массивтер және нұсқаушылар.

Си тілінде массивтер мен нұсқауыштар арасында байланыс бар. Мысалы, массив int array[25] түрінде сипатталса, онда массивтің жиырма бес элементі үшін жадыдан орын бөлу ғана орындалмайды, сонымен қатар мәні массивтің бірінші элементінің (яғни, саны бойынша нөлдік) адресіне тең, array атты нұсқауыш үшін де орын бөлу орындалады, яғни, массивтің өзі атсыз қалады, ал массивтің элементтеріне рұқсат алу array атты нұсқауыш арқылы жүзеге асырылады. Тіл синтаксисіне сәйкес array нұсқауышы тұрақты болып табылады, оның мәнін өрнектерде қолдануға болады, бірақ, бұл мәндерді өзгертуге болмайды.


Массив аты нұсқауыш болғандықтан, келесідей меншіктеуге рұқсат етілген :
int array[25];
int *ptr;
ptr=array;
Мұнда ptr нұсқауышы массивтің бірінші элементінің адресіне орнатылған, сонымен қатар ptr=array меншіктеуін келесі эквивалентті түрінде жазуға болады:
ptr=&array[0].
Массив элементтеріне рұқсат алудың екі әдісі бар. Біріншісі, қарапайым квадрат жақша ішінде индекс мәндерін қолданумен байланысты. Мысалы, array[16]=3 немесе array[i+2]=7. Мұндай рұқсат алу әдісінде екі өрнек жазылады, екінші өрнек квадрат жақшаға алынады. Бұл өрнектердің біреуі нұсқауыш, ал екіншісі бүтін типті мән. Бұл кезектіліктің жазылуы кез келген бола алады, бірақ, жақша ішіне екінші тұрғаны жазылады. Сондықтан array[16] және 16[array] жазылулары эквивалентті және массивтің он алтыншы элементін білдіреді. Индекті түрде қолданылған нұсқауыштың міндетті түрде қандай да бір массивке нұсқайтын, тұрақты болуы керек емес, ол айнымалы да бола алады. Дербес жағдайда, ptr=array меншіктелуі орындалғаннан кейін массивтің он алтыншы элементіне рұқсат алу ptr формасында келесідей болуы мүмкін: ptr[16] немесе 16[ptr].
Массив элементтеріне рұқсат алудың екінші әдісі *(array+16)=3 немесе *(array+i+2)=7 түріндегі адрестік мәндер мен адрестеу операциясымен байланысты. Мұндай рұқсат алу әдісінде массивтің он алтыншы элементінің адресіне тең адрестік өрнек келесі түрду жазылуы мүмкін :
*(array+16) или *(16+array).
Компьютерде жүзеге асыру барысында бірінші әдіс екінші әдіске келтіріледі, яғни, индекстік өрнек адрестік өрнекке түрленеді. Келтірілген array[16] және 16[array] мысалдары *(array+16) түріне тұрленеді.
Массивтің бастапқы элементіне рұқсат алу үшін (яғни нөлдік индексті элементке), тек array немесе ptr нұсқауыштарының мәнін қолдануға болады. Келесі меншіктеулердің кез келгені
*array = 2;
array[0] = 2;
*(array+0) = 2;
*ptr = 2;
ptr[0] = 2;
*(ptr+0) = 2;
Массивтің алғашқы элементіне 2 мәнін меншіктейді, бірақ, *array=2 және *ptr=2 меншіктеулері жылдам орындалады, себебі, оларда қосу операторларын орындау қажет емес.


Өзін өзі тексеру сұрақтары



  1. Массив деген не?

  2. Массивтің өлшемі деген не?

  3. Программада бір өлшемді, екі өлшемді массивтер қалай сиптталады?

  4. Массив элементтеріне рұқсат алу қалай орындалады?

  5. Массивті қалай толтыруға болады?

  6. Массивті экранға қалай шығарады?

  7. Бір өлшемді массивтер мен нұсқауыштар.





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




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

    Басты бет